commit a44bbf8d66f717dd780084f9f3986adf63406e52
Author: Eric Maddy <eric.maddy@gmx.com>
Date:   Fri Jul 4 19:46:19 2025 -0400

    menu bar and submenu

diff --git a/src/FS/mine/menu.tsx b/src/FS/mine/menu.tsx
index 0015e4a..75ff507 100644
--- a/src/FS/mine/menu.tsx
+++ b/src/FS/mine/menu.tsx
@@ -1,6 +1,8 @@
 // import handleMyMenuClick from './menuClick.tsx'
-import { useContext } from "react";
+import { useContext} from "react";
+// import _ from "lodash";
 import Combo from "../react/src/components/Toolbar/Combo.tsx";
+import {MenuDivider} from "../react/src/components/Toolbar/Divider.tsx";
 import Select, { Option } from "../react/src/components/Toolbar/Select.tsx";
 import WorkbookContext from "../react/src/context";
 // import { Context } from '../core/src/context.ts'
@@ -16,10 +18,13 @@ import handle2PropZ from "./realstats/handle2PropZ.tsx";
 import handleTTest from "./realstats/handleTTest.tsx";
 import handleOneVarStats from "./realstats/handleOneVarStats.tsx";
 import handle2TTest from "./realstats/handle2TTest.tsx";
-// import {showDialogWithHistory} from "./history.tsx";
+ // import {showDialogWithHistory} from "./history.tsx";
+// import SubMenuOne from "./submenu1.tsx";
+import SubMenuSan from "./submenu3.tsx";
+import SubMenuTwo from "./submenu2.tsx";
 
 function MyMenu() {
-  const { context, setContext } = useContext(WorkbookContext);
+  const { context, setContext,refs } = useContext(WorkbookContext);
   const { showDialog, hideDialog } = useDialog();
 
   function showDialogWithHistory(
@@ -48,7 +53,12 @@ function MyMenu() {
     const data = getFlowdata(context) as any[][];
 
     if (!value) return;
-    if (value === "mona") {
+    // if (value === "|" ){
+    //     return <MenuDivider />
+    // }
+   // if (value === "highlight") {
+   //    }
+    else if (value === "mona") {
       showDialog("Mona no Lisa", "ok");
     } else if (value === "lisa") {
       showDialog("Lisa no Mona", "yesno", () => {
@@ -94,10 +104,18 @@ function MyMenu() {
       text: "ZZZZZ  ZZZZ",
       value: "zzz",
     },
+    {
+        text: "whatever",
+        value:"sub3",
+    },
     {
       text: "Moooon 3",
       value: "moon",
     },
+    {
+        text: "sub mennneu",
+        value: "highlight",
+    },
     {
       text: "Can I use negotiation?",
       value: "neg",
@@ -105,7 +123,11 @@ function MyMenu() {
     {
       text: "water bootle",
       value: "yeti",
-    },
+     },
+     {
+         text: "sdf",
+         value:"|",
+     },
     {
       text: "One Variable Stats",
       value: "onevarstats",
@@ -143,31 +165,36 @@ function MyMenu() {
       value: "2ttest",
     },
   ];
+
   return (
     <Combo text="Menuuuu" key="MyMenu" tooltip="Ehhhhh....">
       {(setOpen) => (
-        <Select>
-          {items.map(({ text, value }) => (
+        <Select  style={{ overflow: "visible" }} >
+          {items.map(({ text, value }) => {
+           if (value==="|"){
+              return <MenuDivider />;
+           } else if (value==="highlight"){
+            return <SubMenuTwo setOpen={setOpen} />;
+          } else if (value==="sub3"){
+              return <SubMenuSan setOpen={setOpen} />;
+          } else {
+           return (
             <Option
               key={value}
               onClick={() => {
-                // setContext((ctx) => {
-                // the setContext will trigger the function call twice
-                // instead once. It's only useful when need change the
-                // value of the spreadsheet. If just read the values
-                // and do something, commenting it out is fine.
                 handleMyMenuClick(value);
-                // });
                 setOpen(false);
               }}
-            >
+            > 
               <div className="fortune-toolbar-menu-line">
                 {text}
                 {/* <SVGIcon name={value} />
                          Can insert 24x24 SVG icon here */}
               </div>
             </Option>
-          ))}
+            );
+          }
+          })}
         </Select>
       )}
     </Combo>
diff --git a/src/FS/mine/submenu.tsx b/src/FS/mine/submenu.tsx
new file mode 100644
index 0000000..de83e09
--- /dev/null
+++ b/src/FS/mine/submenu.tsx
@@ -0,0 +1,108 @@
+import React, { useContext, useCallback } from "react";
+import _ from "lodash";
+// import { useDialog } from "../react/src/hooks/useDialog.tsx";
+import WorkbookContext from "../react/src/context";
+import Select, { Option } from "../react/src/components/Toolbar/Select.tsx";
+import SVGIcon from "../react/src/components/SVGIcon.tsx";
+ 
+const SubMenu: React.FC<{
+        text:string;
+        setOpen: React.Dispatch<React.SetStateAction<boolean>>;
+        subMenuItems: { text: string; value: string }[];
+        handleSubMenuClicks: (value:string)=>void;
+}> = ({ text, setOpen, subMenuItems, handleSubMenuClicks }) => {
+  const { context, setContext,refs } = useContext(WorkbookContext);
+  // const { showDialog } = useDialog();
+
+  const showSubMenu = useCallback(
+    (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {
+      const target = e.target as HTMLDivElement;
+      const menuItem =
+        target.className === "fortune-toolbar-menu-line"
+          ? target.parentElement!
+          : target;
+      const menuItemRect = menuItem.getBoundingClientRect();
+      const workbookContainerRect =
+        refs.workbookContainer.current!.getBoundingClientRect();
+      const subMenu = menuItem.querySelector(
+        ".condition-format-sub-menu"
+      ) as HTMLDivElement;
+      if (_.isNil(subMenu)) return;
+      const menuItemStyle = window.getComputedStyle(menuItem);
+      const menuItemPaddingRight = parseFloat(
+        menuItemStyle.getPropertyValue("padding-right").replace("px", "")
+      );
+
+      if (
+        workbookContainerRect.right - menuItemRect.right <
+        parseFloat(subMenu.style.width.replace("px", ""))
+      ) {
+        subMenu.style.display = "block";
+        subMenu.style.right = `${menuItemRect.width - menuItemPaddingRight}px`;
+      } else {
+        subMenu.style.display = "block";
+        subMenu.style.right = `${-(
+          parseFloat(subMenu.style.width.replace("px", "")) +
+          menuItemPaddingRight
+        )}px`;
+      }
+    },
+    [refs.workbookContainer]
+  );
+
+  const hideSubMenu = useCallback(
+    (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {
+      const target = e.target as HTMLDivElement;
+
+      if (target.className === "condition-format-sub-menu") {
+        target.style.display = "none";
+        return;
+      }
+
+      const subMenu = (
+        target.className === "condition-format-item"
+          ? target.parentElement
+          : target.querySelector(".condition-format-sub-menu")
+      ) as HTMLDivElement;
+      if (_.isNil(subMenu)) return;
+      subMenu.style.display = "none";
+    },
+    []
+  );
+        return (
+          <Option
+          key={text}
+            onMouseEnter={showSubMenu}
+            onMouseLeave={hideSubMenu}
+          >
+            <div className="fortune-toolbar-menu-line" key={`div${text}`}>
+            {text}
+             <SVGIcon name="rightArrow" width={18} />
+              <div
+                className="condition-format-sub-menu"
+                style={{
+                  display: "none",
+                  width: 150,
+                }}
+              >
+                {subMenuItems.map((v) => (
+                  <div
+                    className="condition-format-item"
+                    key={v.text}
+                    onClick={() => {
+                        setOpen(false);
+                        handleSubMenuClicks(v.value);
+                    }}
+                    tabIndex={0}
+                  >
+                  {v.text}
+                  </div>
+                ))}
+              </div>
+            </div>
+          </Option>
+        );
+
+}
+
+export default SubMenu;
diff --git a/src/FS/mine/submenu1.tsx b/src/FS/mine/submenu1.tsx
new file mode 100644
index 0000000..e9eaebb
--- /dev/null
+++ b/src/FS/mine/submenu1.tsx
@@ -0,0 +1,114 @@
+import React, { useContext, useCallback } from "react";
+ import _ from "lodash";
+import { useDialog } from "../react/src/hooks/useDialog.tsx";
+import WorkbookContext from "../react/src/context";
+import Select, { Option } from "../react/src/components/Toolbar/Select.tsx";
+import SVGIcon from "../react/src/components/SVGIcon.tsx";
+ 
+const SubMenuOne: React.FC<{
+      text: string;
+        setOpen: React.Dispatch<React.SetStateAction<boolean>>;
+}> = ({ text, setOpen }) => {
+// function SubMenuOne(text:string){
+  const { context, setContext,refs } = useContext(WorkbookContext);
+  const { showDialog } = useDialog();
+
+  const showSubMenu = useCallback(
+    (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {
+      const target = e.target as HTMLDivElement;
+      const menuItem =
+        target.className === "fortune-toolbar-menu-line"
+          ? target.parentElement!
+          : target;
+      const menuItemRect = menuItem.getBoundingClientRect();
+      const workbookContainerRect =
+        refs.workbookContainer.current!.getBoundingClientRect();
+      const subMenu = menuItem.querySelector(
+        ".condition-format-sub-menu"
+      ) as HTMLDivElement;
+      if (_.isNil(subMenu)) return;
+      const menuItemStyle = window.getComputedStyle(menuItem);
+      const menuItemPaddingRight = parseFloat(
+        menuItemStyle.getPropertyValue("padding-right").replace("px", "")
+      );
+
+      if (
+        workbookContainerRect.right - menuItemRect.right <
+        parseFloat(subMenu.style.width.replace("px", ""))
+      ) {
+        subMenu.style.display = "block";
+        subMenu.style.right = `${menuItemRect.width - menuItemPaddingRight}px`;
+      } else {
+        subMenu.style.display = "block";
+        subMenu.style.right = `${-(
+          parseFloat(subMenu.style.width.replace("px", "")) +
+          menuItemPaddingRight
+        )}px`;
+      }
+    },
+    [refs.workbookContainer]
+  );
+
+  const hideSubMenu = useCallback(
+    (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {
+      const target = e.target as HTMLDivElement;
+
+      if (target.className === "condition-format-sub-menu") {
+        target.style.display = "none";
+        return;
+      }
+
+      const subMenu = (
+        target.className === "condition-format-item"
+          ? target.parentElement
+          : target.querySelector(".condition-format-sub-menu")
+      ) as HTMLDivElement;
+      if (_.isNil(subMenu)) return;
+      subMenu.style.display = "none";
+    },
+    []
+  );
+        return (
+          <Option
+          key={text}
+            onMouseEnter={showSubMenu}
+            onMouseLeave={hideSubMenu}
+          >
+            <div className="fortune-toolbar-menu-line" key={`div${text}`}>
+            {text}
+             <SVGIcon name="rightArrow" width={18} />
+              <div
+                className="condition-format-sub-menu"
+                style={{
+                  display: "none",
+                  width: 150,
+                }}
+              >
+                {[
+                  { text: "greaterThan", value: ">" },
+                  { text: "lessThan", value: "<" },
+                  { text: "between", value: "[]" },
+                  { text: "equal", value: "=" },
+                  { text: "textContains", value: "()" },
+                  { text: "duplicateValue", value: "##" },
+                ].map((v) => (
+                  <div
+                    className="condition-format-item"
+                    key={v.text}
+                    onClick={() => {
+                        setOpen(false);
+                      showDialog("sdfs","ok");
+                    }}
+                    tabIndex={0}
+                  >
+                  {v.text}
+                  </div>
+                ))}
+              </div>
+            </div>
+          </Option>
+        );
+
+}
+
+export default SubMenuOne;
diff --git a/src/FS/mine/submenu2.tsx b/src/FS/mine/submenu2.tsx
new file mode 100644
index 0000000..a5f1e20
--- /dev/null
+++ b/src/FS/mine/submenu2.tsx
@@ -0,0 +1,51 @@
+import { useDialog } from "../react/src/hooks/useDialog.tsx";
+import { useContext} from "react";
+import { getFlowdata } from "../core";
+import WorkbookContext from "../react/src/context";
+import handleAdd from "./realstats/handle1PropZ.tsx";
+import handle2PropZ from "./realstats/handle2PropZ.tsx";
+import SubMenu from "./submenu.tsx";
+
+const SubMenuSan: React.FC<{
+        setOpen: React.Dispatch<React.SetStateAction<boolean>>;
+}> = ({ 
+    setOpen, 
+}) => {
+  const { showDialog } = useDialog();
+  const { context, setContext,refs } = useContext(WorkbookContext);
+    const data = getFlowdata(context) as any[][];
+
+  function showDialogWithHistory(
+    isResult: boolean,
+    content: string | React.ReactNode,
+    type?: "ok" | "yesno",
+    onOk?: () => void,
+    onCancel?: () => void
+  ) {
+    if (isResult) {
+      setContext((draftCtx) => {
+        draftCtx.resHistory.push(content);
+      });
+    }
+    showDialog(content, type, onOk, onCancel);
+  }
+
+        const  subMenuItems :{ text: string; value: string }[] =          [
+                  { text: "1 prop Z ...", value: ">" },
+                  { text: "2 prop Z ...", value: "##" },
+                ];
+        const handleSubMenuClicks=(value:string)=>{
+            if (value===">"){
+      handleAdd(data, showDialogWithHistory);
+                // showDialog("da yu","ok");
+            } else if (value==="##"){
+      handle2PropZ(data, showDialogWithHistory);
+                // showDialog("jing jing hao","ok");
+            }
+        };
+
+                return (<SubMenu text="sub2menu Zprop" setOpen={setOpen} subMenuItems={subMenuItems} handleSubMenuClicks={handleSubMenuClicks} />);
+
+}
+
+export default SubMenuSan;
diff --git a/src/FS/mine/submenu3.tsx b/src/FS/mine/submenu3.tsx
new file mode 100644
index 0000000..fc81313
--- /dev/null
+++ b/src/FS/mine/submenu3.tsx
@@ -0,0 +1,38 @@
+import SubMenu from "./submenu.tsx";
+// import React, { useContext } from "react";
+import { useDialog } from "../react/src/hooks/useDialog.tsx";
+
+const SubMenuSan: React.FC<{
+        // text:string;
+        setOpen: React.Dispatch<React.SetStateAction<boolean>>;
+        // subMenuItems: [];
+        // handleSubMenuClicks: (value:string)=>void;
+}> = ({ 
+    // text,
+    setOpen, 
+    // subMenuItems, handleSubMenuClicks
+}) => {
+// function SubMenuSan({
+//     setOpen:(status:boolean)=>void,
+//         // setOpen: React.Dispatch<React.SetStateAction<boolean>>
+// }
+// ){
+  const { showDialog } = useDialog();
+
+        const  subMenuItems :{ text: string; value: string }[] =          [
+                  { text: "greaterThan", value: ">" },
+                  { text: "duplicateValue", value: "##" },
+                ];
+        const handleSubMenuClicks=(value:string)=>{
+            if (value===">"){
+                showDialog("da yu","ok");
+            } else if (value==="##"){
+                showDialog("jing jing hao","ok");
+            }
+        };
+
+                return (<SubMenu text="sub2menu222" setOpen={setOpen} subMenuItems={subMenuItems} handleSubMenuClicks={handleSubMenuClicks} />);
+
+}
+
+export default SubMenuSan;
diff --git a/tsconfig.tsbuildinfo b/tsconfig.tsbuildinfo
index e208dd5..bb0b06f 100644
--- a/tsconfig.tsbuildinfo
+++ b/tsconfig.tsbuildinfo
@@ -1 +1 @@
-{"root":["./src/app.tsx","./src/main.tsx","./src/vite-env.d.ts","./src/fs/core/src/canvas.ts","./src/fs/core/src/context.ts","./src/fs/core/src/index.ts","./src/fs/core/src/settings.ts","./src/fs/core/src/types.ts","./src/fs/core/src/api/cell.ts","./src/fs/core/src/api/common.ts","./src/fs/core/src/api/errors.ts","./src/fs/core/src/api/index.ts","./src/fs/core/src/api/merge.ts","./src/fs/core/src/api/range.ts","./src/fs/core/src/api/rowcol.ts","./src/fs/core/src/api/sheet.ts","./src/fs/core/src/api/workbook.ts","./src/fs/core/src/events/copy.ts","./src/fs/core/src/events/index.ts","./src/fs/core/src/events/keyboard.ts","./src/fs/core/src/events/mouse.ts","./src/fs/core/src/events/paste.ts","./src/fs/core/src/locale/en.ts","./src/fs/core/src/locale/es.ts","./src/fs/core/src/locale/hi.ts","./src/fs/core/src/locale/index.ts","./src/fs/core/src/locale/zh.ts","./src/fs/core/src/locale/zh_tw.ts","./src/fs/core/src/modules/conditionformat.ts","./src/fs/core/src/modules/border.ts","./src/fs/core/src/modules/cell.ts","./src/fs/core/src/modules/clipboard.ts","./src/fs/core/src/modules/color.ts","./src/fs/core/src/modules/comment.ts","./src/fs/core/src/modules/conditionalformat.ts","./src/fs/core/src/modules/cursor.ts","./src/fs/core/src/modules/dataverification.ts","./src/fs/core/src/modules/dropcell.ts","./src/fs/core/src/modules/filter.ts","./src/fs/core/src/modules/format.ts","./src/fs/core/src/modules/formula.ts","./src/fs/core/src/modules/formulahelper.ts","./src/fs/core/src/modules/freeze.ts","./src/fs/core/src/modules/hyperlink.ts","./src/fs/core/src/modules/image.ts","./src/fs/core/src/modules/index.ts","./src/fs/core/src/modules/inline-string.ts","./src/fs/core/src/modules/location.ts","./src/fs/core/src/modules/locationcondition.ts","./src/fs/core/src/modules/merge.ts","./src/fs/core/src/modules/mobile.ts","./src/fs/core/src/modules/movecells.ts","./src/fs/core/src/modules/protection.ts","./src/fs/core/src/modules/refresh.ts","./src/fs/core/src/modules/rowcol.ts","./src/fs/core/src/modules/screenshot.ts","./src/fs/core/src/modules/searchreplace.ts","./src/fs/core/src/modules/selection.ts","./src/fs/core/src/modules/sheet.ts","./src/fs/core/src/modules/sort.ts","./src/fs/core/src/modules/splitcolumn.ts","./src/fs/core/src/modules/text.ts","./src/fs/core/src/modules/toolbar.ts","./src/fs/core/src/modules/validation.ts","./src/fs/core/src/modules/zoom.ts","./src/fs/core/src/utils/index.ts","./src/fs/core/src/utils/patch.ts","./src/fs/mine/about.tsx","./src/fs/mine/downloadcsv.tsx","./src/fs/mine/downloadjson.tsx","./src/fs/mine/history.tsx","./src/fs/mine/loadfiles.tsx","./src/fs/mine/menu.tsx","./src/fs/mine/menuclick.tsx","./src/fs/mine/myguivar.tsx","./src/fs/mine/plotmenu.tsx","./src/fs/mine/plotlyplot.tsx","./src/fs/mine/tablegen2.tsx","./src/fs/mine/utilities.tsx","./src/fs/mine/example_handles/handlegenshin.tsx","./src/fs/mine/example_handles/handlemoon.tsx","./src/fs/mine/example_handles/handleneg.tsx","./src/fs/mine/example_handles/handleyeti.tsx","./src/fs/mine/example_handles/handlezzz.tsx","./src/fs/mine/inputs/checkbox.tsx","./src/fs/mine/inputs/drawdown.tsx","./src/fs/mine/inputs/numberinput.tsx","./src/fs/mine/inputs/textinput.tsx","./src/fs/mine/inputs/multiselect2.tsx","./src/fs/mine/realstats/handle1propz.tsx","./src/fs/mine/realstats/handle2propz.tsx","./src/fs/mine/realstats/handle2ttest.tsx","./src/fs/mine/realstats/handleonevarstats.tsx","./src/fs/mine/realstats/handlettest.tsx","./src/fs/mine/realstats/onepropz.tsx","./src/fs/mine/realstats/onevarstats.tsx","./src/fs/mine/realstats/ttest.tsx","./src/fs/mine/realstats/twopropz.tsx","./src/fs/mine/realstats/twottest.tsx","./src/fs/mine/realstats/plot/handleboxplot.tsx","./src/fs/react/src/index.ts","./src/fs/react/src/components/svgdefines.tsx","./src/fs/react/src/components/svgicon.tsx","./src/fs/react/src/components/index.ts","./src/fs/react/src/components/changecolor/index.tsx","./src/fs/react/src/components/conditionformat/conditionrules.tsx","./src/fs/react/src/components/conditionformat/index.tsx","./src/fs/react/src/components/contextmenu/divider.tsx","./src/fs/react/src/components/contextmenu/filtermenu.tsx","./src/fs/react/src/components/contextmenu/menu.tsx","./src/fs/react/src/components/contextmenu/sheettab.tsx","./src/fs/react/src/components/contextmenu/index.tsx","./src/fs/react/src/components/customsort/index.tsx","./src/fs/react/src/components/dataverification/dropdownlist.tsx","./src/fs/react/src/components/dataverification/rangedialog.tsx","./src/fs/react/src/components/dataverification/index.tsx","./src/fs/react/src/components/dialog/index.tsx","./src/fs/react/src/components/filteroption/index.tsx","./src/fs/react/src/components/formatsearch/index.tsx","./src/fs/react/src/components/formulasearch/index.tsx","./src/fs/react/src/components/fxeditor/namebox.tsx","./src/fs/react/src/components/fxeditor/index.tsx","./src/fs/react/src/components/imgboxs/index.tsx","./src/fs/react/src/components/linkeidtcard/index.tsx","./src/fs/react/src/components/locationcondition/index.tsx","./src/fs/react/src/components/messagebox/index.tsx","./src/fs/react/src/components/notationboxes/index.tsx","./src/fs/react/src/components/searchreplace/index.tsx","./src/fs/react/src/components/sheet/index.tsx","./src/fs/react/src/components/sheetlist/sheethiddenbutton.tsx","./src/fs/react/src/components/sheetlist/sheetlistitem.tsx","./src/fs/react/src/components/sheetlist/index.tsx","./src/fs/react/src/components/sheetoverlay/columnheader.tsx","./src/fs/react/src/components/sheetoverlay/contenteditable.tsx","./src/fs/react/src/components/sheetoverlay/inputbox.tsx","./src/fs/react/src/components/sheetoverlay/rowheader.tsx","./src/fs/react/src/components/sheetoverlay/index.tsx","./src/fs/react/src/components/sheetoverlay/formulahint/index.tsx","./src/fs/react/src/components/sheetoverlay/formulasearch/index.tsx","./src/fs/react/src/components/sheetoverlay/scrollbar/index.tsx","./src/fs/react/src/components/sheettab/sheetitem.tsx","./src/fs/react/src/components/sheettab/index.tsx","./src/fs/react/src/components/splitcolumn/index.tsx","./src/fs/react/src/components/toolbar/button.tsx","./src/fs/react/src/components/toolbar/colorpicker.tsx","./src/fs/react/src/components/toolbar/combo.tsx","./src/fs/react/src/components/toolbar/customborder.tsx","./src/fs/react/src/components/toolbar/custombutton.tsx","./src/fs/react/src/components/toolbar/customcolor.tsx","./src/fs/react/src/components/toolbar/customicon.tsx","./src/fs/react/src/components/toolbar/divider.tsx","./src/fs/react/src/components/toolbar/moreitemscontainer.tsx","./src/fs/react/src/components/toolbar/select.tsx","./src/fs/react/src/components/toolbar/index.tsx","./src/fs/react/src/components/workbook/api.ts","./src/fs/react/src/components/workbook/index.tsx","./src/fs/react/src/components/zoomcontrol/index.tsx","./src/fs/react/src/context/index.ts","./src/fs/react/src/context/modal.tsx","./src/fs/react/src/hooks/usealert.tsx","./src/fs/react/src/hooks/usedialog.tsx","./src/fs/react/src/hooks/useoutsideclick.ts","./src/fs/react/src/hooks/useprevious.tsx"],"version":"5.7.3"}
\ No newline at end of file
+{"root":["./src/App.tsx","./src/main.tsx","./src/vite-env.d.ts","./src/FS/core/src/canvas.ts","./src/FS/core/src/context.ts","./src/FS/core/src/index.ts","./src/FS/core/src/settings.ts","./src/FS/core/src/types.ts","./src/FS/core/src/api/cell.ts","./src/FS/core/src/api/common.ts","./src/FS/core/src/api/errors.ts","./src/FS/core/src/api/index.ts","./src/FS/core/src/api/merge.ts","./src/FS/core/src/api/range.ts","./src/FS/core/src/api/rowcol.ts","./src/FS/core/src/api/sheet.ts","./src/FS/core/src/api/workbook.ts","./src/FS/core/src/events/copy.ts","./src/FS/core/src/events/index.ts","./src/FS/core/src/events/keyboard.ts","./src/FS/core/src/events/mouse.ts","./src/FS/core/src/events/paste.ts","./src/FS/core/src/locale/en.ts","./src/FS/core/src/locale/es.ts","./src/FS/core/src/locale/hi.ts","./src/FS/core/src/locale/index.ts","./src/FS/core/src/locale/zh.ts","./src/FS/core/src/locale/zh_tw.ts","./src/FS/core/src/modules/ConditionFormat.ts","./src/FS/core/src/modules/border.ts","./src/FS/core/src/modules/cell.ts","./src/FS/core/src/modules/clipboard.ts","./src/FS/core/src/modules/color.ts","./src/FS/core/src/modules/comment.ts","./src/FS/core/src/modules/conditionalFormat.ts","./src/FS/core/src/modules/cursor.ts","./src/FS/core/src/modules/dataVerification.ts","./src/FS/core/src/modules/dropCell.ts","./src/FS/core/src/modules/filter.ts","./src/FS/core/src/modules/format.ts","./src/FS/core/src/modules/formula.ts","./src/FS/core/src/modules/formulaHelper.ts","./src/FS/core/src/modules/freeze.ts","./src/FS/core/src/modules/hyperlink.ts","./src/FS/core/src/modules/image.ts","./src/FS/core/src/modules/index.ts","./src/FS/core/src/modules/inline-string.ts","./src/FS/core/src/modules/location.ts","./src/FS/core/src/modules/locationCondition.ts","./src/FS/core/src/modules/merge.ts","./src/FS/core/src/modules/mobile.ts","./src/FS/core/src/modules/moveCells.ts","./src/FS/core/src/modules/protection.ts","./src/FS/core/src/modules/refresh.ts","./src/FS/core/src/modules/rowcol.ts","./src/FS/core/src/modules/screenshot.ts","./src/FS/core/src/modules/searchReplace.ts","./src/FS/core/src/modules/selection.ts","./src/FS/core/src/modules/sheet.ts","./src/FS/core/src/modules/sort.ts","./src/FS/core/src/modules/splitColumn.ts","./src/FS/core/src/modules/text.ts","./src/FS/core/src/modules/toolbar.ts","./src/FS/core/src/modules/validation.ts","./src/FS/core/src/modules/zoom.ts","./src/FS/core/src/utils/index.ts","./src/FS/core/src/utils/patch.ts","./src/FS/mine/about.tsx","./src/FS/mine/downloadCSV.tsx","./src/FS/mine/downloadJSON.tsx","./src/FS/mine/history.tsx","./src/FS/mine/loadFiles.tsx","./src/FS/mine/menu.tsx","./src/FS/mine/menuClick.tsx","./src/FS/mine/myGuiVar.tsx","./src/FS/mine/plotMenu.tsx","./src/FS/mine/plotlyPlot.tsx","./src/FS/mine/submenu.tsx","./src/FS/mine/submenu1.tsx","./src/FS/mine/submenu2.tsx","./src/FS/mine/submenu3.tsx","./src/FS/mine/tableGen2.tsx","./src/FS/mine/utilities.tsx","./src/FS/mine/example_handles/handleGenshin.tsx","./src/FS/mine/example_handles/handleMoon.tsx","./src/FS/mine/example_handles/handleNeg.tsx","./src/FS/mine/example_handles/handleYeti.tsx","./src/FS/mine/example_handles/handleZZZ.tsx","./src/FS/mine/inputs/CheckBox.tsx","./src/FS/mine/inputs/DrawDown.tsx","./src/FS/mine/inputs/NumberInput.tsx","./src/FS/mine/inputs/TextInput.tsx","./src/FS/mine/inputs/multiSelect2.tsx","./src/FS/mine/realstats/handle1PropZ.tsx","./src/FS/mine/realstats/handle2PropZ.tsx","./src/FS/mine/realstats/handle2TTest.tsx","./src/FS/mine/realstats/handleOneVarStats.tsx","./src/FS/mine/realstats/handleTTest.tsx","./src/FS/mine/realstats/onePropZ.tsx","./src/FS/mine/realstats/oneVarStats.tsx","./src/FS/mine/realstats/tTest.tsx","./src/FS/mine/realstats/twoPropZ.tsx","./src/FS/mine/realstats/twoTTest.tsx","./src/FS/mine/realstats/plot/handleBoxPlot.tsx","./src/FS/react/src/index.ts","./src/FS/react/src/components/SVGDefines.tsx","./src/FS/react/src/components/SVGIcon.tsx","./src/FS/react/src/components/index.ts","./src/FS/react/src/components/ChangeColor/index.tsx","./src/FS/react/src/components/ConditionFormat/ConditionRules.tsx","./src/FS/react/src/components/ConditionFormat/index.tsx","./src/FS/react/src/components/ContextMenu/Divider.tsx","./src/FS/react/src/components/ContextMenu/FilterMenu.tsx","./src/FS/react/src/components/ContextMenu/Menu.tsx","./src/FS/react/src/components/ContextMenu/SheetTab.tsx","./src/FS/react/src/components/ContextMenu/index.tsx","./src/FS/react/src/components/CustomSort/index.tsx","./src/FS/react/src/components/DataVerification/DropdownList.tsx","./src/FS/react/src/components/DataVerification/RangeDialog.tsx","./src/FS/react/src/components/DataVerification/index.tsx","./src/FS/react/src/components/Dialog/index.tsx","./src/FS/react/src/components/FilterOption/index.tsx","./src/FS/react/src/components/FormatSearch/index.tsx","./src/FS/react/src/components/FormulaSearch/index.tsx","./src/FS/react/src/components/FxEditor/NameBox.tsx","./src/FS/react/src/components/FxEditor/index.tsx","./src/FS/react/src/components/ImgBoxs/index.tsx","./src/FS/react/src/components/LinkEidtCard/index.tsx","./src/FS/react/src/components/LocationCondition/index.tsx","./src/FS/react/src/components/MessageBox/index.tsx","./src/FS/react/src/components/NotationBoxes/index.tsx","./src/FS/react/src/components/SearchReplace/index.tsx","./src/FS/react/src/components/Sheet/index.tsx","./src/FS/react/src/components/SheetList/SheetHiddenButton.tsx","./src/FS/react/src/components/SheetList/SheetListItem.tsx","./src/FS/react/src/components/SheetList/index.tsx","./src/FS/react/src/components/SheetOverlay/ColumnHeader.tsx","./src/FS/react/src/components/SheetOverlay/ContentEditable.tsx","./src/FS/react/src/components/SheetOverlay/InputBox.tsx","./src/FS/react/src/components/SheetOverlay/RowHeader.tsx","./src/FS/react/src/components/SheetOverlay/index.tsx","./src/FS/react/src/components/SheetOverlay/FormulaHint/index.tsx","./src/FS/react/src/components/SheetOverlay/FormulaSearch/index.tsx","./src/FS/react/src/components/SheetOverlay/ScrollBar/index.tsx","./src/FS/react/src/components/SheetTab/SheetItem.tsx","./src/FS/react/src/components/SheetTab/index.tsx","./src/FS/react/src/components/SplitColumn/index.tsx","./src/FS/react/src/components/Toolbar/Button.tsx","./src/FS/react/src/components/Toolbar/ColorPicker.tsx","./src/FS/react/src/components/Toolbar/Combo.tsx","./src/FS/react/src/components/Toolbar/CustomBorder.tsx","./src/FS/react/src/components/Toolbar/CustomButton.tsx","./src/FS/react/src/components/Toolbar/CustomColor.tsx","./src/FS/react/src/components/Toolbar/CustomIcon.tsx","./src/FS/react/src/components/Toolbar/Divider.tsx","./src/FS/react/src/components/Toolbar/MoreItemsContainer.tsx","./src/FS/react/src/components/Toolbar/Select.tsx","./src/FS/react/src/components/Toolbar/index.tsx","./src/FS/react/src/components/Workbook/api.ts","./src/FS/react/src/components/Workbook/index.tsx","./src/FS/react/src/components/ZoomControl/index.tsx","./src/FS/react/src/context/index.ts","./src/FS/react/src/context/modal.tsx","./src/FS/react/src/hooks/useAlert.tsx","./src/FS/react/src/hooks/useDialog.tsx","./src/FS/react/src/hooks/useOutsideClick.ts","./src/FS/react/src/hooks/usePrevious.tsx"],"version":"5.7.3"}
\ No newline at end of file
