@sheetxl/studio-vanilla 0.3.3 → 0.3.5
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/browser/cjs/{C-YXuaIn5H1e3gGL.cjs → -aNm3r-RpjcRRCbw.cjs} +2 -2
- package/browser/cjs/6e91IXsvk9_k3W5c.cjs +6 -0
- package/browser/cjs/{TJOJ_VEsTmCJ4d0P.cjs → BLHbDre9R0bvyb9G.cjs} +2 -2
- package/browser/cjs/BN0MiwKQ8NjKXgue.cjs +7 -0
- package/browser/cjs/BNtn_2pcq6Dd-2HL.cjs +11 -0
- package/browser/cjs/{-mcHZst9U0zNDZao.cjs → BW_fZwvTtMLqteuJ.cjs} +1 -1
- package/browser/cjs/{Dh5RBi3PW-5ty2QU.cjs → Bg9KIoDuqtkhIYfN.cjs} +1 -1
- package/browser/cjs/{D4a_UoEEluqny9gi.cjs → BiiW2FlRZHxGIWso.cjs} +1 -1
- package/browser/cjs/{pPJG7KbyLkcVi77H.cjs → Biyqj-Wu75uxLHv1.cjs} +2 -2
- package/browser/cjs/BwocMiKAPb8s__1Z.cjs +6 -0
- package/browser/cjs/{CSZ-Bfo-TZpVumqr.cjs → CdWBtYv7LuuDLPL2.cjs} +1 -1
- package/browser/cjs/CuY7mAREmYhHuYWx.cjs +6 -0
- package/browser/cjs/CvESC6HiL0-peppq.cjs +12 -0
- package/browser/cjs/{VXCGmehGJvuKNhXg.cjs → Cxt39d6l0pu9k1vT.cjs} +8 -8
- package/browser/cjs/{DbSTC90BuNxq2k-j.cjs → D7NgrO__M-IUmM8o.cjs} +1 -1
- package/browser/cjs/{DnkioRlJqXrbcW-8.cjs → DCWZ2ZkLp-Horeca.cjs} +1 -1
- package/browser/cjs/DDhq2nYMdw5b7wP6.cjs +301 -0
- package/browser/cjs/{Bhq8u8Q04XpLmF4K.cjs → DIawrhwQ7E_1l99b.cjs} +6 -6
- package/browser/cjs/{BoBKeal3_qovATWu.cjs → DKit140jXAUUSf-_.cjs} +2 -2
- package/browser/cjs/DKsZXMMHWKP9IZ4E.cjs +12 -0
- package/browser/cjs/DeAt9vyyaeB2vbxQ.cjs +6 -0
- package/browser/cjs/Dkl2t2DSaDxPbm2V.cjs +6 -0
- package/browser/cjs/Ya4f5p9go_UndgNy.cjs +6 -0
- package/browser/cjs/{BnYTCcol8RjTTC3U.cjs → hSI9QVPgIxqt3pXc.cjs} +1 -1
- package/browser/cjs/index.cjs +2 -2
- package/browser/cjs/qjPE6k7aYlu-R90s.cjs +6 -0
- package/browser/cjs/{WKvz7zs0yI8-TRzJ.cjs → yvA5FY7oe6FILMqB.cjs} +1 -1
- package/{cdn/assets/DAC77jdtNbZopLX5.js → browser/esm/BLsIMzjofsOnRFrU.mjs} +16 -16
- package/{cdn/assets/DQQK1YdQWQGsESk_.js → browser/esm/BTQ-TGJnw7w1Y0CX.mjs} +14 -14
- package/browser/esm/{BNixyL5UPlHciWwi.mjs → BdLAPrmXIfjGFhhA.mjs} +152 -152
- package/browser/esm/BsDYj6xix3mlXry2.mjs +46 -0
- package/browser/esm/Btk74VwCVJ1T5LQD.mjs +46 -0
- package/browser/esm/{DhFd9KX61TdmTNyk.mjs → C60KakDbde-A4anI.mjs} +1 -1
- package/browser/esm/{1Esqj-uAqAeHBGzU.mjs → CAm14rTtmPL5-rvQ.mjs} +193 -192
- package/browser/esm/{CZ9K3g_56s3hfJO0.mjs → CLTP12OHGQ2k4_Kt.mjs} +21 -20
- package/browser/esm/{BXkh5kfYj7Zx_PAe.mjs → CPWh2H15145LP-d5.mjs} +1 -1
- package/browser/esm/CYXzmWJtZn5OJVBF.mjs +24861 -0
- package/{cdn/assets/BQFdL0Ou_nLqI7lR.js → browser/esm/ChMaIhqaEhF3SLLt.mjs} +6 -6
- package/browser/esm/{nT3k8GnD4H3I293i.mjs → CntwHkPpskE88Ixu.mjs} +11 -10
- package/{cdn/assets/C1opHAkl00_vHPMO.js → browser/esm/CsVV_QnEl77BQM3V.mjs} +1 -1
- package/{cdn/assets/iHc25sW_jPEvAQNG.js → browser/esm/CvFAAktSd9TQK1h4.mjs} +1 -1
- package/browser/esm/{DwLRqrlPfv8xcbxB.mjs → D0-tgawYa4KXYT2c.mjs} +2 -2
- package/browser/esm/{B3iFtnvwZZ0izvkj.mjs → D244UwY3qPC_LNc5.mjs} +2 -2
- package/{cdn/assets/B1bRlKApOQZbRHvx.js → browser/esm/DCuLWmzd9eLWgI03.mjs} +1 -1
- package/{cdn/assets/Dwd9xRP6sCbvd7-2.js → browser/esm/DDD5zfwNNPKuc_zZ.mjs} +1 -1
- package/browser/esm/{BZD8sqVzxMPTV1eH.mjs → DFa_tXqv1VN1OZdv.mjs} +75 -74
- package/{cdn/assets/Cqq1J11IdNmbXlgF.js → browser/esm/DJxioSY-hxyM7dmk.mjs} +24 -23
- package/{cdn/assets/Dkcj5uYhkoaa5JJt.js → browser/esm/DdrICyX8Ead15N32.mjs} +7 -7
- package/{cdn/assets/vw_ELbpa8MGzVBfc.js → browser/esm/Di2tNceI3NodSsgU.mjs} +10 -10
- package/browser/esm/{B7RdrgkvZilWOBgD.mjs → Did46-x6ZVwk_-r-.mjs} +1 -1
- package/browser/esm/Q1yWEkJBu4cVEF33.mjs +1467 -0
- package/browser/esm/index.mjs +2 -2
- package/{cdn/assets/CtW_m0lUeW_X_FHB.js → browser/esm/mq5uPzTIc1x8unBP.mjs} +1 -1
- package/browser/esm/wziCLl5xvHu6Guu_.mjs +22 -0
- package/cdn/assets/B41q92oKD_VR31Dd.js +46 -0
- package/cdn/assets/{DJ3siDIdJVpw0GCs.js → BOl7blN8JotSzCHJ.js} +2 -2
- package/{browser/esm/CaLAEGMKeQ3INVEV.mjs → cdn/assets/Bs-psXrTRw1jFety.js} +14 -14
- package/cdn/assets/{3ijH6Pl-l2q9T5Ky.js → BzptX9H_YCM2l0DE.js} +11 -10
- package/cdn/assets/{DhFd9KX61TdmTNyk.js → C60KakDbde-A4anI.js} +1 -1
- package/{browser/esm/Bz98C5-blFN81GJ-.mjs → cdn/assets/C8omEbSXHWI_wNjp.js} +10 -10
- package/{browser/esm/C7cRxJLNfGjCT_Hk.mjs → cdn/assets/CEXK9SXjFf1dGHZe.js} +16 -16
- package/cdn/assets/{BXkh5kfYj7Zx_PAe.js → CPWh2H15145LP-d5.js} +1 -1
- package/cdn/assets/C_E1C68wCcRpC6XN.js +46 -0
- package/cdn/assets/{D5Ns-uBNTj4-Jo0p.js → ClFGbVy7cnhMW-dO.js} +2 -2
- package/cdn/assets/{C4Vp4GoCEGQgWaGc.js → CoCIP7n4THmzOggq.js} +75 -74
- package/{browser/esm/C1opHAkl00_vHPMO.mjs → cdn/assets/CsVV_QnEl77BQM3V.js} +1 -1
- package/{browser/esm/iHc25sW_jPEvAQNG.mjs → cdn/assets/CvFAAktSd9TQK1h4.js} +1 -1
- package/{browser/esm/CdJVpNbmXP_fHybW.mjs → cdn/assets/Cz33L9W3cdQckAL5.js} +24 -23
- package/{browser/esm/DTHujOSrUxuBuwud.mjs → cdn/assets/DBgbBl_3O65WhfWN.js} +6 -6
- package/{browser/esm/B1bRlKApOQZbRHvx.mjs → cdn/assets/DCuLWmzd9eLWgI03.js} +1 -1
- package/{browser/esm/Dwd9xRP6sCbvd7-2.mjs → cdn/assets/DDD5zfwNNPKuc_zZ.js} +1 -1
- package/cdn/assets/DLYF-18qErpwF9Q-.js +1467 -0
- package/cdn/assets/{Dk8MDG7PNGIWw80U.js → DXMyzCcyP7039z13.js} +238 -238
- package/{browser/esm/FXy016gXiiQkH7aF.mjs → cdn/assets/DdrICyX8Ead15N32.js} +7 -7
- package/cdn/assets/{B7RdrgkvZilWOBgD.js → Did46-x6ZVwk_-r-.js} +1 -1
- package/cdn/assets/{ukDxhSJqMPzLXoCP.js → Dj3GhNedlKE9TeTn.js} +193 -192
- package/cdn/assets/F-RqJeKWiW4i5344.js +24708 -0
- package/cdn/assets/{DirkLhQ9-HVY0eDv.js → NHbXgEQMftGzY01r.js} +21 -20
- package/cdn/assets/lM5it-aJgI7DLNH9.js +22 -0
- package/{browser/esm/CtW_m0lUeW_X_FHB.mjs → cdn/assets/mq5uPzTIc1x8unBP.js} +1 -1
- package/cdn/index.js +2 -2
- package/cdn/loader.js +1 -1
- package/package.json +3 -2
- package/browser/cjs/-q2o2lS8jxJdArvq.cjs +0 -6
- package/browser/cjs/-wP4OG5GpQTxGLJN.cjs +0 -6
- package/browser/cjs/2TmE8J3tbgenWyNa.cjs +0 -6
- package/browser/cjs/3ghCxtNVxZjrbziE.cjs +0 -6
- package/browser/cjs/6AlZR3dVayTg7C5E.cjs +0 -452
- package/browser/cjs/B0BcYYAX9Qq_i5Iv.cjs +0 -6
- package/browser/cjs/B237Hj6a3Klw9rQn.cjs +0 -12
- package/browser/cjs/B24aLncmXYgEQNjl.cjs +0 -6
- package/browser/cjs/B9C-V-MR_epPI-2J.cjs +0 -6
- package/browser/cjs/BASowCefqJFspuu-.cjs +0 -6
- package/browser/cjs/BeDnbSWoeqV6GajE.cjs +0 -6
- package/browser/cjs/BucBlzmuZS_nYU9N.cjs +0 -6
- package/browser/cjs/C662YNYNcFb-AwnS.cjs +0 -6
- package/browser/cjs/CGg3vZ0YENmM73uu.cjs +0 -6
- package/browser/cjs/CJ9WKDMLDxv2vmlL.cjs +0 -6
- package/browser/cjs/CcxjUuuq3eq1io9D.cjs +0 -6
- package/browser/cjs/Ch4kNO1QwQ4Dqczw.cjs +0 -124
- package/browser/cjs/CrXR8mOrQVdukohR.cjs +0 -6
- package/browser/cjs/CuLinKNAohDMFqJU.cjs +0 -6
- package/browser/cjs/D0Ruzl2vdZGdUhjE.cjs +0 -12
- package/browser/cjs/D4CfqUrC04nbs39G.cjs +0 -6
- package/browser/cjs/D6cHa8Tv5I8L_uAO.cjs +0 -6
- package/browser/cjs/D7MyL7xgt0wGGz3I.cjs +0 -13
- package/browser/cjs/D7U5Wmdc51Op-pty.cjs +0 -6
- package/browser/cjs/D9SYWsd_viMxXbL_.cjs +0 -6
- package/browser/cjs/DMIPzZRAbLsma6rR.cjs +0 -7
- package/browser/cjs/DPTxGnV0pA87nrhG.cjs +0 -32
- package/browser/cjs/DTtUhkXmo3x2L2GG.cjs +0 -6
- package/browser/cjs/DgBFcVOVhZuytQ4k.cjs +0 -6
- package/browser/cjs/DoCfDJUgwatpHG4J.cjs +0 -1501
- package/browser/cjs/Dwc5vGQ4nkaSmift.cjs +0 -6
- package/browser/cjs/GbU6d05bhcxQrAUD.cjs +0 -15
- package/browser/cjs/OW7aZPHGxXjRF38A.cjs +0 -6
- package/browser/cjs/WQBNSYPbQzvO23r-.cjs +0 -6
- package/browser/cjs/XF920uRM7LSmFp49.cjs +0 -6
- package/browser/cjs/XazDEHRGho7wJTUR.cjs +0 -6
- package/browser/cjs/Zjw2XvR7-Zfykt20.cjs +0 -6
- package/browser/cjs/eM5uLWq0QtvNN4O-.cjs +0 -6
- package/browser/cjs/gjPOOFOH_THG1O-L.cjs +0 -6
- package/browser/cjs/hhZA8Q_VAVRnX3Rz.cjs +0 -7
- package/browser/cjs/qjCnEqCfcXzLIady.cjs +0 -6
- package/browser/cjs/s238D5kFNyDNYzIV.cjs +0 -6
- package/browser/cjs/t-6Fa6b5-CXTHDjn.cjs +0 -6
- package/browser/cjs/zvHV2c0_QPS3v2Wt.cjs +0 -11
- package/browser/esm/B-v14ikVOXpmpHCI.mjs +0 -5560
- package/browser/esm/B1M7fpFXcO34FZ5C.mjs +0 -29
- package/browser/esm/B6nZCfPr7UmxzAi6.mjs +0 -48671
- package/browser/esm/B7k3pb4haBsw-Yvr.mjs +0 -10
- package/browser/esm/B8ajmWm1J-ZsmBzK.mjs +0 -10
- package/browser/esm/BGvKR9TNj2ORlcKm.mjs +0 -10
- package/browser/esm/Bc8y371ooCwvBkRs.mjs +0 -10
- package/browser/esm/BezHCUZawkIGzzUm.mjs +0 -422
- package/browser/esm/BnxMjyy6JPTUe9Lg.mjs +0 -10
- package/browser/esm/BskzQvqHyjuVccIH.mjs +0 -22
- package/browser/esm/BzS_V6RkpVpk_d1w.mjs +0 -472
- package/browser/esm/CM--Vw5PcrLIXc8O.mjs +0 -12
- package/browser/esm/CflOcniWVa_VR5Wy.mjs +0 -10
- package/browser/esm/Cn9w-KgbsxAKNj6s.mjs +0 -10
- package/browser/esm/D6KdwQgZEBMy0260.mjs +0 -10
- package/browser/esm/DAOw8vm-XsJ_n7BK.mjs +0 -10
- package/browser/esm/DIKvxkHBBvYo2rnC.mjs +0 -10
- package/browser/esm/DNVkA-vwqtIw6aKf.mjs +0 -1575
- package/browser/esm/DTS0EgQuwHdS5aQN.mjs +0 -10
- package/browser/esm/DaeiyDhcdRvg5nGs.mjs +0 -1466
- package/browser/esm/DeSyxK8Ibb-tIa67.mjs +0 -10
- package/browser/esm/DgPz063GFvbhOHHK.mjs +0 -10
- package/browser/esm/Di8gWiOWhfFzcOuw.mjs +0 -21
- package/browser/esm/Dlg7LT4wsJCPSTCT.mjs +0 -46
- package/browser/esm/DqDxWoCftkWurpDk.mjs +0 -10
- package/browser/esm/DupExqAEenu5ZS6G.mjs +0 -820
- package/browser/esm/Dy1zdTKMeT50nXcy.mjs +0 -10
- package/browser/esm/Dz_O3du2SrhYK47v.mjs +0 -10
- package/browser/esm/IbCi65rCiiLS_OGe.mjs +0 -46
- package/browser/esm/R2Li5a5IPMuoQEGD.mjs +0 -10
- package/browser/esm/SWzqhkO1HABv0bfG.mjs +0 -10
- package/browser/esm/VDflSVY_vwi7ZcHQ.mjs +0 -3922
- package/browser/esm/dAJOajC7rsn3_hWk.mjs +0 -10
- package/browser/esm/fvsQWBiDZg7zRYOa.mjs +0 -10
- package/browser/esm/o8Z04Tjc17JBUDsL.mjs +0 -10
- package/browser/esm/qbGHKDeXrxvghjMt.mjs +0 -24
- package/browser/esm/uk5NsqjbkRuKv1vU.mjs +0 -10
- package/cdn/assets/B2P82Dvadjo7-hRY.js +0 -1466
- package/cdn/assets/B7k3pb4haBsw-Yvr.js +0 -10
- package/cdn/assets/B8ajmWm1J-ZsmBzK.js +0 -10
- package/cdn/assets/BFDOApZozGNnJdxs.js +0 -46
- package/cdn/assets/BGvKR9TNj2ORlcKm.js +0 -10
- package/cdn/assets/BJgFwyqDjKdTH0xW.js +0 -422
- package/cdn/assets/BKxjmGpW0pe8KUzm.js +0 -472
- package/cdn/assets/Bc8y371ooCwvBkRs.js +0 -10
- package/cdn/assets/BnxMjyy6JPTUe9Lg.js +0 -10
- package/cdn/assets/CM--Vw5PcrLIXc8O.js +0 -12
- package/cdn/assets/COS-oUtP1lQi0Hd8.js +0 -22
- package/cdn/assets/CSxbcCsSh3AdRzkk.js +0 -3922
- package/cdn/assets/CflOcniWVa_VR5Wy.js +0 -10
- package/cdn/assets/Cn9w-KgbsxAKNj6s.js +0 -10
- package/cdn/assets/Cqyz2pkIcU2pAivO.js +0 -5560
- package/cdn/assets/CuYtiG4SP9OK6dJP.js +0 -1575
- package/cdn/assets/D6KdwQgZEBMy0260.js +0 -10
- package/cdn/assets/DAOw8vm-XsJ_n7BK.js +0 -10
- package/cdn/assets/DCwhACFXcpYD60H9.js +0 -820
- package/cdn/assets/DIKvxkHBBvYo2rnC.js +0 -10
- package/cdn/assets/DOLBqVto8cJdYLWp.js +0 -46
- package/cdn/assets/DTS0EgQuwHdS5aQN.js +0 -10
- package/cdn/assets/DeSyxK8Ibb-tIa67.js +0 -10
- package/cdn/assets/Dew12-owBXPNmL1S.js +0 -29
- package/cdn/assets/DgPz063GFvbhOHHK.js +0 -10
- package/cdn/assets/Di8gWiOWhfFzcOuw.js +0 -21
- package/cdn/assets/DqDxWoCftkWurpDk.js +0 -10
- package/cdn/assets/Dy1zdTKMeT50nXcy.js +0 -10
- package/cdn/assets/Dz_O3du2SrhYK47v.js +0 -10
- package/cdn/assets/G9bfOnISYlZUeW4U.js +0 -48518
- package/cdn/assets/R2Li5a5IPMuoQEGD.js +0 -10
- package/cdn/assets/SWzqhkO1HABv0bfG.js +0 -10
- package/cdn/assets/dAJOajC7rsn3_hWk.js +0 -10
- package/cdn/assets/fvsQWBiDZg7zRYOa.js +0 -10
- package/cdn/assets/o8Z04Tjc17JBUDsL.js +0 -10
- package/cdn/assets/qbGHKDeXrxvghjMt.js +0 -24
- package/cdn/assets/uk5NsqjbkRuKv1vU.js +0 -10
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.3
|
|
3
|
-
*
|
|
4
|
-
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
|
-
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
-
*/Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h="text/html",b="text/plain",L="image/png",Ct=Object.freeze({left:0,top:0}),Mt=Object.freeze({left:0,top:0,bottom:0,right:0}),Rt=Object.freeze({x:0,y:0,width:0,height:0});Object.freeze(Object.defineProperty({__proto__:null,EmptyBounds:Rt,EmptyRect:Mt,EmptyTopLeft:Ct},Symbol.toStringTag,{value:"Module"}));const m="column",j="row",At=Object.freeze({colIndex:0,rowIndex:0}),Ft=Object.freeze({colStart:0,rowStart:0,colEnd:0,rowEnd:0}),yt=(e,t)=>e.colStart===t.colStart?e.rowStart-t.rowStart:e.colStart-t.colStart,gt=(e,t)=>e.rowStart===t.rowStart?e.colStart-t.colStart:e.rowStart-t.rowStart,Lt=(e,t)=>e.rowEnd===t.rowEnd?t.colEnd-e.colEnd:t.rowEnd-e.rowEnd,Pt=(e,t)=>e.colEnd===t.colEnd?t.rowEnd-e.rowEnd:t.colEnd-e.colEnd,J=(e,t)=>e.colIndex===t.colIndex?e.rowIndex-t.rowIndex:e.colIndex-t.colIndex,H=(e,t)=>e.rowIndex===t.rowIndex?e.colIndex-t.colIndex:e.rowIndex-t.rowIndex,bt=(e=j,t=!1)=>t?e!==m?Lt:Pt:e!==m?gt:yt,K=(e,t)=>e===t||!(!e||!t)&&e.rowIndex===t.rowIndex&&e.colIndex===t.colIndex,D=(e,t)=>e===t||!(!e||!t)&&e.rowStart===t.rowStart&&e.rowEnd===t.rowEnd&&e.colStart===t.colStart&&e.colEnd===t.colEnd,$=(e,t)=>!(!e||!t||e.colStart>t.colEnd||t.colStart>e.colEnd||e.rowStart>t.rowEnd||t.rowStart>e.rowEnd),Y=(e,t)=>{if(e===t)return!0;if(!e||!t||e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!D(e[r],t[r]))return!1;return!0},P=(e,t,r)=>{if(!e&&!t)return null;if(!e)return r?t:{...t};if(!t)return r?e:{...e};const n=Math.min(e.colStart,t.colStart),o=Math.min(e.rowStart,t.rowStart),a=Math.max(e.colEnd,t.colEnd),i=Math.max(e.rowEnd,t.rowEnd);let l=r;return l?(l.colStart=n,l.rowStart=o,l.colEnd=a,l.rowEnd=i):l={colStart:n,rowStart:o,colEnd:a,rowEnd:i},l},Z=(e,t)=>{if(!t||t.length===0)return e;const r={...e};for(let n=0;n<t.length;n++){const o=t[n];$(r,o)&&(r.rowStart=Math.min(r.rowStart,o.rowStart),r.colStart=Math.min(r.colStart,o.colStart),r.rowEnd=Math.max(r.rowEnd,o.rowEnd),r.colEnd=Math.max(r.colEnd,o.colEnd))}return r},Ut=[null,null],kt=(e,t,r)=>{if(e[0].value===e[1].value)return t};function X(e,t=2,r,n=j,o){let a=[...e];if(t<=0||e.length<=1)return a;let i=n===m,l=0,s=!1;do{const c=a.sort(bt(i?j:m));a=[],a.push(c[0]);const d=c.length;let w=0,u=c[0],f=u.colStart,p=u.rowStart,x=u.colEnd,_=u.rowEnd;for(let A=1;A<d;A++){const g=c[A];let G=!1;if(G=i?u&&p===g.rowStart&&_===g.rowEnd&&x+1===g.colStart:u&&f===g.colStart&&x===g.colEnd&&_+1===g.rowStart,G){let S={colStart:f,rowStart:p,colEnd:i?g.colEnd:x,rowEnd:i?_:g.rowEnd};if(u.value!==void 0&&(S.value=u.value),r){const F=o??[null,null];F[0]=u,F[1]=g,S=r(F,S,n)}if(S){a[w]=S,s=!0,u=S,f=u.colStart,p=u.rowStart,x=u.colEnd,_=u.rowEnd;continue}}a[++w]=g,u=g,f=u.colStart,p=u.rowStart,x=u.colEnd,_=u.rowEnd}l++,i=!i,l===1&&(s=!0)}while(l<t&&s&&a.length>1);return a}Object.freeze(Object.defineProperty({__proto__:null,EmptyCell:At,EmptyRange:Ft,cellToRange:(e,t)=>{if(!e)return null;let r=t;return r||(r={...e},delete r.colIndex,delete r.rowIndex),r.colStart=e.colIndex??0,r.rowStart=e.rowIndex??0,r.colEnd=e.colIndex??0,r.rowEnd=e.rowIndex??0,r},columnFirstCellComparator:J,columnFirstRangeComparator:yt,createCellComparator:(e=j,t=!1)=>t?e!==m?(r,n)=>r.rowIndex===n.rowIndex?n.colIndex-r.colIndex:n.rowIndex-r.rowIndex:(r,n)=>r.colIndex===n.colIndex?n.rowIndex-r.rowIndex:n.colIndex-r.colIndex:e!==m?H:J,createConflatingRanges:(e,t=!1)=>{const r=[];let n,o,a=Number.MIN_SAFE_INTEGER,i=Number.MIN_SAFE_INTEGER;return{append:(l,s,c)=>{let d=!0;const w=c!==void 0;if(w){const p=e?e(o,c,t):o===c?c:void 0;p===void 0?d=!1:c=p}if(d&&s===i+1&&l===a)return t?n.rowEnd=s:n.colEnd=s,i=s,void(o=c);n&&r.push(n);const u=t?l:s,f=t?s:l;n={colStart:u,rowStart:f,colEnd:u,rowEnd:f},w&&(n.value=c),a=l,i=s,o=c},done:l=>(n&&(r.push(n),n=null),l?X(r,3,l===!0?kt:l,t?m:j,Ut):r)}},createRangeComparator:bt,defaultRange:(e,t,r)=>e?r?(r.colStart=e.colStart??t.colStart,r.rowStart=e.rowStart??t.rowStart,r.colEnd=e.colEnd??t.colEnd,r.rowEnd=e.rowEnd??t.rowEnd,r):{colStart:e.colStart??t.colStart,rowStart:e.rowStart??t.rowStart,colEnd:e.colEnd??t.colEnd,rowEnd:e.rowEnd??t.rowEnd}:t,extendRangeToIntersectingRanges:Z,extendRangeToUnionRanges:(e,t)=>{if(!t||t.length===0)return e;let r=e,n=null;for(;!D(r,n);)n=r,r=Z(n,t);return r},indexOfCoords:(e,t)=>{const r={colStart:e.colIndex,rowStart:e.rowIndex,colEnd:e.colIndex,rowEnd:e.rowIndex};for(let n=t.length-1;n>=0;n--)if($(r,t[n]))return n;return-1},intersectRanges:(e,t,r)=>{if(!e)return r?t:{...t};if(!t)return r?e:{...e};if(!e&&!t||e.rowStart>t.rowEnd||e.rowEnd<t.rowStart||e.colStart>t.colEnd||e.colEnd<t.colStart)return null;const n=Math.max(e.colStart,t.colStart),o=Math.max(e.rowStart,t.rowStart),a=Math.min(e.colEnd,t.colEnd),i=Math.min(e.rowEnd,t.rowEnd);let l=r;return l?(l.colStart=n,l.rowStart=o,l.colEnd=a,l.rowEnd=i):l={colStart:n,rowStart:o,colEnd:a,rowEnd:i},l},isCellWithinRange:(e,t)=>!(!e||!t||e.rowIndex<t.rowStart||e.rowIndex>t.rowEnd||e.colIndex<t.colStart||e.colIndex>t.colEnd),isEqualCells:K,isEqualRanges:D,isEqualRangesArrays:Y,isEqualSelectionCoords:(e,t)=>e===t||!(!e||!t)&&e.rangeIndex===t.rangeIndex&&!!K(e.cell,t.cell)&&Y(e.ranges,t.ranges),isRangeWithinRange:(e,t)=>!(e.rowStart<t.rowStart||e.rowEnd>t.rowEnd||e.colStart<t.colStart||e.colEnd>t.colEnd),isRangesIntersect:$,isSingleCell:e=>!!e&&e.rowEnd===e.rowStart&&e.colStart===e.colEnd,isValidRange:e=>!(!e||typeof e.colStart!="number"||e.colStart<0||typeof e.colEnd!="number"||e.colEnd<e.colStart||typeof e.rowStart!="number"||e.rowStart<0||typeof e.rowEnd!="number"||e.rowEnd<e.rowStart),mergeRangedValues:X,rowFirstCellComparator:H,rowFirstRangeComparator:gt,sanitizeRange:e=>e?{colStart:e.colIndex??e.colStart??0,rowStart:e.rowIndex??e.rowStart??0,colEnd:e.colIndex??e.colEnd??0,rowEnd:e.rowIndex??e.rowEnd??0}:null,translateRange:(e,t=-e.rowStart,r=-e.colStart,n)=>n?(n.colStart=e.colStart+r,n.rowStart=e.rowStart+t,n.colEnd=e.colEnd+r,n.rowEnd=e.rowEnd+t,n):{colStart:e.colStart+r,rowStart:e.rowStart+t,colEnd:e.colEnd+r,rowEnd:e.rowEnd+t},unionRanges:P,unionRangesArrays:(e,t,r)=>{if(!e||e.length===0)return null;if(e.length===1&&!t)return e[0];let n=e[0];for(let o=1;o<e.length;o++)n=P(n,e[o],r);return t&&(n=P(n,t,r)),n}},Symbol.toStringTag,{value:"Module"}));const Nt=typeof Symbol=="function"&&Symbol.for?Symbol.for("react.element"):60103;function Bt(e){return function(t){return!!t&&typeof t=="object"}(e)&&!function(t){const r=Object.prototype.toString.call(t);return r==="[object RegExp]"||r==="[object Date]"||t.$$typeof===Nt}(e)}function I(e,t){return t.clone!==!1&&t.isMergeableObject(e)?E((r=e,Array.isArray(r)?[]:{}),e,t):e;var r}function zt(e,t,r){return e.concat(t).map(function(n){return I(n,r)})}function Q(e){return Object.keys(e).concat((t=e,Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t).filter(function(r){return Object.propertyIsEnumerable.call(t,r)}):[]));var t}function tt(e,t){try{return t in e}catch{return!1}}function E(e,t,r){(r=r||{}).arrayMerge=r.arrayMerge||zt,r.isMergeableObject=r.isMergeableObject||Bt,r.cloneUnlessOtherwiseSpecified=I;const n=Array.isArray(t);return n===Array.isArray(e)?n?r.arrayMerge(e,t,r):function(o,a,i){const l={};return i.isMergeableObject(o)&&Q(o).forEach(function(s){l[s]=I(o[s],i)}),Q(a).forEach(function(s){var c,d;tt(c=o,d=s)&&(!Object.hasOwnProperty.call(c,d)||!Object.propertyIsEnumerable.call(c,d))||(tt(o,s)&&i.isMergeableObject(a[s])?l[s]=function(w,u){if(!u.customMerge)return E;const f=u.customMerge(w);return typeof f=="function"?f:E}(s,i)(o[s],a[s],i):l[s]=I(a[s],i))}),l}(e,t,r):I(t,r)}E.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce(function(r,n){return E(r,n,t)},{})};const qt=Object.freeze([]),Dt=Object.freeze({}),et=e=>e,R=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){let t=16*Math.random()|0;return(e==="x"?t:3&t|8).toString(16)}),mt=(e,t)=>e===t||!(!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length)&&e.every((r,n)=>r===t[n]),O=e=>typeof e=="object"&&!Array.isArray(e)&&e!==null,Et=e=>typeof e!="object"||Array.isArray(e)||e===null?e:(Object.keys(e).forEach(function(t){e[t]&&typeof e[t]=="object"?Et(e[t]):e[t]!==null&&e[t]!==void 0||delete e[t],typeof e[t]=="object"&&Object.keys(e[t]).length===0&&delete e[t]}),Object.keys(e).length===0?null:e),$t=(e,t)=>!(e!==t&&!mt(e,t)&&!e.isEqual?.(t)),St=(e,t,r=$t)=>{if(e==null||e===t)return null;if(!e||typeof e!="object"||Array.isArray(e)||e.isImmutable?.())return r(e,t)?null:e;const n=Object.keys(e);if(n.length===0)return null;let o=!1;for(let a=0;a<n.length;a++){const i=n[a];St(e[i],t?.[i],r)===null&&(o=!0,delete e[i])}return o&&Object.keys(e).length===0?null:void 0},rt=typeof performance=="object"&&typeof performance.now=="function"?()=>performance.now():()=>Date.now(),nt=e=>e==null,ot=(e,t)=>!(t.left>e.right||t.right<e.left||t.top>e.bottom||t.bottom<e.top),at=!(typeof window>"u"||!window.document||!window.document.createElement),y={Windows:"windows",MacOS:"macos",IOS:"ios",Linux:"linux",Android:"android",Safari:"safari",Firefox:"firefox",Node:"node",Unknown:"unknown"},T=()=>{if(vt())return y.Node;const e=globalThis.navigator!==void 0&&globalThis.navigator.userAgent?globalThis.navigator.userAgent.toLowerCase():"";return e?/(win32|win64|windows|wince)/i.test(e)?y.Windows:/(macintosh|macintel|macppc|mac68k|macos)/i.test(e)?y.MacOS:/(iphone|ipad|ipod)/i.test(e)?y.IOS:/android/.test(e)?y.Android:/linux/.test(e)?y.Linux:/^((?!chrome|android|).)*safari/i.test(e)?y.Safari:/^((?!chrome|android|Seamonkey).)*firefox/i.test(e)?y.Firefox:y.Unknown:y.Unknown};function vt(){return typeof process<"u"&&process.release?.name==="node"||(typeof process<"u"&&process.browser,!1)}const it=(e,t=!1)=>(document.hasFocus()||t)&&(e===document.activeElement||e?.contains(document.activeElement)),xt=Object.freeze(Object.defineProperty({__proto__:null,EmptyArray:qt,EmptyObject:Dt,OSType:y,arrayMove:function(e,t,r){const n=e.slice();return n.splice(r<0?n.length+r:r,0,n.splice(t,1)[0]),n},asNumber:e=>{const t=1*e;return Number.isFinite(t)?t:0},camelToPrettyCase:e=>e.length===1?e.toUpperCase():e.replace(/([A-Z])/g," $1").replace(/^./,function(t){return t.toUpperCase()}).trim(),canUseDOM:at,cancelTimeout:e=>{cancelAnimationFrame(e.id)},castToString:e=>e==null||e===void 0?"":typeof e!="string"?""+e:e,cloneObject:e=>nt(e)?e:JSON.parse(JSON.stringify(e)),consoleWithNoSource:(...e)=>new Promise(t=>{setTimeout(()=>{Function("console.log.apply(console, arguments)").apply(null,e),t()})}),debounce:function(e,t=300,r=!1){let n,o,a,i,l=0;function s(){let d=Date.now()-l;d<t&&d>=0?n=setTimeout(s,t-d):(n=null,r||(i=e.apply(a,o),a=o=null))}t==null&&(t=100);const c=function(){a=globalThis,o=arguments,l=Date.now();var d=r&&!n;return n||(n=setTimeout(s,t)),d&&(i=e.apply(a,o),a=o=null),i};return c.clear=function(){n&&(clearTimeout(n),n=null)},c.flush=function(){n&&(i=e.apply(a,o),a=o=null,clearTimeout(n),n=null)},c},deepEqual:function e(t,r){if(t===r)return!0;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return!1;let n,o,a;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(o=n;o--!==0;)if(!e(t[o],r[o]))return!1;return!0}if(t instanceof Map&&r instanceof Map){if(t.size!==r.size)return!1;for(o of t.entries())if(!r.has(o[0]))return!1;for(o of t.entries())if(!e(o[1],r.get(o[0])))return!1;return!0}if(t instanceof Set&&r instanceof Set){if(t.size!==r.size)return!1;for(o of t.entries())if(!r.has(o[0]))return!1;return!0}if(ArrayBuffer.isView(t)&&ArrayBuffer.isView(r)){if(n=t.length,n!=r.length)return!1;for(o=n;o--!==0;)if(t[o]!==r[o])return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(a=Object.keys(t),n=a.length,n!==Object.keys(r).length)return!1;for(o=n;o--!==0;)if(!Object.prototype.hasOwnProperty.call(r,a[o]))return!1;for(o=n;o--!==0;){let i=a[o];if(!(i==="_owner"&&t.$$typeof||e(t[i],r[i])))return!1}return!0}return t!=t&&r!=r},deepFreeze:function e(t){return Object.freeze(t),Object.keys(t).forEach(r=>{typeof t[r]!="object"||t[r]===null||Object.isFrozen(t[r])||e(t[r])}),t},deepMerge:E,diffValues:(e,t)=>{const r={},n=Object.keys(t),o=n.length;for(let a=0;a<o;a++){const i=n[a];e[i]!==t[i]&&(e[i]===void 0?r[i]=t[i]:r[i]=e[i])}return Object.keys(r).length===0?null:r},findEqualOrGreater:function(e,t,r=et){let n=0,o=e.length-1;for(;n<=o;){let a=Math.floor((n+o)/2),i=r(e[a]);if(i===t)return a;i<t?n=a+1:o=a-1}return n},findEqualOrLesser:function(e,t,r=et){let n=e.length-1,o=0;for(;n>=o;){let a=Math.floor((n+o)/2),i=r(e[a]);if(i===t)return a;i>t?n=a-1:o=a+1}return n},findNextStep:(e,t=!0,r=15,n=10,o=400)=>{const a=Math.max(e-n,0)+(t?1:-1);return Math.min(o,Math[t?"ceil":"floor"](a/r)*r+n)},getDPI:()=>{let e=1;return typeof window=="object"&&(e=window.devicePixelRatio||1),e},getFromPath:(e,t)=>{const r=t.split(".");let n=e;for(let o=0;o<r.length;o++){const a=r[o];if(!n)return null;let i=n[a];if(typeof i=="function"&&(i=i.bind(n)()),!i||!O(i))return i;n=i}return n??null},getOS:T,hasFocus:it,isDefined:e=>e!=null,isEmpty:e=>e==null||e==="",isEqualArrays:mt,isEqualBounds:(e,t)=>e===t||!(e&&!t||t&&!e)&&e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,isEqualObjectKeys:(e,t)=>{if(e===t)return!0;if(e&&!t||t&&!e)return!1;const r=Object.keys(e);if(r.length!==Object.keys(t).length)return!1;for(let n=0;n<r.length;n++)if(e[r[n]]!==t[r[n]])return!1;return!0},isNode:vt,isNullOrUndefined:nt,isNumeric:e=>{const t=1*e;return Number.isFinite(t)&&typeof t=="number"},isObject:O,isPromiseLike:e=>!!e&&typeof e.then=="function",isRectInsideRect:(e,t)=>e.top>=t.top&&e.bottom<=t.bottom&&e.left>=t.left&&e.right<=t.right,isRectIntersect:ot,mergeContentful:(...e)=>{const t=e.length;if(t>0&&e[t-1]!==void 0&&!O(e[t-1]))return e[t-1];let r=e[0]||{};for(let n=1;n<t;n++)r=E(r,e[n]||{},{arrayMerge:(o,a)=>[...a]});return r},nextTick:e=>{typeof window<"u"&&typeof window.requestAnimationFrame=="function"?window.requestAnimationFrame(()=>{e()}):(typeof setImmediate=="function"?setImmediate:setTimeout)(()=>{e()})},openFileDialog:(e="*.*")=>new Promise((t,r)=>{if(!at)return void r("Unable to open dialog with no dom.");const n=document.createElement("input");n.type="file",n.accept=e;let o=null,a=!1;globalThis.addEventListener?.("focus",()=>{setTimeout(()=>{o||a||(a=!0,t(null))},1e3)},{once:!0,passive:!0}),n.onchange=()=>{if(o=n.files[0],o){if(a)return void console.warn("File open detected after faux cancel.",o);t(o)}},n.autofocus=!0,n.click()}),rafThrottle:e=>{let t,r=!1,n=function(){r=!1,e(t)};return function(o){t=o,t&&t.persist&&t.persist(),r||(r=!0,requestAnimationFrame(n))}},removeEmptyProperties:Et,removeEqualValues:St,removeListenerAll:e=>{if(!e)return[];for(let t=0;t<e.length;t++)e[t]&&e[t]();return[]},requestTimeout:(e,t)=>{const r=rt(),n={id:requestAnimationFrame(function o(){rt()-r>=t?e.call(null):n.id=requestAnimationFrame(o)})};return n},roundAccurately:(e,t=0)=>{if(e==null||!isFinite(e))return null;const r=10**t;return Number(Math.round(e*r)/r)},setToPath:(e,t,r)=>{const n=t.split(".");let o=e;if(!o)throw new Error("Can not set path to a null path.");for(let a=0;o&&a<n.length-1;a++){const i=n[a];let l=o[i];if(l==null&&(l={},o[i]=l),!O(l))throw new Error("Can not set path to a non object path.");o=l}if(typeof r!="number"&&typeof r!="boolean"&&typeof r!="string"&&!O(r))throw new Error(`Can not set path to ${r} that is not a a supported primitive.`);return o[n[n.length-1]]=r,e},splitNumber:e=>{let t=Math.abs(e);if(isNaN(t)||!isFinite(e))return null;let r=0|t,n=t-r,o=0,a=0,i=1;if(n>5e-8)for(;a<8&&Math.abs(o/i-n)>5e-8;)a++,i*=10,o=Math.round(n*i);return{ip:Math.trunc(e),fp:o,ipLength:Math.ceil(Math.log10(r+1)),fpLength:a}},subtractRect:(e,t,r=!1)=>{if(!t)return[e];if(!ot(e,t))return[];const n=[];let o=e;const a=()=>{t.top>o.top&&t.top<o.bottom&&(n.push({...o,bottom:t.top}),o={...o,top:t.top})},i=()=>{t.bottom>o.top&&t.bottom<o.bottom&&(n.push({...o,top:t.bottom}),o={...o,bottom:t.bottom})},l=()=>{t.right>o.left&&t.right<o.right&&(n.push({...o,left:t.right}),o={...o,right:t.right})},s=()=>{t.left>o.left&&t.left<o.right&&(n.push({...o,right:t.left}),o={...o,left:t.left})};return r?(s(),l(),a(),i()):(a(),i(),l(),s()),n},textToKey:e=>e.replace(/[^a-zA-Z0-9]/g,"").toLowerCase(),throttle:function(e,t){let r=null;return(...n)=>{const o=Date.now();(!r||o-r>=t)&&(r=o,e(...n))}},toSafeJSON:function e(t){if(t===null||typeof t!="object")return t;if(typeof t.toJSON=="function")return t.toJSON();if(Array.isArray(t))return t.map(n=>e(n));if(typeof t.toString=="function"&&t.toString!==Object.prototype.toString)return t.toString();const r={};for(const n in t)t.hasOwnProperty(n)&&(r[n]=e(t[n]));return r},transpose:e=>{if(!e)return e;const t=e.length,r=e[0].length,n=[];for(let o=0;o<r;o++)n[o]=Array(t);for(let o=0;o<t;o++)for(let a=0;a<r;a++)n[a][o]=e[o][a];return n},uuidV4:R,validEnumValue:(e,t)=>{if(!Object.values(e).includes(t))throw new Error(`Invalid type: ${t??"null"}. Must be one of: ${Object.values(t).join(", ")}.`)},whenFocus:async(e,t=!1)=>new Promise(r=>{it(e,t)?r(!0):e.addEventListener("focusin",()=>{r(!0)},{once:!0}),e.focus()})},Symbol.toStringTag,{value:"Module"}));Object.freeze(Object.defineProperty({__proto__:null,MESSAGE_ERROR_INVALID_ARG:e=>`Invalid argument: '${e}'.`},Symbol.toStringTag,{value:"Module"}));const _t=e=>{const t=new Uint8Array(e),r=t.byteLength;let n="";for(let o=0;o<r;o++)n+=String.fromCharCode(t[o]);if(typeof window<"u"&&typeof globalThis.btoa=="function")return globalThis.btoa(n);if(typeof Buffer<"u")return Buffer.from(n,"binary").toString("base64");throw new Error("Unsupported environment")},W=e=>new Promise((t,r)=>{if(e)if(typeof FileReader<"u"){const n=new FileReader;n.onload=()=>{t(n.result)},n.onerror=()=>{r(n.error)},n.readAsText(e)}else if(typeof Buffer<"u"){const n=o=>Buffer.from(o).toString("utf-8");e.arrayBuffer().then(o=>{t(n(o))}).catch(o=>{r(o)})}else r(new Error("Unsupported environment"));else t("")});Object.freeze(Object.defineProperty({__proto__:null,DEFAULT_MIME_TYPE:"*/*",arrayBufferToBase64:_t,base64ToArrayBuffer:e=>{const t=typeof window<"u"&&typeof globalThis.atob=="function"?globalThis.atob(e):Buffer.from(e,"base64").toString("binary"),r=t.length,n=new Uint8Array(r);for(let o=0;o<r;o++)n[o]=t.charCodeAt(o);return n.buffer},blobToString:W},Symbol.toStringTag,{value:"Module"}));const Ot="data:image/png;base64,",It="Unable to resolve image.",lt=e=>new Promise(async(t,r)=>{let n=null;try{n=new Image,n.src=e,n.addEventListener("load",function(){t({width:n.naturalWidth,height:n.naturalHeight})},{once:!0}),n.addEventListener("error",function(){URL.revokeObjectURL(e),r("Invalid Image")},{once:!0}),await n.decode("sync")}catch{n?.src&&URL.revokeObjectURL(n.src)}n||r(It)}),U="image/svg+xml";var st,ct;Object.freeze(Object.defineProperty({__proto__:null,DATA_URL_PNG_PREFIX:Ot,getImageDataUrl:(e,t=1)=>new Promise(async(r,n)=>{let o=null;try{o=new Image,o.src=e,o.addEventListener("load",function(){try{const a=document.createElement("canvas");a.width=o.naturalWidth,a.height=o.naturalHeight,a.getContext("2d").drawImage(o,0,0);const i=a.toDataURL("image/png",t);r({elemImg:o,dataUrl:i})}catch(a){URL.revokeObjectURL(e),n(a)}},{once:!0}),o.addEventListener("error",function(){URL.revokeObjectURL(e),n("Invalid Image")},{once:!0}),await o.decode("sync")}catch{o?.src&&URL.revokeObjectURL(o.src)}o||n(It)}),loadImageDetails:async(e,t=null)=>{let r=null;const n=async()=>{try{const a=t??"image/*",i=URL.createObjectURL(new Blob([e],{type:a})),l=await lt(i);r={mimeType:a,naturalDimensions:l,asUrl:i}}catch{}},o=async()=>{try{const a=new TextDecoder().decode(e),i=URL.createObjectURL(new Blob([a],{type:U})),l=await lt(i);r={mimeType:t??U,naturalDimensions:l,asUrl:i,asSVGText:a}}catch{}};if(t===U?await o():t.startsWith("image/")?await n():(await n(),r||await o()),!r)throw new Error("Failed to load image");return r}},Symbol.toStringTag,{value:"Module"})),(ct=st||(st={})).resolveTypedUpdates=(e,t,r,n)=>{if(e===null)return e;if(e===void 0)return n;let o=e;if(t?.shorthand){const s=t?.shorthand(e,r);s!==void 0&&(o=s)}if(o!==null&&t?.getSubType){const s=t.getSubType(o);s&&(t=s)}const a=t?.properties,i=t?.arrayType??!1;let l=o;if(t&&t.merge&&l&&n)l=t.merge(l,n,r);else if(!i&&a){const s=Object.keys({...o,...n});l=null;for(let c=0;c<s.length;c++){const d=s[c];let w,u=o[d];if(u!==void 0){const f=a[d];w=f?(0,ct.resolveTypedUpdates)(u,f,r,n?.[d]):u}else w=n?.[d];w!=null&&(l=l??{},l[d]=w)}}return l};const ut=`The Safari browser does not support advanced copy and paste.
|
|
7
|
-
Copy and paste will be limited to within the browser tab.
|
|
8
|
-
|
|
9
|
-
Please use Chrome or Edge if external copy and paste is required.`,k=`You do not have permissions to access the clipboard.
|
|
10
|
-
All copy and paste operations will be limited to the browser tab.`,jt={Safari:`The Safari browser does not support advanced copy and paste.
|
|
11
|
-
Copy and paste will be limited to within the browser tab.
|
|
12
|
-
|
|
13
|
-
Please use Chrome or Edge if external copy and paste is required.`,Perms:k,PermsWrite:T()===y.Safari?ut:k,PermsRead:T()===y.Safari?ut:k},N=async()=>new Promise(e=>{document.hasFocus()?e():globalThis.addEventListener?.("focus",()=>{e()},{once:!0}),document.activeElement.focus?.()}),B=async(e,t,r)=>{if(T()===y.Safari)return await r(new Error(jt.Safari));try{const n=async i=>{try{return await i()}catch(l){if(l.message?.includes("Document is not focused"))return!1;throw l}},o=await globalThis?.navigator?.permissions?.query({name:e,allowWithoutGesture:!0,allowWithoutSanitization:!0});let a=!1;if(o.state==="prompt"&&(a=await n(t)),a||o.state!=="granted"||(a=await t()),!a)return await r(new Error(o.state))}catch(n){return n.message==="No valid data on clipboard"||n.name==="DataError"?void 0:await r(n)}},Tt=async e=>{try{return await e.read({unsanitized:[h]})}catch{}return await e.read()};if(!globalThis.ClipboardItem){const e=(r,n)=>new Blob([n],{type:r});class t{constructor(n,o){this._items={},this._types=Object.keys(n);const a={},i=Object.keys(n);for(let l=0;l<i.length;l++){const s=i[l];let c=n[s];a[s]=typeof c=="string"?e(s,c):c}this._items=a,this._presentationStyle=o?.presentationStyle??"unspecified"}get types(){return this._types}getType(n){return Promise.resolve(this._items[n])}supports(n){return!0}}globalThis.ClipboardItem=t}const V=async(e,t=h)=>new Promise(async(r,n)=>{try{const o=await(async(a,i)=>{if(!a)return null;const l=await Tt(a);let s=!1;for(let c=0;!s&&l&&c<l.length;c++)if(s=l[c].types.includes(i),s)return await l[c].getType(i);return s?void 0:null})(e,t);if(o){const a=new FileReader;a.onload=()=>{r(a.result)},a.onerror=()=>{r("")},a.readAsText(o)}else r("")}catch(o){n(o)}}),dt=async(e,t=h)=>{const r=await V(e,t);if(!r)return null;let n=null;try{n=new DOMParser().parseFromString(r,h)}catch{console.warn("Can't parse html from clipboard.")}return n},C="clipboard-uuid",v="web text/uuid",ft=e=>`<div style="display:none" ${C}="${e}"/>`,Wt=(e,t)=>{let r=null;try{const n=new DOMParser().parseFromString(t,h);n.body.firstElementChild.setAttribute(C,e),r=n.getElementsByTagName("body")[0].innerHTML}catch(n){console.warn("Can't embed uuid.",n)}return r},pt=(e,t)=>{if(!t||!e)return!1;try{const r=t.querySelectorAll(`[${C}="${e}"]`);if(r&&r.length===1)return!0;if(t.querySelector("parsererror"))throw new Error("We are unable to parse node");return!1}catch{return!1}};class wt{constructor(t){if(t?.nativeClipboard===void 0||t?.nativeClipboard===!0)try{this._nativeClipboard=globalThis?.navigator.clipboard}catch{t?.nativeClipboard===!0&&console.warn("NativeClipboard option set to true but no native clipboard available.")}else this._nativeClipboard=t?.nativeClipboard===!1?null:t?.nativeClipboard;this._disableCheckOnFocus=t?.disableCheckOnFocus??!1,this._init()}async _checkForChanges(){this._nativeClipboard&&this._state&&!this._disableCheckOnFocus&&await B("clipboard-read",async()=>{await N();const t=await V(this._nativeClipboard,v);if(!this._state||t&&t===this._state.uuid)return!0;const r=await dt(this._nativeClipboard,h);return!this._state||(pt(this._state.uuid,r)||this.clear(),!0)},async t=>{t?.message==="denied"||t.message?.includes("Document is not focused")||T()===y.Safari||console.warn("Unable to detect clipboard changes: ",t)})}_init(){const t=this;this._listeners=new Map,this._listenersCapture=new Map,this._state=null,this._nativeClipboard&&(this._onFocus=()=>{t._checkForChanges()},this._onBlur=()=>{globalThis.addEventListener?.("focus",t._onFocus,{once:!0})},globalThis.addEventListener?.("blur",this._onBlur),this._nativeClipboard.addEventListener("clipboardchange",r=>{t._checkForChanges()}))}async read(){if(!this._nativeClipboard)return this._state?.items??null;const t=this;return await B("clipboard-read",async()=>{if(await N(),this._state?.uuid){const r=await V(this._nativeClipboard,v);if(r&&r===t._state.uuid)return!0;const n=await dt(this._nativeClipboard,h);if(pt(t._state?.uuid,n))return!0}return t._state={items:await Tt(this._nativeClipboard),uuid:null,ref:null},this.dispatchEvent(new Event("clipboardread")),!0},async r=>{this.dispatchEvent(new Event("clipboarderrorread"))}),this._state?.items??[]}async write(t){return this._write({uuid:R(),items:t,ref:null})}async _write(t){if(!this._nativeClipboard)return this._state=t,this.dispatchEvent(new Event("clipboardwrite")),this.dispatchEvent(new Event("clipboardchange")),null;const r=this,n=[],o=t.uuid;let a=t.items??[];const i=()=>{r._state={uuid:o,ref:t.ref,items:n},r.dispatchEvent(new Event("clipboardwrite")),r.dispatchEvent(new Event("clipboardchange"))};await B("clipboard-write",async()=>{await N(),o&&a.length===0&&(a.push(new ClipboardItem({[v]:new Blob([o],{type:v})})),a.push(new ClipboardItem({[h]:new Blob([ft(o)],{type:h})})));for(let l=0;l<Math.min(1,a.length);l++){const s=a[l];let c=s.types.indexOf(h),d=null;if(c!==-1){const f=await s.getType(h);d=await W(f),d&&(d=Wt(o,d))}if(!d&&s.types.includes(b)){const f=await s.getType(b);if(f){let p=null;typeof f=="string"?(console.warn("text as string",f),p=f):p=await W(f),p&&(d=`<div ${C}="${o}">${p}</div>`)}}if(!d&&s.types.includes(L)){const f=await s.getType(L),p=_t(await f.arrayBuffer());d=`<div ${C}="${o}"><img src="${Ot+p}"/></div>`}!d&&o&&(d=ft(o));const w=new Blob([d??""],{type:h}),u={};for(let f=0;f<s.types.length;f++){const p=s.types[f];u[p]=f===c?w:s.getType(p)}d&&c===-1&&(u[h]=w),o&&(u[v]=new Blob([o],{type:v})),n.push(new ClipboardItem(u))}try{n&&n.length!==0?await this._nativeClipboard.write(n):await(async l=>{l&&await l.writeText("")})(this._nativeClipboard)}catch(l){l.message?.includes("Document is not focused")||console.warn("Unable to write to native clipboard: ",l)}return i(),!0},async l=>{this.dispatchEvent(new Event("clipboarderrorwrite")),i()})}async writeReference(t){if(!t)return void this.clear();let r=null;const n={};try{const a=await t.toText?.()??null;a&&(n[b]=new Blob([a??""],{type:b}))}catch(a){r=a}try{const a=await t.toHtml?.()??null;a&&(n[h]=new Blob([a],{type:h}))}catch(a){r=a,console.warn("export to html",a)}try{const a=await t.toImage?.()??null;a&&(n[L]=a)}catch(a){r=a,console.warn("export to png",a)}const o=this._write({uuid:R(),ref:t,items:Object.keys(n).length>0?[new ClipboardItem(n)]:null});if(r)throw r;return o}clear(t=!1){this._state&&(this._state=null,t&&this._write({uuid:null,ref:null,items:null}),this.dispatchEvent(new Event("clipboardwrite")),this.dispatchEvent(new Event("clipboardchange")))}async readReference(){return await this.read(),this._state?.ref??null}readText(){return new Promise(async(t,r)=>{const n=await this.read();let o=null;for(let i=0;!o&&n&&i<n.length;i++)n[i].types.includes(b)&&(o=await n[i].getType(b));if(!o)return void t("");const a=new FileReader;a.onload=()=>{t(a.result)},a.readAsText(o),a.onerror=i=>{r(i)}})}async writeText(t){const r=[new ClipboardItem({[b]:new Blob([t],{type:b})})];return this._write({uuid:R(),items:r,ref:null})}addEventListener(t,r,n={}){const o=n?.capture?this._listenersCapture:this._listeners;let a=o.get(t);a||(a=new Map,o.set(t,a)),a.set(r,typeof n=="boolean"?{}:n)}dispatchEvent(t){if(!t)return;const r=n=>{const o=n.get(t.type);o&&o.forEach((a,i)=>{try{typeof i=="function"?i(t):i.handleEvent&&i.handleEvent(t),a.once&&o.delete(i)}catch(l){console.warn(l)}})};return r(this._listenersCapture),r(this._listeners),!0}removeEventListener(t,r,n){const o=n?.capture?this._listenersCapture:this._listeners,a=o.get(t);a&&(a.delete(r),a.size===0&&o.delete(t))}close(){globalThis.removeEventListener?.("focus",this._onFocus),globalThis.removeEventListener?.("blur",this._onBlur)}}var z;(z=wt||(wt={})).ErrorMessages=jt,z.Global=new z;let ht=null,q=null,M=null;const Vt=Object.freeze({compileTypescript:async function(e){if(!e?.source)return null;if(q&&xt.deepEqual(q,e))return ht;const t=await async function(){if(M)return M;const{TypeScriptCompiler:n}=await Promise.resolve().then(()=>require("./2TmE8J3tbgenWyNa.cjs"));return M=new n,M}(),r=await t.compileModule(e);return ht=r,q=e,r}}),Gt=Object.freeze(Object.defineProperty({__proto__:null,ScriptingUtils:Vt},Symbol.toStringTag,{value:"Module"}));exports.$=xt,exports.i=Gt;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.3
|
|
3
|
-
*
|
|
4
|
-
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
|
-
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
-
*/Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.default={DAVERAGE:{s:"Averages the values in a column in a list or database that match conditions you specify",p:{database:{d:"is the range of cells that makes up the list or database. A database is a list of related data"},field:{d:"is either the label of the column in double quotation marks or a number that represents the column's position in the list"},criteria:{d:"is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition"}},h:"Unimplemented"},DCOUNT:{s:"Counts the cells containing numbers in the field (column) of records in the database that match the conditions you specify",p:{database:{d:"is the range of cells that makes up the list or database. A database is a list of related data"},field:{d:"is either the label of the column in double quotation marks or a number that represents the column's position in the list"},criteria:{d:"is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition"}},h:"Unimplemented"},DCOUNTA:{s:"Counts nonblank cells in the field (column) of records in the database that match the conditions you specify",p:{database:{d:"is the range of cells that makes up the list or database. A database is a list of related data"},field:{d:"is either the label of the column in double quotation marks or a number that represents the column's position in the list"},criteria:{d:"is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition"}},h:"Unimplemented"},DGET:{s:"Extracts from a database a single record that matches the conditions you specify",p:{database:{d:"is the range of cells that makes up the list or database. A database is a list of related data"},field:{d:"is either the label of the column in double quotation marks or a number that represents the column's position in the list"},criteria:{d:"is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition"}},h:"Unimplemented"},DMAX:{s:"Returns the largest number in the field (column) of records in the database that match the conditions you specify",p:{database:{d:"is the range of cells that makes up the list or database. A database is a list of related data"},field:{d:"is either the label of the column in double quotation marks or a number that represents the column's position in the list"},criteria:{d:"is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition"}},h:"Unimplemented"},DMIN:{s:"Returns the smallest number in the field (column) of records in the database that match the conditions you specify",p:{database:{d:"is the range of cells that makes up the list or database. A database is a list of related data"},field:{d:"is either the label of the column in double quotation marks or a number that represents the column's position in the list"},criteria:{d:"is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition"}},h:"Unimplemented"},DPRODUCT:{s:"Multiplies the values in the field (column) of records in the database that match the conditions you specify",p:{database:{d:"is the range of cells that makes up the list or database. A database is a list of related data"},field:{d:"is either the label of the column in double quotation marks or a number that represents the column's position in the list"},criteria:{d:"is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition"}},h:"Unimplemented"},DSTDEV:{s:"Estimates the standard deviation based on a sample from selected database entries",p:{database:{d:"is the range of cells that makes up the list or database. A database is a list of related data"},field:{d:"is either the label of the column in double quotation marks or a number that represents the column's position in the list"},criteria:{d:"is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition"}},h:"Unimplemented"},DSTDEVP:{s:"Calculates the standard deviation based on the entire population of selected database entries",p:{database:{d:"is the range of cells that makes up the list or database. A database is a list of related data"},field:{d:"is either the label of the column in double quotation marks or a number that represents the column's position in the list"},criteria:{d:"is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition"}},h:"Unimplemented"},DSUM:{s:"Adds the numbers in the field (column) of records in the database that match the conditions you specify",p:{database:{d:"is the range of cells that makes up the list or database. A database is a list of related data"},field:{d:"is either the label of the column in double quotation marks or a number that represents the column's position in the list"},criteria:{d:"is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition"}},h:"Unimplemented"},DVAR:{s:"Estimates variance based on a sample from selected database entries",p:{database:{d:"is the range of cells that makes up the list or database. A database is a list of related data"},field:{d:"is either the label of the column in double quotation marks or a number that represents the column's position in the list"},criteria:{d:"is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition"}},h:"Unimplemented"},DVARP:{s:"Calculates variance based on the entire population of selected database entries",p:{database:{d:"is the range of cells that makes up the list or database. A database is a list of related data"},field:{d:"is either the label of the column in double quotation marks or a number that represents the column's position in the list"},criteria:{d:"is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition"}},h:"Unimplemented"}};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.3
|
|
3
|
-
*
|
|
4
|
-
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
|
-
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
-
*/Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.default={AVEDEV:{s:"Returns the average of the absolute deviations of data points from their mean. Arguments can be numbers or names, arrays, or references that contain numbers",p:{number:{d:"number1,number2,... are 1 to 255 arguments for which you want the average of the absolute deviations"}}},AVERAGE:{s:"Returns the average (arithmetic mean) of its arguments, which can be numbers or names, arrays, or references that contain numbers",p:{number:{d:"number1,number2,... are 1 to 255 numeric arguments for which you want the average"}}},AVERAGEA:{s:"Returns the average (arithmetic mean) of its arguments, evaluating text and FALSE in arguments as 0; TRUE evaluates as 1. Arguments can be numbers, names, arrays, or references",p:{value:{d:"value1,value2,... are 1 to 255 arguments for which you want the average"}}},AVERAGEIF:{s:"Finds average(arithmetic mean) for the cells specified by a given condition or criteria",p:{range:{d:"is the range of cells you want evaluated"},criteria:{d:"is the condition or criteria in the form of a number, expression, or text that defines which cells will be used to find the average"},averageRange:{d:"are the actual cells to be used to find the average. If omitted, the cells in range are used"}},h:"Unimplemented"},AVERAGEIFS:{s:"Finds average(arithmetic mean) for the cells specified by a given set of conditions or criteria",p:{averageRange:{d:"are the actual cells to be used to find the average."},criteriaRange:{d:"criteria_range1,criteria_range2,... is the range of cells you want evaluated for the particular condition"},criteria:{d:"criteria1,criteria2,... is the condition or criteria in the form of a number, expression, or text that defines which cells will be used to find the average"}},h:"Unimplemented"},COUNT:{s:"Counts the number of cells in a range that contain numbers",p:{number:{d:"value1,value2,... are 1 to 255 arguments that can contain or refer to a variety of different types of data, but only numbers are counted"}}},COUNTA:{s:"Counts the number of cells in a range that are not empty",p:{value:{d:"value1,value2,... are 1 to 255 arguments representing the values and cells you want to count. Values can be any type of information"}}},COUNTBLANK:{s:"Counts the number of empty cells in a specified range of cells",p:{range:{d:"is the range from which you want to count the empty cells"}},h:"Unimplemented"},COUNTIF:{s:"Counts the number of cells within a range that meet the given condition",p:{range:{d:"is the range of cells from which you want to count nonblank cells"},criteria:{d:"is the condition in the form of a number, expression, or text that defines which cells will be counted"}},h:"Unimplemented"},COUNTIFS:{s:"Counts the number of cells specified by a given set of conditions or criteria",p:{criteriaRange:{d:"criteria_range1,criteria_range2,... is the range of cells you want evaluated for the particular condition"},criteria:{d:"criteria1,criteria2,... is the condition in the form of a number, expression, or text that defines which cells will be counted"}},h:"Unimplemented"},LARGE:{s:"Returns the k-th largest value in a data set. For example, the fifth largest number.",p:{array:{d:"is the array or range of data for which you want to determine the k-th largest value."},k:{d:"is the position (from the largest) in the array or cell range of the value to return."}}},MAX:{s:"Returns the largest value in a set of values. Ignores logical values and text",p:{number:{d:"number1,number2,... are 1 to 255 numbers, empty cells, logical values, or text numbers for which you want the maximum"}}},MAXA:{s:"Returns the largest value in a set of values. Does not ignore logical values and text",p:{value:{d:"value1,value2,... are 1 to 255 numbers, empty cells, logical values, or text numbers for which you want the maximum"}}},MAXIFS:{s:"Returns the maximum value among cells specified by a given set of conditions or criteria",p:{maxRange:{d:"the cells in which to determine the maximum value"},criteriaRange:{d:"criteria_range1,criteria_range2,... is the range of cells you want to evaluate for the particular condition"},criteria:{d:"criteria1,criteria2,... is the condition or criteria in the form of a number, expression, or text that defines which cells will be included when determining the maximum value"}},h:"Unimplemented"},MEDIAN:{s:"Returns the median, or the number in the middle of the set of given numbers",p:{number:{d:"number1,number2,... are 1 to 255 numbers or names, arrays, or references that contain numbers for which you want the median"}}},MIN:{s:"Returns the smallest number in a set of values. Ignores logical values and text",p:{number:{d:"number1,number2,... are 1 to 255 numbers, empty cells, logical values, or text numbers for which you want the minimum"}}},MINA:{s:"Returns the smallest value in a set of values. Does not ignore logical values and text",p:{value:{d:"value1,value2,... are 1 to 255 numbers, empty cells, logical values, or text numbers for which you want the minimum"}}},MINIFS:{s:"Returns the minimum value among cells specified by a given set of conditions or criteria",p:{maxRange:{d:"is the range of cells to evaluate for the minimum value"},criteriaRange:{d:"is the range of cells to evaluate against the criteria"},criteria:{d:"is the criteria to evaluate against the criteria range"}},h:"Unimplemented"},PERMUT:{s:"Returns the number of permutations for a given number of objects that can be selected from the total objects",p:{number:{d:"is the total number of objects"},numberChoosen:{d:"is the number of objects in each permutation"}},h:"Unimplemented"},PERMUTATIONA:{s:"Returns the number of permutations for a given number of objects (with repetitions) that can be selected from the total objects",p:{number:{d:"is the total number of objects"},numberChoosen:{d:"is the number of objects in each permutation"}},h:"Unimplemented"},SMALL:{s:"Returns the k-th smallest value in a data set. For example, the fifth smallest number",p:{array:{d:"is an array or range of numerical data for which you want to determine the k-th smallest value"},k:{d:"is the position (from the smallest) in the array or range of the value to return"}}}};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.3
|
|
3
|
-
*
|
|
4
|
-
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
|
-
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
-
*/Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),i=require("react"),t=require("./6AlZR3dVayTg7C5E.cjs"),D=["Ok","Cancel"],h=i.memo(C=>{const{initialComments:T=null,onUpdateComments:d,context:O,onOption:m,onValidateOption:c,onDone:p,options:g=D,defaultOption:u=g?.[0],cancelOption:l="Cancel",sx:b,...y}=C,x=i.useMemo(()=>{const e=T??O?.()?.getComments();let n="";if(e&&e.content&&e.content.runs){const s=e.content.runs;for(let o=0;o<s.length;o++){const S=s[o];n+=S?.text}}return n},[]),[a,F]=i.useState(x),[j,P]=i.useState(!1),f=i.useCallback(async(e,n)=>null,[]),k=t.Te(async e=>{const n=a===""?[]:a.split(`
|
|
7
|
-
`);if(e!==l){const s=[];for(let o=0;o<n.length;o++)s.push({text:n[o]});d?.({content:{runs:s}})}m?.(e,e===l,e===u),p?.()},[a,d,p,m,u,l]),v=t.Te(e=>{F(e.target.value),f(e.target.value,null)},[c]),w=t.Te(async e=>{let n=await Promise.resolve(c?.(e));try{n!==!1&&(n=await f(a,e))}catch{}return n??!0},[c,a]);return r.jsx(t.Tb,{title:(x?"Edit":"Insert")+" Comments",options:g,onDone:p,onOption:e=>k(e),onValidateOption:w,defaultOption:u,cancelOption:l,autoFocusSel:".autoFocus",sx:{width:"480px",...b},...y,children:r.jsx(t.Box,{sx:{paddingTop:e=>e.spacing(1),paddingBottom:e=>e.spacing(0),rowGap:e=>e.spacing(1),display:"flex",flexDirection:"column"},children:r.jsx(t.FormControl,{sx:{paddingTop:e=>e.spacing(1.5),minWidth:135,width:"100%"},size:"small",children:r.jsx(t.TextField,{label:"Comments",placeholder:"Enter a comment.",onFocus:e=>{j||e.target?.select(),P(!0)},sx:{"& .MuiFormHelperText-root":{marginTop:e=>e.spacing(.5)}},InputLabelProps:{shrink:!0},InputProps:{inputProps:{className:"autoFocus",spellCheck:!1,autoComplete:"off",sx:{paddingTop:e=>e.spacing(1.25),paddingBottom:e=>e.spacing(.75),backgroundImage:`linear-gradient(${t.alpha("#fff",t.no(5))}, ${t.alpha("#fff",t.no(5))})`}}},value:a,onChange:v,onContextMenu:e=>{e.stopPropagation()}})})})})});exports.CommentsDialog=h,exports.default=h;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.3
|
|
3
|
-
*
|
|
4
|
-
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
|
-
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
-
*/Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const he=require("./D7MyL7xgt0wGGz3I.cjs");var se,J,r;(J=se||(se={})).Orientation={Column:"column",Row:"row"},J.Orientations={...J.Orientation,Both:"both"},J.Direction={Up:"up",Down:"down",Left:"left",Right:"right"},(e=>{e.Code={Parse:0,Null:1,Div0:2,Value:3,Ref:4,Name:5,Num:6,NA:7,GettingData:8,Spill:9,Connect:10,Blocked:11,Unknown:12,Field:13,Calc:14,Busy:16,Python:19,Timeout:20},e.Label={Parse:"#PARSE!",Null:"#NULL!",Div0:"#DIV/0!",Value:"#VALUE!",Ref:"#REF!",Name:"#NAME?",Num:"#NUM!",NA:"#N/A",GettingData:"#GETTING_DATA",Spill:"#SPILL!",Connect:"#CONNECT!",Blocked:"#BLOCKED!",Unknown:"#UNKNOWN!",Field:"#FIELD!",Calc:"#CALC!",Busy:"#BUSY!",Python:"#PYTHON!",Timeout:"#TIMEOUT!"};class a extends Error{constructor(n,i,S,q){super(S,q),this._label=i,this._code=n,this.details=q}static{this.code=e.Code.Unknown}get isFormulaError(){return!0}getLabel(){return this._label}getCode(){return this._code}equals(n){return!!n&&(this._code===n._code||this._code===n.code)}get[Symbol.toStringTag](){return"[FormulaError]"}toString(){return this.message||this._label}}e.Known=a;class k extends a{constructor(n,i){super(e.Code.Parse,e.Label.Parse,n,i)}static{this.code=e.Code.Parse}getDetails(){const n=this.details;return{line:n?.line??1,column:n?.column??1,offset:n?.offset??0,length:n?.length??0}}}e.Parse=k;class x extends a{constructor(n,i){super(e.Code.Null,e.Label.Null,n,i)}static{this.code=e.Code.Null}}e.Null=x;class j extends a{constructor(n,i){super(e.Code.Div0,e.Label.Div0,n,i)}static{this.code=e.Code.Div0}}e.Div0=j;class X extends a{constructor(n,i){super(e.Code.Value,e.Label.Value,n,i)}static{this.code=e.Code.Value}}e.Value=X;class s extends a{constructor(n,i){super(e.Code.Ref,e.Label.Ref,n,i)}static{this.code=e.Code.Ref}}e.Ref=s;class K extends a{constructor(n,i){super(e.Code.Name,e.Label.Name,n,i)}static{this.code=e.Code.Name}}e.Name=K;class M extends a{constructor(n,i){super(e.Code.Num,e.Label.Num,n,i)}static{this.code=e.Code.Num}}e.Num=M;class U extends a{constructor(n,i){super(e.Code.NA,e.Label.NA,n,i)}static{this.code=e.Code.NA}}e.NA=U;class Y extends a{constructor(n,i){super(e.Code.GettingData,e.Label.GettingData,n,i)}static{this.code=e.Code.GettingData}}e.GettingData=Y;class z extends a{constructor(n,i){super(e.Code.Spill,e.Label.Spill,n,i)}static{this.code=e.Code.Spill}}e.Spill=z;class O extends a{constructor(n,i){super(e.Code.Connect,e.Label.Connect,n,i)}static{this.code=e.Code.Connect}}e.Connect=O;class G extends a{constructor(n,i){super(e.Code.Blocked,e.Label.Blocked,n,i)}static{this.code=e.Code.Blocked}}e.Blocked=G;class _ extends a{constructor(n,i){super(e.Code.Unknown,e.Label.Unknown,n,i)}static{this.code=e.Code.Unknown}}e.Unknown=_;class F extends a{constructor(n,i){super(e.Code.Field,e.Label.Field,n,i)}static{this.code=e.Code.Field}}e.Field=F;class Q extends a{constructor(n,i){super(e.Code.Calc,e.Label.Calc,n,i)}static{this.code=e.Code.Calc}}e.Calc=Q;class I extends a{constructor(n,i){super(e.Code.Busy,e.Label.Busy,n,i)}static{this.code=e.Code.Busy}}e.Busy=I;class P extends a{constructor(n,i){super(e.Code.Python,e.Label.Python,n,i)}static{this.code=e.Code.Python}}e.Python=P;class Z extends a{constructor(n,i){super(e.Code.Timeout,e.Label.Timeout,n,i)}static{this.code=e.Code.Timeout}}e.Timeout=Z})(r||(r={}));const f={};f[r.Code.Parse]=r.Parse,f[r.Code.Null]=r.Null,f[r.Code.Div0]=r.Div0,f[r.Code.Value]=r.Value,f[r.Code.Ref]=r.Ref,f[r.Code.Name]=r.Name,f[r.Code.Num]=r.Num,f[r.Code.NA]=r.NA,f[r.Code.GettingData]=r.GettingData,f[r.Code.Spill]=r.Spill,f[r.Code.Connect]=r.Connect,f[r.Code.Blocked]=r.Blocked,f[r.Code.Unknown]=r.Unknown,f[r.Code.Field]=r.Field,f[r.Code.Calc]=r.Calc,f[r.Code.Busy]=r.Busy,f[r.Code.Python]=r.Python,f[r.Code.Timeout]=r.Timeout;const ce=new Map,ie=new Map,de=new Map,ue=new Map,le=Object.keys(f);for(let e=0;e<le.length;e++){const a=le[e],k=f[a];de.set(r.Label[a],k),ue.set(r.Code[a],k);const x=new k;ce.set(x.getLabel(),x),ie.set(x.getCode(),x)}const ge=ie.get(r.Code.Unknown);var p;(p=r||(r={})).BuiltIn={Parse:new p.Parse,Null:new p.Null,Div0:new p.Div0,Value:new p.Value,Ref:new p.Ref,Name:new p.Name,Num:new p.Num,NA:new p.NA,GettingData:new p.GettingData,Spill:new p.Spill,Connect:new p.Connect,Blocked:new p.Blocked,Unknown:new p.Unknown,Field:new p.Field,Calc:new p.Calc,Busy:new p.Busy,Python:new p.Python,Timeout:new p.Timeout},p.getBuiltInByLabel=e=>ce.get(e),p.newTypedError=(e,a,k)=>{let x;return x=typeof e=="string"?de.get(e):ue.get(e),x||(x=p.Unknown),new x(a,k)},p.getBuiltInById=e=>ie.get(e)||ge;let A=null,H=null;const we={compilerOptions:{target:"esnext"}},Ce=async()=>`
|
|
7
|
-
interface FirstTest {
|
|
8
|
-
isTrue?: boolean;
|
|
9
|
-
}
|
|
10
|
-
`,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("./gjPOOFOH_THG1O-L.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]:`
|
|
11
|
-
/**
|
|
12
|
-
* Represents the completion of an asynchronous operation
|
|
13
|
-
*/
|
|
14
|
-
interface Promise<T> {
|
|
15
|
-
/**
|
|
16
|
-
* Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The
|
|
17
|
-
* resolved value cannot be modified from the callback.
|
|
18
|
-
* @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).
|
|
19
|
-
* @returns A Promise for the completion of the callback.
|
|
20
|
-
*/
|
|
21
|
-
finally(onfinally?: (() => void) | undefined | null): Promise<T>;
|
|
22
|
-
}
|
|
23
|
-
`,[_]: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:()=>`
|
|
24
|
-
`},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("./D4CfqUrC04nbs39G.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=`
|
|
25
|
-
export const FormulaContext = globalThis.${l}?.FormulaContext;
|
|
26
|
-
export const ScalarType = globalThis.${l}?.ScalarType;
|
|
27
|
-
export const Observable = globalThis.${l}?.Observable;
|
|
28
|
-
export const IRange = globalThis.${l}?.IRange;
|
|
29
|
-
export const FormulaError = globalThis.${l}?.FormulaError;
|
|
30
|
-
// Add more exports as needed
|
|
31
|
-
`,L={name:"sheetxl-esbuild-in-memory",setup(g){const m="sheetxl-"+new Date().getTime();g.onResolve({filter:new RegExp(`^(${E.replace("/","\\/")}|${N})$`)},o=>({path:o.path,namespace:m})),g.onResolve({filter:/.*/},o=>{if(o.namespace!==m)return console.warn(`esbuild: Treating import "${o.path}" as external.`),{path:o.path,external:!0}}),g.onLoad({filter:/.*/,namespace:m},o=>{let h;if(o.path===E)h=d;else{if(o.path!==N)return{errors:[{text:`Cannot load unknown path in ${m}: ${o.path}`}]};h=T}return{contents:h,loader:"ts"}})}},b=await c.build({entryPoints:[E],bundle:!0,write:!1,format:"esm",plugins:[L],sourcemap:"inline",tsconfigRaw:we,minify:!0,platform:"neutral"});if(b.outputFiles&&b.outputFiles.length>0)return b.outputFiles[0].text;throw b.errors&&b.errors.length>0?new Error(`esbuild bundling failed: ${b.errors.map(g=>g.text).join(`
|
|
32
|
-
`)}`):new Error("esbuild did not produce an output file.")}catch(c){throw console.error("esbuild bundling process failed:",c),c}}(0,K,z))}catch{console.warn("Error bundling script")}const re={functions:U,commitId:q,source:a,name:"Script",language:"typescript",compiled:K};return M&&(re.autoRun=M),re};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.3
|
|
3
|
-
*
|
|
4
|
-
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
|
-
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
-
*/Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.default={BAHTTEXT:{s:"Converts a number to baht (Thai) text",p:{number:{d:"is the number to convert"}}}};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";/**
|
|
2
|
-
* @license @sheetxl/studio-vanilla - SheetXL Studio - Vanilla entry point for integrating SheetXL UI. - v0.3.3
|
|
3
|
-
*
|
|
4
|
-
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
|
-
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
-
*/Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.default={COMPLEX:{s:"Converts real and imaginary coefficients into a complex number",p:{realNum:{d:"is the real coefficient of the complex number"},iNum:{d:"is the imaginary coefficient of the complex number"},suffix:{d:"is the suffix for the imaginary component of the complex number",v:"i"}}},IMABS:{s:"Returns the absolute value (modulus) of a complex number",p:{inumber:{d:"is a complex number for which you want the absolute value"}}},IMAGINARY:{s:"Returns the imaginary coefficient of a complex number",p:{inumber:{d:"is a complex number for which you want the imaginary coefficient"}}},IMARGUMENT:{s:"Returns the argument q, an angle expressed in radians",p:{inumber:{d:"is a complex number for which you want the argument"}}},IMCONJUGATE:{s:"Returns the complex conjugate of a complex number",p:{inumber:{d:"is a complex number for which you want the conjugate"}}},IMCOS:{s:"Returns the cosine of a complex number",p:{inumber:{d:"is a complex number for which you want the cosine"}}},IMCOSH:{s:"Returns the hyperbolic cosine of a complex number",p:{inumber:{d:"is a complex number for which you want the hyperbolic cosine"}}},IMCOT:{s:"Returns the cotangent of a complex number",p:{inumber:{d:"is a complex number for which you want the cotangent"}}},IMCSC:{s:"Returns the cosecant of a complex number",p:{inumber:{d:"is a complex number for which you want the cosecant"}}},IMCSCH:{s:"Returns the hyperbolic cosecant of a complex number",p:{inumber:{d:"is a complex number for which you want the hyperbolic cosecant"}}},IMDIV:{s:"Returns the quotient of two complex numbers",p:{inumber1:{d:"is the complex numerator or dividend"},inumber2:{d:"is the complex denominator or divisor"}}},IMEXP:{s:"Returns the exponential of a complex number",p:{inumber:{d:"is a complex number for which you want the exponential"}}},IMLN:{s:"Returns the exponential of a complex number",p:{inumber:{d:"is a complex number for which you want the exponential"}}},IMLOG10:{s:"Returns the base-10 logarithm of a complex number",p:{inumber:{d:"is a complex number for which you want the common logarithm"}}},IMLOG2:{s:"Returns the base-2 logarithm of a complex number",p:{inumber:{d:"is a complex number for which you want the base-2 logarithm"}}},IMPOWER:{s:"Returns the base-2 logarithm of a complex number",p:{inumber:{d:"is a complex number for which you want the base-2 logarithm"},number:{}}},IMPRODUCT:{s:"Returns the product of 1 to 255 complex numbers",p:{inumber:{d:"inumber1,inumber2,... Inumber1, Inumber2,... are from 1 to 255 complex numbers to multiply."}}},IMREAL:{s:"Returns the real coefficient of a complex number",p:{inumber:{d:"is a complex number for which you want the real coefficient"}}},IMSEC:{s:"Returns the secant of a complex number",p:{inumber:{d:"is a complex number for which you want the secant"}}},IMSECH:{s:"Returns the hyperbolic secant of a complex number",p:{inumber:{d:"is a complex number for which you want the hyperbolic secant"}}},IMSIN:{s:"Returns the sine of a complex number",p:{inumber:{d:"is a complex number for which you want the sine"}}},IMSINH:{s:"Returns the hyperbolic sine of a complex number",p:{inumber:{d:"is a complex number for which you want the hyperbolic sine"}}},IMSQRT:{s:"Returns the square root of a complex number",p:{inumber:{d:"is a complex number for which you want the square root"}}},IMSUB:{s:"Returns the difference of two complex numbers",p:{inumber1:{d:"is the complex number from which to subtract inumber2"},inumber2:{d:"is the complex number to subtract from inumber1"}}},IMSUM:{s:"Returns the sum of complex numbers",p:{inumber:{d:"inumber1,inumber2,... are from 1 to 255 complex numbers to add"}}},IMTAN:{s:"Returns the tangent of a complex number",p:{inumber:{d:"is a complex number for which you want the tangent"}}}};
|