@sheetxl/studio-vanilla 0.2.0 → 0.3.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.
- package/LICENSE.md +11 -11
- package/README.md +97 -97
- package/browser/cjs/{SlClv0PVM92ztDVX.cjs → 3QL6_jTFdiirmbvL.cjs} +1 -1
- package/browser/cjs/{EDXMGSUZ8UQwkC7X.cjs → 733JB7rykyRwGt4E.cjs} +1 -1
- package/browser/cjs/{lkPV98fiKomQSCgR.cjs → 7_gN0Iu07E3GI7B1.cjs} +1 -1
- package/browser/cjs/{Bc2L0UJqPhPBwffj.cjs → 8igELOAHTBTibdxC.cjs} +1 -1
- package/browser/cjs/{CZkpEBAASzQBi8Bh.cjs → 99Nzn-PICRpNSUxm.cjs} +1 -1
- package/browser/cjs/{CmE57C_yA3jFIZos.cjs → B4tuWKTrIZsK5so4.cjs} +3 -3
- package/browser/cjs/{aWHOn3DaVbuU-ftK.cjs → B5_w23_mUAW0fmJf.cjs} +2 -2
- package/browser/cjs/{C0XmerLLqwaaqZ2o.cjs → B6YGJGvRNGuQ9_gp.cjs} +1 -1
- package/browser/cjs/{CJ9-quYDqOBB3oUV.cjs → BBRsvQi2qwf1nduI.cjs} +1 -1
- package/browser/cjs/{D5yPr453o--2fxmV.cjs → BBXoDmENVubxlArs.cjs} +4 -4
- package/browser/cjs/{DHFmQHgKgcFMFahD.cjs → BFLfq3S9KpGbl7Sg.cjs} +8 -8
- package/browser/cjs/{DVrhH2z9cGZBKu17.cjs → BFjFhtH4OqOirVjz.cjs} +32 -32
- package/browser/cjs/{BhQQmCaRq2RYxUie.cjs → BXfPkTrM6foeVPwk.cjs} +3 -3
- package/browser/cjs/{OpNWiW6pYHuJVaKY.cjs → BdCoE_M8e0hB71qX.cjs} +1 -1
- package/browser/cjs/{Bn43jSsdzLy_636p.cjs → BeR1ChCVTFwB5yHv.cjs} +3 -3
- package/browser/cjs/{AP-t2KCT_0bR_o4t.cjs → BgcoRkkmbBckGLPB.cjs} +1 -1
- package/browser/cjs/{Dy__fkEF_Jzrlf1D.cjs → Bjus8Eiw4cFgUHkk.cjs} +1 -1
- package/browser/cjs/{Be-w6Cc2N61jNFQe.cjs → BlYWr2BKhS18L5sc.cjs} +3 -3
- package/browser/cjs/{l1xXc-zCzzVSj1HN.cjs → Bqucdx31CZbbWECx.cjs} +4 -4
- package/browser/cjs/{B_pNdVIK1HzlKFSF.cjs → Br9jR9D1r5-o3MNY.cjs} +2 -2
- package/browser/cjs/{Cor1JV8jzd6HA1O9.cjs → ByAzlBbjSnhZyx7J.cjs} +5 -5
- package/browser/cjs/{CGnlC13lMNbZh3sP.cjs → BzHjhROODDie_GcY.cjs} +1 -1
- package/browser/cjs/{DtcLPs_dQHEN3bGR.cjs → C0s5F1POfARzrKP5.cjs} +3 -3
- package/browser/cjs/{CNs9_6duMD0PXHwG.cjs → C5jc-Y-Hgl0f-Bdo.cjs} +1 -1
- package/browser/cjs/{Cv80JVA2XYzBCaWN.cjs → C7zut22tCoRegV_d.cjs} +2 -2
- package/browser/cjs/{C6x5hrvJ433bQqqH.cjs → CFIXzpjjBJD9Ssfu.cjs} +3 -3
- package/browser/cjs/{Mdv1yV9ud45PsKRt.cjs → CMsqJV9uPQCkxjr1.cjs} +2 -2
- package/browser/cjs/{CgkUiG5Wgg1HcTYa.cjs → CPy6BZgWgaukH2wr.cjs} +1 -1
- package/browser/cjs/{CvhmZqLTDmkFauCs.cjs → CU_BzP7b4cIkOp0W.cjs} +2 -2
- package/browser/cjs/{Bbyd4sAM90GSqJqn.cjs → Cd5lC1p9vwmY8bXk.cjs} +4 -4
- package/browser/cjs/{DlBZXaCX3LQRptut.cjs → Cpw1pytHjcWHlrs5.cjs} +1 -1
- package/browser/cjs/{DHCCNLh27I_BglIv.cjs → Cq6nKXJncTvIPDs0.cjs} +5 -5
- package/browser/cjs/{C_iTpFgxZv6g-7m3.cjs → Cw23_9oAnZq0oGKM.cjs} +3 -3
- package/browser/cjs/{D6FNtKftCwyAwxsN.cjs → D0RwDzLW2tAOaOgp.cjs} +4 -4
- package/browser/cjs/{CuhJX_xGez7yc6zi.cjs → D1F49z1BTQNLc001.cjs} +2 -2
- package/browser/cjs/{-WimOX-_by9saCOH.cjs → D3jW9_q5k1lOmEQd.cjs} +8 -8
- package/browser/cjs/{km4BoFU87-pNNG5J.cjs → D6JdKwLNWc3ioSMm.cjs} +2 -2
- package/browser/cjs/{3w2ISP4JjVNmzrqs.cjs → DAEWVQt08NYEEiDp.cjs} +1 -1
- package/browser/cjs/{BZm3G8SHFhqXJ5Jo.cjs → DE8l2rQfo2VVUkcB.cjs} +4 -4
- package/browser/cjs/{prKrG5YAJ4ExfXHY.cjs → DIh6OO396kZjKhj2.cjs} +7 -7
- package/browser/cjs/{CU9y9CiXOR7IFAGB.cjs → DOfe_n57c-AmDBXL.cjs} +1 -1
- package/browser/cjs/{Bk9rYrDDbmByf-Kk.cjs → DVih-qsORYLFDJ00.cjs} +2 -2
- package/browser/cjs/{Cm19hoZFOQ4T_DTY.cjs → DVziX7RxofEvjdaZ.cjs} +2 -2
- package/browser/cjs/{geVI0OFpbRur4kxL.cjs → DW3yV3bFjBYU9FNp.cjs} +6 -6
- package/browser/cjs/{BDK2YaQ_WdlP_HdF.cjs → DdAp7pgJ74tC2bXc.cjs} +1 -1
- package/browser/cjs/{vpaDUo2WrdrlUWox.cjs → Dg-_EjDMveR9eAsS.cjs} +4 -4
- package/browser/cjs/{20oq16RduoK6IuCZ.cjs → Dqytj5avvhy0OfcQ.cjs} +2 -2
- package/browser/cjs/{CKfjvO-C5oBByvM4.cjs → Du3dcmxNI2FligcT.cjs} +1 -1
- package/browser/cjs/{rhwBn9bJGM1fHTpT.cjs → Dy8SVjsVQet5vLuM.cjs} +1 -1
- package/browser/cjs/{CUVcl_8fwvLTl8ZO.cjs → UaNxxw6ywOxwUm2P.cjs} +1 -1
- package/browser/cjs/{HL5BOFnf4XtzdqsS.cjs → VjVwC7Tg9iSVxZ_e.cjs} +2 -2
- package/browser/cjs/{B9REtaIpAi8F35id.cjs → cXKpamD3YJ7T7UIy.cjs} +3 -3
- package/browser/cjs/{C0KkDFATEXukfl0j.cjs → heo8nWRKxUNJeEc8.cjs} +2 -2
- package/browser/cjs/index.cjs +2 -2
- package/browser/cjs/{B5cV1UMP1UkKFRbL.cjs → jspcRaFi7FlNoOCi.cjs} +2 -2
- package/browser/cjs/{0kdpEwmehekH9O3t.cjs → mQf_DGFtPLC3XOGK.cjs} +1 -1
- package/browser/cjs/{C_JmjXjXg6Ycl_t6.cjs → pXJLtwMuQqVtfxDh.cjs} +1 -1
- package/browser/cjs/{DCgPUnL0Q5bTnusO.cjs → s-6Dp8AeCjfET6lC.cjs} +1 -1
- package/browser/cjs/{Dg5Lf7y1Os-1BWfx.cjs → wHFkNUwHgS4n79oY.cjs} +5 -5
- package/browser/esm/{2IFG1EGZ4BstfzzO.mjs → B0bFoOwu-SXqZdUA.mjs} +3 -3
- package/browser/esm/{E1R5xcWEyFUGz77Z.mjs → B3SIwz6UDnshg1xz.mjs} +3 -3
- package/browser/esm/{Dx35iUB-nAeCONTU.mjs → BF4cNyvUhV9e9yfu.mjs} +3 -3
- package/browser/esm/{LeqWxgpETsBLfM9S.mjs → BGHKmUXsDDoutTYQ.mjs} +2 -2
- package/browser/esm/{CEVdjgbSOkqM6gks.mjs → BaOp0-PqOpggAmtp.mjs} +3 -3
- package/browser/esm/{Fz-AZts2Lk6VgGtn.mjs → BeFmG8d-eHZsiUqR.mjs} +3 -3
- package/{cdn/assets/B5KblpU6ojvwGzld.js → browser/esm/BieQsUFphd-4Dl2o.mjs} +4 -4
- package/browser/esm/{HacQNvE-qbx_RTGf.mjs → BjJVmzUi3VgBwYWL.mjs} +3 -3
- package/browser/esm/{DqXAqUrCxY0s8eeL.mjs → Bn5K2xW-LDe4UKiG.mjs} +3 -3
- package/browser/esm/{Bv1kyZi_CNzyU0wM.mjs → Bqjg7PBsD1qpWapS.mjs} +3 -3
- package/browser/esm/{B_hQhGpEdNfdeECK.mjs → BqvvewQdU3dKato4.mjs} +8 -8
- package/browser/esm/{Cax3Gy4JS-lKyNWa.mjs → C53n3eOUOu4IDUnv.mjs} +3 -3
- package/browser/esm/{Cn4WWNIcHjVkozcN.mjs → CB7PEr_-y0BQWtqs.mjs} +6 -6
- package/browser/esm/{Cc8UhQeIi2R9xhLi.mjs → CDdRITGs1_hk1Kax.mjs} +4 -4
- package/{cdn/assets/B0J3pDq63QrDj6C-.js → browser/esm/CGCghKS4Jl7fGewC.mjs} +3 -3
- package/browser/esm/{D46R0vc8EDXOBoB8.mjs → CKJke70LtH4vX8Yy.mjs} +3 -3
- package/{cdn/assets/BF1UCuG25TaPe6Ah.js → browser/esm/CPlfXwZn952WQ8tu.mjs} +3 -3
- package/browser/esm/{DnBoGLFyl-sTKtCF.mjs → CRSV-894QtiDUmtJ.mjs} +7 -7
- package/browser/esm/{O3I_0JA16jsotYlO.mjs → CUR7HVbE-MYKeGoV.mjs} +5 -5
- package/{cdn/assets/i_EWmXLQe018WFIv.js → browser/esm/CVXeIfSHxFnpUSYz.mjs} +3 -3
- package/browser/esm/{C8Fp63LtXp1k3LSF.mjs → CYszs6SwCHoEdnWR.mjs} +3 -3
- package/browser/esm/{DUcfLyiXz-VgaOB4.mjs → CYvdymNohZi87Vmf.mjs} +4 -4
- package/browser/esm/{CdvMkp-EeYeQltyS.mjs → CZfsDeVlXP4VI0uK.mjs} +5 -5
- package/{cdn/assets/BrCaMwnNcblmuzDh.js → browser/esm/CZj7MpGmmgaB8lkL.mjs} +4 -4
- package/browser/esm/{SOdH8hP_uNxWw-D3.mjs → Cbs-rx1iLGiLCCUn.mjs} +50 -50
- package/browser/esm/{B5opv-736KpN6Bi4.mjs → Cfp-IQYhF8wI3U8j.mjs} +3 -3
- package/{cdn/assets/Cndg80xEbFcHtUn8.js → browser/esm/CnShx-cVURfKpVVG.mjs} +3 -3
- package/{cdn/assets/nVijr2StbdDY2e13.js → browser/esm/Cow5a04f6LqFGoQZ.mjs} +3 -3
- package/browser/esm/{Cwv4yqC_zytSa0P_.mjs → CsKXDEU_EhKwgwa2.mjs} +3 -3
- package/browser/esm/{DjDxVGn7JWBs4o5m.mjs → CwpligBAfWbwjv90.mjs} +3 -3
- package/browser/esm/{B47M3lFfW1t_gJZB.mjs → CxaMQw-I5c8XLq_x.mjs} +3 -3
- package/browser/esm/{BcdbwecLVoeuhtZL.mjs → Cz7ockkCtKQwddun.mjs} +6 -6
- package/browser/esm/{Iijcha1XE-c7OLNH.mjs → D2GULUblN-TF8TA3.mjs} +3 -3
- package/{cdn/assets/fHJOSOgVU027xNw-.js → browser/esm/D8I1NKgZQBM1OlB_.mjs} +3 -3
- package/{cdn/assets/D9C7gLp0kAPSxLtC.js → browser/esm/DE5GJPPKB9akZnOl.mjs} +3 -3
- package/browser/esm/{DPMEubfbdRv-vumV.mjs → DMc9rEXgTnQiUhVu.mjs} +3 -3
- package/browser/esm/{C9rK8RP4620RgQRS.mjs → DXky7q8UrsTfgOl6.mjs} +4 -4
- package/browser/esm/{B4x_WFSNRisMp9PK.mjs → D_mjyyaB1h7KHEAu.mjs} +3 -3
- package/browser/esm/{DcalwsKAfxQkC6tj.mjs → Dakx8EXKki7IUQWD.mjs} +4 -4
- package/{cdn/assets/DHkuZlzTuYV7YCeQ.js → browser/esm/DbbapxCRGpFogl_Q.mjs} +3 -3
- package/browser/esm/{C2gQBMYenqlI4flQ.mjs → Dbr6KB-IYBe-9CSb.mjs} +2 -2
- package/{cdn/assets/BuITsWgwvy1VWF9E.js → browser/esm/DeZqllxB8Fy4CjwJ.mjs} +3 -3
- package/{cdn/assets/DLUJaAlJp56PRHun.js → browser/esm/DhVke7KHq6lbQPZg.mjs} +3 -3
- package/browser/esm/{BZLFUPFZsWWl5XLX.mjs → DmwBpm4ERYyxSyyJ.mjs} +4 -4
- package/browser/esm/{BAYPWLjfgtuLg9qb.mjs → DpDIV4Iz_niumLpB.mjs} +3 -3
- package/browser/esm/{CDaAJggrXrOWRzgK.mjs → DwdX0RUFwrRrBtRA.mjs} +3 -3
- package/browser/esm/{D5VtB2hD3rvXyASS.mjs → HiDBwKQDu71n9dYT.mjs} +5 -5
- package/{cdn/assets/BuLL5OjBqMXUfH_A.js → browser/esm/Jv_Qhh-WUFMrxoID.mjs} +3 -3
- package/{cdn/assets/DYYzLaxXk8APXqEA.js → browser/esm/OGU71t0PDjtl3-M4.mjs} +3 -3
- package/browser/esm/{CNBg-OXuJX_EAZbw.mjs → TTYba_o2v8b2WWvm.mjs} +8 -8
- package/browser/esm/{BnjAI3vOpDYyQnou.mjs → Xxw0Y9hXxIwKKGPq.mjs} +3 -3
- package/{cdn/assets/CGlDo4wLUay4UXgF.js → browser/esm/ako9wmFN1XdkwSc1.mjs} +3 -3
- package/browser/esm/{BZv9jzgaGtXaiw5W.mjs → dYh86bRPKzI8ASeR.mjs} +3 -3
- package/browser/esm/{DVkLRz76XK91mLT7.mjs → iC6qNNMVatdQ7tzG.mjs} +3 -3
- package/browser/esm/index.mjs +2 -2
- package/browser/esm/{LeCCKiCnwske3JLp.mjs → rBWM2hNaaS5ELSY5.mjs} +8 -8
- package/{cdn/assets/07UGdEPZU4KgWAFN.js → browser/esm/sXwOwWbIPvtOcCOv.mjs} +3 -3
- package/{cdn/assets/CW2IdN3hA6cq5VBE.js → browser/esm/tUcACmQVgT_vQZRd.mjs} +3 -3
- package/{cdn/assets/CaLVQxWxp8lj_uyA.js → browser/esm/vBbdzr5TIj8oCBOQ.mjs} +3 -3
- package/cdn/assets/{B65mMi6-TRcnqOOr.js → 0KJ23PTXKNiflMEW.js} +3 -3
- package/cdn/assets/{BQ01ovyBt4DHdfm2.js → 3Oauro-m0-iFcqzH.js} +4 -4
- package/cdn/assets/{2IFG1EGZ4BstfzzO.js → B0bFoOwu-SXqZdUA.js} +3 -3
- package/cdn/assets/{E1R5xcWEyFUGz77Z.js → B3SIwz6UDnshg1xz.js} +3 -3
- package/cdn/assets/{BNF7gs2KIOp7CydV.js → B7MrO9H4Wh3DRVKy.js} +6 -6
- package/cdn/assets/{LeqWxgpETsBLfM9S.js → BGHKmUXsDDoutTYQ.js} +2 -2
- package/cdn/assets/{kj_NK4e2v-YDlOeA.js → BRJtUnAFvJgElG8C.js} +6 -6
- package/cdn/assets/{HacQNvE-qbx_RTGf.js → BjJVmzUi3VgBwYWL.js} +3 -3
- package/cdn/assets/{DqXAqUrCxY0s8eeL.js → Bn5K2xW-LDe4UKiG.js} +3 -3
- package/cdn/assets/{Bv1kyZi_CNzyU0wM.js → Bqjg7PBsD1qpWapS.js} +3 -3
- package/cdn/assets/{DltmvgX7cDRP7eGG.js → BzLOGtjuaZ3Mji-F.js} +8 -8
- package/cdn/assets/{Cax3Gy4JS-lKyNWa.js → C53n3eOUOu4IDUnv.js} +3 -3
- package/cdn/assets/{BelDTrwOGyChPcGE.js → C9pcd-6v0BwN-Nrg.js} +3 -3
- package/cdn/assets/{CWUdMl8HI6xopPZx.js → CC2fNxNRteCEEFhk.js} +4 -4
- package/cdn/assets/{Cc8UhQeIi2R9xhLi.js → CDdRITGs1_hk1Kax.js} +4 -4
- package/{browser/esm/B0J3pDq63QrDj6C-.mjs → cdn/assets/CGCghKS4Jl7fGewC.js} +3 -3
- package/cdn/assets/{DS4jen3n-p1f1Suv.js → CGc5eC8iV73B-vAE.js} +2 -2
- package/cdn/assets/{D46R0vc8EDXOBoB8.js → CKJke70LtH4vX8Yy.js} +3 -3
- package/{browser/esm/BF1UCuG25TaPe6Ah.mjs → cdn/assets/CPlfXwZn952WQ8tu.js} +3 -3
- package/cdn/assets/{B36BO77fuN4io3cH.js → CVOFtLS3D3hpykUP.js} +7 -7
- package/{browser/esm/i_EWmXLQe018WFIv.mjs → cdn/assets/CVXeIfSHxFnpUSYz.js} +3 -3
- package/{browser/esm/BrCaMwnNcblmuzDh.mjs → cdn/assets/CZj7MpGmmgaB8lkL.js} +4 -4
- package/cdn/assets/{B5opv-736KpN6Bi4.js → Cfp-IQYhF8wI3U8j.js} +3 -3
- package/{browser/esm/Cndg80xEbFcHtUn8.mjs → cdn/assets/CnShx-cVURfKpVVG.js} +3 -3
- package/{browser/esm/nVijr2StbdDY2e13.mjs → cdn/assets/Cow5a04f6LqFGoQZ.js} +3 -3
- package/cdn/assets/{DjDxVGn7JWBs4o5m.js → CwpligBAfWbwjv90.js} +3 -3
- package/cdn/assets/{Iijcha1XE-c7OLNH.js → D2GULUblN-TF8TA3.js} +3 -3
- package/cdn/assets/{E16WP2btW98-NdQA.js → D6CGsM4vcM8GtGg4.js} +3 -3
- package/cdn/assets/{CO8BPWxmHt9M0o5A.js → D6iCivbxJB9YAHRy.js} +4 -4
- package/cdn/assets/{B075ZA9s8bN6Bjk6.js → D7dirdQd4_w5Kf3O.js} +49 -49
- package/{browser/esm/fHJOSOgVU027xNw-.mjs → cdn/assets/D8I1NKgZQBM1OlB_.js} +3 -3
- package/cdn/assets/{_hp7T1iQm-VdgOx1.js → DDVokEjcl6-19dbU.js} +8 -8
- package/{browser/esm/D9C7gLp0kAPSxLtC.mjs → cdn/assets/DE5GJPPKB9akZnOl.js} +3 -3
- package/cdn/assets/{DPMEubfbdRv-vumV.js → DMc9rEXgTnQiUhVu.js} +3 -3
- package/cdn/assets/{BeDSWCZutZSLr6ui.js → DQCWbcueShZFNwmV.js} +3 -3
- package/cdn/assets/{BM3mTnON_Go8uW2n.js → DRNhrLbNn_6nGCEJ.js} +3 -3
- package/{browser/esm/CgNof4mi0iyac5e1.mjs → cdn/assets/DSaJvKGEG6fH2UFL.js} +4 -4
- package/cdn/assets/{BqDe3JfClPnZlUpT.js → DTaAiRRU2uWbT8Fc.js} +3 -3
- package/cdn/assets/{VBhE9EpKVDvlRQWF.js → DYZMXz31j3qNRh0f.js} +5 -5
- package/cdn/assets/{B0HGE6CZeNWxdgkD.js → D_PCdhiJi26hHS-8.js} +3 -3
- package/cdn/assets/{B4x_WFSNRisMp9PK.js → D_mjyyaB1h7KHEAu.js} +3 -3
- package/{browser/esm/DHkuZlzTuYV7YCeQ.mjs → cdn/assets/DbbapxCRGpFogl_Q.js} +3 -3
- package/{browser/esm/BuITsWgwvy1VWF9E.mjs → cdn/assets/DeZqllxB8Fy4CjwJ.js} +3 -3
- package/{browser/esm/DLUJaAlJp56PRHun.mjs → cdn/assets/DhVke7KHq6lbQPZg.js} +3 -3
- package/cdn/assets/{CFrbspKb0qyxwr1H.js → DotQ8xRWqk7D6hez.js} +5 -5
- package/cdn/assets/{CUe-PbZ8mz4nrE7E.js → DwOLxNWTgpajuVoq.js} +8 -8
- package/{browser/esm/BuLL5OjBqMXUfH_A.mjs → cdn/assets/Jv_Qhh-WUFMrxoID.js} +3 -3
- package/{browser/esm/DYYzLaxXk8APXqEA.mjs → cdn/assets/OGU71t0PDjtl3-M4.js} +3 -3
- package/cdn/assets/{DHhtxVQ8oICzeBem.js → S1pQULnXsDtSBJpY.js} +4 -4
- package/cdn/assets/{BnjAI3vOpDYyQnou.js → Xxw0Y9hXxIwKKGPq.js} +3 -3
- package/{browser/esm/CGlDo4wLUay4UXgF.mjs → cdn/assets/ako9wmFN1XdkwSc1.js} +3 -3
- package/cdn/assets/{Cwrp37FK1lwFYR0h.js → gu3uSTwzxG-Hq3Tn.js} +3 -3
- package/cdn/assets/{DVkLRz76XK91mLT7.js → iC6qNNMVatdQ7tzG.js} +3 -3
- package/cdn/assets/{C71PMxylnWyxGS2R.js → pf0juu-OwjVx8NfT.js} +5 -5
- package/{browser/esm/07UGdEPZU4KgWAFN.mjs → cdn/assets/sXwOwWbIPvtOcCOv.js} +3 -3
- package/{browser/esm/CW2IdN3hA6cq5VBE.mjs → cdn/assets/tUcACmQVgT_vQZRd.js} +3 -3
- package/{browser/esm/CaLVQxWxp8lj_uyA.mjs → cdn/assets/vBbdzr5TIj8oCBOQ.js} +3 -3
- package/cdn/assets/{i5sh0F171K8r-qUc.js → vhG_0swcLosZTyyb.js} +3 -3
- package/cdn/index.js +2 -2
- package/cdn/loader.js +1 -1
- package/package.json +2 -2
package/LICENSE.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
# Repository Licensing
|
|
2
|
-
|
|
3
|
-
SheetXL contains a mix of open-source and commercially licensed packages. Each package is individually licensed and contains its own license file.
|
|
4
|
-
|
|
5
|
-
For the specific terms and conditions applicable to a package, please see the `LICENSE.md` file located in that package's root directory.
|
|
6
|
-
|
|
7
|
-
Generally, packages intended for public distribution (such as CLIs, adapters, and vanilla wrappers) are licensed under the MIT license. All other core packages are proprietary and require a commercial license for use.
|
|
8
|
-
|
|
9
|
-
For more details on commercial licensing, please visit our website:
|
|
10
|
-
|
|
11
|
-
https://www.sheetxl.com/licensing-pricing
|
|
1
|
+
# Repository Licensing
|
|
2
|
+
|
|
3
|
+
SheetXL contains a mix of open-source and commercially licensed packages. Each package is individually licensed and contains its own license file.
|
|
4
|
+
|
|
5
|
+
For the specific terms and conditions applicable to a package, please see the `LICENSE.md` file located in that package's root directory.
|
|
6
|
+
|
|
7
|
+
Generally, packages intended for public distribution (such as CLIs, adapters, and vanilla wrappers) are licensed under the MIT license. All other core packages are proprietary and require a commercial license for use.
|
|
8
|
+
|
|
9
|
+
For more details on commercial licensing, please visit our website:
|
|
10
|
+
|
|
11
|
+
https://www.sheetxl.com/licensing-pricing
|
package/README.md
CHANGED
|
@@ -1,97 +1,97 @@
|
|
|
1
|
-
# Studio Vanilla
|
|
2
|
-
|
|
3
|
-

|
|
4
|
-
|
|
5
|
-

|
|
6
|
-

|
|
7
|
-
|
|
8
|
-
> The simplest way to embed the full SheetXL spreadsheet UI into any web page.
|
|
9
|
-
|
|
10
|
-
This package bundles [`@sheetxl/sdk`](https://www.npmjs.com/package/@sheetxl/sdk) and
|
|
11
|
-
[`@sheetxl/studio-mui`](https://www.npmjs.com/package/@sheetxl/studio-mui) into a simple api for vanilla js.
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## 🚀 Live ESM Development Server
|
|
16
|
-
|
|
17
|
-
This package includes a **live development server** that acts like a CDN for rapid testing and development. This is perfect for:
|
|
18
|
-
|
|
19
|
-
- Testing the library during development without building
|
|
20
|
-
- Simulating CDN usage locally
|
|
21
|
-
- Hot module replacement for instant feedback
|
|
22
|
-
- Live ESM imports for modern development
|
|
23
|
-
|
|
24
|
-
### Quick Start (Development Server)
|
|
25
|
-
|
|
26
|
-
1. **Start the dev server:**
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
cd packages/studio-vanilla
|
|
30
|
-
pnpm dev
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
2. **Open the dev interface:**
|
|
34
|
-
|
|
35
|
-
Open [http://localhost:4000](http://localhost:4000) in your browser
|
|
36
|
-
|
|
37
|
-
3. **Use as CDN in your projects:**
|
|
38
|
-
|
|
39
|
-
```html
|
|
40
|
-
<script type="module">
|
|
41
|
-
import { SheetXL } from 'http://localhost:4000/src/index.ts';
|
|
42
|
-
|
|
43
|
-
// Your code here
|
|
44
|
-
await SheetXL.reactWorkbook('#my-container');
|
|
45
|
-
</script>
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
### Development Features
|
|
49
|
-
|
|
50
|
-
- ✅ **Hot Module Replacement**: Changes reflect instantly
|
|
51
|
-
- ✅ **Source Maps**: Full debugging support
|
|
52
|
-
- ✅ **ESM Imports**: Modern import syntax
|
|
53
|
-
- ✅ **Live Demo**: Interactive testing interface
|
|
54
|
-
- ✅ **CORS Headers**: Ready for cross-origin requests
|
|
55
|
-
- ✅ **TypeScript**: Direct `.ts` imports supported
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
## 1. Quickest Start (CDN)
|
|
60
|
-
|
|
61
|
-
For instant, no-build-step integration, add the following HTML snippet to your page. This is the primary use case for this package.
|
|
62
|
-
|
|
63
|
-
```html
|
|
64
|
-
<!DOCTYPE html>
|
|
65
|
-
<html>
|
|
66
|
-
<head>
|
|
67
|
-
<title>SheetXL Demo</title>
|
|
68
|
-
</head>
|
|
69
|
-
<body>
|
|
70
|
-
<div id="container" style="height: 600px; width: 100%;"></div>
|
|
71
|
-
<script type="module">
|
|
72
|
-
(await import("https://unpkg.com/@sheetxl/studio-vanilla")).SheetXL.attachWorkbook("#container");
|
|
73
|
-
</script>
|
|
74
|
-
</body>
|
|
75
|
-
</html>
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
## 2. Usage with a Bundler (via NPM)
|
|
79
|
-
|
|
80
|
-
You can also install this package via NPM if you prefer to include it in your application build.
|
|
81
|
-
|
|
82
|
-
```bash
|
|
83
|
-
# Using npm
|
|
84
|
-
npm install @sheetxl/studio-vanilla
|
|
85
|
-
|
|
86
|
-
# Using yarn
|
|
87
|
-
yarn add @sheetxl/studio-vanilla
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
After installation, you can import and use the SheetXL.attach method.
|
|
91
|
-
|
|
92
|
-
```javascript
|
|
93
|
-
import { SheetXL } from '@sheetxl/studio-vanilla';
|
|
94
|
-
|
|
95
|
-
// The attach method will render the spreadsheet into the specified DOM element.
|
|
96
|
-
SheetXL.attachWorkbook("#your-container-element-id");
|
|
97
|
-
```
|
|
1
|
+
# Studio Vanilla
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+
|
|
5
|
+

|
|
6
|
+

|
|
7
|
+
|
|
8
|
+
> The simplest way to embed the full SheetXL spreadsheet UI into any web page.
|
|
9
|
+
|
|
10
|
+
This package bundles [`@sheetxl/sdk`](https://www.npmjs.com/package/@sheetxl/sdk) and
|
|
11
|
+
[`@sheetxl/studio-mui`](https://www.npmjs.com/package/@sheetxl/studio-mui) into a simple api for vanilla js.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 🚀 Live ESM Development Server
|
|
16
|
+
|
|
17
|
+
This package includes a **live development server** that acts like a CDN for rapid testing and development. This is perfect for:
|
|
18
|
+
|
|
19
|
+
- Testing the library during development without building
|
|
20
|
+
- Simulating CDN usage locally
|
|
21
|
+
- Hot module replacement for instant feedback
|
|
22
|
+
- Live ESM imports for modern development
|
|
23
|
+
|
|
24
|
+
### Quick Start (Development Server)
|
|
25
|
+
|
|
26
|
+
1. **Start the dev server:**
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
cd packages/studio-vanilla
|
|
30
|
+
pnpm dev
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
2. **Open the dev interface:**
|
|
34
|
+
|
|
35
|
+
Open [http://localhost:4000](http://localhost:4000) in your browser
|
|
36
|
+
|
|
37
|
+
3. **Use as CDN in your projects:**
|
|
38
|
+
|
|
39
|
+
```html
|
|
40
|
+
<script type="module">
|
|
41
|
+
import { SheetXL } from 'http://localhost:4000/src/index.ts';
|
|
42
|
+
|
|
43
|
+
// Your code here
|
|
44
|
+
await SheetXL.reactWorkbook('#my-container');
|
|
45
|
+
</script>
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Development Features
|
|
49
|
+
|
|
50
|
+
- ✅ **Hot Module Replacement**: Changes reflect instantly
|
|
51
|
+
- ✅ **Source Maps**: Full debugging support
|
|
52
|
+
- ✅ **ESM Imports**: Modern import syntax
|
|
53
|
+
- ✅ **Live Demo**: Interactive testing interface
|
|
54
|
+
- ✅ **CORS Headers**: Ready for cross-origin requests
|
|
55
|
+
- ✅ **TypeScript**: Direct `.ts` imports supported
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 1. Quickest Start (CDN)
|
|
60
|
+
|
|
61
|
+
For instant, no-build-step integration, add the following HTML snippet to your page. This is the primary use case for this package.
|
|
62
|
+
|
|
63
|
+
```html
|
|
64
|
+
<!DOCTYPE html>
|
|
65
|
+
<html>
|
|
66
|
+
<head>
|
|
67
|
+
<title>SheetXL Demo</title>
|
|
68
|
+
</head>
|
|
69
|
+
<body>
|
|
70
|
+
<div id="container" style="height: 600px; width: 100%;"></div>
|
|
71
|
+
<script type="module">
|
|
72
|
+
(await import("https://unpkg.com/@sheetxl/studio-vanilla")).SheetXL.attachWorkbook("#container");
|
|
73
|
+
</script>
|
|
74
|
+
</body>
|
|
75
|
+
</html>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## 2. Usage with a Bundler (via NPM)
|
|
79
|
+
|
|
80
|
+
You can also install this package via NPM if you prefer to include it in your application build.
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# Using npm
|
|
84
|
+
npm install @sheetxl/studio-vanilla
|
|
85
|
+
|
|
86
|
+
# Using yarn
|
|
87
|
+
yarn add @sheetxl/studio-vanilla
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
After installation, you can import and use the SheetXL.attach method.
|
|
91
|
+
|
|
92
|
+
```javascript
|
|
93
|
+
import { SheetXL } from '@sheetxl/studio-vanilla';
|
|
94
|
+
|
|
95
|
+
// The attach method will render the spreadsheet into the specified DOM element.
|
|
96
|
+
SheetXL.attachWorkbook("#your-container-element-id");
|
|
97
|
+
```
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.
|
|
2
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.0
|
|
3
3
|
*
|
|
4
4
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
5
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.
|
|
2
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.0
|
|
3
3
|
*
|
|
4
4
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
5
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.
|
|
2
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.0
|
|
3
3
|
*
|
|
4
4
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
5
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.
|
|
2
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.0
|
|
3
3
|
*
|
|
4
4
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
5
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.
|
|
2
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.0
|
|
3
3
|
*
|
|
4
4
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
5
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.
|
|
2
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.0
|
|
3
3
|
*
|
|
4
4
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
5
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
6
|
*/Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});/**
|
|
7
|
-
* @license @sheetxl/studio-mui - Studio - Spreadsheet UI built with SheetXL SDK using React & MUI. - v0.
|
|
7
|
+
* @license @sheetxl/studio-mui - Studio - Spreadsheet UI built with SheetXL SDK using React & MUI. - v0.3.0
|
|
8
8
|
*
|
|
9
9
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
10
10
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
11
11
|
*//**
|
|
12
|
-
* @license @sheetxl/io - IO - Import/Export Libraries for SheetXL. - v0.
|
|
12
|
+
* @license @sheetxl/io - IO - Import/Export Libraries for SheetXL. - v0.3.0
|
|
13
13
|
*
|
|
14
14
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
15
15
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.
|
|
2
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.0
|
|
3
3
|
*
|
|
4
4
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
5
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
-
*/Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),l=require("react"),n=require("./
|
|
6
|
+
*/Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),l=require("react"),n=require("./BFjFhtH4OqOirVjz.cjs"),$=require("./D3jW9_q5k1lOmEQd.cjs"),Y=n.createSvgIcon(o.jsx("path",{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20z"}),"ArrowBack"),Z=n.createSvgIcon(o.jsx("path",{d:"m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8z"}),"ArrowDownward"),_=n.createSvgIcon(o.jsx("path",{d:"m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"}),"ArrowForward"),ee=n.createSvgIcon(o.jsx("path",{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"}),"ArrowUpward"),w=l.memo(O=>{const{label:g,value:p,options:r,onSelect:u,tabIndex:m=0,...T}=O,[b,h]=l.useState(()=>W(p,r));l.useEffect(()=>{h(W(p,r))},[p,r]);const v=n.Te(d=>{h(d.target.value),u?.(r[d.target.value])},[u,r]),a=l.useMemo(()=>Object.keys(r).map(d=>o.jsx(n.MenuItem,{value:d,children:d},d)),[r]);return o.jsxs(n.FormControl,{sx:{minWidth:135},size:"small",children:[o.jsx(n.InputLabel,{children:g}),o.jsx(n.Select,{inputProps:{tabIndex:m},value:b,label:g,onChange:v,sx:{backgroundImage:`linear-gradient(${n.alpha("#fff",n.eo(5))}, ${n.alpha("#fff",n.eo(5))})`},...T,children:a})]})}),L={Workbook:"workbook",Sheet:"sheet"},z={enter:140,exit:140},X={Formulas:n.An.Content.Formulas,Values:n.An.Content.Values,Notes:n.An.Content.Notes,Comments:n.An.Content.Comments},Q={...X};delete Q.Values;const ne={"By Rows":!0,"By Columns":!1},W=(O,g)=>{const p=Object.keys(g);for(let r=0;r<p.length;r++){const u=p[r];if(g[u]===O)return u}},N=l.memo(O=>{const{replace:g=!1,findText:p,replaceText:r,findOptions:u,replaceOptions:m,title:T,onHide:b,onFindOrReplace:h,...v}=O,a=l.useRef(null),d=l.useRef(null),E=l.useRef(null),H=l.useRef(null),I=l.useRef(null),A=l.useRef(null),F=(e,t)=>{t&&(t.start(e,{center:!1}),setTimeout(()=>t.stop(e),180))},[B,y]=l.useState(!1),[R,U]=l.useState(!1),[f,S]=l.useState(g),[D,k]=l.useState(!1),[K,P]=l.useState(!1),[s,c]=l.useState({findText:null,replaceText:null,replace:g,replaceOptions:{},findOptions:{matchCase:!1,matchEntireCell:!1,useRegex:!1,orientation:n.q.Orientation.Row,fields:[n.An.Content.Formulas]},scope:L.Sheet}),j=n.Te(async(e,t,i,C)=>{if(!h)return;const x={...s};x.replaceOptions={...x.replaceOptions},x.findOptions={...x.findOptions},x.replaceOptions.maxCount=i?void 0:1,x.replace=t,t&&s.findOptions.fields?.[0]===n.An.Content.Values&&(x.findOptions.fields=[n.An.Content.Formulas]),x.findOptions.reverse=!e;const J=await h({autoFocus:C,...x});k(J===0)},[s,h]);l.useEffect(()=>{k(!1)},[s,R,f]);const M=n.Te((e,t)=>{if(e.keyCode===n.wn.Enter){if(!s.findText)return;let i=!0,C=!1;e.shiftKey&&(i=!1),t?(e.ctrlKey&&e.altKey&&(C=!0),F(e,C?A.current:I.current)):F(e,i?H.current:E.current),j(i,t,C,!1)}},[s]),q=l.useRef(null);l.useLayoutEffect(()=>{c(e=>{const t={...e};t.findText=p&&p.length>0?p:e.findText??"",y(!0),r!==void 0&&(t.replaceText=r),u&&(t.findOptions={...t.findOptions,...u}),t.replaceText||(t.replaceText=""),t.replaceOptions&&(t.replaceOptions={...t.replaceOptions}),m&&(t.replaceOptions={...t.replaceOptions,...m}),s.findOptions.fields?.[0]||(s.findOptions.fields=[n.An.Content.Formulas]);const i=!(!m&&r===void 0);return i&&S(i),t}),K||q.current?.focus()},[p,r,u,m]),l.useEffect(()=>{f?(s.findOptions.fields[0],n.An.Content.Values):y(!0)},[f]),l.useEffect(()=>{if(B&&a.current&&s.findText===a.current.value)return a.current===document.activeElement||a.current.contains(document.activeElement)?(a.current?.select(),void y(!1)):void a.current.addEventListener("focus",()=>{a.current?.select(),y(!1)},{once:!0})},[B,s]);const[G,{width:V}]=n.eg();return o.jsx(n.LH,{title:T??(f?"Find & Replace":"Find"),initialPosition:{y:"35"},autoFocusSel:".input",refWindow:q,onHide:b,onFocus:()=>P(!0),onBlur:()=>{P(!1),k(!1)},PaperProps:{elevation:K?3:1},...v,children:o.jsxs(n.DialogContent,{dividers:!0,ref:G,sx:{display:"flex",flexDirection:"column",paddingLeft:e=>e.spacing(1.5),paddingRight:e=>e.spacing(1.5)},onKeyDown:e=>{if(e.key==="h"&&e.ctrlKey)S(!0),a.current?.contains(document.activeElement)&&d.current?.focus();else if(e.key==="f"&&e.ctrlKey)a.current?.focus();else if(e.key==="c"&&e.altKey)c(t=>{const i={...t};return i.findOptions.matchCase=!t.findOptions.matchCase,i});else if(e.key==="e"&&e.altKey)c(t=>{const i={...t};return i.findOptions.matchEntireCell=!t.findOptions.matchEntireCell,i});else{if(e.key!=="r"||!e.altKey)return;c(t=>{const i={...t};return i.findOptions.useRegex=!t.findOptions.useRegex,i})}e.preventDefault()},children:[o.jsxs(n.Box,{sx:{display:"flex",flexDirection:"row",gap:e=>e.spacing(1)},children:[o.jsxs(n.Box,{sx:{display:"flex",flexDirection:"row",alignItems:"start",gap:e=>e.spacing(.25),paddingTop:"3px"},children:[o.jsx(n.uH,{selected:R,onSelectToggle:e=>{U(e)},preventFocus:!0,label:"Toggle Additional Options",icon:n.Le(o.jsx(n.QK,{}))}),o.jsx(n.uH,{selected:f,onSelectToggle:e=>{S(e)},preventFocus:!0,label:"Toggle Replace",icon:n.Le(o.jsx(n.JK,{})),shortcut:{key:f?"F":"H",modifiers:[n.He.Ctrl]}})]}),o.jsxs(n.Box,{sx:{display:"flex",flexDirection:"column",maxWidth:"100%",boxSizing:"border-box"},children:[o.jsxs(n.Box,{sx:{display:"flex",flexDirection:"row",alignItems:"center"},children:[o.jsx(n.TextField,{label:"Find",InputLabelProps:{shrink:!0},InputProps:{sx:{paddingRight:e=>e.spacing(1),minWidth:V>460?"20em":void 0,backgroundImage:`linear-gradient(${n.alpha("#fff",n.eo(5))}, ${n.alpha("#fff",n.eo(5))})`},inputProps:{draggable:!1,ref:a,className:"input",autoFocus:!0,spellCheck:!1,autoComplete:"off",sx:{paddingTop:e=>e.spacing(1.25),paddingBottom:e=>e.spacing(.75)}},endAdornment:o.jsx(n.InputAdornment,{sx:{transform:"scale(0.75) translateX(16px)"},position:"end",children:o.jsxs(n.Box,{sx:{display:"flex",alignItems:"center",flexDirection:"row",gap:"1px"},children:[o.jsx(n.uH,{selected:s.findOptions.matchCase,onSelectToggle:e=>{c(t=>{const i={...t};return i.findOptions.matchCase=e,i})},label:"Match Case",shortcut:{key:"C",modifiers:[n.He.Alt]},icon:n.Le(o.jsx(n.eX,{}))}),o.jsx(n.uH,{selected:s.findOptions.matchEntireCell,onSelectToggle:e=>{c(t=>{const i={...t};return i.findOptions.matchEntireCell=e,i})},label:"Match Entire Cell",shortcut:{key:"E",modifiers:[n.He.Alt]},icon:n.Le(o.jsx(n.tX,{}))}),o.jsx(n.uH,{selected:s.findOptions.useRegex,onSelectToggle:e=>{c(t=>{const i={...t};return i.findOptions.useRegex=e,i})},label:"Use Regular Expression",shortcut:{key:"R",modifiers:[n.He.Alt]},icon:n.Le(o.jsx(n.oX,{}))})]})})},sx:{flex:"1 1 100%",marginRight:e=>e.spacing(1),"& .MuiOutlinedInput-notchedOutline":{borderColor:e=>D?`${e.palette.error.main} !important`:void 0},"& .MuiInputLabel-outlined":{color:e=>D?`${e.palette.error.main} !important`:void 0}},value:s.findText??"",onChange:e=>{c(t=>{const i={...t};return i.findText=e.target.value,i})},onKeyDown:e=>M(e,!1),onContextMenu:e=>{e.stopPropagation()}}),o.jsx(n.uH,{selected:s.findOptions.reverse,onSelectToggle:e=>{j(!1,!1)},touchRippleRef:E,label:"",shortcut:{key:"Enter",modifiers:[n.He.Shift]},icon:n.Le(s.findOptions.orientation!==n.q.Orientation.Column?o.jsx(Y,{}):o.jsx(ee,{})),disabled:!s.findText}),o.jsx(n.uH,{selected:!s.findOptions.reverse,onSelectToggle:e=>{j(!0,!1)},touchRippleRef:H,label:"Next Match",shortcut:{key:"Enter"},icon:n.Le(s.findOptions.orientation!==n.q.Orientation.Column?o.jsx(_,{}):o.jsx(Z,{})),disabled:!s.findText})]}),o.jsx($.Collapse,{in:f,timeout:z,onExit:()=>{a.current?.focus()},children:o.jsxs(n.Box,{sx:{display:"flex",flexDirection:"row",alignItems:"center",marginTop:e=>e.spacing(2)},children:[o.jsx(n.TextField,{label:"Replace",InputLabelProps:{shrink:!0},InputProps:{sx:{paddingRight:e=>e.spacing(1),backgroundImage:`linear-gradient(${n.alpha("#fff",n.eo(5))}, ${n.alpha("#fff",n.eo(5))})`},inputProps:{ref:d,className:"input",spellCheck:!1,autoComplete:"off",sx:{paddingTop:e=>e.spacing(1.25),paddingBottom:e=>e.spacing(.75)}}},sx:{flex:"1 1 100%",marginRight:e=>e.spacing(1)},value:s.replaceText??"",onChange:e=>{c(t=>{const i={...t};return i.replaceText=e.target.value,i})},onKeyDown:e=>M(e,!0),onContextMenu:e=>{e.stopPropagation()}}),o.jsx(n.uH,{onSelectToggle:e=>{j(!0,!0)},touchRippleRef:I,label:"Replace",shortcut:{key:"Enter"},icon:n.Le(o.jsx(n.hV,{})),disabled:!s.findText}),o.jsx(n.uH,{onSelectToggle:e=>{j(!0,!0,!0)},touchRippleRef:A,label:"Replace All",shortcut:{key:"Enter",modifiers:[n.He.Ctrl,n.He.Alt]},icon:n.Le(o.jsx(n.nX,{})),disabled:!s.findText})]})})]})]}),o.jsx($.Collapse,{in:R,timeout:z,onExit:()=>{a.current?.focus()},children:o.jsxs(n.Box,{sx:{minHeight:"10px",flex:"1 1 100%",display:"flex",flexDirection:"column",gap:e=>e.spacing(.5),marginTop:e=>e.spacing(1)},children:[o.jsx(n.Qt,{orientation:"horizontal",sx:{marginBottom:e=>e.spacing(1.5)}}),o.jsxs(n.Box,{sx:{display:"flex",flexDirection:V>=413?"row":"column",justifyContent:"space-evenly",alignItems:"center",rowGap:e=>e.spacing(2)},tabIndex:-1,children:[o.jsx(w,{label:"Within",value:s.scope,options:L,onSelect:e=>{c(t=>{const i={...t};return i.scope=e,i})}}),o.jsx(w,{label:"Search",value:s.findOptions.orientation!==n.q.Orientation.Column,options:ne,onSelect:e=>{c(t=>{const i={...t};return i.findOptions.orientation=e?n.q.Orientation.Row:n.q.Orientation.Column,i})}}),o.jsx(w,{label:"Look in",value:f&&s.findOptions.fields?.[0]===n.An.Content.Values?n.An.Content.Formulas:s.findOptions.fields?.[0],options:f?Q:X,onSelect:e=>{c(t=>{const i={...t};return i.findOptions.fields=[e],i})}})]})]})})]})})});exports.FindReplaceWindow=N,exports.ScopeOptions=L,exports.default=N;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.
|
|
2
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.0
|
|
3
3
|
*
|
|
4
4
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
5
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.
|
|
2
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.0
|
|
3
3
|
*
|
|
4
4
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
5
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.
|
|
2
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.0
|
|
3
3
|
*
|
|
4
4
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
5
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
-
*/Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./
|
|
7
|
-
* @license @sheetxl/studio-mui - Studio - Spreadsheet UI built with SheetXL SDK using React & MUI. - v0.
|
|
6
|
+
*/Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./BFjFhtH4OqOirVjz.cjs"),g=require("./Cq6nKXJncTvIPDs0.cjs");/**
|
|
7
|
+
* @license @sheetxl/studio-mui - Studio - Spreadsheet UI built with SheetXL SDK using React & MUI. - v0.3.0
|
|
8
8
|
*
|
|
9
9
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
10
10
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
11
11
|
*//**
|
|
12
|
-
* @license @sheetxl/io - IO - Import/Export Libraries for SheetXL. - v0.
|
|
12
|
+
* @license @sheetxl/io - IO - Import/Export Libraries for SheetXL. - v0.3.0
|
|
13
13
|
*
|
|
14
14
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
15
15
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
"use strict";/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.
|
|
2
|
+
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.0
|
|
3
3
|
*
|
|
4
4
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
5
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
-
*/Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const he=require("./
|
|
7
|
-
* @license @sheetxl/studio-mui - Studio - Spreadsheet UI built with SheetXL SDK using React & MUI. - v0.
|
|
6
|
+
*/Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const he=require("./DW3yV3bFjBYU9FNp.cjs");/**
|
|
7
|
+
* @license @sheetxl/studio-mui - Studio - Spreadsheet UI built with SheetXL SDK using React & MUI. - v0.3.0
|
|
8
8
|
*
|
|
9
9
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
10
10
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
11
11
|
*//**
|
|
12
|
-
* @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.
|
|
12
|
+
* @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.3.0
|
|
13
13
|
*
|
|
14
14
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
15
15
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
16
16
|
*//**
|
|
17
|
-
* @license @sheetxl/scripting - Scripting - Scripting engine for Macros and formulas; includes TypeScript and EsBuild. - v0.
|
|
17
|
+
* @license @sheetxl/scripting - Scripting - Scripting engine for Macros and formulas; includes TypeScript and EsBuild. - v0.3.0
|
|
18
18
|
*
|
|
19
19
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
20
20
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
21
21
|
*//**
|
|
22
|
-
* @license @sheetxl/primitives - Primitives - Base types for SheetXL functions. - v0.
|
|
22
|
+
* @license @sheetxl/primitives - Primitives - Base types for SheetXL functions. - v0.3.0
|
|
23
23
|
*
|
|
24
24
|
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
25
25
|
* License: The license can be found at https://www.sheetxl.com/license.
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
interface FirstTest {
|
|
28
28
|
isTrue?: boolean;
|
|
29
29
|
}
|
|
30
|
-
`,pe=new Map([["IReferenceRange","r"],["IRange","l"]]),me=new Map([["IWorkbook","workbook"],["ISheet","sheet"],["ICellRanges","ranges"],["ICellRange","range"],["IFormulaContext","context"]]),ne=(e,a)=>{Array.from(a.keys()).forEach(k=>{const x=a.get(k);a.set(`${e}.${k}`,x)})},xe=new Map([["Scalar","*"],["FormulaError.Known","e"],["Date","Date"],["JSON","JSON"]]),be=new Map([]),oe="SheetXL";ne(oe,pe),ne(oe,me),ne(oe,be);const Te=new Map([["Promise",()=>({async:!0})],["Observable",()=>({stream:!0})]]);let W=null;async function ke(){if(W)return W;try{return await(await Promise.resolve().then(()=>require("./
|
|
30
|
+
`,pe=new Map([["IReferenceRange","r"],["IRange","l"]]),me=new Map([["IWorkbook","workbook"],["ISheet","sheet"],["ICellRanges","ranges"],["ICellRange","range"],["IFormulaContext","context"]]),ne=(e,a)=>{Array.from(a.keys()).forEach(k=>{const x=a.get(k);a.set(`${e}.${k}`,x)})},xe=new Map([["Scalar","*"],["FormulaError.Known","e"],["Date","Date"],["JSON","JSON"]]),be=new Map([]),oe="SheetXL";ne(oe,pe),ne(oe,me),ne(oe,be);const Te=new Map([["Promise",()=>({async:!0})],["Observable",()=>({stream:!0})]]);let W=null;async function ke(){if(W)return W;try{return await(await Promise.resolve().then(()=>require("./Dg-_EjDMveR9eAsS.cjs"))).initialize()}catch(e){throw W=null,e}finally{W=null}}exports.compileModule=async function(e){const a=e?.source??null;if(!a)return null;const k=(e.disableBundle||e.declarationsOnly)??!1,x=[Ce(),ke()],j=await Promise.all(x),X=j[0],s=j[1];let K="",M=null;const U=[],Y={allowJs:!0,declaration:!1,sourceMap:!1,inlineSourceMap:!1,inlineSources:!1,isolatedModules:!0,preserveConstEnums:!1,module:99,noResolve:!0,emitDeclarationOnly:!1,target:s.ScriptTarget.ES2020},z="script",O=`${z}.ts`,G="lib.d.ts",_="global.d.ts",F={[O]:a,[G]:`
|
|
31
31
|
/**
|
|
32
32
|
* Represents the completion of an asynchronous operation
|
|
33
33
|
*/
|
|
@@ -41,7 +41,7 @@ interface Promise<T> {
|
|
|
41
41
|
finally(onfinally?: (() => void) | undefined | null): Promise<T>;
|
|
42
42
|
}
|
|
43
43
|
`,[_]:X},Q={getSourceFile:(t,d,E,l)=>s.createSourceFile(t,F[t],s.ScriptTarget.Latest,!0),fileExists:t=>F[t]!==void 0,readFile:t=>F[t],writeFile:(t,d)=>{F[t]=d},getCurrentDirectory:()=>"./",getCanonicalFileName:t=>t,useCaseSensitiveFileNames:()=>!0,getDefaultLibFileName:t=>G,getNewLine:()=>`
|
|
44
|
-
`},I=s.createProgram([O,_],Y,Q),P=I.getTypeChecker(),Z=I.getSourceFile(O),y=I.emit();y.diagnostics.length>0&&console.warn(y.diagnostics),K=F[`${z}.js`];const n=(t,d,E,l)=>{if(t){if(t.kind===s.SyntaxKind.NumberKeyword)d.scalar="n";else if(t.kind===s.SyntaxKind.StringKeyword)d.scalar="s";else if(t.kind===s.SyntaxKind.BooleanKeyword)d.scalar="b";else if(t.kind===s.SyntaxKind.UndefinedKeyword||t.kind===s.SyntaxKind.NullKeyword||t.kind===s.SyntaxKind.VoidKeyword){if(l)return void S(t,new Error(`'undefined' is not a valid type for input: '${t?.parent?.name?.escapedText}'.`));d.scalar="z"}else if(t.kind===s.SyntaxKind.BigIntKeyword)d.scalar="n";else if(t.kind===s.SyntaxKind.AnyKeyword)d.scalar="z";else if(t.kind===s.SyntaxKind.ArrayType){const c=t.elementType;if(!c)return void S(t,new Error(`'Array' must be typed: '${t?.parent?.name?.escapedText}'.`));d.arrayDepth=(d.arrayDepth??0)+1,n(c,d,E,l)}else if(t.kind!==s.SyntaxKind.TupleType&&t.kind===s.SyntaxKind.TypeReference){const c=t.typeName?.getText?.()??null,N=pe.get(c);let T=!1;N&&(d.range=N,T=!0);const L=xe.get(c);if(L&&(d.scalar=L),L!==void 0&&(T=!0),l){const g=me.get(c);if(g)return g}else{const g=Te.get(c);if(g){const m={...d,...g()};let o=0;if(m.async&&o++,m.stream&&o++,o>1)return void S(t,new Error(`'${c}' cannot have multiple modifiers: '${t?.parent?.name?.escapedText}'.`));d=m,T=!0}}if(!T)return void S("node",new Error(`'${c}' is not a valid type: '${t?.parent?.name?.escapedText}'.`));const b=t.typeArguments;if(b){if(b.length!==1)return void S(t,new Error(`'${c}' must be typed with exactly 1 type: '${t?.parent?.name?.escapedText}'.`));n(b[0],d,E,l)}}}else S(t,new Error(`Type is not defined for '${d?.name??"return"}'.`))},i=[],S=(t,d)=>{i.push(d)};if(s.forEachChild(Z,t=>{if(E=t,(s.getCombinedModifierFlags(E)&s.ModifierFlags.Export)!==0&&s.isFunctionDeclaration(t)){const l={},c={parameters:{}},N=t?.name?.getText();try{l.name=N;const T=P.getSymbolAtLocation(t.name).getDocumentationComment(P);if(T&&T.length>0&&T[0].text){let m=T[0].text;m=m.replace(/[\r\n]+/g,"\\n").trim(),c.summary=m}const L={};n(t.type,L,l,!1),l.returnType=L;const b={};d=t,(s.getCombinedModifierFlags(d)&s.ModifierFlags.Default)!==0&&(b.default=!0,M=N),Object.keys(b).length>0&&(l.behavior=b),l.parameters=[];const g=new Map;for(let m=0;m<t.parameters.length;m++){const o=t.parameters[m],h={};h.name=o.name?.getText();const $=n(o.type,h,l,!0);if($){if(l.parameters.length!==0){const B=t?.parent,C=B?.name?.getText();return void S(t,new Error(`'${l.name}' contexts must be the first parameter: '${C}'.`))}l.context=$;continue}let v;if((o.initializer!==void 0&&o.initializer!==null||o.questionToken!==void 0&&o.questionToken!==null)&&(h.optional=!0,o.initializer))try{v=o.initializer.kind===s.SyntaxKind.StringLiteral?o.initializer.text:o.initializer.kind===s.SyntaxKind.NumericLiteral?parseFloat(o.initializer.text):o.initializer.kind===s.SyntaxKind.TrueKeyword||o.initializer.kind===s.SyntaxKind.FalseKeyword?o.initializer.kind===s.SyntaxKind.TrueKeyword:o.initializer.kind===s.SyntaxKind.NullKeyword?null:o.initializer.kind===s.SyntaxKind.ObjectLiteralExpression||o.initializer.kind===s.SyntaxKind.ArrayLiteralExpression?o.initializer.getText():o.initializer.getText?.()}catch(B){console.warn(`Couldn't extract default value for parameter '${h.name}'`,B)}o.dotDotDotToken&&(h.rest=!0),l.parameters.push(h);const w={description:""};c.parameters[h.name]=w;const u=P.getSymbolAtLocation(o.name).getDocumentationComment(P);u&&u.length>0&&u[0].text&&(w.description=u[0].text),v!==void 0&&(w.defaultValue=v),g.set(h.name,h)}if(t.jsDoc&&t.jsDoc.length>0){const m=t.jsDoc;for(let o=0;o<m.length;o++){const h=m[o]?.tags;if(h)for(let $=0;$<h.length;$++){const v=h[$];let w=v?.tagName?.text;if(!w)continue;w=w.toLowerCase();let u=v.comment;const B=w==="hidden";if((typeof u=="string"||B)&&(typeof u=="string"&&(u=u.replace(/[\r\n]+/g,"\\n").trim()),B||!u||(u=u.split(/\\n/)[0],u&&u.length!==0))){if(u&&typeof u=="string"){const C=/\{@link(code|plain)?\s+([^}|]+)(?:\s*\|\s*([^}]+))?\}/g;let D,R=u,V=[];for(;(D=C.exec(u))!==null;){const[ee,te,ye,ae]=D,fe=[ye.trim()];ae&&fe.push(ae.trim())}u=R,V.length>0&&w==="see"&&(c.links||(c.links=[]),c.links.push(...V))}if(w==="name"){const C=u;C!==N&&(c.name=C)}else if(w!=="description"){if(w==="summary"){const C=u;C&&(c.summary=C)}else if(w==="param"){const C=v.name?.text,D=g.get(C);if(!D){i.push(new Error(`Parameter '${C}' not found in function '${N}'.`));continue}if(v.typeExpression&&v.typeExpression.type)try{const R=v.typeExpression.type;if(R.kind===s.SyntaxKind.UnionType){const V=[];D.enums=V,R.types.forEach(ee=>{if(ee.kind===s.SyntaxKind.LiteralType){const te=ee.literal.text;te&&V.push(te)}})}}catch(R){console.warn("Error parsing JSDoc type expression:",R)}}else if(w==="returns"||w==="return")l.returnType.description=u;else if(w==="category")c.category=u;else if(w==="hidden"){let C=!0;const D=u?.toLowerCase();D==="false"?C=!1:D!=="true"&&(C=u),C!==!1&&(c.hidden=C??!0)}}}}}}Object.keys(l.returnType).length===0&&delete l.returnType,U.push([l,c])}catch(T){S(t,new Error(`'${N}': ${T.message}`))}}var d,E}),i.length>0)throw console.warn(i),new Error("There were compilation errors.",{cause:i});if(U.length===0)throw new Error("No exported functions.");const q=`${he.$.uuidV4()}-script`;try{k||i.length!==0||(K=await async function(t,d,E="/script.js",l="__SHEETXL"){try{const c=await async function(){if(A)return A;if(H){if(await H,!A)throw new Error("ESBuild initialization promise resolved, but instance is not available.");return A}let g,m;H=new Promise((o,h)=>{g=o,m=h});try{const{initialize:o}=await Promise.resolve().then(()=>require("./
|
|
44
|
+
`},I=s.createProgram([O,_],Y,Q),P=I.getTypeChecker(),Z=I.getSourceFile(O),y=I.emit();y.diagnostics.length>0&&console.warn(y.diagnostics),K=F[`${z}.js`];const n=(t,d,E,l)=>{if(t){if(t.kind===s.SyntaxKind.NumberKeyword)d.scalar="n";else if(t.kind===s.SyntaxKind.StringKeyword)d.scalar="s";else if(t.kind===s.SyntaxKind.BooleanKeyword)d.scalar="b";else if(t.kind===s.SyntaxKind.UndefinedKeyword||t.kind===s.SyntaxKind.NullKeyword||t.kind===s.SyntaxKind.VoidKeyword){if(l)return void S(t,new Error(`'undefined' is not a valid type for input: '${t?.parent?.name?.escapedText}'.`));d.scalar="z"}else if(t.kind===s.SyntaxKind.BigIntKeyword)d.scalar="n";else if(t.kind===s.SyntaxKind.AnyKeyword)d.scalar="z";else if(t.kind===s.SyntaxKind.ArrayType){const c=t.elementType;if(!c)return void S(t,new Error(`'Array' must be typed: '${t?.parent?.name?.escapedText}'.`));d.arrayDepth=(d.arrayDepth??0)+1,n(c,d,E,l)}else if(t.kind!==s.SyntaxKind.TupleType&&t.kind===s.SyntaxKind.TypeReference){const c=t.typeName?.getText?.()??null,N=pe.get(c);let T=!1;N&&(d.range=N,T=!0);const L=xe.get(c);if(L&&(d.scalar=L),L!==void 0&&(T=!0),l){const g=me.get(c);if(g)return g}else{const g=Te.get(c);if(g){const m={...d,...g()};let o=0;if(m.async&&o++,m.stream&&o++,o>1)return void S(t,new Error(`'${c}' cannot have multiple modifiers: '${t?.parent?.name?.escapedText}'.`));d=m,T=!0}}if(!T)return void S("node",new Error(`'${c}' is not a valid type: '${t?.parent?.name?.escapedText}'.`));const b=t.typeArguments;if(b){if(b.length!==1)return void S(t,new Error(`'${c}' must be typed with exactly 1 type: '${t?.parent?.name?.escapedText}'.`));n(b[0],d,E,l)}}}else S(t,new Error(`Type is not defined for '${d?.name??"return"}'.`))},i=[],S=(t,d)=>{i.push(d)};if(s.forEachChild(Z,t=>{if(E=t,(s.getCombinedModifierFlags(E)&s.ModifierFlags.Export)!==0&&s.isFunctionDeclaration(t)){const l={},c={parameters:{}},N=t?.name?.getText();try{l.name=N;const T=P.getSymbolAtLocation(t.name).getDocumentationComment(P);if(T&&T.length>0&&T[0].text){let m=T[0].text;m=m.replace(/[\r\n]+/g,"\\n").trim(),c.summary=m}const L={};n(t.type,L,l,!1),l.returnType=L;const b={};d=t,(s.getCombinedModifierFlags(d)&s.ModifierFlags.Default)!==0&&(b.default=!0,M=N),Object.keys(b).length>0&&(l.behavior=b),l.parameters=[];const g=new Map;for(let m=0;m<t.parameters.length;m++){const o=t.parameters[m],h={};h.name=o.name?.getText();const $=n(o.type,h,l,!0);if($){if(l.parameters.length!==0){const B=t?.parent,C=B?.name?.getText();return void S(t,new Error(`'${l.name}' contexts must be the first parameter: '${C}'.`))}l.context=$;continue}let v;if((o.initializer!==void 0&&o.initializer!==null||o.questionToken!==void 0&&o.questionToken!==null)&&(h.optional=!0,o.initializer))try{v=o.initializer.kind===s.SyntaxKind.StringLiteral?o.initializer.text:o.initializer.kind===s.SyntaxKind.NumericLiteral?parseFloat(o.initializer.text):o.initializer.kind===s.SyntaxKind.TrueKeyword||o.initializer.kind===s.SyntaxKind.FalseKeyword?o.initializer.kind===s.SyntaxKind.TrueKeyword:o.initializer.kind===s.SyntaxKind.NullKeyword?null:o.initializer.kind===s.SyntaxKind.ObjectLiteralExpression||o.initializer.kind===s.SyntaxKind.ArrayLiteralExpression?o.initializer.getText():o.initializer.getText?.()}catch(B){console.warn(`Couldn't extract default value for parameter '${h.name}'`,B)}o.dotDotDotToken&&(h.rest=!0),l.parameters.push(h);const w={description:""};c.parameters[h.name]=w;const u=P.getSymbolAtLocation(o.name).getDocumentationComment(P);u&&u.length>0&&u[0].text&&(w.description=u[0].text),v!==void 0&&(w.defaultValue=v),g.set(h.name,h)}if(t.jsDoc&&t.jsDoc.length>0){const m=t.jsDoc;for(let o=0;o<m.length;o++){const h=m[o]?.tags;if(h)for(let $=0;$<h.length;$++){const v=h[$];let w=v?.tagName?.text;if(!w)continue;w=w.toLowerCase();let u=v.comment;const B=w==="hidden";if((typeof u=="string"||B)&&(typeof u=="string"&&(u=u.replace(/[\r\n]+/g,"\\n").trim()),B||!u||(u=u.split(/\\n/)[0],u&&u.length!==0))){if(u&&typeof u=="string"){const C=/\{@link(code|plain)?\s+([^}|]+)(?:\s*\|\s*([^}]+))?\}/g;let D,R=u,V=[];for(;(D=C.exec(u))!==null;){const[ee,te,ye,ae]=D,fe=[ye.trim()];ae&&fe.push(ae.trim())}u=R,V.length>0&&w==="see"&&(c.links||(c.links=[]),c.links.push(...V))}if(w==="name"){const C=u;C!==N&&(c.name=C)}else if(w!=="description"){if(w==="summary"){const C=u;C&&(c.summary=C)}else if(w==="param"){const C=v.name?.text,D=g.get(C);if(!D){i.push(new Error(`Parameter '${C}' not found in function '${N}'.`));continue}if(v.typeExpression&&v.typeExpression.type)try{const R=v.typeExpression.type;if(R.kind===s.SyntaxKind.UnionType){const V=[];D.enums=V,R.types.forEach(ee=>{if(ee.kind===s.SyntaxKind.LiteralType){const te=ee.literal.text;te&&V.push(te)}})}}catch(R){console.warn("Error parsing JSDoc type expression:",R)}}else if(w==="returns"||w==="return")l.returnType.description=u;else if(w==="category")c.category=u;else if(w==="hidden"){let C=!0;const D=u?.toLowerCase();D==="false"?C=!1:D!=="true"&&(C=u),C!==!1&&(c.hidden=C??!0)}}}}}}Object.keys(l.returnType).length===0&&delete l.returnType,U.push([l,c])}catch(T){S(t,new Error(`'${N}': ${T.message}`))}}var d,E}),i.length>0)throw console.warn(i),new Error("There were compilation errors.",{cause:i});if(U.length===0)throw new Error("No exported functions.");const q=`${he.$.uuidV4()}-script`;try{k||i.length!==0||(K=await async function(t,d,E="/script.js",l="__SHEETXL"){try{const c=await async function(){if(A)return A;if(H){if(await H,!A)throw new Error("ESBuild initialization promise resolved, but instance is not available.");return A}let g,m;H=new Promise((o,h)=>{g=o,m=h});try{const{initialize:o}=await Promise.resolve().then(()=>require("./D0RwDzLW2tAOaOgp.cjs"));return A=await o(),g(),A}catch(o){throw console.error("Failed to import or initialize esbuild:",o),H=null,m(o),o}}(),N="@sheetxl/primitives",T=`
|
|
45
45
|
export const FormulaContext = globalThis.${l}?.FormulaContext;
|
|
46
46
|
export const ScalarType = globalThis.${l}?.ScalarType;
|
|
47
47
|
export const Observable = globalThis.${l}?.Observable;
|