@sheetxl/sdk 0.4.10 → 0.4.11
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/1aBi7EjSv7rlHImN.cjs +7 -0
- package/browser/cjs/2U_vaFrfcRohWzeU.cjs +7 -0
- package/browser/cjs/2nOrVMTAGGx_9TGL.cjs +7 -0
- package/browser/cjs/36TOhwWf_rpUol3H.cjs +7 -0
- package/browser/cjs/5zykq8Nm9_DGD2DJ.cjs +7 -0
- package/browser/cjs/7sNFPxy75NuqCDQh.cjs +7 -0
- package/browser/cjs/B73Zu8_s9vFWOh_O.cjs +7 -0
- package/browser/cjs/BAsFktGxZpUGmZLe.cjs +7 -0
- package/browser/cjs/BEsz-1T9Bb9AaMYL.cjs +7 -0
- package/browser/cjs/B_NhkERIkAJotIbp.cjs +7 -0
- package/browser/cjs/BdTk8Nhw8G_OzMbe.cjs +7 -0
- package/browser/cjs/Bo-zjba28_CWMlTu.cjs +7 -0
- package/browser/cjs/C06jNASkAfV7kAJt.cjs +7 -0
- package/browser/cjs/C9wOzvC_v6DonctC.cjs +7 -0
- package/browser/cjs/CMCnH7IuCm_auikF.cjs +7 -0
- package/browser/cjs/CVXGzVLWLx2CJQm9.cjs +13 -0
- package/browser/cjs/CaFJIY4BbuoM7WDD.cjs +7 -0
- package/{node/esm/Dk3ABmYKlVup4l-u.mjs → browser/cjs/CcEyzUYgzJ50PUJe.cjs} +2 -5
- package/browser/cjs/Ch3tbUYQx16tKF7k.cjs +7 -0
- package/browser/cjs/Cv7d06asyk54h4qg.cjs +7 -0
- package/browser/cjs/DDRgvBqROJxESdD7.cjs +7 -0
- package/browser/cjs/DHpCAbHLYqvLP0Z6.cjs +7 -0
- package/browser/cjs/DNv6ybWP5Fldgc2s.cjs +7 -0
- package/browser/cjs/Dl3IO1DS4B5jgpKI.cjs +7 -0
- package/browser/cjs/DtBxSbHruNTMTsh-.cjs +10 -0
- package/browser/cjs/EU56rWjRMrkea9af.cjs +7 -0
- package/browser/cjs/Yi2_Rw5GDVzd_VxU.cjs +7 -0
- package/browser/cjs/ZJKVquWhB5WR-iPJ.cjs +7 -0
- package/browser/cjs/ZcKbNkAX98aqbRl3.cjs +7 -0
- package/browser/cjs/index.cjs +4 -3
- package/browser/cjs/kyw6u7fpNVXpqgsI.cjs +7 -0
- package/browser/cjs/nQY-7MdNrbTu3EmK.cjs +7 -0
- package/browser/cjs/trblZTDJ1nAz0rWR.cjs +7 -0
- package/browser/cjs/uyHKBD07R0GGZXep.cjs +10 -0
- package/browser/esm/1RkwhM87R80gyTMd.mjs +7 -0
- package/browser/esm/5w39mZuW-sWnmmdV.mjs +7 -0
- package/browser/esm/A8C5de6v1CBMgJZq.mjs +7 -0
- package/browser/esm/B9JgD2n0XcFJj3bo.mjs +7 -0
- package/browser/esm/BEs22-ynP5XGO3w2.mjs +7 -0
- package/browser/esm/BHc7eG4nZizeMBb5.mjs +7 -0
- package/browser/esm/BO0ncqgpx-62w_oX.mjs +7 -0
- package/browser/esm/BQCIUvZDEabV77HK.mjs +7 -0
- package/browser/esm/BVi-ZLSVMKE-zvx4.mjs +7 -0
- package/browser/esm/BsDRByzxyMQ1n9k6.mjs +7 -0
- package/browser/esm/BuUARF4geX1QlFaV.mjs +7 -0
- package/browser/esm/Bv47rNz3qnYylQjD.mjs +7 -0
- package/browser/esm/C-CL0OoNkb1zC70z.mjs +7 -0
- package/browser/esm/CK55N2ZgYHqyYvC2.mjs +7 -0
- package/browser/esm/{CsPZhcz5eLf-CbkJ.mjs → CM_TdYA35a4ZBdwx.mjs} +2 -7
- package/browser/esm/COIpRrbH0PIAxGAv.mjs +7 -0
- package/browser/esm/CV82qaLuZfxcBBSy.mjs +10 -0
- package/browser/esm/CW0tmrVd5h3U4RZa.mjs +7 -0
- package/browser/esm/ChEVz9V1woVRX6WL.mjs +7 -0
- package/browser/esm/CuVRE_tWXcHiZiqD.mjs +7 -0
- package/browser/esm/DCgtfzoZVReua9he.mjs +7 -0
- package/browser/esm/DS7nkzMuzXOAIPF2.mjs +7 -0
- package/browser/esm/DTfK5ukJi2A2cG4a.mjs +13 -0
- package/browser/esm/Dk8xANVVmSj4hMfy.mjs +7 -0
- package/browser/esm/DkBcYI5GMfGWjMpw.mjs +7 -0
- package/browser/esm/DoolQNF8KdKfxJym.mjs +7 -0
- package/browser/esm/Du5u3LhdTaqIps_D.mjs +7 -0
- package/browser/esm/DyvAZkeumXN8GHi4.mjs +7 -0
- package/browser/esm/PVTl6mvmxvLJIzh9.mjs +7 -0
- package/browser/esm/Y5czqevaHtgUcl4L.mjs +7 -0
- package/browser/esm/iKCrpPPbOnKlkUDb.mjs +7 -0
- package/browser/esm/index.mjs +2 -84
- package/browser/esm/lfu13YaazVLqtmeU.mjs +10 -0
- package/browser/esm/s7QvhDE2kJkgBcZ8.mjs +7 -0
- package/licenses/dependencies.txt +3 -3
- package/node/esm/3LAM4nbl-SF93GnL.mjs +80 -0
- package/node/esm/{DQwOIKwLzYjUwPmT.mjs → BMXFtr-jXZGBZS1-.mjs} +1 -1
- package/node/esm/{mkuXwkQcdkBHUMsY.mjs → BmYqJNOwK3UJW3Xe.mjs} +1 -1
- package/node/esm/{B2GPpiwGDiHZ4Mnx.mjs → C9U5rfU-8XoDc_V8.mjs} +4 -4
- package/node/esm/{BD4U7piuPUWGdmvF.mjs → CFWQqFvDJMGXn8Qq.mjs} +1 -1
- package/node/esm/{BJgxNxKnNgVBP4Hp.mjs → CFsZ2V-cxUHf5_Sy.mjs} +1 -1
- package/node/esm/{0OTV9xpta6cm7Yx6.mjs → COCgGLfPgG-NG4Ei.mjs} +1 -1
- package/node/esm/{C8OHYChkHQk2jVzy.mjs → CW0oFlrKt5Uj6nuK.mjs} +1 -1
- package/node/esm/{BelMCqHHX_Ln7ik4.mjs → CXrQQnxTwsX0wNvN.mjs} +2 -2
- package/{browser/esm/CA504N_MgS6GSFmG.mjs → node/esm/CfeR1dXEw7Hep352.mjs} +1 -1
- package/node/esm/{CYs7VtVLEbhMy_iG.mjs → Ck1Jwm7rnsCLVeO1.mjs} +1 -1
- package/node/esm/{Cyb9hq0LVkNm7yoj.mjs → Cn1RL1hYSYnF25uZ.mjs} +1 -1
- package/{browser/esm/DbezlvRyCGtHZgSZ.mjs → node/esm/CnhQwEj214g59Jgw.mjs} +1 -1
- package/node/esm/{DrU-yP_Fb9i7w1lb.mjs → Cuk6l5jbAp5qG99L.mjs} +1 -1
- package/node/esm/{CXhWG2Dg31l6Mo8r.mjs → D8Hpg5A5WcmsFCPu.mjs} +1 -1
- package/node/esm/{CdbncxwuP2LcomiC.mjs → D90o-RTQ6VATF0Rk.mjs} +1 -1
- package/{browser/esm/Dk3ABmYKlVup4l-u.mjs → node/esm/DLdBwr1RlyAhJCV0.mjs} +1 -1
- package/node/esm/{Dq32tysuLIKWEFO_.mjs → DRM7eoEZII5c6Rbr.mjs} +1 -1
- package/{browser/esm/70MScShy9oEFZGC-.mjs → node/esm/DSPiPnJGbhnNKLaY.mjs} +1 -1
- package/node/esm/{DXj8p7NZndUJBRAj.mjs → DUlT61b-CgdPCdu7.mjs} +1 -1
- package/{browser/esm/CCcaxwoCKpK91TYc.mjs → node/esm/DWlgrg4IlFnKTR6y.mjs} +1 -1
- package/{browser/esm/sUZorY3sws86BcMb.mjs → node/esm/DbLo1yZBy3dKaDrf.mjs} +1 -1
- package/{browser/esm/BLET1HFCb5u0-_Eo.mjs → node/esm/DpmEPBmhU3gneOpb.mjs} +1 -1
- package/node/esm/{Br_wraXbAu-VOj0p.mjs → JIc401vM9srbtF9d.mjs} +1 -1
- package/node/esm/{Blozz9cX9jUqOnkK.mjs → KATYAmh0NIiQ-uaD.mjs} +1 -1
- package/node/esm/{YqgO5dqnNDu6tJAq.mjs → QvMgUimFvzdL6-mo.mjs} +2 -2
- package/node/esm/{CxkMMFqIme5dCX9o.mjs → VINTYbFQolKKX9Cn.mjs} +1 -1
- package/node/esm/index.mjs +8 -8
- package/node/esm/{BW04nsyJWeVHBcFW.mjs → jqWzWUQAPXE6S4pP.mjs} +1 -1
- package/node/esm/{BYw54CVi5Zykf7P_.mjs → p6tOM2g4fibuTbKy.mjs} +1 -1
- package/node/esm/{BWm5puKy7haAGpHu.mjs → sroYp2c6WrIr_3vO.mjs} +2 -2
- package/{browser/esm/3AEwlfYXdvg1zUXm.mjs → node/esm/uUNVoKRRBhW28hYx.mjs} +1 -1
- package/package.json +4 -4
- package/browser/cjs/-4uKwgMCs2uA4zYY.cjs +0 -6
- package/browser/cjs/23Opade9fWTWmOw5.cjs +0 -6
- package/browser/cjs/6SNZR9WEya-Mi0Ec.cjs +0 -1501
- package/browser/cjs/7lk46bEggXm0Adux.cjs +0 -6
- package/browser/cjs/B0U3u9iqqnQvnw_Z.cjs +0 -6
- package/browser/cjs/BEQPlpKfeBPKELfa.cjs +0 -6
- package/browser/cjs/BKdxsyIZAckH_1Rs.cjs +0 -6
- package/browser/cjs/BKu_2G3LBpnvF7WK.cjs +0 -6
- package/browser/cjs/BTWYrYyq7P04Hhgy.cjs +0 -6
- package/browser/cjs/BVgdgozKIof0HqZa.cjs +0 -6
- package/browser/cjs/BXi-7ztAEss53BNW.cjs +0 -6
- package/browser/cjs/BzzSS21ndAnpHnTK.cjs +0 -6
- package/browser/cjs/C-JX44FribP4xuCm.cjs +0 -6
- package/browser/cjs/C12NQkp7rKKeLgpL.cjs +0 -60
- package/browser/cjs/CIisU9Fr1gqlOapx.cjs +0 -13
- package/browser/cjs/CRjnB0UGZizopxIy.cjs +0 -7
- package/browser/cjs/CfmxldeTiQsDhe4k.cjs +0 -6
- package/browser/cjs/CrkVZFNUXb_YVEfl.cjs +0 -6
- package/browser/cjs/Csmvu-Gg7GIET2fx.cjs +0 -124
- package/browser/cjs/D5kea7N3qYrpyi6Z.cjs +0 -6
- package/browser/cjs/DDPVADUPfi4JqKY9.cjs +0 -15
- package/browser/cjs/DJSDSOdIMakiUL9U.cjs +0 -6
- package/browser/cjs/DgJG2zU2CpBE2JKD.cjs +0 -6
- package/browser/cjs/DqHT7AmlwwAApU0v.cjs +0 -32
- package/browser/cjs/DqdKJmCBZ3tiiTyS.cjs +0 -6
- package/browser/cjs/Dy_w3ejsXCUjhwLi.cjs +0 -6
- package/browser/cjs/EAjldglgyKcpKzX6.cjs +0 -6
- package/browser/cjs/QraWsiDLYuP865Pt.cjs +0 -6
- package/browser/cjs/TMXcSm2F77kJ6GbS.cjs +0 -6
- package/browser/cjs/g9Un0PdQLp8LcMP-.cjs +0 -6
- package/browser/cjs/hNHT5yLsXAZ-mS5K.cjs +0 -6
- package/browser/cjs/o_FLjAWENTjXcsuZ.cjs +0 -6
- package/browser/cjs/rBPqKMZ7T6poaL7T.cjs +0 -6
- package/browser/esm/3-pvLx1jF0RJ56jT.mjs +0 -472
- package/browser/esm/3kB3KaOgV-3ox4C3.mjs +0 -426
- package/browser/esm/BJgxNxKnNgVBP4Hp.mjs +0 -10
- package/browser/esm/BO-YRuEp35GIVL4O.mjs +0 -10
- package/browser/esm/BOL-jxmJyje4-Hxe.mjs +0 -10
- package/browser/esm/BSFibAPQFeBovPl3.mjs +0 -10
- package/browser/esm/BW04nsyJWeVHBcFW.mjs +0 -10
- package/browser/esm/BaGFns-M8bCUjgnc.mjs +0 -3974
- package/browser/esm/BifIJRmeTJJLYCr-.mjs +0 -24
- package/browser/esm/Br_wraXbAu-VOj0p.mjs +0 -10
- package/browser/esm/BvE9cJg2esqHIr98.mjs +0 -10
- package/browser/esm/CMO8yX7mxIaFV5GC.mjs +0 -820
- package/browser/esm/Cqf8ZomeNI_0U-UD.mjs +0 -29
- package/browser/esm/DQwOIKwLzYjUwPmT.mjs +0 -10
- package/browser/esm/DXj8p7NZndUJBRAj.mjs +0 -10
- package/browser/esm/DcPcMjMOmfyIGaSN.mjs +0 -1575
- package/browser/esm/DhqkybSwX2wqkqcf.mjs +0 -24009
- package/browser/esm/DpJLw2aGOg6yuBjH.mjs +0 -10
- package/browser/esm/Dq32tysuLIKWEFO_.mjs +0 -10
- package/browser/esm/DrU-yP_Fb9i7w1lb.mjs +0 -10
- package/browser/esm/WY6tkuqX7I-Tw85_.mjs +0 -5651
- package/browser/esm/mkuXwkQcdkBHUMsY.mjs +0 -10
- package/browser/esm/skZ-cAv6270PFv3k.mjs +0 -10
- package/browser/esm/xUdz3zy_nz-hMfhq.mjs +0 -21
- package/node/esm/3AEwlfYXdvg1zUXm.mjs +0 -10
- package/node/esm/70MScShy9oEFZGC-.mjs +0 -10
- package/node/esm/BLET1HFCb5u0-_Eo.mjs +0 -10
- package/node/esm/CA504N_MgS6GSFmG.mjs +0 -10
- package/node/esm/CCcaxwoCKpK91TYc.mjs +0 -10
- package/node/esm/CSgS-BWwvF8YA6gv.mjs +0 -80
- package/node/esm/DbezlvRyCGtHZgSZ.mjs +0 -10
- package/node/esm/sUZorY3sws86BcMb.mjs +0 -10
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
|
|
3
|
+
*
|
|
4
|
+
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
|
+
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
+
*/
|
|
7
|
+
"use strict";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"}}}};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
|
|
3
|
+
*
|
|
4
|
+
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
|
+
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
+
*/
|
|
7
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.default={DATE:{s:"Returns the number that represents the date in Microsoft Excel date-time code",p:{year:{d:"is a number from 1900 or 1904 (depending on the workbook's date system) to 9999"},month:{d:"is a number from 1 to 12 representing the month of the year"},day:{d:"is a number from 1 to 31 representing the day of the month"}}},DATEDIF:{s:"Returns the number of days between two dates",p:{startDate:{d:"is a serial date number that represents the start date"},endDate:{d:"is a serial date number that represents the end date"},unit:{d:"is a string that specifies the unit of time to use"}},h:"Legacy"},DATESTRING:{s:"Returns NA.",p:{number:{d:"is a number that is ignored"}},h:"Legacy"},DATEVALUE:{s:"Converts a date in the form of text to a number that represents the date in Microsoft Excel date-time code",p:{dateText:{d:"is text that represents a date in a Microsoft Excel date format, between 1/1/1900 or 1/1/1904 (depending on the workbook's date system) and 12/31/9999"}}},DAY:{s:"Returns the day of the month, a number from 1 to 31.",p:{serialOrString:{d:"is a number in the date-time code used by Excel or text in time format, such as 16:48:00 or 4:48:00 PM"}}},DAYS:{s:"Returns the number of days between the two dates.",p:{endDate:{d:"start_date and end_date are the two dates between which you want to know the number of days"},startDate:{d:"start_date and end_date are the two dates between which you want to know the number of days"}}},DAYS360:{s:"Returns the number of days between two dates based on a 360-day year (twelve 30-day months)",p:{startDate:{d:"start_date and end_date are the two dates between which you want to know the number of days"},endDate:{d:"start_date and end_date are the two dates between which you want to know the number of days"},method:{d:"is a logical value specifying the calculation method: U.S. (NASD) = FALSE; European = TRUE.",v:!1}}},EDATE:{s:"Returns the serial number of the date that is the indicated number of months before or after the start date",p:{startDate:{d:"is a serial date number that represents the start date"},months:{d:"is the number of months before or after start_date"}}},EOMONTH:{s:"Returns the serial number of the last day of the month before or after a specified number of months",p:{startDate:{d:"is a serial date number that represents the start date"},months:{d:"is the number of months before or after the start_date"}}},HOUR:{s:"Returns the hour as a number from 0 (12:00 A.M.) to 23 (11:00 P.M.).",p:{serialOrString:{d:"is a number in the date-time code used by Excel or text in time format, such as 16:48:00 or 4:48:00 PM"}}},ISOWEEKNUM:{s:"Returns the ISO week number in the year for a given date",p:{serialOrString:{d:"is a number in the date-time code used by Excel or text in time format, such as 16:48:00 or 4:48:00 PM"}}},MINUTE:{s:"Returns the minute, a number from 0 to 59.",p:{serialOrString:{d:"is a number in the date-time code used by Excel or text in time format, such as 16:48:00 or 4:48:00 PM"}}},MONTH:{s:"Returns the month, a number from 1 (January) to 12 (December).",p:{serialOrString:{d:"is a number in the date-time code used by Excel"}}},NETWORKDAYS:{s:"Returns the number of whole workdays between two dates",p:{startDate:{d:"is a serial date number that represents the start date"},endDate:{d:"is a serial date number that represents the end date"},holidays:{d:"is an optional set of one or more serial date numbers to exclude from the working calendar, such as state and federal holidays and floating holidays",v:null}}},"NETWORKDAYS.INTL":{s:"Returns the number of whole workdays between two dates with custom weekend parameters",p:{startDate:{d:"is a serial date number that represents the start date"},endDate:{d:"is a serial date number that represents the end date"},weekend:{d:"is a number or string specifying when weekends occur",v:1},holidays:{d:"is an optional set of one or more serial date numbers to exclude from the working calendar, such as state and federal holidays and floating holidays",v:null}}},NOW:{s:"Returns the current date and time formatted as a date and time.",p:{}},SECOND:{s:"Returns the second, a number from 0 to 59.",p:{serialOrString:{d:"is a number in the date-time code used by Excel or text in time format, such as 16:48:23 or 4:48:47 PM"}}},TIME:{s:"Converts hours, minutes, and seconds given as numbers to an Excel serial number, formatted with a time format",p:{hour:{d:"is a number from 0 to 23 representing the hour"},minute:{d:"is a number from 0 to 59 representing the minute"},second:{d:"is a number from 0 to 59 representing the second"}}},TIMEVALUE:{s:"Converts a text time to an Excel serial number for a time, a number from 0 (12:00:00 AM) to 0.999988426 (11:59:59 PM). Format the number with a time format after entering the formula",p:{timeText:{d:"is a text string that gives a time in any one of the Excel time formats (date information in the string is ignored)"}}},TODAY:{s:"Returns the current date formatted as a date.",p:{}},WEEKDAY:{s:"Returns a number from 1 to 7 identifying the day of the week of a date.",p:{serialOrString:{d:"is a number that represents a date"},returnType:{d:"is a number: for Sunday=1 through Saturday=7, use 1; for Monday=1 through Sunday=7, use 2; for Monday=0 through Sunday=6, use 3",v:1}}},WEEKNUM:{s:"Returns the week number in the year",p:{serialOrString:{d:"is the date-time code used by Excel for date and time calculation"},returnType:{d:"is a number (1 or 2) that determines the type of the return value",v:1}}},WORKDAY:{s:"Returns the serial number of the date before or after a specified number of workdays",p:{startDate:{d:"is a serial date number that represents the start date"},days:{d:"is the number of nonweekend and non-holiday days before or after start_date"},holidays:{d:"is an optional array of one or more serial date numbers to exclude from the working calendar, such as state and federal holidays and floating holidays",v:null}}},"WORKDAY.INTL":{s:"Returns the serial number of the date before or after a specified number of workdays with custom weekend parameters",p:{startDate:{d:"is a serial date number that represents the start date"},days:{d:"is the number of nonweekend and non-holiday days before or after start_date"},weekend:{d:"is a number or string specifying when weekends occur",v:1},holidays:{d:"is an optional array of one or more serial date numbers to exclude from the working calendar, such as state and federal holidays and floating holidays",v:null}}},YEAR:{s:"Returns the year of a date, an integer in the range 1900 - 9999.",p:{serialOrString:{d:"is a number in the date-time code used by Excel"}}},YEARFRAC:{s:"Returns the year fraction representing the number of whole days between start_date and end_date",p:{startDate:{d:"is a serial date number that represents the start date"},endDate:{d:"is a serial date number that represents the end date"},basis:{d:"is the type of day count basis to use",v:0}}}};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
|
|
3
|
+
*
|
|
4
|
+
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
|
+
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
+
*/
|
|
7
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.default={FILTERXML:{s:"Returns specific data from XML content using the specified XPath.",p:{xml:{d:"is a string in valid XML format."},xpath:{d:"is a string in standard XPath format."}}}};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
|
|
3
|
+
*
|
|
4
|
+
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
|
+
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
+
*/
|
|
7
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.default={CONVERT:{s:"Converts a number from one measurement system to another",p:{number:{d:"is the value in from_unit to convert."},fromUnit:{d:"is the units for number."},toUnit:{d:"is the units for the result"}}}};
|
package/browser/cjs/index.cjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
* @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.
|
|
1
|
+
/**
|
|
2
|
+
* @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
|
|
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
|
+
*/
|
|
7
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./DtBxSbHruNTMTsh-.cjs");Object.defineProperty(exports,"AddressUtils",{enumerable:!0,get:()=>e.AddressUtils}),exports.AnchorLocation=e.e$1,Object.defineProperty(exports,"AutoFill",{enumerable:!0,get:()=>e.AutoFill}),exports.BufferUtils=e.it,exports.Calculation=e.Calculation,exports.ChainedError=e.wt,exports.ClipboardUtils=e.Mt,exports.Color=e.Color,exports.CommonMessages=e.rt,exports.CommonUtils=e.et,exports.CoordUtils=e.j,exports.Deferred=e.ht,exports.Direction=e.t$1,exports.ExternalRangeClipboardItem=e.ExternalRangeClipboardItem,exports.FormulaContext=e.b,Object.defineProperty(exports,"FormulaError",{enumerable:!0,get:()=>e.n}),exports.GeomUtils=e.GeomUtils,Object.defineProperty(exports,"IAnchored",{enumerable:!0,get:()=>e.IAnchored}),Object.defineProperty(exports,"IAutoFilter",{enumerable:!0,get:()=>e.IAutoFilter}),Object.defineProperty(exports,"IBorder",{enumerable:!0,get:()=>e.IBorder}),Object.defineProperty(exports,"ICalculation",{enumerable:!0,get:()=>e.ICalculation}),Object.defineProperty(exports,"ICell",{enumerable:!0,get:()=>e.ICell}),Object.defineProperty(exports,"ICellHeaderRange",{enumerable:!0,get:()=>e.ICellHeaderRange}),Object.defineProperty(exports,"ICellRange",{enumerable:!0,get:()=>e.ICellRange}),Object.defineProperty(exports,"IColor",{enumerable:!0,get:()=>e.IColor}),Object.defineProperty(exports,"IConditionalFormat",{enumerable:!0,get:()=>e.IConditionalFormat}),Object.defineProperty(exports,"IFill",{enumerable:!0,get:()=>e.IFill}),Object.defineProperty(exports,"IFont",{enumerable:!0,get:()=>e.IFont}),exports.IFontCollection=e.IFontCollection,Object.defineProperty(exports,"IMovable",{enumerable:!0,get:()=>e.IMovable}),Object.defineProperty(exports,"IPicture",{enumerable:!0,get:()=>e.IPicture}),Object.defineProperty(exports,"IPrint",{enumerable:!0,get:()=>e.IPrint}),Object.defineProperty(exports,"IRange",{enumerable:!0,get:()=>e.t}),Object.defineProperty(exports,"ISheet",{enumerable:!0,get:()=>e.ISheet}),Object.defineProperty(exports,"ISheetView",{enumerable:!0,get:()=>e.ISheetView}),Object.defineProperty(exports,"ISort",{enumerable:!0,get:()=>e.ISort}),Object.defineProperty(exports,"IStyle",{enumerable:!0,get:()=>e.IStyle}),Object.defineProperty(exports,"ITableStyle",{enumerable:!0,get:()=>e.ITableStyle}),Object.defineProperty(exports,"IText",{enumerable:!0,get:()=>e.IText}),Object.defineProperty(exports,"ITextFrame",{enumerable:!0,get:()=>e.ITextFrame}),Object.defineProperty(exports,"ITheme",{enumerable:!0,get:()=>e.ITheme}),Object.defineProperty(exports,"IThemeCollection",{enumerable:!0,get:()=>e.IThemeCollection}),exports.ImageUtils=e.ut,Object.defineProperty(exports,"InternalClipboard",{enumerable:!0,get:()=>e.Pt}),exports.JSONStableStringify=e.dt,exports.LicenseManager=e.LicenseManager,exports.MimeType=e.r,exports.NotImplementedError=e.Et,exports.NullNotAllowedError=e.bt,Object.defineProperty(exports,"NumberFormat",{enumerable:!0,get:()=>e.NumberFormat}),exports.Observable=e.C,exports.OutOfBoundsError=e.yt,exports.PartialError=e.mt,exports.Picture=e.Picture,exports.RangeClipboardItem=e.RangeClipboardItem,exports.RangeOrientation=e.l,exports.RangeOrientations=e.s,exports.Resource=e.Resource,exports.ResourceCollection=e.ResourceCollection,exports.ScalarType=e.e,exports.Sheet=e.Sheet,exports.SimpleFontFace=e.SimpleFontFace,Object.defineProperty(exports,"Sort",{enumerable:!0,get:()=>e.Sort}),exports.StringCollection=e.StringCollection,exports.StubbedFormulaContext=e.m,exports.StyleCollection=e.StyleCollection,exports.Table=e.Table,exports.TextUtils=e.TextUtils,exports.Theme=e.Theme,exports.ThemeCollection=e.ThemeCollection,exports.TransactionStore=e.TransactionStore,exports.TransactionUndoManager=e.TransactionUndoManager,Object.defineProperty(exports,"Tuple",{enumerable:!0,get:()=>e.Tuple}),exports.TypedError=e.St,Object.defineProperty(exports,"TypedObject",{enumerable:!0,get:()=>e.ft}),exports.TypesUtils=e.a,exports.UndoManager=e.Bt,exports.UserError=e.gt,exports.Workbook=e.Workbook,exports.WorkbookView=e.WorkbookView;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
|
|
3
|
+
*
|
|
4
|
+
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
|
+
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
+
*/
|
|
7
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.default={CELL:{s:"Returns information about the cell.",p:{infoType:{d:"The type of information to return."},reference:{}}},"ERROR.TYPE":{s:"Returns a number matching an error value",p:{errorVal:{d:"is the error value for which you want the identifying number, and can be an actual error value or a reference to a cell containing an error value."}}},INFO:{s:"Returns information about the current operating system.",p:{typeText:{d:"The type of information to return"}}},ISBLANK:{s:"Checks whether a reference is to an empty cell, and returns TRUE or FALSE",p:{value:{d:"is the cell or a name that refers to the cell you want to test"}}},ISERR:{s:"Checks whether a value is an error other than #N/A, and returns TRUE or FALSE",p:{value:{d:"is the value you want to test. Value can refer to a cell, a formula, or a name that refers to a cell, formula, or value"}}},ISERROR:{s:"Checks whether a value is an error, and returns TRUE or FALSE",p:{value:{d:"is the value you want to test. Value can refer to a cell, a formula, or a name that refers to a cell, formula, or value"}}},ISEVEN:{s:"Returns TRUE if the number is even",p:{number:{d:"is the value to test"}}},ISFORMULA:{s:"Checks whether a reference is to a cell containing a formula, and returns TRUE or FALSE",p:{reference:{d:"is a reference to the cell you want to test. Reference can be a cell reference, a formula, or name that refers to a cell"}}},ISLOGICAL:{s:"Checks whether a value is a logical value (TRUE or FALSE), and returns TRUE or FALSE",p:{value:{d:"is the value you want to test. Value can refer to a cell, a formula, or a name that refers to a cell, formula, or value"}}},ISNA:{s:"Checks whether a value is #N/A, and returns TRUE or FALSE",p:{value:{d:"is the value you want to test. Value can refer to a cell, a formula, or a name that refers to a cell, formula, or value"}}},ISNONTEXT:{s:"Checks whether a value is not text (blank cells are not text), and returns TRUE or FALSE",p:{value:{d:"is the value you want tested: a cell; a formula; or a name referring to a cell, formula, or value"}}},ISNUMBER:{s:"Checks whether a value is not text (blank cells are not text), and returns TRUE or FALSE",p:{value:{d:"is the value you want tested: a cell; a formula; or a name referring to a cell, formula, or value"}}},ISODD:{s:"Returns TRUE if the number is odd",p:{number:{d:"is the value to test"}}},ISOMITTED:{s:"Checks whether the value is omitted, and returns TRUE or FALSE",p:{argument:{d:"is the value you want to test, such as a LAMBDA parameter"}}},ISREF:{s:"Checks whether a value is a reference, and returns TRUE or FALSE",p:{value:{d:"is the value you want to test. Value can refer to a cell, a formula, or a name that refers to a cell, formula, or value"}}},ISTEXT:{s:"Converts a value to text in a specific number format",p:{value:{d:"is a number, a formula that evaluates to a numeric value, or a reference to a cell containing a numeric value"}}},N:{s:"Converts non-number value to a number, dates to serial numbers, TRUE to 1, anything else to 0 (zero)",p:{value:{d:"is the value to convert"}}},NA:{s:"Returns the #N/A error value",p:{}},SHEET:{s:"Returns the sheet number of the referenced sheet",p:{value:{d:"is the name of a sheet or a reference that you want the sheet number of. If omitted the number of the sheet containing the function is returned"}}},SHEETS:{s:"Returns the number of sheets in a reference",p:{reference:{d:"is a reference for which you want to know the number of sheets it contains. If omitted the number of sheets in the workbook containing the function is returned"}}},TYPE:{s:"Returns an integer representing the data type of a value: number = 1; text = 2; logical value = 4; error value = 16; array = 64; compound data = 128",p:{value:{d:"is the value to check"}}}};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
|
|
3
|
+
*
|
|
4
|
+
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
|
+
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
+
*/
|
|
7
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.default={ASC:{s:"Converts a string to full-width characters to half-width. Uses the double-byte character set (DBCS).",p:{text:{d:"is a text or a reference to a cell containing text"}},h:"DBCS"},ARRAYTOTEXT:{s:"Returns a text representation of an array",p:{array:{d:"the array to represent as text"},format:{d:"0 for relaxed format, 1 for strict format",v:0}}},CHAR:{s:"Returns the character specified by the code number from the character set for your computer",p:{number:{d:"is a number between 1 and 255 specifying which character you want"}}},CLEAN:{s:"Removes all nonprintable characters from text",p:{text:{d:"is the text you want to clean"}}},CODE:{s:"Returns the Unicode value of the first character in a text string",p:{text:{d:"is the text string whose Unicode value you want"}}},CONCAT:{s:"Concatenates a list or range of text strings",p:{text:{d:"text1,text2,... are 1 to 252 text strings or ranges to be joined"}}},CONCATENATE:{s:"Joins several text strings into one text string",p:{text:{d:"text1, text2,... are 1 to 252 text strings or ranges to be joined"}},c:"Compatibility"},DETECTLANGUAGE:{s:"Detects the language of a given text.",p:{text:{d:"is the text to detect the language of"}},h:"Unimplemented"},DBCS:{s:"Changes half-width characters to full-width characters. Uses the double-byte character set (DBCS).",p:{text:{d:"is a text or a reference to a cell containing text"}},h:"DBCS"},DOLLAR:{s:"Converts a number to text in currency format",p:{number:{d:"is the number to convert"},decimals:{d:"is the number of digits to the right of the decimal point",v:2}}},EXACT:{s:"Checks whether two text strings are exactly the same, and returns TRUE or FALSE. EXACT is case-sensitive",p:{text1:{d:"is the first text string"},text2:{d:"is the second text string"}}},FIND:{s:"Returns the starting position of one text string within another text string. FIND is case-sensitive",p:{findText:{d:"Returns the starting position of one text string within another text string. FIND is case-sensitive"},withinText:{d:"is the text you want to search"},startNum:{d:"specifies the character at which to start the search. The first character in Within_text is character number 1",v:1}}},FINDB:{s:"Finds the starting position of one text string with another text string. FINDB is case-sensitive. Use with double-byte characters.",p:{findText:{d:"is the text you want to find"},withinText:{d:"is the text you want to search"},startNum:{d:"is the position in within_text to start searching",v:1}},h:"DBCS"},FIXED:{s:"Rounds a number to the specified number of decimals and returns the result as text with or without commas",p:{number:{d:"is the number you want to round and convert to text"},decimals:{d:"is the number of digits to the right of the decimal point",v:2},noCommas:{d:"is a logical value: do not display commas in the returned text = TRUE; do display commas in the returned text = FALSE",v:!1}}},LEFT:{s:"Returns the specified number of characters from the start of a text string",p:{text:{d:"is the text string from which you want to extract characters"},numChars:{d:"specifies how many characters you want LEFT to extract",v:1}}},LEFTB:{s:"Returns the leftmost num_bytes characters from text. Uses double-byte characters.",p:{text:{d:"is the text string from which you want to extract characters"},numBytes:{d:"is the number of bytes to extract",v:1}},h:"DBCS"},LEN:{s:"Returns the number of characters in a text string",p:{text:{d:"is the text whose length you want to find. Spaces count as characters"}}},LENB:{s:"Returns the number of bytes in a text string. Uses double-byte characters.",p:{text:{d:"is the text string from which you want to extract characters"}}},LOWER:{s:"Converts all letters in a text string to lowercase",p:{text:{d:"is the text you want to convert to lowercase. Characters in Text that are not letters are not changed"}}},MID:{s:"Returns the characters from the middle of a text string, given a starting position and length",p:{text:{d:"is the text string from which you want to extract characters"},startNum:{d:"is the position of the first character you want to extract"},numChars:{d:"specifies how many characters to return from Text"}}},MIDB:{s:"Returns characters from the middle of a text string. Uses double-byte characters.",p:{text:{d:"is the text string from which you want to extract characters"},startNum:{d:"is the position of the first character you want to extract"},numBytes:{d:"is the number of bytes to extract"}},h:"DBCS"},NUMBERVALUE:{s:"Converts text to number in a locale-independent manner",p:{text:{d:"is the text string you want to convert"},decimalSeparator:{d:"is the character that separates the integer part from the decimal part of the number",v:"."},groupSeparator:{d:"is the character that separates groups of thousands",v:","}}},PERCENTOF:{s:"Returns the percentage of a subset of a given data set",p:{dataSubset:{d:"is the subset"},dataAll:{d:"is the data set"}},h:"Unimplemented"},PHONETIC:{s:"Returns the phonetic spelling of a text string",p:{reference:{d:"Text string or a reference to a single cell or a range of cells that contain a furigana text string"}},h:"Unimplemented"},PROPER:{s:"Converts the first letter of each word in a text string to uppercase",p:{text:{d:"is the text string you want to convert"}}},REGEXEXTRACT:{s:"Extracts substrings of 'text' based on the provided REGEX 'pattern'",p:{text:{d:"is the text string from which you want to extract characters"},pattern:{d:"The regular expression to be applied"},returnMode:{d:"Specify which matches to return",v:0},caseSensitivity:{d:"Whether the match is case sensitive",v:!1}},h:"Unimplemented"},REGEXREPLACE:{s:"Returns 'text', with 'replacement' in place of matches with 'pattern'",p:{text:{d:"is the text string from which you want to extract characters"},pattern:{d:"The regular expression to be applied"},replacement:{d:"The replacement string"},occurrence:{d:"The occurrence of the match to replace",v:0},caseSensitivity:{d:"Whether the match is case sensitive",v:!1}},h:"Unimplemented"},REGEXTEST:{s:"Checks whether the input matches the pattern, and returns TRUE or FALSE",p:{text:{d:"is the text string to be checked"},pattern:{d:"is the regular expression to be applied"},caseSensitivity:{d:"Whether the match is case sensitive",v:!1}},h:"Unimplemented"},REPLACE:{s:"Replaces part of a text string with a different text string",p:{oldText:{d:"is the text string to be changed"},startNum:{d:"is the position of the first character you want to replace"},numChars:{d:"is the number of characters to replace"},newText:{d:"is the text string that will replace old_text"}}},REPLACEB:{s:"Replaces part of a text string with a different text string using the number of bytes. Uses the double-byte character set (DBCS).",p:{oldText:{d:"is the text string to be changed"},startNum:{d:"is the position of the first character you want to replace"},numBytes:{d:"is the number of bytes to replace"},newText:{d:"is the text string that will replace old_text"}},h:"DBCS"},REPT:{s:"Repeats text a given number of times",p:{text:{d:"is the text you want to repeat"},numberTimes:{d:"is the number of times you want to repeat text"}}},RIGHT:{s:"Returns the specified number of characters from the end of a text string",p:{text:{d:"is the text string that contains the characters you want to extract"},numChars:{d:"specifies how many characters you want to extract",v:1}}},RIGHTB:{s:"Returns the rightmost num_bytes characters from text. Uses double-byte characters.",p:{text:{d:"is the text string from which you want to extract characters"},numBytes:{d:"is the number of bytes to extract",v:1}}},SEARCH:{s:"Returns the number of the character at which a specific character or text string is first found, reading left to right (not case-sensitive)",p:{findText:{d:"Returns the number of the character at which a specific character or text string is first found, reading left to right (not case-sensitive)"},withinText:{d:"is the text in which you want to search for Find_text"},startNum:{d:"is the character number in Within_text, counting from the left, at which you want to start searching",v:1}}},SEARCHB:{s:"Returns the number of the character at which a specific character or text string is first found, reading left to right (not case-sensitive). Uses the double-byte character set (DBCS).",p:{findText:{d:"Returns the number of the character at which a specific character or text string is first found, reading left to right (not case-sensitive)"},withinText:{d:"is the text in which you want to search for Find_text"},startBytes:{d:"is the character number in Within_text, counting from the left, at which you want to start searching",v:1}},h:"DBCS"},SUBSTITUTE:{s:"Replaces existing text with new text in a text string",p:{text:{d:"is the text or the reference to a cell containing text in which you want to substitute characters"},oldText:{d:"is the existing text you want to replace. If the case of Old_text does not match the case of text, SUBSTITUTE will not replace the text"},newText:{d:"is the text you want to replace Old_text with"},instanceNum:{d:"specifies which occurrence of Old_text you want to replace. If omitted, every instance of Old_text is replaced"}}},T:{s:"Checks whether a value is text, and returns the text if it is, or returns double quotes (empty text) if it is not",p:{value:{d:"is the value to test"}}},TEXT:{s:"Converts a value to text in a specific number format",p:{value:{d:"is a number, a formula that evaluates to a numeric value, or a reference to a cell containing a numeric value"},formatText:{d:"is a text string that defines the number format to use"}}},TEXTAFTER:{s:"Returns text that's after delimiting characters.",p:{text:{d:"The text you want to search for the delimiter."},delimiter:{d:"The character or string to use as a delimiter."},instanceNum:{d:"The desired occurrence of delimiter. The default is 1. A negative number searches from the end.",v:1},matchMode:{d:"Searches the text for a delimiter match. By default, a case-sensitive match is done.",v:0},matchEnd:{d:"Whether to match the delimiter against the end of text. By default, they're not matched.",v:0},ifNotFound:{d:"Returned if no match is found. By default, #N/A is returned.",v:"undefined"}}},TEXTJOIN:{s:"Concatenates a list or range of text strings using a delimiter",p:{delimiter:{d:"Character or string to insert between each text item"},ignoreEmpty:{d:"if TRUE(default), ignores empty cells"},text:{d:"text1,text2,... are 1 to 252 text strings or ranges to be joined"}}},TEXTSPLIT:{s:"Splits text into rows or columns using delimiters.",p:{text:{d:"The text to split"},colDelimiter:{d:"The column delimiter(s) - can be string or array of strings"},rowDelimiter:{d:"The row delimiter(s), null/undefined means no row splitting",v:null},ignoreEmpty:{d:"Whether to ignore empty values (defaults to `false`)",v:!1},matchMode:{d:"Whether to use case-sensitive (0) or case-insensitive (1) match (defaults to `0`)",v:0},padWith:{d:"Value to use for padding if matrix is uneven (defaults to `#N/A`)",v:"undefined"}}},TEXTBEFORE:{s:"Returns text that's before delimiting characters.",p:{text:{d:"The text you want to search for the delimiter."},delimiter:{d:"The character or string to use as a delimiter."},instanceNum:{d:"The desired occurrence of delimiter. The default is 1. A negative number searches from the end.",v:1},matchMode:{d:"Whether to use case-sensitive (0) or case-insensitive (1) match (defaults to `0`)",v:0},matchEnd:{d:"Whether to match the delimiter against the end of text. By default, they're not matched.",v:0},ifNotFound:{d:"Returned if no match is found. By default, #N/A is returned.",v:"undefined"}}},TRANSLATE:{s:"Translate a text string from one language to another using the Microsoft Translator service.",p:{text:{d:"The text to translate."},sourceLanguage:{d:"Specifiy the source language your text is currently in. Expressed as a two-letter language code."},targetLanguage:{d:"Specifiy the source language you want your text to be translated to. Expressed as a two-letter language code."}},h:"Unimplemented"},TRIM:{s:"Removes all spaces from text except for single spaces between words.",p:{text:{d:"The text from which you want to remove extra spaces."}}},UNICHAR:{s:"Returns the Unicode character referenced by the given numeric value",p:{number:{d:"is the Unicode number representing a character"}}},UNICODE:{s:"Returns the number (code point) corresponding to the first character of the text",p:{text:{d:"is the character that you want the Unicode value of"}}},UPPER:{s:"Converts a text string to all uppercase letters",p:{text:{d:"is the text you want converted to uppercase, a reference or a text string"}}},VALUE:{s:"Converts a text string that represents a number to a number",p:{text:{d:"is the text enclosed in quotation marks or a reference to a cell containing the text you want to convert"}}},VALUETOTEXT:{s:"Returns a text representation of a value",p:{value:{d:"the value to represent as text"},format:{d:"the format of the text",v:0}}}};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
|
|
3
|
+
*
|
|
4
|
+
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
|
+
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
+
*/
|
|
7
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.default={"BETA.DIST":{s:"Returns the beta probability distribution function",p:{x:{d:"is the value between A and B at which to evaluate the function"},alpha:{d:"is a parameter to the distribution and must be greater than 0"},beta:{d:"is a parameter to the distribution and must be greater than 0"},cumulative:{d:"is a logical value: for the cumulative distribution function, use TRUE; for the probability density function, use FALSE"},a:{d:"lower bound to the interval of x",v:0},b:{d:"upper bound to the interval of x",v:1}}},BETADIST:{s:"Returns the cumulative beta probability density function",p:{x:{d:"is the value between A and B at which to evaluate the function"},alpha:{d:"is a parameter to the distribution and must be greater than 0"},beta:{d:"is a parameter to the distribution and must be greater than 0"},cumulative:{d:"is a logical value: for the cumulative distribution function, use TRUE; for the probability density function, use FALSE"},a:{d:"lower bound to the interval of x",v:0},b:{d:"upper bound to the interval of x",v:1}},c:"Compatibility"},"BETA.INV":{s:"Returns the inverse of the cumulative beta probability density function (BETA.DIST)",p:{probability:{d:"is a probability associated with the beta distribution"},alpha:{d:"is a parameter to the distribution and must be greater than 0"},beta:{d:"is a parameter to the distribution and must be greater than 0"},a:{d:"lower bound to the interval of x",v:0},b:{d:"upper bound to the interval of x",v:1}}},BETAINV:{s:"Returns the inverse of the cumulative beta probability density function (BETADIST)",p:{probability:{d:"is a probability associated with the beta distribution"},alpha:{d:"is a parameter to the distribution and must be greater than 0"},beta:{d:"is a parameter to the distribution and must be greater than 0"},a:{d:"lower bound to the interval of x",v:0},b:{d:"upper bound to the interval of x",v:1}},c:"Compatibility"},"BINOM.DIST":{s:"Returns the individual term binomial distribution probability",p:{numberS:{d:"is the number of successes in trials"},trials:{d:"is the number of independent trials"},probabilityS:{d:"is the probability of success on each trial"},cumulative:{d:"is a logical value: for the cumulative distribution function, use TRUE; for the probability mass function, use FALSE"}}},BINOMDIST:{s:"Returns the individual term binomial distribution probability",p:{numberS:{d:"is the number of successes in trials"},trials:{d:"is the number of independent trials"},probabilityS:{d:"is the probability of success on each trial"},cumulative:{d:"is a logical value: for the cumulative distribution function, use TRUE; for the probability mass function, use FALSE"}},c:"Compatibility"},"BINOM.DIST.RANGE":{s:"Returns the probability of a trial result using a binomial distribution",p:{trials:{d:"is the number of independent trials"},probabilityS:{d:"is the probability of success on each trial"},numberS:{d:"is the number of successes in trials"},numberS2:{d:"if provided this function returns the probability that the number of successful trials shall lie between number_s and number_s2",v:"numberS"}}},"BINOM.INV":{s:"Returns the smallest value for which the cumulative binomial distribution is greater than or equal to a criterion value",p:{trials:{d:"is the number of Bernoulli trials"},probabilityS:{d:"is the probability of success on each trial, a number between 0 and 1 inclusive"},alpha:{d:"is the criterion value, a number between 0 and 1 inclusive"}}},"CHISQ.DIST":{s:"Returns the left-tailed probability of the chi-squared distribution",p:{x:{d:"is the value at which you want to evaluate the distribution, a nonnegative number"},degFreedom:{d:"is the number of degrees of freedom, a number between 1 and 10^10, excluding 10^10"},cumulative:{d:"is a logical value for the function to return: the cumulative distribution function = TRUE; the probability density function = FALSE",v:!1}}},CHIDIST:{s:"Returns the right-tailed probability of the chi-squared distribution",p:{x:{d:"is the value at which you want to evaluate the distribution, a nonnegative number"},degFreedom:{d:"is the number of degrees of freedom, a number between 1 and 10^10, excluding 10^10"}},c:"Compatibility"},"CHISQ.DIST.RT":{s:"Returns the right-tailed probability of the chi-squared distribution",p:{x:{d:"is the value at which you want to evaluate the distribution, a nonnegative number"},degFreedom:{d:"is the number of degrees of freedom, a number between 1 and 10^10, excluding 10^10"}}},"CHISQ.INV":{s:"Returns the inverse of the left-tailed probability of the chi-squared distribution",p:{probability:{d:"is a probability associated with the chi-squared distribution, a value between 0 and 1 inclusive"},degFreedom:{d:"is the number of degrees of freedom, a number between 1 and 10^10, excluding 10^10"}}},CHIINV:{s:"Returns the inverse of the right-tailed probability of the chi-squared distribution",p:{probability:{d:"is a probability associated with the chi-squared distribution, a value between 0 and 1 inclusive"},degFreedom:{d:"is the number of degrees of freedom, a number between 1 and 10^10, excluding 10^10"}},c:"Compatibility"},"CHISQ.INV.RT":{s:"Returns the right-tailed probability of the chi-squared distribution",p:{probability:{d:"is a probability associated with the chi-squared distribution, a value between 0 and 1 inclusive"},degFreedom:{d:"is the number of degrees of freedom, a number between 1 and 10^10, excluding 10^10"}}},"CHISQ.TEST":{s:"Returns the test for independence: the value from the chi-squared distribution for the statistic and the appropriate degrees of freedom",p:{actualRange:{d:"is the range of data that contains observations to test against expected values"},expectedRange:{d:"is the range of data that contains the ratio of the product of row totals and column totals to the grand total"}}},CHITEST:{s:"Returns the test for independence: the value from the chi-squared distribution for the statistic and the appropriate degrees of freedom",p:{actualRange:{d:"is the range of data that contains observations to test against expected values"},expectedRange:{d:"is the range of data that contains the ratio of the product of row totals and column totals to the grand total"}},c:"Compatibility"},"CONFIDENCE.NORM":{s:"Returns the confidence interval for a population mean, using a normal distribution",p:{alpha:{d:"is the significance level used to compute the confidence level, a number greater than 0 and less than 1"},standardDev:{d:"is the population standard deviation for the data range and is assumed to be known. Standard_dev must be greater than 0"},size:{d:"is the sample size"}}},CONFIDENCE:{s:"Returns the confidence interval for a population mean, using a normal distribution",p:{alpha:{d:"is the significance level used to compute the confidence level, a number greater than 0 and less than 1"},std:{d:"is the population standard deviation for the data range and is assumed to be known. Standard_dev must be greater than 0"},dev:{d:"is the population standard deviation for the data range and is assumed to be known. Standard_dev must be greater than 0"},size:{d:"is the sample size"}},c:"Compatibility"},"CONFIDENCE.T":{s:"Returns the confidence interval for a population mean, using a Student's T distribution",p:{alpha:{d:"is the significance level used to compute the confidence level, a number greater than 0 and less than 1"},standardDev:{d:"is the population standard deviation for the data range and is assumed to be known. Standard_dev must be greater than 0"},size:{d:"is the sample size"}}},CORREL:{s:"Returns the correlation coefficient between two data sets",p:{array1:{d:"is a cell range of values. The values should be numbers, names, arrays, or references that contain numbers"},array2:{d:"is a second cell range of values. The values should be numbers, names, arrays, or references that contain numbers"}}},"COVARIANCE.P":{s:"Returns population covariance, the average of the products of deviations for each data point pair in two data sets",p:{array1:{d:"is the first cell range of integers and must be numbers, arrays, or references that contain numbers"},array2:{d:"is the second cell range of integers and must be numbers, arrays, or references that contain numbers"}}},COVARIANCE:{s:"Returns population covariance, the average of the products of deviations for each data point pair in two data sets",p:{array1:{d:"is the first cell range of integers and must be numbers, arrays, or references that contain numbers"},array2:{d:"is the second cell range of integers and must be numbers, arrays, or references that contain numbers"}},c:"Compatibility"},"COVARIANCE.S":{s:"Returns sample covariance, the average of the products of deviations for each data point pair in two data sets",p:{array1:{d:"is the first cell range of integers and must be numbers, arrays, or references that contain numbers"},array2:{d:"is the second cell range of integers and must be numbers, arrays, or references that contain numbers"}}},CRITBINOM:{s:"Returns the smallest value for which the cumulative binomial distribution is greater than or equal to a criterion value",p:{trails:{d:"is the number of Bernoulli trials"},probabilityS:{d:"is the probability of success on each trial, a number between 0 and 1 inclusive"},alpha:{d:"is the criterion value, a number between 0 and 1 inclusive"}},c:"Compatibility",h:"Unimplemented"},DEVSQ:{s:"Returns the sum of squares of deviations of data points from their sample mean",p:{number:{d:"number1,number2,... are 1 to 255 arguments, or an array or array reference, on which you want DEVSQ to calculate"}}},"EXPON.DIST":{s:"Returns the exponential distribution",p:{x:{d:"is the value of the function, a nonnegative number"},lambda:{d:"is the parameter value, a positive number"},cumulative:{d:"is a logical value for the function to return: the cumulative distribution function = TRUE; the probability density function = FALSE"}}},EXPONDIST:{s:"Returns the exponential distribution",p:{x:{d:"is the value of the function, a nonnegative number"},lambda:{d:"is the parameter value, a positive number"},cumulative:{d:"is a logical value for the function to return: the cumulative distribution function = TRUE; the probability density function = FALSE"}},c:"Compatibility"},"F.DIST":{s:"Returns the (left-tailed) F probability distribution (degree of diversity) for two data sets",p:{x:{d:"is the value at which to evaluate the function, a nonnegative number"},degFreedom1:{d:"is the numerator degrees of freedom, a number between 1 and 10^10, excluding 10^10"},degFreedom2:{d:"is the denominator degrees of freedom, a number between 1 and 10^10, excluding 10^10"},cumulative:{d:"is a logical value for the function to return: the cumulative distribution function = TRUE; the probability density function = FALSE"}}},FDIST:{s:"Returns the (left-tailed) F probability distribution (degree of diversity) for two data sets",p:{x:{d:"is the value at which to evaluate the function, a nonnegative number"},degFreedom1:{d:"is the numerator degrees of freedom, a number between 1 and 10^10, excluding 10^10"},degFreedom2:{d:"is the denominator degrees of freedom, a number between 1 and 10^10, excluding 10^10"}},c:"Compatibility"},"F.DIST.RT":{s:"Returns the (right-tailed) F probability distribution (degree of diversity) for two data sets",p:{x:{d:"is the value at which to evaluate the function, a nonnegative number"},degFreedom1:{d:"is the numerator degrees of freedom, a number between 1 and 10^10, excluding 10^10"},degFreedom2:{d:"is the denominator degrees of freedom, a number between 1 and 10^10, excluding 10^10"}}},"F.INV":{s:"Returns the inverse of the (left-tailed) F probability distribution: if p = F.DIST(x,...), then F.INV(p,...) = x",p:{probability:{d:"is a probability associated with the F cumulative distribution, a number between 0 and 1 inclusive"},degFreedom1:{d:"is the numerator degrees of freedom, a number between 1 and 10^10, excluding 10^10"},degFreedom2:{d:"is the denominator degrees of freedom, a number between 1 and 10^10, excluding 10^10"}}},FINV:{s:"Returns the inverse of the (left-tailed) F probability distribution: if p = F.DIST(x,...), then F.INV(p,...) = x",p:{probability:{d:"is a probability associated with the F cumulative distribution, a number between 0 and 1 inclusive"},degFreedom1:{d:"is the numerator degrees of freedom, a number between 1 and 10^10, excluding 10^10"},degFreedom2:{d:"is the denominator degrees of freedom, a number between 1 and 10^10, excluding 10^10"}},c:"Compatibility"},"F.INV.RT":{s:"Returns the inverse of the (right-tailed) F probability distribution: if p = F.DIST.RT(x,...), then F.INV.RT(p,...) = x",p:{probability:{d:"is a probability associated with the F cumulative distribution, a number between 0 and 1 inclusive"},degFreedom1:{d:"is the numerator degrees of freedom, a number between 1 and 10^10, excluding 10^10"},degFreedom2:{d:"is the denominator degrees of freedom, a number between 1 and 10^10, excluding 10^10"}}},"F.TEST":{s:"Returns the result of an F-test, the two-tailed probability that the variances in Array1 and Array2 are not significantly different",p:{array1:{d:"is the first array or range of data and can be numbers or names, arrays, or references that contain numbers (blanks are ignored)"},array2:{d:"is the second array or range of data and can be numbers or names, arrays, or references that contain numbers (blanks are ignored)"}}},FTEST:{s:"Returns the result of an F-test, the two-tailed probability that the variances in Array1 and Array2 are not significantly different",p:{array1:{d:"is the first array or range of data and can be numbers or names, arrays, or references that contain numbers (blanks are ignored)"},array2:{d:"is the second array or range of data and can be numbers or names, arrays, or references that contain numbers (blanks are ignored)"}},c:"Compatibility"},FISHER:{s:"Returns the Fisher transformation",p:{x:{d:"is the value for which you want the transformation, a number between -1 and 1, excluding -1 and 1"}}},FISHERINV:{s:"Returns the inverse of the Fisher transformation: if y = FISHER(x), then FISHERINV(y) = x",p:{y:{d:"is the value for which you want to perform the inverse of the transformation"}}},FORECAST:{s:"Calculates, or predicts, a future value along a linear trend by using existing values",p:{x:{d:"is the data point for which you want to predict a value and must be a numeric value"},knownYs:{d:"is the dependent array or range of numeric data",v:null},knownXs:{d:"is the independent array or range of numeric data. The variance of Known_x's must not be zero",v:null}},c:"Compatibility"},"FORECAST.ETS":{s:"Returns the forecasted value for a specific future target date using exponential smoothing method",p:{targetDate:{d:"is the data point for which you want to predict a value. It should carry on the pattern of values in the timeline"},values:{d:"is the array or range of numberic data you're predicting"},timeline:{d:"is the independent array or range of numberic data. The dtes in the timeline must have a consistent step between them and can't be zero."},seasonality:{d:"is a number value that indicates the length of the seasonal pattern in the data. It must be between 0 and 1, where 0 means no seasonality and 1 means full seasonality",v:.95},dataCompletion:{d:"is a number value that indicates how much of the data is complete. It must be between 0 and 1, where 0 means no data is complete and 1 means all data is complete",v:1},aggregation:{d:"is a number value that indicates how the data should be aggregated. It must be between 0 and 1, where 0 means no aggregation and 1 means full aggregation",v:1}},h:"Unimplemented"},"FORECAST.ETS.CONFINT":{s:"Retursn a confidence interval for the forecasted value at the specified target date",p:{targetDate:{d:"is the data point for which you want to predict a value. It should carry on the pattern of values in the timeline"},values:{d:"is the array or range of numberic data you're predicting"},timeline:{d:"is the independent array or range of numberic data. The dtes in the timeline must have a consistent step between them and can't be zero."},confiedenceLevel:{d:"is a number value that indicates the confidence level for the forecasted value. It must be between 0 and 1, where 0 means no confidence and 1 means full confidence",v:.95},seasonality:{d:"is a number value that indicates the length of the seasonal pattern in the data. It must be between 0 and 1, where 0 means no seasonality and 1 means full seasonality",v:.95},dataCompletion:{d:"is a number value that indicates how much of the data is complete. It must be between 0 and 1, where 0 means no data is complete and 1 means all data is complete",v:1},aggregation:{d:"is a number value that indicates how the data should be aggregated. It must be between 0 and 1, where 0 means no aggregation and 1 means full aggregation",v:1}},h:"Unimplemented"},"FORECAST.ETS.SEASONALITY":{s:"Returns the length of the repetitive pattern in the data for the specific time series.",p:{values:{d:"is the array or range of numberic data you're predicting"},timeline:{d:"is the independent array or range of numberic data. The dtes in the timeline must have a consistent step between them and can't be zero."},dataCompletion:{d:"is a number value that indicates how much of the data is complete. It must be between 0 and 1, where 0 means no data is complete and 1 means all data is complete",v:1},aggregation:{d:"is a number value that indicates how the data should be aggregated. It must be between 0 and 1, where 0 means no aggregation and 1 means full aggregation",v:1}},h:"Unimplemented"},"FORECAST.ETS.STAT":{s:"Returns the requested statistic for the forecast",p:{values:{d:"is the array or range of numberic data you're predicting"},timeline:{d:"is the independent array or range of numberic data. The dtes in the timeline must have a consistent step between them and can't be zero."},statisticType:{d:"is a number between 1 and 8 that indicates the type of statistic to return:"},seasonality:{d:"is a number value that indicates the length of the seasonal pattern in the data. It must be between 0 and 1, where 0 means no seasonality and 1 means full seasonality",v:1},dataCompletion:{d:"is a number value that indicates how much of the data is complete. It must be between 0 and 1, where 0 means no data is complete and 1 means all data is complete",v:1},aggregation:{d:"is a number value that indicates how the data should be aggregated. It must be between 0 and 1, where 0 means no aggregation and 1 means full aggregation",v:1}},h:"Unimplemented"},"FORECAST.LINEAR":{s:"Calculates, or predicts, a future value along a linear trend by using existing values",p:{x:{d:"is the data point for which you want to predict a value and must be a numeric value"},knownYs:{d:"is the dependent array or range of numeric data"},knownXs:{d:"is the independent array or range of numeric data. The variance of Known_x's must not be zero",v:null}},h:"Unimplemented"},FREQUENCY:{s:"Calculates how often values occur within a range of values and then returns a vertical array of numbers having one more element than Bins_array",p:{dataArray:{d:"is an array of or reference to a set of values for which you want to count frequencies (blanks and text are ignored)"},binsArray:{d:"is an array of or reference to intervals into which you want to group the values in data_array"}}},GAMMA:{s:"Returns the Gamma function value",p:{x:{d:"is the value for which you want to calculate Gamma"}}},"GAMMA.DIST":{s:"Returns the gamma distribution",p:{x:{d:"is the value at which you want to evaluate the distribution, a nonnegative number"},alpha:{d:"is a parameter to the distribution, a positive number"},beta:{d:"is a parameter to the distribution, a positive number. If beta = 1, GAMMA.DIST returns the standard gamma distribution"},cumulative:{d:"is a logical value: return the cumulative distribution function = TRUE; return the probability mass function = FALSE",v:!1}}},"GAMMA.INV":{s:"Returns the inverse of the gamma cumulative distribution: if p = GAMMA.DIST(x,...), then GAMMA.INV(p,...) = x",p:{probability:{d:"is the probability associated with the gamma distribution, a number between 0 and 1, inclusive"},alpha:{d:"is a parameter to the distribution, a positive number"},beta:{d:"is a parameter to the distribution, a positive number. If beta = 1, GAMMA.DIST returns the standard gamma distribution"}}},GAMMALN:{s:"Returns the natural logarithm of the gamma function",p:{x:{d:"is the value for which you want to calculate GAMMALN, a positive number"}}},"GAMMALN.PRECISE":{s:"Returns the natural logarithm of the gamma function",p:{x:{d:"is the value for which you want to calculate GAMMALN.PRECISE, a positive number"}}},GAUSS:{s:"Returns 0.5 less than the standard normal cumulative distribution",p:{x:{d:"is the value for which you want the distribution"}}},GEOMEAN:{s:"Returns the geometric mean of an array or range of positive numeric data",p:{number:{d:"number1,number2,... are 1 to 255 numbers or names, arrays, or references that contain numbers for which you want the mean"}}},GROWTH:{s:"Returns numbers in an exponential growth trend matching known data points",p:{knownYs:{d:"is the set of y-values you already know in the relationship y = b*m^x, an array or range of positive numbers"},knownXs:{d:"is an optional set of x-values that you may already know in the relationship y = b*m^x, an array or range the same size as Known_y's",v:null},newXs:{d:"are new x-values for which you want GROWTH to return corresponding y-values",v:null},useConst:{d:"is a logical value: the constant b is calculated normally if Const = TRUE; b is set equal to 1 if Const = FALSE",v:!0}}},HARMEAN:{s:"Returns the harmonic mean of a data set of positive numbers: the reciprocal of the arithmetic mean of reciprocals",p:{number:{d:"number1,number2,... are 1 to 255 numbers or names, arrays, or references that contain numbers for which you want the harmonic mean"}}},"HYPGEOM.DIST":{s:"Returns the hypergeometric distribution",p:{sampleS:{d:"is the number of successes in the sample"},numberSample:{d:"is the size of the sample"},populationS:{d:"is the number of successes in the population"},numberPop:{d:"is the population size"},cumulative:{d:"is a logical value: for the cumulative distribution function, use TRUE; for the probability density function, use FALSE"}}},INTERCEPT:{s:"Calculates the point at which a line will intersect the y-axis by using a best-fit regression line plotted through the known x-values and y-values",p:{knownYs:{d:"is the dependent set of observations or data and can be numbers or names, arrays, or references that contain numbers"},knownXs:{d:"is the independent set of observations or data and can be numbers or names, arrays, or references that contain numbers"}}},KURT:{s:"Returns the kurtosis of a data set",p:{number:{d:"number1,number2,... are 1 to 255 numbers or names, arrays, or references that contain numbers for which you want the kurtosis"}}},LINEST:{s:"Returns statistics that describe a linear trend matching known data points, by fitting a straight line using the least squares method",p:{knownYs:{d:"is the set of y-values you already know in the relationship y = mx + b"},knownXs:{d:"is an optional set of x-values that you may already know in the relationship y = mx + b",v:null},constant:{d:"is a logical value: the constant b is calculated normally if Const = TRUE; b is set equal to 0 if Const = FALSE",v:!0},stats:{d:"is a logical value: return additional regression statistics = TRUE; return m-coefficients and the constant b = FALSE",v:!1}}},LOGEST:{s:"Returns statistics that describe an exponential curve matching known data points",p:{knownYs:{d:"is the set of y-values you already know in the relationship y = b*m^x"},knownXs:{d:"is an optional set of x-values that you may already know in the relationship y = b*m^x",v:null},constant:{d:"is a logical value: the constant b is calculated normally if Const = TRUE; b is set equal to 1 if Const = FALSE",v:!0},stats:{d:"is a logical value: return additional regression statistics = TRUE; return m-coefficients and the constant b = FALSE",v:!1}},h:"Unimplemented Buggy"},"LOGNORM.DIST":{s:"Returns the lognormal distribution of x, where ln(x) is normally distributed with parameters Mean and Standard_dev",p:{x:{d:"is the value at which to evaluate the function, a positive number"},mean:{d:"is the mean of ln(x)"},standardDev:{d:"is the standard deviation of ln(x), a positive number"},cumulative:{d:"is a logical value: for the cumulative distribution function, use TRUE; for the probability density function, use FALSE"}}},"LOGNORM.INV":{s:"Returns the inverse of the lognormal cumulative distribution function of x, where ln(x) is normally distributed with parameters Mean and Standard_dev",p:{probability:{d:"is a probability associated with the lognormal distribution, a number between 0 and 1, inclusive"},mean:{d:"is the mean of ln(x)"},standardDev:{d:"is the standard deviation of ln(x), a positive number"}}},"MODE.MULT":{s:"Returns a vertical array of the most frequently occurring, or repetitive, values in an array or range of data. For a horizontal array, use =TRANSPOSE(MODE.MULT(number1,number2,...))",p:{number:{d:'<div class="param-538">number1,number2,... are 1 to 255 numbers, or names, arrays, or references that contain numbers for which you want the mode</div>'}},h:"Unimplemented"},"MODE.SNGL":{s:"Returns the most frequently occurring, or repetitive, value in an array or range of data",p:{number:{d:"number1,number2,... are 1 to 255 numbers, or names, arrays, or references that contain numbers for which you want the mode"}},h:"Unimplemented"},"NEGBINOM.DIST":{s:"Returns the negative binomial distribution, the probability that there will be Number_f failures before the Number_s-th success, with Probability_s probability of a success",p:{numberF:{d:"is the number of failures"},numberS:{d:"is the threshold number of successes"},probabilityS:{d:"is the probability of a success; a number between 0 and 1"},cumulative:{d:"is a logical value: for the cumulative distribution function, use TRUE; for the probability mass function, use FALSE"}}},"NORM.DIST":{s:"Returns the normal distribution for the specified mean and standard deviation",p:{x:{d:"is the value for which you want the distribution"},mean:{d:"is the arithmetic mean of the distribution"},standardDev:{d:"is the standard deviation of the distribution, a positive number"},cumulative:{d:"is a logical value: for the cumulative distribution function, use TRUE; for the probability density function, use FALSE"}}},"NORM.INV":{s:"Returns the inverse of the normal cumulative distribution for the specified mean and standard deviation",p:{probability:{d:"is a probability corresponding to the normal distribution, a number between 0 and 1 inclusive"},mean:{d:"is the arithmetic mean of the distribution"},standardDev:{d:"is the standard deviation of the distribution, a positive number"}}},"NORM.S.DIST":{s:"Returns the standard normal distribution (has a mean of zero and a standard deviation of one)",p:{z:{d:"is the value for which you want the distribution"},cumulative:{d:"is a logical value for the function to return: the cumulative distribution function = TRUE; the probability density function = FALSE"}}},"NORM.S.INV":{s:"Returns the inverse of the standard normal cumulative distribution (has a mean of zero and a standard deviation of one)",p:{probability:{d:"is a probability corresponding to the normal distribution, a number between 0 and 1 inclusive"}}},PEARSON:{s:"Returns the Pearson product moment correlation coefficient, r",p:{array1:{d:"is a set of independent values"},array2:{d:"is a set of dependent values"}}},"PERCENTILE.EXC":{s:"Returns the k-th percentile of values in a range, where k is in the range 0..1, exclusive",p:{array:{d:"is the array or range of data that defines relative standing"},k:{d:"is the percentile value that is between 0 through 1, inclusive"}},h:"Unimplemented"},"PERCENTILE.INC":{s:"Returns the k-th percentile of values in a range, where k is in the range 0..1, inclusive",p:{array:{d:"is the array or range of data that defines relative standing"},k:{d:"is the percentile value that is between 0 through 1, inclusive"}},h:"Unimplemented"},"PERCENTRANK.EXC":{s:"Returns the rank of a value in a data set as a percentage (0..1, exclusive) of the data set",p:{array:{d:"is the array or range of data with numeric values that defines relative standing"},x:{d:"is the value for which you want to know the rank"},significance:{d:"is an optional value that identifies the number of significant digits for the returned percentage",v:3}},h:"Unimplemented"},"PERCENTRANK.INC":{s:"Returns the rank of a value in a data set as a percentage (0..1, inclusive) of the data set",p:{array:{d:"is the array or range of data with numeric values that defines relative standing"},x:{d:"is the value for which you want to know the rank"},significance:{d:"is an optional value that identifies the number of significant digits for the returned percentage",v:3}},h:"Unimplemented"},PHI:{s:"Returns the value of the density function for a standard normal distribution",p:{x:{d:"is the number for which you want the density of the standard normal distribution"}}},"POISSON.DIST":{s:"Returns the Poisson distribution",p:{x:{d:"is the number of events"},mean:{d:"is the expected numeric value, a positive number"},cumulative:{d:"is a logical value: for the cumulative Poisson probability, use TRUE; for the Poisson probability mass function, use FALSE"}}},PROB:{s:"Returns the probability that values in a range are between two limits or equal to a lower limit",p:{xRange:{d:"is the range of numeric values of x with which there are associated probabilities"},probRange:{d:"is the set of probabilities associated with values in X_range, values between 0 and 1 and excluding 0"},lowerLimit:{d:"is the lower bound on the value for which you want a probability"},upperLimit:{d:"is the optional upper bound on the value. If omitted, PROB returns the probability that X_range values are equal to Lower_limit"}}},"QUARTILE.EXC":{s:"Returns the quartile of a data set, based on percentile values from 0..1, exclusive",p:{array:{d:"is the array or cell range of numeric values for which you want the quartile value"},quart:{d:"is a number: minimum value = 0; 1st quartile = 1; median value = 2; 3rd quartile = 3; maximum value = 4"}},h:"Unimplemented"},"QUARTILE.INC":{s:"Returns the quartile of a data set, based on percentile values from 0..1, inclusive",p:{array:{d:"is the array or cell range of numeric values for which you want the quartile value"},quart:{d:"is a number: minimum value = 0; 1st quartile = 1; median value = 2; 3rd quartile = 3; maximum value = 4"}},h:"Unimplemented"},"RANK.AVG":{s:"Returns the rank of a number in a list of numbers: its size relative to other values in the list; if more than one value has the same rank, the average rank is returned",p:{number:{d:"is the number for which you want to find the rank"},ref:{d:"is an array of, or a reference to, a list of numbers. Nonnumeric values are ignored"},order:{d:"is a number: rank in the list sorted descending = 0; rank in the list sorted ascending = any nonzero value",v:0}},h:"Unimplemented"},"RANK.EQ":{s:"Returns the rank of a number in a list of numbers: its size relative to other values in the list; if more than one value has the same rank, the top rank of that set of values is returned",p:{number:{d:"is the number for which you want to find the rank"},ref:{d:"is an array of, or a reference to, a list of numbers. Nonnumeric values are ignored"},order:{d:"is a number: rank in the list sorted descending = 0; rank in the list sorted ascending = any nonzero value",v:0}},h:"Unimplemented"},RSQ:{s:"Returns the square of the Pearson product moment correlation coefficient through the given data points",p:{knownYs:{d:"is an array or range of data points and can be numbers or names, arrays, or references that contain numbers"},knownXs:{d:"is an array or range of data points and can be numbers or names, arrays, or references that contain numbers"}},h:"Unimplemented"},SKEW:{s:"Returns the skewness of a distribution: a characterization of the degree of asymmetry of a distribution around its mean",p:{number:{d:"number1,number2,... are 1 to 255 numbers or names, arrays, or references that contain numbers for which you want the skewness"}},h:"Unimplemented"},"SKEW.P":{s:"Returns the skewness of a distribution based on a population: a characterization of the degree of asymmetry of a distribution around its mean",p:{number:{d:"number1,number2,... are 1 to 254 numbers or names, arrays, or references that contain numbers for which you want the population skewness"}},h:"Unimplemented"},SLOPE:{s:"Returns the slope of the linear regression line through the given data points",p:{knownYs:{d:"is an array or cell range of numeric dependent data points and can be numbers or names, arrays, or references that contain numbers"},knownXs:{d:"iis the set of independent data points and can be numbers or names, arrays, or references that contain numbers"}}},STANDARDIZE:{s:"Returns a normalized value from a distribution characterized by a mean and standard deviation",p:{x:{d:"is the value you want to normalize"},mean:{d:"is the arithmetic mean of the distribution"},standardDev:{d:"is the standard deviation of the distribution, a positive number"}}},"STDEV.P":{s:"Calculates standard deviation based on the entire population given as arguments (ignores logical values and text)",p:{number:{d:"number1,number2,... are 1 to 255 numbers corresponding to a population and can be numbers or references that contain numbers"}},h:"Unimplemented"},"STDEV.S":{s:"Estimates standard deviation based on a sample (ignores logical values and text in the sample)",p:{number:{d:"number1,number2,... are 1 to 255 numbers corresponding to a sample of a population and can be numbers or references that contain numbers"}}},STDEVA:{s:"Estimates standard deviation based on a sample, including logical values and text. Text and the logical value FALSE have the value 0; the logical value TRUE has the value 1",p:{value:{d:"value1,value2,... are 1 to 255 values corresponding to a sample of a population and can be values or names or references to values"}},h:"Unimplemented"},STDEVPA:{s:"Calculates standard deviation based on an entire population, including logical values and text. Text and the logical value FALSE have the value 0; the logical value TRUE has the value 1",p:{value:{d:"value1,value2,... are 1 to 255 values corresponding to a population and can be values, names, arrays, or references that contain values"}},h:"Unimplemented"},STEYX:{s:"Returns the standard error of the predicted y-value for each x in a regression",p:{knownYs:{d:"is an array or range of dependent data points and can be numbers or names, arrays, or references that contain numbers"},knownXs:{d:"is an array or range of independent data points and can be numbers or names, arrays, or references that contain numbers"}},h:"Unimplemented"},"T.DIST":{s:"Returns the left-tailed Student's t-distribution",p:{x:{d:"is the numeric value at which to evaluate the distribution"},degFreedom:{d:"is an integer indicating the number of degrees of freedom that characterize the distribution"},cumulative:{d:"is a logical value: for the cumulative distribution function, use TRUE; for the probability density function, use FALSE"}}},"T.DIST.2T":{s:"Returns the two-tailed Student's t-distribution",p:{x:{d:"is the numeric value at which to evaluate the distribution"},degFreedom:{d:"is an integer indicating the number of degrees of freedom that characterize the distribution"}}},"T.DIST.RT":{s:"Returns the right-tailed Student's t-distribution",p:{x:{d:"is the numeric value at which to evaluate the distribution"},degFreedom:{d:"is an integer indicating the number of degrees of freedom that characterize the distribution"}}},"T.INV":{s:"Returns the left-tailed inverse of the Student's t-distribution",p:{probability:{d:"is the probability associated with the two-tailed Student's t-distribution, a number between 0 and 1 inclusive"},degFreedom:{d:"is a positive integer indicating the number of degrees of freedom to characterize the distribution"}}},"T.INV.2T":{s:"Returns the two-tailed inverse of the Student's t-distribution",p:{probability:{d:"is the probability associated with the two-tailed Student's t-distribution, a number between 0 and 1 inclusive"},degFreedom:{d:"is a positive integer indicating the number of degrees of freedom to characterize the distribution"}}},"T.TEST":{s:"Returns the probability associated with a Student's t-Test",p:{array1:{d:"is the first data set"},array2:{d:"is the second data set"},tails:{d:"specifies the number of distribution tails to return: one-tailed distribution = 1; two-tailed distribution = 2"},type:{d:"is the kind of t-test: paired = 1, two-sample equal variance (homoscedastic) = 2, two-sample unequal variance = 3"}},h:"Unimplemented"},TREND:{s:"Returns numbers in a linear trend matching known data points, using the least squares method",p:{knownYs:{d:"is a range or array of y-values you already know in the relationship y = mx + b"},knownXs:{d:"is an optional range or array of x-values that you know in the relationship y = mx + b, an array the same size as Known_y's",v:null},newXs:{d:"is a range or array of new x-values for which you want TREND to return corresponding y-values",v:null},consts:{d:"is a logical value: the constant b is calculated normally if Const = TRUE; b is set equal to 0 if Const = FALSE",v:!0}},h:"Unimplemented"},TRIMMEAN:{s:"Returns the mean of the interior portion of a set of data values",p:{array:{d:"is the range or array of values to trim and average"},percent:{d:"is the fractional number of data points to exclude from the top and bottom of the data set"}},h:"Unimplemented"},"VAR.P":{s:"Calculates variance based on the entire population (ignores logical values and text in the population)",p:{number:{d:"number1,number2,... are 1 to 255 numeric arguments corresponding to a population"}}},"VAR.S":{s:"Estimates variance based on a sample (ignores logical values and text in the sample)",p:{number:{d:"number1,number2,... are 1 to 255 numeric arguments corresponding to a sample of a population"}}},VARA:{s:"Estimates variance based on a sample, including logical values and text. Text and the logical value FALSE have the value 0; the logical value TRUE has the value 1",p:{value:{d:"value1,value2,... are 1 to 255 value arguments corresponding to a sample of a population"}}},VARPA:{s:"Calculates variance based on the entire population, including logical values and text. Text and the logical value FALSE have the value 0; the logical value TRUE has the value 1",p:{value:{d:"value1,value2,... are 1 to 255 value arguments corresponding to a population"}}},"WEIBULL.DIST":{s:"Returns the Weibull distribution",p:{x:{d:"is the value at which to evaluate the function, a nonnegative number"},alpha:{d:"is a parameter to the distribution, a positive number"},beta:{d:"is a parameter to the distribution, a positive number"},cumulative:{d:"is a logical value: for the cumulative distribution function, use TRUE; for the probability mass function, use FALSE"}}},"Z.TEST":{s:"Returns the one-tailed P-value of a z-test",p:{array:{d:"is the array or range of data against which to test X"},x:{d:"is the value to test"},sigma:{d:"is the population (known) standard deviation. If omitted, the sample standard deviation is used",v:0}}}};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
|
|
3
|
+
*
|
|
4
|
+
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
|
+
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
+
*/
|
|
7
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});let e=null;exports.initialize=async function(){return e||(e=new Promise(async(e,i)=>{try{const i="0.20.2",t=`https://esm.sh/esbuild-wasm@${i}`,s=`https://esm.sh/esbuild-wasm@${i}/esbuild.wasm`,r=(await import(
|
|
8
|
+
/* webpackIgnore: true */
|
|
9
|
+
/* @vite-ignore */
|
|
10
|
+
t)).default;await r.initialize({wasmURL:s,worker:!1}),e(r)}catch(e){console.error("Error initializing esbuild:",e),i(e)}}),e)};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
|
|
3
|
+
*
|
|
4
|
+
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
|
+
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
+
*/
|
|
7
|
+
let n=class{constructor(n){this._worker=null,this._nextId=1,this._pendingRequests=new Map,this._workerFactory=n}start(){if(typeof Worker>"u")throw new Error("Web Workers are not supported in this environment.");return this._worker||(this._worker=this._workerFactory(),this._worker.onmessage=n=>{const{id:e,result:t,error:r}=n.data,o=this._pendingRequests.get(e);if(o)if(this._pendingRequests.delete(e),r){const n=new Error(r.message);n.stack=r.stack,r.cause&&(n.cause=r.cause),o.reject(n)}else o.resolve(t)},this._worker.onerror=n=>{console.error("Worker error:",n),this._pendingRequests.forEach(e=>{e.reject(new Error(`Worker failed: ${n.message}`))}),this._pendingRequests.clear(),this._worker=null}),Promise.resolve()}execute(n){if(!this._worker)throw new Error("Worker is not initialized. Call start() first.");const e=this._nextId++;return new Promise((t,r)=>{this._pendingRequests.set(e,{resolve:t,reject:r}),this._worker.postMessage({id:e,params:n})})}terminate(){this._worker&&(this._worker.terminate(),this._worker=null)}};class e{constructor(n){this._onExecute=n}execute(n){return this._onExecute(n)}start(){return Promise.resolve()}terminate(){}}const t='/**\n * @license @sheetxl/primitives - Primitives - Base types for SheetXL functions. - v0.4.11\n *\n * (C) 2025-present SheetXL Inc. & Michael T. Ford\n * License: The license can be found at https://www.sheetxl.com/license.\n */\nconst W = { Number: "n", String: "s", Boolean: "b", Error: "e", Null: "z" };\nvar Re, ae, d;\n(ae = Re || (Re = {})).Orientation = { Column: "column", Row: "row" }, ae.Orientations = { ...ae.Orientation, Both: "both" }, ae.Direction = { Up: "up", Down: "down", Left: "left", Right: "right" }, ((e) => {\n 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!" };\n class t extends Error {\n constructor(c, m, fe, B) {\n super(fe, B), this._label = m, this._code = c, this.details = B;\n }\n static {\n this.code = e.Code.Unknown;\n }\n get isFormulaError() {\n return !0;\n }\n getLabel() {\n return this._label;\n }\n getCode() {\n return this._code;\n }\n equals(c) {\n return !!c && (this._code === c._code || this._code === c.code);\n }\n get [Symbol.toStringTag]() {\n return "[FormulaError]";\n }\n toString() {\n return this.message || this._label;\n }\n }\n e.Known = t;\n class n extends t {\n constructor(c, m) {\n super(e.Code.Parse, e.Label.Parse, c, m);\n }\n static {\n this.code = e.Code.Parse;\n }\n getDetails() {\n const c = this.details;\n return { line: c?.line ?? 1, column: c?.column ?? 1, offset: c?.offset ?? 0, length: c?.length ?? 0 };\n }\n }\n e.Parse = n;\n class r extends t {\n constructor(c, m) {\n super(e.Code.Null, e.Label.Null, c, m);\n }\n static {\n this.code = e.Code.Null;\n }\n }\n e.Null = r;\n class o extends t {\n constructor(c, m) {\n super(e.Code.Div0, e.Label.Div0, c, m);\n }\n static {\n this.code = e.Code.Div0;\n }\n }\n e.Div0 = o;\n class i extends t {\n constructor(c, m) {\n super(e.Code.Value, e.Label.Value, c, m);\n }\n static {\n this.code = e.Code.Value;\n }\n }\n e.Value = i;\n class a extends t {\n constructor(c, m) {\n super(e.Code.Ref, e.Label.Ref, c, m);\n }\n static {\n this.code = e.Code.Ref;\n }\n }\n e.Ref = a;\n class l extends t {\n constructor(c, m) {\n super(e.Code.Name, e.Label.Name, c, m);\n }\n static {\n this.code = e.Code.Name;\n }\n }\n e.Name = l;\n class u extends t {\n constructor(c, m) {\n super(e.Code.Num, e.Label.Num, c, m);\n }\n static {\n this.code = e.Code.Num;\n }\n }\n e.Num = u;\n class f extends t {\n constructor(c, m) {\n super(e.Code.NA, e.Label.NA, c, m);\n }\n static {\n this.code = e.Code.NA;\n }\n }\n e.NA = f;\n class h extends t {\n constructor(c, m) {\n super(e.Code.GettingData, e.Label.GettingData, c, m);\n }\n static {\n this.code = e.Code.GettingData;\n }\n }\n e.GettingData = h;\n class g extends t {\n constructor(c, m) {\n super(e.Code.Spill, e.Label.Spill, c, m);\n }\n static {\n this.code = e.Code.Spill;\n }\n }\n e.Spill = g;\n class p extends t {\n constructor(c, m) {\n super(e.Code.Connect, e.Label.Connect, c, m);\n }\n static {\n this.code = e.Code.Connect;\n }\n }\n e.Connect = p;\n class y extends t {\n constructor(c, m) {\n super(e.Code.Blocked, e.Label.Blocked, c, m);\n }\n static {\n this.code = e.Code.Blocked;\n }\n }\n e.Blocked = y;\n class T extends t {\n constructor(c, m) {\n super(e.Code.Unknown, e.Label.Unknown, c, m);\n }\n static {\n this.code = e.Code.Unknown;\n }\n }\n e.Unknown = T;\n class A extends t {\n constructor(c, m) {\n super(e.Code.Field, e.Label.Field, c, m);\n }\n static {\n this.code = e.Code.Field;\n }\n }\n e.Field = A;\n class D extends t {\n constructor(c, m) {\n super(e.Code.Calc, e.Label.Calc, c, m);\n }\n static {\n this.code = e.Code.Calc;\n }\n }\n e.Calc = D;\n class U extends t {\n constructor(c, m) {\n super(e.Code.Busy, e.Label.Busy, c, m);\n }\n static {\n this.code = e.Code.Busy;\n }\n }\n e.Busy = U;\n class I extends t {\n constructor(c, m) {\n super(e.Code.Python, e.Label.Python, c, m);\n }\n static {\n this.code = e.Code.Python;\n }\n }\n e.Python = I;\n class J extends t {\n constructor(c, m) {\n super(e.Code.Timeout, e.Label.Timeout, c, m);\n }\n static {\n this.code = e.Code.Timeout;\n }\n }\n e.Timeout = J;\n})(d || (d = {}));\nconst _ = {};\n_[d.Code.Parse] = d.Parse, _[d.Code.Null] = d.Null, _[d.Code.Div0] = d.Div0, _[d.Code.Value] = d.Value, _[d.Code.Ref] = d.Ref, _[d.Code.Name] = d.Name, _[d.Code.Num] = d.Num, _[d.Code.NA] = d.NA, _[d.Code.GettingData] = d.GettingData, _[d.Code.Spill] = d.Spill, _[d.Code.Connect] = d.Connect, _[d.Code.Blocked] = d.Blocked, _[d.Code.Unknown] = d.Unknown, _[d.Code.Field] = d.Field, _[d.Code.Calc] = d.Calc, _[d.Code.Busy] = d.Busy, _[d.Code.Python] = d.Python, _[d.Code.Timeout] = d.Timeout;\nconst et = /* @__PURE__ */ new Map(), Te = /* @__PURE__ */ new Map(), tt = /* @__PURE__ */ new Map(), nt = /* @__PURE__ */ new Map(), ke = Object.keys(_);\nfor (let e = 0; e < ke.length; e++) {\n const t = ke[e], n = _[t];\n tt.set(d.Label[t], n), nt.set(d.Code[t], n);\n const r = new n();\n et.set(r.getLabel(), r), Te.set(r.getCode(), r);\n}\nconst Et = Te.get(d.Code.Unknown);\nvar v;\n(v = d || (d = {})).BuiltIn = { Parse: new v.Parse(), Null: new v.Null(), Div0: new v.Div0(), Value: new v.Value(), Ref: new v.Ref(), Name: new v.Name(), Num: new v.Num(), NA: new v.NA(), GettingData: new v.GettingData(), Spill: new v.Spill(), Connect: new v.Connect(), Blocked: new v.Blocked(), Unknown: new v.Unknown(), Field: new v.Field(), Calc: new v.Calc(), Busy: new v.Busy(), Python: new v.Python(), Timeout: new v.Timeout() }, v.getBuiltInByLabel = (e) => et.get(e), v.newTypedError = (e, t, n) => {\n let r;\n return r = typeof e == "string" ? tt.get(e) : nt.get(e), r || (r = v.Unknown), new r(t, n);\n}, v.getBuiltInById = (e) => Te.get(e) || Et;\n/**\n * @license @sheetxl/utils - Utils - Utilities used by most SheetXL components. - v0.4.11\n *\n * (C) 2025-present SheetXL Inc. & Michael T. Ford\n * License: The license can be found at https://www.sheetxl.com/license.\n */\nconst S = { html: "text/html", plain: "text/plain", png: "image/png" }, St = Object.freeze({ left: 0, top: 0 }), xt = Object.freeze({ left: 0, top: 0, bottom: 0, right: 0 }), Ct = Object.freeze({ x: 0, y: 0, width: 0, height: 0 });\nObject.freeze(Object.defineProperty({ __proto__: null, EmptyBounds: Ct, EmptyRect: xt, EmptyTopLeft: St }, Symbol.toStringTag, { value: "Module" }));\nconst j = { Column: "column", Row: "row" }, vt = Object.freeze({ colIndex: 0, rowIndex: 0 }), Tt = Object.freeze({ colStart: 0, rowStart: 0, colEnd: 0, rowEnd: 0 }), rt = (e, t) => e.colStart === t.colStart ? e.rowStart - t.rowStart : e.colStart - t.colStart, ot = (e, t) => e.rowStart === t.rowStart ? e.colStart - t.colStart : e.rowStart - t.rowStart, _t = (e, t) => e.rowEnd === t.rowEnd ? t.colEnd - e.colEnd : t.rowEnd - e.rowEnd, Ot = (e, t) => e.colEnd === t.colEnd ? t.rowEnd - e.rowEnd : t.colEnd - e.colEnd, Le = (e, t) => e.colIndex === t.colIndex ? e.rowIndex - t.rowIndex : e.colIndex - t.colIndex, Ae = (e, t) => e.rowIndex === t.rowIndex ? e.colIndex - t.colIndex : e.rowIndex - t.rowIndex, it = (e = j.Row, t = !1) => t ? e !== j.Column ? _t : Ot : e !== j.Column ? ot : rt, Me = (e, t) => e === t || !(!e || !t) && e.rowIndex === t.rowIndex && e.colIndex === t.colIndex, Se = (e, t) => e === t || !(!e || !t) && e.rowStart === t.rowStart && e.rowEnd === t.rowEnd && e.colStart === t.colStart && e.colEnd === t.colEnd, xe = (e, t) => !(!e || !t) && !(e.colStart > t.colEnd || t.colStart > e.colEnd) && !(e.rowStart > t.rowEnd || t.rowStart > e.rowEnd), je = (e, t) => {\n if (e === t) return !0;\n if (!e || !t || e.length !== t.length) return !1;\n for (let n = 0; n < e.length; n++) if (!Se(e[n], t[n])) return !1;\n return !0;\n}, he = (e, t, n) => {\n if (!e && !t) return null;\n if (!e) return n ? t : { ...t };\n if (!t) return n ? e : { ...e };\n const r = Math.min(e.colStart, t.colStart), o = Math.min(e.rowStart, t.rowStart), i = Math.max(e.colEnd, t.colEnd), a = Math.max(e.rowEnd, t.rowEnd);\n let l = n;\n return l ? (l.colStart = r, l.rowStart = o, l.colEnd = i, l.rowEnd = a) : l = { colStart: r, rowStart: o, colEnd: i, rowEnd: a }, l;\n}, Pe = (e, t) => {\n if (!t || t.length === 0) return e;\n const n = { ...e };\n for (let r = 0; r < t.length; r++) {\n const o = t[r];\n xe(n, o) && (n.rowStart = Math.min(n.rowStart, o.rowStart), n.colStart = Math.min(n.colStart, o.colStart), n.rowEnd = Math.max(n.rowEnd, o.rowEnd), n.colEnd = Math.max(n.colEnd, o.colEnd));\n }\n return n;\n}, It = [null, null], Nt = (e, t, n) => {\n if (e[0].value === e[1].value) return t;\n};\nfunction Fe(e, t = 2, n, r = j.Row, o) {\n let i = [...e];\n if (t <= 0 || e.length <= 1) return i;\n let a = r === j.Column, l = 0, u = !1;\n do {\n const f = i.sort(it(a ? j.Row : j.Column));\n i = [], i.push(f[0]);\n const h = f.length;\n let g = 0, p = f[0], y = p.colStart, T = p.rowStart, A = p.colEnd, D = p.rowEnd;\n for (let U = 1; U < h; U++) {\n const I = f[U];\n let J = !1;\n if (J = a ? p && T === I.rowStart && D === I.rowEnd && A + 1 === I.colStart : p && y === I.colStart && A === I.colEnd && D + 1 === I.rowStart, J) {\n let E = { colStart: y, rowStart: T, colEnd: a ? I.colEnd : A, rowEnd: a ? D : I.rowEnd };\n if (p.value !== void 0 && (E.value = p.value), n) {\n const c = o ?? [null, null];\n c[0] = p, c[1] = I, E = n(c, E, r);\n }\n if (E) {\n i[g] = E, u = !0, p = E, y = p.colStart, T = p.rowStart, A = p.colEnd, D = p.rowEnd;\n continue;\n }\n }\n i[++g] = I, p = I, y = p.colStart, T = p.rowStart, A = p.colEnd, D = p.rowEnd;\n }\n l++, a = !a, l === 1 && (u = !0);\n } while (l < t && u && i.length > 1);\n return i;\n}\nObject.freeze(Object.defineProperty({ __proto__: null, EmptyCell: vt, EmptyRange: Tt, cellToRange: (e, t) => {\n if (!e) return null;\n let n = t;\n return n || (n = { ...e }, delete n.colIndex, delete n.rowIndex), n.colStart = e.colIndex ?? 0, n.rowStart = e.rowIndex ?? 0, n.colEnd = e.colIndex ?? 0, n.rowEnd = e.rowIndex ?? 0, n;\n}, columnFirstCellComparator: Le, columnFirstRangeComparator: rt, createCellComparator: (e = j.Row, t = !1) => t ? e !== j.Column ? (n, r) => n.rowIndex === r.rowIndex ? r.colIndex - n.colIndex : r.rowIndex - n.rowIndex : (n, r) => n.colIndex === r.colIndex ? r.rowIndex - n.rowIndex : r.colIndex - n.colIndex : e !== j.Column ? Ae : Le, createConflatingRanges: (e, t = !1) => {\n const n = [];\n let r, o, i = Number.MIN_SAFE_INTEGER, a = Number.MIN_SAFE_INTEGER;\n return { append: (l, u, f) => {\n let h = !0;\n const g = f !== void 0;\n if (g) {\n const T = e ? e(o, f, t) : o === f ? f : void 0;\n T === void 0 ? h = !1 : f = T;\n }\n if (h && u === a + 1 && l === i) return t ? r.rowEnd = u : r.colEnd = u, a = u, void (o = f);\n r && n.push(r);\n const p = t ? l : u, y = t ? u : l;\n r = { colStart: p, rowStart: y, colEnd: p, rowEnd: y }, g && (r.value = f), i = l, a = u, o = f;\n }, done: (l) => (r && (n.push(r), r = null), l ? Fe(n, 3, l === !0 ? Nt : l, t ? j.Column : j.Row, It) : n) };\n}, createRangeComparator: it, defaultRange: (e, t, n) => e ? n ? (n.colStart = e.colStart ?? t.colStart, n.rowStart = e.rowStart ?? t.rowStart, n.colEnd = e.colEnd ?? t.colEnd, n.rowEnd = e.rowEnd ?? t.rowEnd, n) : { colStart: e.colStart ?? t.colStart, rowStart: e.rowStart ?? t.rowStart, colEnd: e.colEnd ?? t.colEnd, rowEnd: e.rowEnd ?? t.rowEnd } : t, extendRangeToIntersectingRanges: Pe, extendRangeToUnionRanges: (e, t) => {\n if (!t || t.length === 0) return e;\n let n = e, r = null;\n for (; !Se(n, r); ) r = n, n = Pe(r, t);\n return n;\n}, indexOfCoords: (e, t) => {\n const n = { colStart: e.colIndex, rowStart: e.rowIndex, colEnd: e.colIndex, rowEnd: e.rowIndex };\n for (let r = t.length - 1; r >= 0; r--) if (xe(n, t[r])) return r;\n return -1;\n}, intersectRanges: (e, t, n) => {\n if (!e) return n ? t : { ...t };\n if (!t) return n ? e : { ...e };\n if (!e && !t || e.rowStart > t.rowEnd || e.rowEnd < t.rowStart || e.colStart > t.colEnd || e.colEnd < t.colStart) return null;\n const r = Math.max(e.colStart, t.colStart), o = Math.max(e.rowStart, t.rowStart), i = Math.min(e.colEnd, t.colEnd), a = Math.min(e.rowEnd, t.rowEnd);\n let l = n;\n return l ? (l.colStart = r, l.rowStart = o, l.colEnd = i, l.rowEnd = a) : l = { colStart: r, rowStart: o, colEnd: i, rowEnd: a }, l;\n}, isCellWithinRange: (e, t) => !(!e || !t) && !(e.rowIndex < t.rowStart || e.rowIndex > t.rowEnd) && !(e.colIndex < t.colStart || e.colIndex > t.colEnd), isEqualCells: Me, isEqualRanges: Se, isEqualRangesArrays: je, isEqualSelectionCoords: (e, t) => e === t || !(!e || !t) && e.rangeIndex === t.rangeIndex && !!Me(e.cell, t.cell) && je(e.ranges, t.ranges), isRangeWithinRange: (e, t) => !(e.rowStart < t.rowStart || e.rowEnd > t.rowEnd) && !(e.colStart < t.colStart || e.colEnd > t.colEnd), isRangesIntersect: xe, 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: Fe, rowFirstCellComparator: Ae, rowFirstRangeComparator: ot, 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, n = -e.colStart, r) => r ? (r.colStart = e.colStart + n, r.rowStart = e.rowStart + t, r.colEnd = e.colEnd + n, r.rowEnd = e.rowEnd + t, r) : { colStart: e.colStart + n, rowStart: e.rowStart + t, colEnd: e.colEnd + n, rowEnd: e.rowEnd + t }, unionRanges: he, unionRangesArrays: (e, t, n) => {\n if (!e || e.length === 0) return null;\n if (e.length === 1 && !t) return e[0];\n let r = e[0];\n for (let o = 1; o < e.length; o++) r = he(r, e[o], n);\n return t && (r = he(r, t, n)), r;\n} }, Symbol.toStringTag, { value: "Module" }));\nfunction Rt(e) {\n const t = Object.prototype.toString.call(e);\n return t === "[object RegExp]" || t === "[object Date]" || function(n) {\n return n.$$typeof === kt;\n }(e);\n}\nconst kt = typeof Symbol == "function" && Symbol.for ? Symbol.for("react.element") : 60103;\nfunction Lt(e) {\n return /* @__PURE__ */ function(t) {\n return !!t && typeof t == "object";\n }(e) && !Rt(e);\n}\nfunction re(e, t) {\n return t.clone !== !1 && t.isMergeableObject(e) ? Y((n = e, Array.isArray(n) ? [] : {}), e, t) : e;\n var n;\n}\nfunction At(e, t, n) {\n return e.concat(t).map(function(r) {\n return re(r, n);\n });\n}\nfunction De(e) {\n return Object.keys(e).concat(function(t) {\n return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(t).filter(function(n) {\n return Object.propertyIsEnumerable.call(t, n);\n }) : [];\n }(e));\n}\nfunction Ue(e, t) {\n try {\n return t in e;\n } catch {\n return !1;\n }\n}\nfunction Mt(e, t, n) {\n const r = {};\n return n.isMergeableObject(e) && De(e).forEach(function(o) {\n r[o] = re(e[o], n);\n }), De(t).forEach(function(o) {\n (function(i, a) {\n return Ue(i, a) && !(Object.hasOwnProperty.call(i, a) && Object.propertyIsEnumerable.call(i, a));\n })(e, o) || (Ue(e, o) && n.isMergeableObject(t[o]) ? r[o] = function(i, a) {\n if (!a.customMerge) return Y;\n const l = a.customMerge(i);\n return typeof l == "function" ? l : Y;\n }(o, n)(e[o], t[o], n) : r[o] = re(t[o], n));\n }), r;\n}\nfunction Y(e, t, n) {\n (n = n || {}).arrayMerge = n.arrayMerge || At, n.isMergeableObject = n.isMergeableObject || Lt, n.cloneUnlessOtherwiseSpecified = re;\n const r = Array.isArray(t);\n return r === Array.isArray(e) ? r ? n.arrayMerge(e, t, n) : Mt(e, t, n) : re(t, n);\n}\nY.all = function(e, t) {\n if (!Array.isArray(e)) throw new Error("first argument should be an array");\n return e.reduce(function(n, r) {\n return Y(n, r, t);\n }, {});\n};\nconst jt = Object.freeze([]), Pt = Object.freeze({}), Be = (e) => e, de = () => "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(e) {\n let t = 16 * Math.random() | 0;\n return (e === "x" ? t : 3 & t | 8).toString(16);\n}), Ft = (e) => 1 * e, at = (e, t) => e === t || !(!Array.isArray(e) || !Array.isArray(t) || e.length !== t.length) && e.every((n, r) => n === t[r]), ne = (e) => typeof e == "object" && !Array.isArray(e) && e !== null, lt = (e) => typeof e != "object" || Array.isArray(e) || e === null ? e : (Object.keys(e).forEach(function(t) {\n e[t] && typeof e[t] == "object" ? lt(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];\n}), Object.keys(e).length === 0 ? null : e), Dt = (e, t) => !(e !== t && !at(e, t)) || !!e.isEqual?.(t), st = (e, t, n = Dt) => {\n if (e == null || e === t) return null;\n if (!e || typeof e != "object" || Array.isArray(e) || e.isImmutable?.()) return n(e, t) ? null : e;\n const r = Object.keys(e);\n if (r.length === 0) return null;\n let o = !1;\n for (let i = 0; i < r.length; i++) {\n const a = r[i];\n st(e[a], t?.[a], n) === null && (o = !0, delete e[a]);\n }\n return o && Object.keys(e).length === 0 ? null : void 0;\n}, $e = typeof performance == "object" && typeof performance.now == "function" ? () => performance.now() : () => Date.now(), ze = (e) => e == null, Ke = (e, t) => !(t.left > e.right || t.right < e.left || t.top > e.bottom || t.bottom < e.top), Ve = !(typeof window > "u" || !window.document || !window.document.createElement), k = { Windows: "windows", MacOS: "macos", IOS: "ios", Linux: "linux", Android: "android", Safari: "safari", Firefox: "firefox", Node: "node", Unknown: "unknown" }, oe = () => {\n if (ct()) return k.Node;\n const e = globalThis.navigator !== void 0 && globalThis.navigator.userAgent ? globalThis.navigator.userAgent.toLowerCase() : "";\n return e ? /(win32|win64|windows|wince)/i.test(e) ? k.Windows : /(macintosh|macintel|macppc|mac68k|macos)/i.test(e) ? k.MacOS : /(iphone|ipad|ipod)/i.test(e) ? k.IOS : /android/.test(e) ? k.Android : /linux/.test(e) ? k.Linux : /^((?!chrome|android|).)*safari/i.test(e) ? k.Safari : /^((?!chrome|android|Seamonkey).)*firefox/i.test(e) ? k.Firefox : k.Unknown : k.Unknown;\n};\nfunction ct() {\n return typeof process < "u" && process.release?.name === "node" || (typeof process < "u" && process.browser, !1);\n}\nconst qe = (e, t = !1) => (document.hasFocus() || t) && (e === document.activeElement || e?.contains(document.activeElement)), Ut = Object.freeze(Object.defineProperty({ __proto__: null, EmptyArray: jt, EmptyObject: Pt, OSType: k, arrayMove: function(e, t, n) {\n const r = e.slice();\n return r.splice(n < 0 ? r.length + n : n, 0, r.splice(t, 1)[0]), r;\n}, asNumber: (e) => {\n const t = Ft(e);\n return Number.isFinite(t) ? t : 0;\n}, camelToPrettyCase: (e) => e.length === 1 ? e.toUpperCase() : e.replace(/([A-Z])/g, " $1").replace(/^./, function(t) {\n return t.toUpperCase();\n}).trim(), canUseDOM: Ve, cancelTimeout: (e) => {\n cancelAnimationFrame(e.id);\n}, castToString: (e) => e == null || e === void 0 ? "" : typeof e != "string" ? "" + e : e, cloneObject: (e) => ze(e) ? e : JSON.parse(JSON.stringify(e)), consoleWithNoSource: (...e) => new Promise((t) => {\n setTimeout(() => {\n Function("console.log.apply(console, arguments)").apply(null, e), t();\n });\n}), debounce: function(e, t = 300, n = !1) {\n let r, o, i, a, l = 0;\n function u() {\n let h = Date.now() - l;\n h < t && h >= 0 ? r = setTimeout(u, t - h) : (r = null, n || (a = e.apply(i, o), i = o = null));\n }\n t == null && (t = 100);\n const f = function() {\n i = globalThis, o = arguments, l = Date.now();\n var h = n && !r;\n return r || (r = setTimeout(u, t)), h && (a = e.apply(i, o), i = o = null), a;\n };\n return f.clear = function() {\n r && (clearTimeout(r), r = null);\n }, f.flush = function() {\n r && (a = e.apply(i, o), i = o = null, clearTimeout(r), r = null);\n }, f;\n}, deepEqual: function e(t, n) {\n if (t === n) return !0;\n if (t && n && typeof t == "object" && typeof n == "object") {\n if (t.constructor !== n.constructor) return !1;\n let r, o, i;\n if (Array.isArray(t)) {\n if (r = t.length, r != n.length) return !1;\n for (o = r; o-- !== 0; ) if (!e(t[o], n[o])) return !1;\n return !0;\n }\n if (t instanceof Map && n instanceof Map) {\n if (t.size !== n.size) return !1;\n for (o of t.entries()) if (!n.has(o[0])) return !1;\n for (o of t.entries()) if (!e(o[1], n.get(o[0]))) return !1;\n return !0;\n }\n if (t instanceof Set && n instanceof Set) {\n if (t.size !== n.size) return !1;\n for (o of t.entries()) if (!n.has(o[0])) return !1;\n return !0;\n }\n if (ArrayBuffer.isView(t) && ArrayBuffer.isView(n)) {\n if (r = t.length, r != n.length) return !1;\n for (o = r; o-- !== 0; ) if (t[o] !== n[o]) return !1;\n return !0;\n }\n if (t.constructor === RegExp) return t.source === n.source && t.flags === n.flags;\n if (t.valueOf !== Object.prototype.valueOf) return t.valueOf() === n.valueOf();\n if (t.toString !== Object.prototype.toString) return t.toString() === n.toString();\n if (i = Object.keys(t), r = i.length, r !== Object.keys(n).length) return !1;\n for (o = r; o-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(n, i[o])) return !1;\n for (o = r; o-- !== 0; ) {\n let a = i[o];\n if ((a !== "_owner" || !t.$$typeof) && !e(t[a], n[a])) return !1;\n }\n return !0;\n }\n return t != t && n != n;\n}, deepFreeze: function e(t) {\n return Object.freeze(t), Object.keys(t).forEach((n) => {\n typeof t[n] != "object" || t[n] === null || Object.isFrozen(t[n]) || e(t[n]);\n }), t;\n}, deepMerge: Y, diffValues: (e, t) => {\n const n = {}, r = Object.keys(t), o = r.length;\n for (let i = 0; i < o; i++) {\n const a = r[i];\n e[a] !== t[a] && (e[a] === void 0 ? n[a] = t[a] : n[a] = e[a]);\n }\n return Object.keys(n).length === 0 ? null : n;\n}, findEqualOrGreater: function(e, t, n = Be) {\n let r = 0, o = e.length - 1;\n for (; r <= o; ) {\n let i = Math.floor((r + o) / 2), a = n(e[i]);\n if (a === t) return i;\n a < t ? r = i + 1 : o = i - 1;\n }\n return r;\n}, findEqualOrLesser: function(e, t, n = Be) {\n let r = e.length - 1, o = 0;\n for (; r >= o; ) {\n let i = Math.floor((r + o) / 2), a = n(e[i]);\n if (a === t) return i;\n a > t ? r = i - 1 : o = i + 1;\n }\n return r;\n}, findNextStep: (e, t = !0, n = 15, r = 10, o = 400) => {\n const i = Math.max(e - r, 0) + (t ? 1 : -1);\n return Math.min(o, Math[t ? "ceil" : "floor"](i / n) * n + r);\n}, getDPI: () => {\n let e = 1;\n return typeof window == "object" && (e = window.devicePixelRatio || 1), e;\n}, getFromPath: (e, t) => {\n const n = t.split(".");\n let r = e;\n for (let o = 0; o < n.length; o++) {\n const i = n[o];\n if (!r) return null;\n let a = r[i];\n if (typeof a == "function" && (a = a.bind(r)()), !a || !ne(a)) return a;\n r = a;\n }\n return r ?? null;\n}, getOS: oe, hasFocus: qe, isDefined: (e) => e != null, isEmpty: (e) => e == null || e === "", isEqualArrays: at, 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) => {\n if (e === t) return !0;\n if (e && !t || t && !e) return !1;\n const n = Object.keys(e);\n if (n.length !== Object.keys(t).length) return !1;\n for (let r = 0; r < n.length; r++) if (e[n[r]] !== t[n[r]]) return !1;\n return !0;\n}, isNode: ct, isNullOrUndefined: ze, isNumeric: (e) => {\n const t = 1 * e;\n return Number.isFinite(t) && typeof t == "number";\n}, isObject: ne, 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: Ke, mergeContentful: (...e) => {\n const t = e.length;\n if (t > 0 && e[t - 1] !== void 0 && !ne(e[t - 1])) return e[t - 1];\n let n = e[0] || {};\n for (let r = 1; r < t; r++) n = Y(n, e[r] || {}, { arrayMerge: (o, i) => [...i] });\n return n;\n}, nextTick: (e) => {\n typeof window < "u" && typeof window.requestAnimationFrame == "function" ? window.requestAnimationFrame(() => {\n e();\n }) : (typeof setImmediate == "function" ? setImmediate : setTimeout)(() => {\n e();\n });\n}, openFileDialog: (e = "*.*") => new Promise((t, n) => {\n if (!Ve) return void n("Unable to open dialog with no dom.");\n const r = document.createElement("input");\n r.type = "file", r.accept = e;\n let o = null, i = !1;\n globalThis.addEventListener?.("focus", () => {\n setTimeout(() => {\n o || i || (i = !0, t(null));\n }, 1e3);\n }, { once: !0, passive: !0 }), r.onchange = () => {\n if (o = r.files[0], o) {\n if (i) return void console.warn("File open detected after faux cancel.", o);\n t(o);\n }\n }, r.autofocus = !0, r.click();\n}), rafThrottle: (e) => {\n let t, n = !1, r = function() {\n n = !1, e(t);\n };\n return function(o) {\n t = o, t && t.persist && t.persist(), n || (n = !0, requestAnimationFrame(r));\n };\n}, removeEmptyProperties: lt, removeEqualValues: st, removeListenerAll: (e) => {\n if (!e) return [];\n for (let t = 0; t < e.length; t++) e[t] && e[t]();\n return [];\n}, requestTimeout: (e, t) => {\n const n = $e(), r = { id: requestAnimationFrame(function o() {\n $e() - n >= t ? e.call(null) : r.id = requestAnimationFrame(o);\n }) };\n return r;\n}, roundAccurately: (e, t = 0) => {\n if (e == null || !isFinite(e)) return null;\n const n = 10 ** t;\n return Number(Math.round(e * n) / n);\n}, setToPath: (e, t, n) => {\n const r = t.split(".");\n let o = e;\n if (!o) throw new Error("Can not set path to a null path.");\n for (let i = 0; o && i < r.length - 1; i++) {\n const a = r[i];\n let l = o[a];\n if (l == null && (l = {}, o[a] = l), !ne(l)) throw new Error("Can not set path to a non object path.");\n o = l;\n }\n if (typeof n != "number" && typeof n != "boolean" && typeof n != "string" && !ne(n)) throw new Error(`Can not set path to ${n} that is not a a supported primitive.`);\n return o[r[r.length - 1]] = n, e;\n}, splitNumber: (e) => {\n let t = Math.abs(e);\n if (isNaN(t) || !isFinite(e)) return null;\n let n = 0 | t, r = t - n, o = 0, i = 0, a = 1;\n if (r > 5e-8) for (; i < 8 && Math.abs(o / a - r) > 5e-8; ) i++, a *= 10, o = Math.round(r * a);\n return { ip: Math.trunc(e), fp: o, ipLength: Math.ceil(Math.log10(n + 1)), fpLength: i };\n}, subtractRect: (e, t, n = !1) => {\n if (!t) return [e];\n if (!Ke(e, t)) return [];\n const r = [];\n let o = e;\n const i = () => {\n t.top > o.top && t.top < o.bottom && (r.push({ ...o, bottom: t.top }), o = { ...o, top: t.top });\n }, a = () => {\n t.bottom > o.top && t.bottom < o.bottom && (r.push({ ...o, top: t.bottom }), o = { ...o, bottom: t.bottom });\n }, l = () => {\n t.right > o.left && t.right < o.right && (r.push({ ...o, left: t.right }), o = { ...o, right: t.right });\n }, u = () => {\n t.left > o.left && t.left < o.right && (r.push({ ...o, right: t.left }), o = { ...o, left: t.left });\n };\n return n ? (u(), l(), i(), a()) : (i(), a(), l(), u()), r;\n}, textToKey: (e) => e.replace(/[^a-zA-Z0-9]/g, "").toLowerCase(), throttle: function(e, t) {\n let n = null;\n return (...r) => {\n const o = Date.now();\n (!n || o - n >= t) && (n = o, e(...r));\n };\n}, toSafeJSON: function e(t) {\n if (t === null || typeof t != "object") return t;\n if (typeof t.toJSON == "function") return t.toJSON();\n if (Array.isArray(t)) return t.map((r) => e(r));\n if (typeof t.toString == "function" && t.toString !== Object.prototype.toString) return t.toString();\n const n = {};\n for (const r in t) t.hasOwnProperty(r) && (n[r] = e(t[r]));\n return n;\n}, transpose: (e) => {\n if (!e) return e;\n const t = e.length, n = e[0].length, r = [];\n for (let o = 0; o < n; o++) r[o] = Array(t);\n for (let o = 0; o < t; o++) for (let i = 0; i < n; i++) r[i][o] = e[o][i];\n return r;\n}, uuidV4: de, validEnumValue: (e, t) => {\n if (!Object.values(e).includes(t)) throw new Error(`Invalid type: ${t ?? "null"}. Must be one of: ${Object.values(t).join(", ")}.`);\n}, whenFocus: async (e, t = !1) => new Promise((n) => {\n qe(e, t) ? n(!0) : e.addEventListener("focusin", () => {\n n(!0);\n }, { once: !0 }), e.focus();\n}) }, Symbol.toStringTag, { value: "Module" }));\nObject.freeze(Object.defineProperty({ __proto__: null, MESSAGE_ERROR_INVALID_ARG: (e) => `Invalid argument: \'${e}\'.` }, Symbol.toStringTag, { value: "Module" }));\nconst ut = (e) => {\n const t = new Uint8Array(e), n = t.byteLength;\n let r = "";\n for (let o = 0; o < n; o++) r += String.fromCharCode(t[o]);\n if (typeof window < "u" && typeof globalThis.btoa == "function") return globalThis.btoa(r);\n if (typeof Buffer < "u") return Buffer.from(r, "binary").toString("base64");\n throw new Error("Unsupported environment");\n}, Ce = (e) => new Promise((t, n) => {\n if (e) if (typeof FileReader < "u") {\n const r = new FileReader();\n r.onload = () => {\n t(r.result);\n }, r.onerror = () => {\n n(r.error);\n }, r.readAsText(e);\n } else if (typeof Buffer < "u") {\n const r = (o) => Buffer.from(o).toString("utf-8");\n e.arrayBuffer().then((o) => {\n t(r(o));\n }).catch((o) => {\n n(o);\n });\n } else n(new Error("Unsupported environment"));\n else t("");\n});\nObject.freeze(Object.defineProperty({ __proto__: null, DEFAULT_MIME_TYPE: "*/*", arrayBufferToBase64: ut, base64ToArrayBuffer: (e) => {\n const t = typeof window < "u" && typeof globalThis.atob == "function" ? globalThis.atob(e) : Buffer.from(e, "base64").toString("binary"), n = t.length, r = new Uint8Array(n);\n for (let o = 0; o < n; o++) r[o] = t.charCodeAt(o);\n return r.buffer;\n}, blobToString: Ce }, Symbol.toStringTag, { value: "Module" }));\nconst dt = "data:image/png;base64,", ft = "Unable to resolve image.", Ge = (e) => new Promise(async (t, n) => {\n let r = null;\n try {\n r = new Image(), r.src = e, r.addEventListener("load", function() {\n t({ width: r.naturalWidth, height: r.naturalHeight });\n }, { once: !0 }), r.addEventListener("error", function() {\n URL.revokeObjectURL(e), n("Invalid Image");\n }, { once: !0 }), await r.decode("sync");\n } catch {\n r?.src && URL.revokeObjectURL(r.src);\n }\n r || n(ft);\n}), we = "image/svg+xml";\nObject.freeze(Object.defineProperty({ __proto__: null, DATA_URL_PNG_PREFIX: dt, getImageDataUrl: (e, t = 1) => new Promise(async (n, r) => {\n let o = null;\n try {\n o = new Image(), o.src = e, o.addEventListener("load", function() {\n try {\n const i = document.createElement("canvas");\n i.width = o.naturalWidth, i.height = o.naturalHeight, i.getContext("2d").drawImage(o, 0, 0);\n const a = i.toDataURL("image/png", t);\n n({ elemImg: o, dataUrl: a });\n } catch (i) {\n URL.revokeObjectURL(e), r(i);\n }\n }, { once: !0 }), o.addEventListener("error", function() {\n URL.revokeObjectURL(e), r("Invalid Image");\n }, { once: !0 }), await o.decode("sync");\n } catch {\n o?.src && URL.revokeObjectURL(o.src);\n }\n o || r(ft);\n}), loadImageDetails: async (e, t = null) => {\n let n = null;\n const r = async () => {\n try {\n const i = t ?? "image/*", a = URL.createObjectURL(new Blob([e], { type: i })), l = await Ge(a);\n n = { mimeType: i, naturalDimensions: l, asUrl: a };\n } catch {\n }\n }, o = async () => {\n try {\n const i = new TextDecoder().decode(e), a = URL.createObjectURL(new Blob([i], { type: we })), l = await Ge(a);\n n = { mimeType: t ?? we, naturalDimensions: l, asUrl: a, asSVGText: i };\n } catch {\n }\n };\n if (t === we ? await o() : t.startsWith("image/") ? await r() : (await r(), n || await o()), !n) throw new Error("Failed to load image");\n return n;\n} }, Symbol.toStringTag, { value: "Module" }));\nvar We, Ye;\n(Ye = We || (We = {})).resolveTypedUpdates = (e, t, n, r) => {\n if (e === null) return e;\n if (e === void 0) return r;\n let o = e;\n if (t?.shorthand) {\n const u = t?.shorthand(e, n);\n u !== void 0 && (o = u);\n }\n if (o !== null && t?.getSubType) {\n const u = t.getSubType(o);\n u && (t = u);\n }\n const i = t?.properties, a = t?.arrayType ?? !1;\n let l = o;\n if (t && t.merge && l && r) l = t.merge(l, r, n);\n else if (!a) {\n if (i) {\n const u = Object.keys({ ...o, ...r });\n l = null;\n for (let f = 0; f < u.length; f++) {\n const h = u[f];\n let g, p = o[h];\n if (p !== void 0) {\n const y = i[h];\n g = y ? (0, Ye.resolveTypedUpdates)(p, y, n, r?.[h]) : p;\n } else g = r?.[h];\n g != null && (l = l ?? {}, l[h] = g);\n }\n }\n }\n return l;\n};\nconst Je = `The Safari browser does not support advanced copy and paste.\nCopy and paste will be limited to within the browser tab.\n\nPlease use Chrome or Edge if external copy and paste is required.`, ye = `You do not have permissions to access the clipboard.\nAll copy and paste operations will be limited to the browser tab.`, pt = { Safari: `The Safari browser does not support advanced copy and paste.\nCopy and paste will be limited to within the browser tab.\n\nPlease use Chrome or Edge if external copy and paste is required.`, Perms: ye, PermsWrite: oe() === k.Safari ? Je : ye, PermsRead: oe() === k.Safari ? Je : ye }, ge = async () => new Promise((e) => {\n document.hasFocus() ? e() : globalThis.addEventListener?.("focus", () => {\n e();\n }, { once: !0 }), document.activeElement.focus?.();\n}), be = async (e, t, n) => {\n if (oe() === k.Safari) return await n(new Error(pt.Safari));\n try {\n const r = async (a) => {\n try {\n return await a();\n } catch (l) {\n if (l.message?.includes("Document is not focused")) return !1;\n throw l;\n }\n }, o = await globalThis?.navigator?.permissions?.query({ name: e, allowWithoutGesture: !0, allowWithoutSanitization: !0 });\n let i = !1;\n if (o.state === "prompt" && (i = await r(t)), i || o.state !== "granted" || (i = await t()), !i) return await n(new Error(o.state));\n } catch (r) {\n return r.message === "No valid data on clipboard" || r.name === "DataError" ? void 0 : await n(r);\n }\n}, mt = async (e) => {\n try {\n return await e.read({ unsanitized: [S.html] });\n } catch {\n }\n return await e.read();\n}, Bt = async (e, t) => {\n if (!e) return null;\n const n = await mt(e);\n let r = !1;\n for (let o = 0; !r && n && o < n.length; o++) if (r = n[o].types.includes(t), r)\n return await n[o].getType(t);\n return r ? void 0 : null;\n};\nif (!globalThis.ClipboardItem) {\n const e = (n, r) => new Blob([r], { type: n });\n class t {\n constructor(r, o) {\n this._items = {}, this._types = Object.keys(r);\n const i = {}, a = Object.keys(r);\n for (let l = 0; l < a.length; l++) {\n const u = a[l];\n let f = r[u];\n i[u] = typeof f == "string" ? e(u, f) : f;\n }\n this._items = i, this._presentationStyle = o?.presentationStyle ?? "unspecified";\n }\n get types() {\n return this._types;\n }\n getType(r) {\n return Promise.resolve(this._items[r]);\n }\n supports(r) {\n return !0;\n }\n }\n globalThis.ClipboardItem = t;\n}\nconst ve = async (e, t = S.html) => new Promise(async (n, r) => {\n try {\n const o = await Bt(e, t);\n if (o) {\n const i = new FileReader();\n i.onload = () => {\n n(i.result);\n }, i.onerror = () => {\n n("");\n }, i.readAsText(o);\n } else n("");\n } catch (o) {\n r(o);\n }\n}), He = async (e, t = S.html) => {\n const n = await ve(e, t);\n if (!n) return null;\n let r = null;\n try {\n r = new DOMParser().parseFromString(n, S.html);\n } catch {\n console.warn("Can\'t parse html from clipboard.");\n }\n return r;\n}, $t = async (e) => {\n e && await e.writeText("");\n}, ie = "clipboard-uuid", Q = "web text/uuid", Xe = (e) => `<div style="display:none" ${ie}="${e}"/>`, zt = (e, t) => {\n let n = null;\n try {\n const r = new DOMParser().parseFromString(t, S.html);\n r.body.firstElementChild.setAttribute(ie, e), n = r.getElementsByTagName("body")[0].innerHTML;\n } catch (r) {\n console.warn("Can\'t embed uuid.", r);\n }\n return n;\n}, Ze = (e, t) => {\n if (!t || !e) return !1;\n try {\n const n = t.querySelectorAll(`[${ie}="${e}"]`);\n if (n && n.length === 1) return !0;\n if (t.querySelector("parsererror")) throw new Error("We are unable to parse node");\n return !1;\n } catch {\n return !1;\n }\n};\nclass Qe {\n constructor(t) {\n if (t?.nativeClipboard === void 0 || t?.nativeClipboard === !0) try {\n this._nativeClipboard = globalThis?.navigator.clipboard;\n } catch {\n t?.nativeClipboard === !0 && console.warn("NativeClipboard option set to true but no native clipboard available.");\n }\n else this._nativeClipboard = t?.nativeClipboard === !1 ? null : t?.nativeClipboard;\n this._disableCheckOnFocus = t?.disableCheckOnFocus ?? !1, this._init();\n }\n async _checkForChanges() {\n this._nativeClipboard && this._state && !this._disableCheckOnFocus && await be("clipboard-read", async () => {\n await ge();\n const t = await ve(this._nativeClipboard, Q);\n if (!this._state || t && t === this._state.uuid) return !0;\n const n = await He(this._nativeClipboard, S.html);\n return !this._state || (Ze(this._state.uuid, n) || this.clear(), !0);\n }, async (t) => {\n t?.message === "denied" || t.message?.includes("Document is not focused") || oe() === k.Safari || console.warn("Unable to detect clipboard changes: ", t);\n });\n }\n _init() {\n const t = this;\n this._listeners = /* @__PURE__ */ new Map(), this._listenersCapture = /* @__PURE__ */ new Map(), this._state = null, this._nativeClipboard && (this._onFocus = () => {\n t._checkForChanges();\n }, this._onBlur = () => {\n globalThis.addEventListener?.("focus", t._onFocus, { once: !0 });\n }, globalThis.addEventListener?.("blur", this._onBlur), this._nativeClipboard.addEventListener("clipboardchange", (n) => {\n t._checkForChanges();\n }));\n }\n async read() {\n if (!this._nativeClipboard) return this._state?.items ?? null;\n const t = this;\n return await be("clipboard-read", async () => {\n if (await ge(), this._state?.uuid) {\n const n = await ve(this._nativeClipboard, Q);\n if (n && n === t._state.uuid) return !0;\n const r = await He(this._nativeClipboard, S.html);\n if (Ze(t._state?.uuid, r)) return !0;\n }\n return t._state = { items: await mt(this._nativeClipboard), uuid: null, ref: null }, this.dispatchEvent(new Event("clipboardread")), !0;\n }, async (n) => {\n this.dispatchEvent(new Event("clipboarderrorread"));\n }), this._state?.items ?? [];\n }\n async write(t) {\n return this._write({ uuid: de(), items: t, ref: null });\n }\n async _write(t) {\n if (!this._nativeClipboard) return this._state = t, this.dispatchEvent(new Event("clipboardwrite")), this.dispatchEvent(new Event("clipboardchange")), null;\n const n = this, r = [], o = t.uuid;\n let i = t.items ?? [];\n const a = () => {\n n._state = { uuid: o, ref: t.ref, items: r }, n.dispatchEvent(new Event("clipboardwrite")), n.dispatchEvent(new Event("clipboardchange"));\n };\n await be("clipboard-write", async () => {\n await ge(), o && i.length === 0 && (i.push(new ClipboardItem({ [Q]: new Blob([o], { type: Q }) })), i.push(new ClipboardItem({ [S.html]: new Blob([Xe(o)], { type: S.html }) })));\n for (let l = 0; l < Math.min(1, i.length); l++) {\n const u = i[l];\n let f = u.types.indexOf(S.html), h = null;\n if (f !== -1) {\n const y = await u.getType(S.html);\n h = await Ce(y), h && (h = zt(o, h));\n }\n if (!h && u.types.includes(S.plain)) {\n const y = await u.getType(S.plain);\n if (y) {\n let T = null;\n typeof y == "string" ? (console.warn("text as string", y), T = y) : T = await Ce(y), T && (h = `<div ${ie}="${o}">${T}</div>`);\n }\n }\n if (!h && u.types.includes(S.png)) {\n const y = await u.getType(S.png), T = ut(await y.arrayBuffer());\n h = `<div ${ie}="${o}"><img src="${dt + T}"/></div>`;\n }\n !h && o && (h = Xe(o));\n const g = new Blob([h ?? ""], { type: S.html }), p = {};\n for (let y = 0; y < u.types.length; y++) {\n const T = u.types[y];\n p[T] = y === f ? g : u.getType(T);\n }\n h && f === -1 && (p[S.html] = g), o && (p[Q] = new Blob([o], { type: Q })), r.push(new ClipboardItem(p));\n }\n try {\n r && r.length !== 0 ? await this._nativeClipboard.write(r) : await $t(this._nativeClipboard);\n } catch (l) {\n l.message?.includes("Document is not focused") || console.warn("Unable to write to native clipboard: ", l);\n }\n return a(), !0;\n }, async (l) => {\n this.dispatchEvent(new Event("clipboarderrorwrite")), a();\n });\n }\n async writeReference(t) {\n if (!t) return void this.clear();\n let n = null;\n const r = {};\n try {\n const i = await t.toText?.() ?? null;\n i && (r[S.plain] = new Blob([i ?? ""], { type: S.plain }));\n } catch (i) {\n n = i;\n }\n try {\n const i = await t.toHtml?.() ?? null;\n i && (r[S.html] = new Blob([i], { type: S.html }));\n } catch (i) {\n n = i, console.warn("export to html", i);\n }\n try {\n const i = await t.toImage?.() ?? null;\n i && (r[S.png] = i);\n } catch (i) {\n n = i, console.warn("export to png", i);\n }\n const o = this._write({ uuid: de(), ref: t, items: Object.keys(r).length > 0 ? [new ClipboardItem(r)] : null });\n if (n) throw n;\n return o;\n }\n clear(t = !1) {\n this._state && (this._state = null, t && this._write({ uuid: null, ref: null, items: null }), this.dispatchEvent(new Event("clipboardwrite")), this.dispatchEvent(new Event("clipboardchange")));\n }\n async readReference() {\n return await this.read(), this._state?.ref ?? null;\n }\n readText() {\n return new Promise(async (t, n) => {\n const r = await this.read();\n let o = null;\n for (let a = 0; !o && r && a < r.length; a++) r[a].types.includes(S.plain) && (o = await r[a].getType(S.plain));\n if (!o) return void t("");\n const i = new FileReader();\n i.onload = () => {\n t(i.result);\n }, i.readAsText(o), i.onerror = (a) => {\n n(a);\n };\n });\n }\n async writeText(t) {\n const n = [new ClipboardItem({ [S.plain]: new Blob([t], { type: S.plain }) })];\n return this._write({ uuid: de(), items: n, ref: null });\n }\n addEventListener(t, n, r = {}) {\n const o = r?.capture ? this._listenersCapture : this._listeners;\n let i = o.get(t);\n i || (i = /* @__PURE__ */ new Map(), o.set(t, i)), i.set(n, typeof r == "boolean" ? {} : r);\n }\n dispatchEvent(t) {\n if (!t) return;\n const n = (r) => {\n const o = r.get(t.type);\n o && o.forEach((i, a) => {\n try {\n typeof a == "function" ? a(t) : a.handleEvent && a.handleEvent(t), i.once && o.delete(a);\n } catch (l) {\n console.warn(l);\n }\n });\n };\n return n(this._listenersCapture), n(this._listeners), !0;\n }\n removeEventListener(t, n, r) {\n const o = r?.capture ? this._listenersCapture : this._listeners, i = o.get(t);\n i && (i.delete(n), i.size === 0 && o.delete(t));\n }\n close() {\n globalThis.removeEventListener?.("focus", this._onFocus), globalThis.removeEventListener?.("blur", this._onBlur);\n }\n}\nvar Ee;\n(Ee = Qe || (Qe = {})).ErrorMessages = pt, Ee.Global = new Ee();\nconst Kt = "__SHEETXL";\nlet ee = null, le = null;\nasync function Vt() {\n if (ee)\n return ee;\n if (le) {\n if (await le, !ee)\n throw new Error("ESBuild initialization promise resolved, but instance is not available.");\n return ee;\n }\n let e, t;\n le = new Promise((n, r) => {\n e = n, t = r;\n });\n try {\n const { initialize: n } = await Promise.resolve().then(function() {\n return nn;\n });\n return ee = await n(), e(), ee;\n } catch (n) {\n throw console.error("Failed to import or initialize esbuild:", n), le = null, t(n), n;\n }\n}\nconst qt = {\n // ESBuild.TsconfigRaw =\n compilerOptions: {\n target: "esnext"\n }\n};\nasync function Gt(e, t, n = "/script.js", r = Kt) {\n try {\n const o = await Vt(), i = "@sheetxl/primitives", a = `\n export const FormulaContext = globalThis.${r}?.FormulaContext;\n export const ScalarType = globalThis.${r}?.ScalarType;\n export const Observable = globalThis.${r}?.Observable;\n export const IRange = globalThis.${r}?.IRange;\n export const FormulaError = globalThis.${r}?.FormulaError;\n // Add more exports as needed\n `, l = {\n // ESBuild.Plugin = {\n name: "sheetxl-esbuild-in-memory",\n setup(f) {\n const h = "sheetxl-" + (/* @__PURE__ */ new Date()).getTime();\n f.onResolve({ filter: new RegExp(`^(${n.replace("/", "\\\\/")}|${i})$`) }, (g) => ({\n path: g.path,\n namespace: h\n })), f.onResolve({ filter: /.*/ }, (g) => {\n if (g.namespace !== h)\n return console.warn(`esbuild: Treating import "${g.path}" as external.`), { path: g.path, external: !0 };\n }), f.onLoad({ filter: /.*/, namespace: h }, (g) => {\n let p;\n if (g.path === n)\n p = t;\n else if (g.path === i)\n p = a;\n else\n return {\n errors: [{ text: `Cannot load unknown path in ${h}: ${g.path}` }]\n };\n return {\n contents: p,\n loader: "ts"\n // leave this as \'ts\' so esbuild generates proper sourcemaps\n };\n });\n }\n }, u = await o.build({\n entryPoints: [n],\n // Use the virtual entry point\n bundle: !0,\n // IMPORTANT: Enable bundling\n write: !1,\n // IMPORTANT: Return result in memory\n format: "esm",\n // Output format\n plugins: [l],\n // TODO - later change to external and prepend when executing from ui\n sourcemap: "inline",\n // Generate separate source map string\n tsconfigRaw: qt,\n // Pass the mapped options\n minify: !0,\n // sourcemap: \'external\', // Generate separate source map string\n // Or use \'inline\' if you prefer data URLs embedded in the code\n // To suppress warnings about dynamic import() if esbuild complains:\n // supported: { \'dynamic-import\': true },\n platform: "neutral"\n // not really needed\n });\n if (u.outputFiles && u.outputFiles.length > 0)\n return u.outputFiles[0].text;\n throw u.errors && u.errors.length > 0 ? new Error(`esbuild bundling failed: ${u.errors.map((f) => f.text).join(`\n`)}`) : new Error("esbuild did not produce an output file.");\n } catch (o) {\n throw console.error("esbuild bundling process failed:", o), o;\n }\n}\nconst Wt = `\n/**\n * Represents the completion of an asynchronous operation\n */\ninterface Promise<T> {\n /**\n * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The\n * resolved value cannot be modified from the callback.\n * @param onfinally The callback to execute when the Promise is settled (fulfilled or rejected).\n * @returns A Promise for the completion of the callback.\n */\n finally(onfinally?: (() => void) | undefined | null): Promise<T>;\n}\n`, Yt = `\n interface FirstTest {\n isTrue?: boolean;\n }\n`, Jt = async () => Yt, ht = /* @__PURE__ */ new Map([\n ["IReferenceRange", "r"],\n ["IRange", "l"]\n]), wt = /* @__PURE__ */ new Map([\n ["IWorkbook", "workbook"],\n ["ISheet", "sheet"],\n ["ICellRanges", "ranges"],\n ["ICellRange", "range"],\n ["IFormulaContext", "context"]\n]), _e = (e, t) => {\n Array.from(t.keys()).forEach((r) => {\n const o = t.get(r);\n t.set(`${e}.${r}`, o);\n });\n}, Ht = /* @__PURE__ */ new Map([\n ["Scalar", "*"],\n ["FormulaError.Known", W.Error],\n ["Date", "Date"],\n ["JSON", "JSON"]\n]), Xt = /* @__PURE__ */ new Map([\n // Repeating\n]), Oe = "SheetXL";\n_e(Oe, ht);\n_e(Oe, wt);\n_e(Oe, Xt);\nconst Zt = /* @__PURE__ */ new Map([\n ["Promise", () => ({ async: !0 })],\n // [\'PromiseLike\', (): Partial<IFunction.ReturnTypeJSON> => {\n // return { async: true };\n // }],\n ["Observable", () => ({ stream: !0 })]\n]);\nlet se = null;\nasync function Qt() {\n if (se)\n return se;\n try {\n return await (await Promise.resolve().then(function() {\n return on;\n })).initialize();\n } catch (e) {\n throw se = null, e;\n } finally {\n se = null;\n }\n}\nasync function en(e) {\n const t = e?.source ?? null;\n if (!t) return null;\n const n = (e.disableBundle || e.declarationsOnly) ?? !1, r = [\n Jt(),\n //import(\'typescript\'), // when bundled, but node check causes issues. We could bundle replace isNode but felt hacky\n Qt()\n ], o = await Promise.all(r), i = o[0], a = o[1];\n let l = "", u = null;\n const f = [], h = {\n allowJs: !0,\n declaration: !1,\n sourceMap: !1,\n // was true but now bundler will do this\n inlineSourceMap: !1,\n inlineSources: !1,\n isolatedModules: !0,\n preserveConstEnums: !1,\n // types: [\'WebWorker\'],\n module: 99,\n //"esNext",\n noResolve: !0,\n emitDeclarationOnly: !1,\n target: a.ScriptTarget.ES2020\n // lib: [\'webworker\', \'es2020\', \'esnext.asynciterable\'], // Use the webworker lib instead of dom\n }, g = "script", p = `${g}.ts`, y = "lib.d.ts", T = "global.d.ts", A = {\n [p]: t,\n [y]: Wt,\n [T]: i\n }, D = {\n getSourceFile: (s, w, L, P) => a.createSourceFile(s, A[s], a.ScriptTarget.Latest, !0),\n fileExists: (s) => A[s] !== void 0,\n readFile: (s) => A[s],\n writeFile: (s, w) => {\n A[s] = w;\n },\n // not used\n getCurrentDirectory: () => "./",\n getCanonicalFileName: (s) => s,\n useCaseSensitiveFileNames: () => !0,\n getDefaultLibFileName: (s) => y,\n getNewLine: () => `\n`\n }, U = a.createProgram([p, T], h, D), I = U.getTypeChecker(), J = U.getSourceFile(p), E = U.emit();\n E.diagnostics.length > 0 && console.warn(E.diagnostics), l = A[`${g}.js`];\n const c = (s, w, L, P) => {\n if (!s) {\n $(s, new Error(`Type is not defined for \'${w?.name ?? "return"}\'.`));\n return;\n }\n if (s.kind === a.SyntaxKind.NumberKeyword)\n w.scalar = W.Number;\n else if (s.kind === a.SyntaxKind.StringKeyword)\n w.scalar = W.String;\n else if (s.kind === a.SyntaxKind.BooleanKeyword)\n w.scalar = W.Boolean;\n else if (s.kind === a.SyntaxKind.UndefinedKeyword || s.kind === a.SyntaxKind.NullKeyword || s.kind === a.SyntaxKind.VoidKeyword) {\n if (P) {\n $(s, new Error(`\'undefined\' is not a valid type for input: \'${s?.parent?.name?.escapedText}\'.`));\n return;\n }\n w.scalar = W.Null;\n } else if (s.kind === a.SyntaxKind.BigIntKeyword)\n w.scalar = W.Number;\n else if (s.kind === a.SyntaxKind.AnyKeyword)\n w.scalar = W.Null;\n else if (s.kind === a.SyntaxKind.ArrayType) {\n const M = s.elementType;\n if (!M) {\n $(s, new Error(`\'Array\' must be typed: \'${s?.parent?.name?.escapedText}\'.`));\n return;\n }\n w.arrayDepth = (w.arrayDepth ?? 0) + 1, c(M, w, L, P);\n } else if (s.kind !== a.SyntaxKind.TupleType) {\n if (s.kind === a.SyntaxKind.TypeReference) {\n const M = s.typeName?.getText?.() ?? null, K = ht.get(M);\n let V = !1;\n K && (w.range = K, V = !0);\n const q = Ht.get(M);\n if (q && (w.scalar = q), q !== void 0 && (V = !0), P) {\n const R = wt.get(M);\n if (R)\n return R;\n } else {\n const R = Zt.get(M);\n if (R) {\n const b = { ...w, ...R() };\n let N = 0;\n if (b.async && N++, b.stream && N++, N > 1) {\n $(s, new Error(`\'${M}\' cannot have multiple modifiers: \'${s?.parent?.name?.escapedText}\'.`));\n return;\n }\n w = b, V = !0;\n }\n }\n if (!V) {\n $("node", new Error(`\'${M}\' is not a valid type: \'${s?.parent?.name?.escapedText}\'.`));\n return;\n }\n const H = s.typeArguments;\n if (H) {\n if (H.length !== 1) {\n $(s, new Error(`\'${M}\' must be typed with exactly 1 type: \'${s?.parent?.name?.escapedText}\'.`));\n return;\n }\n c(H[0], w, L, P);\n }\n }\n }\n }, m = (s) => (a.getCombinedModifierFlags(s) & a.ModifierFlags.Export) !== 0, fe = (s) => (a.getCombinedModifierFlags(s) & a.ModifierFlags.Default) !== 0, B = [], $ = (s, w) => {\n B.push(w);\n };\n if (a.forEachChild(J, (s) => {\n if (m(s) && a.isFunctionDeclaration(s)) {\n const w = {}, L = {\n parameters: {}\n }, P = s?.name?.getText();\n try {\n w.name = P;\n const K = I.getSymbolAtLocation(s.name).getDocumentationComment(I);\n if (K && K.length > 0 && K[0].text) {\n let R = K[0].text;\n R = R.replace(/[\\r\\n]+/g, "\\\\n").trim(), L.summary = R;\n }\n const V = {};\n c(s.type, V, w, !1), w.returnType = V;\n const q = {};\n fe(s) && (q.default = !0, u = P), Object.keys(q).length > 0 && (w.behavior = q), w.parameters = [];\n const H = /* @__PURE__ */ new Map();\n for (let R = 0; R < s.parameters.length; R++) {\n const b = s.parameters[R], N = {};\n N.name = b.name?.getText();\n const X = c(b.type, N, w, !0);\n if (X) {\n if (w.parameters.length !== 0) {\n const F = s?.parent?.name?.getText();\n $(s, new Error(`\'${w.name}\' contexts must be the first parameter: \'${F}\'.`));\n return;\n }\n w.context = X;\n continue;\n }\n const z = !((b.initializer === void 0 || b.initializer === null) && (b.questionToken === void 0 || b.questionToken === null));\n let C;\n if (z && (N.optional = !0, b.initializer))\n try {\n b.initializer.kind === a.SyntaxKind.StringLiteral ? C = b.initializer.text : b.initializer.kind === a.SyntaxKind.NumericLiteral ? C = parseFloat(b.initializer.text) : b.initializer.kind === a.SyntaxKind.TrueKeyword || b.initializer.kind === a.SyntaxKind.FalseKeyword ? C = b.initializer.kind === a.SyntaxKind.TrueKeyword : b.initializer.kind === a.SyntaxKind.NullKeyword ? C = null : b.initializer.kind === a.SyntaxKind.ObjectLiteralExpression || b.initializer.kind === a.SyntaxKind.ArrayLiteralExpression ? C = b.initializer.getText() : C = b.initializer.getText?.();\n } catch (O) {\n console.warn(`Couldn\'t extract default value for parameter \'${N.name}\'`, O);\n }\n b.dotDotDotToken && (N.rest = !0), w.parameters.push(N);\n const x = { description: "" };\n L.parameters[N.name] = x;\n const G = I.getSymbolAtLocation(b.name).getDocumentationComment(I);\n G && G.length > 0 && G[0].text && (x.description = G[0].text), C !== void 0 && (x.defaultValue = C), H.set(N.name, N);\n }\n if (s.jsDoc && s.jsDoc.length > 0) {\n const R = s.jsDoc;\n for (let b = 0; b < R.length; b++) {\n const N = R[b]?.tags;\n if (N)\n for (let X = 0; X < N.length; X++) {\n const z = N[X];\n let C = z?.tagName?.text;\n if (!C) continue;\n C = C.toLowerCase();\n let x = z.comment;\n const G = C === "hidden";\n if (!(typeof x != "string" && !G) && (typeof x == "string" && (x = x.replace(/[\\r\\n]+/g, "\\\\n").trim()), !(!G && x && (x = x.split(/\\\\n/)[0], !x || x.length === 0)))) {\n if (x && typeof x == "string") {\n const O = /\\{@link(code|plain)?\\s+([^}|]+)(?:\\s*\\|\\s*([^}]+))?\\}/g;\n let F, Z = x, te = [];\n for (; (F = O.exec(x)) !== null; ) {\n const [pe, me, gt, Ne] = F, bt = [gt.trim()];\n Ne && bt.push(Ne.trim());\n }\n x = Z, te.length > 0 && C === "see" && (L.links || (L.links = []), L.links.push(...te));\n }\n if (C === "name") {\n const O = x;\n O !== P && (L.name = O);\n } else if (C === "description") {\n const O = x;\n } else if (C === "summary") {\n const O = x;\n O && (L.summary = O);\n } else if (C === "param") {\n const O = z.name?.text, F = H.get(O);\n if (!F) {\n B.push(new Error(`Parameter \'${O}\' not found in function \'${P}\'.`));\n continue;\n }\n if (z.typeExpression && z.typeExpression.type)\n try {\n const Z = z.typeExpression.type;\n if (Z.kind === a.SyntaxKind.UnionType) {\n const te = [];\n F.enums = te, Z.types.forEach((pe) => {\n if (pe.kind === a.SyntaxKind.LiteralType) {\n const me = pe.literal.text;\n me && te.push(me);\n }\n });\n }\n } catch (Z) {\n console.warn("Error parsing JSDoc type expression:", Z);\n }\n } else if (C === "returns" || C === "return")\n w.returnType.description = x;\n else if (C === "category")\n L.category = x;\n else if (C === "hidden") {\n let O = !0;\n const F = x?.toLowerCase();\n F === "false" ? O = !1 : F !== "true" && (O = x), O !== !1 && (L.hidden = O ?? !0);\n }\n }\n }\n }\n }\n Object.keys(w.returnType).length === 0 && delete w.returnType, f.push([w, L]);\n } catch (M) {\n $(s, new Error(`\'${P}\': ${M.message}`));\n }\n }\n }), B.length > 0)\n throw console.warn(B), new Error("There were compilation errors.", { cause: B });\n if (f.length === 0)\n throw new Error("No exported functions.");\n const yt = `${Ut.uuidV4()}-script`;\n try {\n !n && B.length === 0 && (l = await Gt(a, l, g));\n } catch {\n console.warn("Error bundling script");\n }\n const Ie = {\n functions: f,\n commitId: yt,\n source: t,\n name: "Script",\n language: "typescript",\n // default\n compiled: l\n };\n return u && (Ie.autoRun = u), Ie;\n}\nself.addEventListener("message", async (e) => {\n const { id: t, params: n } = e.data;\n try {\n const r = await en(n);\n self.postMessage({ id: t, result: r, error: null });\n } catch (r) {\n self.postMessage({\n id: t,\n result: null,\n error: {\n message: r.message,\n stack: r.stack,\n cause: r.cause\n }\n });\n }\n});\nlet ce = null;\nasync function tn() {\n return ce || (ce = new Promise(async (e, t) => {\n try {\n const n = "0.20.2", r = `https://esm.sh/esbuild-wasm@${n}`, o = `https://esm.sh/esbuild-wasm@${n}/esbuild.wasm`, a = (await import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n r\n )).default;\n await a.initialize({\n wasmURL: o,\n // Provide the specific WASM URL\n worker: !1\n // Keep processing on the current thread\n }), e(a);\n } catch (n) {\n console.error("Error initializing esbuild:", n), t(n);\n }\n }), ce);\n}\nvar nn = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n initialize: tn\n});\nlet ue = null;\nasync function rn() {\n return ue || (ue = new Promise(async (e, t) => {\n let n = null;\n try {\n n = await import("https://esm.sh/typescript@5.7.2");\n } catch (r) {\n console.error("Error initializing Browser TypeScript module:", r);\n }\n n || console.log("use script fallback"), e(n);\n }), ue);\n}\nvar on = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n initialize: rn\n});\n',r=typeof self<"u"&&self.Blob&&new Blob(["URL.revokeObjectURL(import.meta.url);",t],{type:"text/javascript;charset=utf-8"});function o(n){let e;try{if(e=r&&(self.URL||self.webkitURL).createObjectURL(r),!e)throw"";const t=new Worker(e,{type:"module",name:n?.name});return t.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(e)}),t}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(t),{type:"module",name:n?.name})}}async function i(){if(typeof process<"u"&&process.versions?.node&&typeof Worker>"u")return await a();if(typeof Worker<"u"){const e=new n(()=>new o);try{return await e.start(),e}catch(n){console.error("Failed to start TypescriptCompiler worker reverting to fallback:",n)}}return await a()}const a=async()=>{const{compileModule:n}=await import("./BO0ncqgpx-62w_oX.mjs"),t=new e(e=>n(e));return await t.start(),t};export{i as createCompilerWorker};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
|
|
3
|
+
*
|
|
4
|
+
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
|
+
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
+
*/
|
|
7
|
+
const e={DELTA:{s:"Tests whether two numbers are equal",p:{number1:{d:"is the first number"},number2:{d:"is the second number",v:0}}},GESTEP:{s:"Tests whether a number is greater than a threshold value",p:{number:{d:"is the value to test against step"},step:{d:"is the threshold value",v:0}}}};export{e as default};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
|
|
3
|
+
*
|
|
4
|
+
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
|
+
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
+
*/
|
|
7
|
+
const e={ACOS:{s:"Returns the arccosine of a number, in radians in the range 0 to Pi. The arccosine is the angle whose cosine is Number",p:{number:{d:"is the cosine of the angle you want and must be from -1 to 1"}}},ACOSH:{s:"Returns the inverse hyperbolic cosine of a number",p:{number:{d:"is any real number equal to or greater than 1"}}},ACOT:{s:"Returns the arccotangent of a number, in radians in the range 0 to Pi.",p:{number:{d:"is the cotangent of the angle you want"}}},ACOTH:{s:"Returns the inverse hyperbolic cotangent of a number",p:{number:{d:"is the hyperbolic cotangent of the angle that you want"}}},ASIN:{s:"Returns the arcsine of a number in radians, in the range -Pi/2 to Pi/2",p:{number:{d:"is the sine of the angle you want and must be from -1 to 1"}}},ASINH:{s:"Returns the inverse hyperbolic sine of a number",p:{number:{d:"is any real number equal to or greater than 1"}}},ATAN:{s:"Returns the arctangent of a number in radians, in the range -Pi/2 to Pi/2",p:{number:{d:"is the tangent of the angle you want"}}},ATAN2:{s:"Returns the arctangent of the specified x- and y- coordinates, in radians between -Pi and Pi, excluding -Pi",p:{x:{d:"is the x-coordinate of the point"},y:{d:"is the y-coordinate of the point"}}},ATANH:{s:"Returns the inverse hyperbolic tangent of a number",p:{number:{d:"is any real number between -1 and 1 excluding -1 and 1"}}},COS:{s:"Returns the cosine of an angle",p:{number:{d:"is the angle in radians for which you want the cosine"}}},COSH:{s:"Returns the hyperbolic cosine of a number",p:{number:{d:"is any real number"}}},COT:{s:"Returns the cotangent of an angle",p:{number:{d:"is the angle in radians for which you want the cotangent"}}},COTH:{s:"Returns the hyperbolic cotangent of a number",p:{number:{d:"is the angle in radians for which you want the hyperbolic cotangent"}}},CSC:{s:"Returns the cosecant of an angle",p:{number:{d:"is the angle in radians for which you want the cosecant"}}},CSCH:{s:"Returns the hyperbolic cosecant of an angle",p:{number:{d:"is the angle in radians for which you want the hyperbolic cosecant"}}},SEC:{s:"Returns the secant of an angle",p:{number:{d:"is the angle in radians for which you want the secant"}}},SECH:{s:"Returns the hyperbolic secant of an angle",p:{number:{d:"is the angle in radians for which you want the hyperbolic secant"}}},SIN:{s:"Returns the sine of an angle",p:{number:{d:"is the angle in radians for which you want the sine. Degrees * PI()/180 = radians"}}},SINH:{s:"Returns the hyperbolic sine of a number",p:{number:{d:"is any real number"}}},TAN:{s:"Returns the tangent of an angle",p:{number:{d:"is the angle in radians for which you want the tangent. Degrees * PI()/180 = radians"}}},TANH:{s:"Returns the hyperbolic tangent of a number",p:{number:{d:"is any real number"}}}};export{e as default};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
|
|
3
|
+
*
|
|
4
|
+
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
|
+
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
+
*/
|
|
7
|
+
const t="text/html",e="text/plain",r="image/png",n=Object.freeze({left:0,top:0}),o=Object.freeze({left:0,top:0,bottom:0,right:0}),a=Object.freeze({x:0,y:0,width:0,height:0});Object.freeze(Object.defineProperty({__proto__:null,EmptyBounds:a,EmptyRect:o,EmptyTopLeft:n},Symbol.toStringTag,{value:"Module"}));const i="column",l="row",s=Object.freeze({colIndex:0,rowIndex:0}),c=Object.freeze({colStart:0,rowStart:0,colEnd:0,rowEnd:0}),u=(t,e)=>t.colStart===e.colStart?t.rowStart-e.rowStart:t.colStart-e.colStart,d=(t,e)=>t.rowStart===e.rowStart?t.colStart-e.colStart:t.rowStart-e.rowStart,f=(t,e)=>t.rowEnd===e.rowEnd?e.colEnd-t.colEnd:e.rowEnd-t.rowEnd,p=(t,e)=>t.colEnd===e.colEnd?e.rowEnd-t.rowEnd:e.colEnd-t.colEnd,w=(t,e)=>t.colIndex===e.colIndex?t.rowIndex-e.rowIndex:t.colIndex-e.colIndex,h=(t,e)=>t.rowIndex===e.rowIndex?t.colIndex-e.colIndex:t.rowIndex-e.rowIndex,y=(t=l,e=!1)=>e?t!==i?f:p:t!==i?d:u,g=(t,e)=>t===e||!(!t||!e)&&t.rowIndex===e.rowIndex&&t.colIndex===e.colIndex,b=(t,e)=>t===e||!(!t||!e)&&t.rowStart===e.rowStart&&t.rowEnd===e.rowEnd&&t.colStart===e.colStart&&t.colEnd===e.colEnd,m=(t,e)=>!(!t||!e||t.colStart>e.colEnd||e.colStart>t.colEnd||t.rowStart>e.rowEnd||e.rowStart>t.rowEnd),E=(t,e)=>{if(t===e)return!0;if(!t||!e||t.length!==e.length)return!1;for(let r=0;r<t.length;r++)if(!b(t[r],e[r]))return!1;return!0},S=(t,e,r)=>{if(!t&&!e)return null;if(!t)return r?e:{...e};if(!e)return r?t:{...t};const n=Math.min(t.colStart,e.colStart),o=Math.min(t.rowStart,e.rowStart),a=Math.max(t.colEnd,e.colEnd),i=Math.max(t.rowEnd,e.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},v=(t,e)=>{if(!e||0===e.length)return t;const r={...t};for(let t=0;t<e.length;t++){const n=e[t];m(r,n)&&(r.rowStart=Math.min(r.rowStart,n.rowStart),r.colStart=Math.min(r.colStart,n.colStart),r.rowEnd=Math.max(r.rowEnd,n.rowEnd),r.colEnd=Math.max(r.colEnd,n.colEnd))}return r},x=[null,null],_=(t,e,r)=>{if(t[0].value===t[1].value)return e};function O(t,e=2,r,n=l,o){let a=[...t];if(e<=0||t.length<=1)return a;let s=n===i,c=0,u=!1;do{const t=a.sort(y(s?l:i));a=[],a.push(t[0]);const e=t.length;let d=0,f=t[0],p=f.colStart,w=f.rowStart,h=f.colEnd,g=f.rowEnd;for(let i=1;i<e;i++){const e=t[i];let l=!1;if(l=s?f&&w===e.rowStart&&g===e.rowEnd&&h+1===e.colStart:f&&p===e.colStart&&h===e.colEnd&&g+1===e.rowStart,l){let t={colStart:p,rowStart:w,colEnd:s?e.colEnd:h,rowEnd:s?g:e.rowEnd};if(void 0!==f.value&&(t.value=f.value),r){const a=o??[null,null];a[0]=f,a[1]=e,t=r(a,t,n)}if(t){a[d]=t,u=!0,f=t,p=f.colStart,w=f.rowStart,h=f.colEnd,g=f.rowEnd;continue}}a[++d]=e,f=e,p=f.colStart,w=f.rowStart,h=f.colEnd,g=f.rowEnd}c++,s=!s,1===c&&(u=!0)}while(c<e&&u&&a.length>1);return a}Object.freeze(Object.defineProperty({__proto__:null,EmptyCell:s,EmptyRange:c,cellToRange:(t,e)=>{if(!t)return null;let r=e;return r||(r={...t},delete r.colIndex,delete r.rowIndex),r.colStart=t.colIndex??0,r.rowStart=t.rowIndex??0,r.colEnd=t.colIndex??0,r.rowEnd=t.rowIndex??0,r},columnFirstCellComparator:w,columnFirstRangeComparator:u,createCellComparator:(t=l,e=!1)=>e?t!==i?(t,e)=>t.rowIndex===e.rowIndex?e.colIndex-t.colIndex:e.rowIndex-t.rowIndex:(t,e)=>t.colIndex===e.colIndex?e.rowIndex-t.rowIndex:e.colIndex-t.colIndex:t!==i?h:w,createConflatingRanges:(t,e=!1)=>{const r=[];let n,o,a=Number.MIN_SAFE_INTEGER,s=Number.MIN_SAFE_INTEGER;return{append:(i,l,c)=>{let u=!0;const d=void 0!==c;if(d){const r=t?t(o,c,e):o===c?c:void 0;void 0===r?u=!1:c=r}if(u&&l===s+1&&i===a)return e?n.rowEnd=l:n.colEnd=l,s=l,void(o=c);n&&r.push(n);const f=e?i:l,p=e?l:i;n={colStart:f,rowStart:p,colEnd:f,rowEnd:p},d&&(n.value=c),a=i,s=l,o=c},done:t=>(n&&(r.push(n),n=null),t?O(r,3,!0===t?_:t,e?i:l,x):r)}},createRangeComparator:y,defaultRange:(t,e,r)=>t?r?(r.colStart=t.colStart??e.colStart,r.rowStart=t.rowStart??e.rowStart,r.colEnd=t.colEnd??e.colEnd,r.rowEnd=t.rowEnd??e.rowEnd,r):{colStart:t.colStart??e.colStart,rowStart:t.rowStart??e.rowStart,colEnd:t.colEnd??e.colEnd,rowEnd:t.rowEnd??e.rowEnd}:e,extendRangeToIntersectingRanges:v,extendRangeToUnionRanges:(t,e)=>{if(!e||0===e.length)return t;let r=t,n=null;for(;!b(r,n);)n=r,r=v(n,e);return r},indexOfCoords:(t,e)=>{const r={colStart:t.colIndex,rowStart:t.rowIndex,colEnd:t.colIndex,rowEnd:t.rowIndex};for(let t=e.length-1;t>=0;t--)if(m(r,e[t]))return t;return-1},intersectRanges:(t,e,r)=>{if(!t)return r?e:{...e};if(!e)return r?t:{...t};if(!t&&!e||t.rowStart>e.rowEnd||t.rowEnd<e.rowStart||t.colStart>e.colEnd||t.colEnd<e.colStart)return null;const n=Math.max(t.colStart,e.colStart),o=Math.max(t.rowStart,e.rowStart),a=Math.min(t.colEnd,e.colEnd),i=Math.min(t.rowEnd,e.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:(t,e)=>!(!t||!e||t.rowIndex<e.rowStart||t.rowIndex>e.rowEnd||t.colIndex<e.colStart||t.colIndex>e.colEnd),isEqualCells:g,isEqualRanges:b,isEqualRangesArrays:E,isEqualSelectionCoords:(t,e)=>t===e||!(!t||!e)&&t.rangeIndex===e.rangeIndex&&!!g(t.cell,e.cell)&&E(t.ranges,e.ranges),isRangeWithinRange:(t,e)=>!(t.rowStart<e.rowStart||t.rowEnd>e.rowEnd||t.colStart<e.colStart||t.colEnd>e.colEnd),isRangesIntersect:m,isSingleCell:t=>!!t&&t.rowEnd===t.rowStart&&t.colStart===t.colEnd,isValidRange:t=>!(!t||"number"!=typeof t.colStart||t.colStart<0||"number"!=typeof t.colEnd||t.colEnd<t.colStart||"number"!=typeof t.rowStart||t.rowStart<0||"number"!=typeof t.rowEnd||t.rowEnd<t.rowStart),mergeRangedValues:O,rowFirstCellComparator:h,rowFirstRangeComparator:d,sanitizeRange:t=>t?{colStart:t.colIndex??t.colStart??0,rowStart:t.rowIndex??t.rowStart??0,colEnd:t.colIndex??t.colEnd??0,rowEnd:t.rowIndex??t.rowEnd??0}:null,translateRange:(t,e=-t.rowStart,r=-t.colStart,n)=>n?(n.colStart=t.colStart+r,n.rowStart=t.rowStart+e,n.colEnd=t.colEnd+r,n.rowEnd=t.rowEnd+e,n):{colStart:t.colStart+r,rowStart:t.rowStart+e,colEnd:t.colEnd+r,rowEnd:t.rowEnd+e},unionRanges:S,unionRangesArrays:(t,e,r)=>{if(!t||0===t.length)return null;if(1===t.length&&!e)return t[0];let n=t[0];for(let e=1;e<t.length;e++)n=S(n,t[e],r);return e&&(n=S(n,e,r)),n}},Symbol.toStringTag,{value:"Module"}));const I="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function j(t){return function(t){return!!t&&"object"==typeof t}(t)&&!function(t){const e=Object.prototype.toString.call(t);return"[object RegExp]"===e||"[object Date]"===e||t.$$typeof===I}(t)}function T(t,e){return!1!==e.clone&&e.isMergeableObject(t)?A((r=t,Array.isArray(r)?[]:{}),t,e):t;var r}function C(t,e,r){return t.concat(e).map(function(t){return T(t,r)})}function M(t){return Object.keys(t).concat((e=t,Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]));var e}function R(t,e){try{return e in t}catch{return!1}}function A(t,e,r){(r=r||{}).arrayMerge=r.arrayMerge||C,r.isMergeableObject=r.isMergeableObject||j,r.cloneUnlessOtherwiseSpecified=T;const n=Array.isArray(e);return n===Array.isArray(t)?n?r.arrayMerge(t,e,r):function(t,e,r){const n={};return r.isMergeableObject(t)&&M(t).forEach(function(e){n[e]=T(t[e],r)}),M(e).forEach(function(o){var a,i;R(a=t,i=o)&&(!Object.hasOwnProperty.call(a,i)||!Object.propertyIsEnumerable.call(a,i))||(R(t,o)&&r.isMergeableObject(e[o])?n[o]=function(t,e){if(!e.customMerge)return A;const r=e.customMerge(t);return"function"==typeof r?r:A}(o,r)(t[o],e[o],r):n[o]=T(e[o],r))}),n}(t,e,r):T(e,r)}A.all=function(t,e){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(t,r){return A(t,r,e)},{})};const F=Object.freeze([]),L=Object.freeze({}),U=t=>t,P=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){let e=16*Math.random()|0;return("x"===t?e:3&e|8).toString(16)}),k=(t,e)=>t===e||!(!Array.isArray(t)||!Array.isArray(e)||t.length!==e.length)&&t.every((t,r)=>t===e[r]),N=t=>"object"==typeof t&&!Array.isArray(t)&&null!==t,B=t=>"object"!=typeof t||Array.isArray(t)||null===t?t:(Object.keys(t).forEach(function(e){t[e]&&"object"==typeof t[e]?B(t[e]):null!==t[e]&&void 0!==t[e]||delete t[e],"object"==typeof t[e]&&0===Object.keys(t[e]).length&&delete t[e]}),0===Object.keys(t).length?null:t),z=(t,e)=>!(t!==e&&!k(t,e)&&!t.isEqual?.(e)),q=(t,e,r=z)=>{if(null==t||t===e)return null;if(!t||"object"!=typeof t||Array.isArray(t)||t.isImmutable?.())return r(t,e)?null:t;const n=Object.keys(t);if(0===n.length)return null;let o=!1;for(let a=0;a<n.length;a++){const i=n[a];null===q(t[i],e?.[i],r)&&(o=!0,delete t[i])}return o&&0===Object.keys(t).length?null:void 0},D="object"==typeof performance&&"function"==typeof performance.now?()=>performance.now():()=>Date.now(),$=t=>null==t,W=(t,e)=>!(e.left>t.right||e.right<t.left||e.top>t.bottom||e.bottom<t.top),V=!(typeof window>"u"||!window.document||!window.document.createElement),G={Windows:"windows",MacOS:"macos",IOS:"ios",Linux:"linux",Android:"android",Safari:"safari",Firefox:"firefox",Node:"node",Unknown:"unknown"},J=()=>{if(H())return G.Node;const t=void 0!==globalThis.navigator&&globalThis.navigator.userAgent?globalThis.navigator.userAgent.toLowerCase():"";return t?/(win32|win64|windows|wince)/i.test(t)?G.Windows:/(macintosh|macintel|macppc|mac68k|macos)/i.test(t)?G.MacOS:/(iphone|ipad|ipod)/i.test(t)?G.IOS:/android/.test(t)?G.Android:/linux/.test(t)?G.Linux:/^((?!chrome|android|).)*safari/i.test(t)?G.Safari:/^((?!chrome|android|Seamonkey).)*firefox/i.test(t)?G.Firefox:G.Unknown:G.Unknown};function H(){return typeof process<"u"&&"node"===process.release?.name||(typeof process<"u"&&process.browser,!1)}const K=(t,e=!1)=>(document.hasFocus()||e)&&(t===document.activeElement||t?.contains(document.activeElement)),Y=Object.freeze(Object.defineProperty({__proto__:null,EmptyArray:F,EmptyObject:L,OSType:G,arrayMove:function(t,e,r){const n=t.slice();return n.splice(r<0?n.length+r:r,0,n.splice(e,1)[0]),n},asNumber:t=>{const e=1*t;return Number.isFinite(e)?e:0},camelToPrettyCase:t=>1===t.length?t.toUpperCase():t.replace(/([A-Z])/g," $1").replace(/^./,function(t){return t.toUpperCase()}).trim(),canUseDOM:V,cancelTimeout:t=>{cancelAnimationFrame(t.id)},castToString:t=>null==t||void 0===t?"":"string"!=typeof t?""+t:t,cloneObject:t=>$(t)?t:JSON.parse(JSON.stringify(t)),consoleWithNoSource:(...t)=>new Promise(e=>{setTimeout(()=>{Function("console.log.apply(console, arguments)").apply(null,t),e()})}),debounce:function(t,e=300,r=!1){let n,o,a,i,l=0;function s(){let c=Date.now()-l;c<e&&c>=0?n=setTimeout(s,e-c):(n=null,r||(i=t.apply(a,o),a=o=null))}null==e&&(e=100);const c=function(){a=globalThis,o=arguments,l=Date.now();var c=r&&!n;return n||(n=setTimeout(s,e)),c&&(i=t.apply(a,o),a=o=null),i};return c.clear=function(){n&&(clearTimeout(n),n=null)},c.flush=function(){n&&(i=t.apply(a,o),a=o=null,clearTimeout(n),n=null)},c},deepEqual:function t(e,r){if(e===r)return!0;if(e&&r&&"object"==typeof e&&"object"==typeof r){if(e.constructor!==r.constructor)return!1;let n,o,a;if(Array.isArray(e)){if(n=e.length,n!=r.length)return!1;for(o=n;0!==o--;)if(!t(e[o],r[o]))return!1;return!0}if(e instanceof Map&&r instanceof Map){if(e.size!==r.size)return!1;for(o of e.entries())if(!r.has(o[0]))return!1;for(o of e.entries())if(!t(o[1],r.get(o[0])))return!1;return!0}if(e instanceof Set&&r instanceof Set){if(e.size!==r.size)return!1;for(o of e.entries())if(!r.has(o[0]))return!1;return!0}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(r)){if(n=e.length,n!=r.length)return!1;for(o=n;0!==o--;)if(e[o]!==r[o])return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(a=Object.keys(e),n=a.length,n!==Object.keys(r).length)return!1;for(o=n;0!==o--;)if(!Object.prototype.hasOwnProperty.call(r,a[o]))return!1;for(o=n;0!==o--;){let n=a[o];if(!("_owner"===n&&e.$$typeof||t(e[n],r[n])))return!1}return!0}return e!=e&&r!=r},deepFreeze:function t(e){return Object.freeze(e),Object.keys(e).forEach(r=>{"object"!=typeof e[r]||null===e[r]||Object.isFrozen(e[r])||t(e[r])}),e},deepMerge:A,diffValues:(t,e)=>{const r={},n=Object.keys(e),o=n.length;for(let a=0;a<o;a++){const o=n[a];t[o]!==e[o]&&(void 0===t[o]?r[o]=e[o]:r[o]=t[o])}return 0===Object.keys(r).length?null:r},findEqualOrGreater:function(t,e,r=U){let n=0,o=t.length-1;for(;n<=o;){let a=Math.floor((n+o)/2),i=r(t[a]);if(i===e)return a;i<e?n=a+1:o=a-1}return n},findEqualOrLesser:function(t,e,r=U){let n=t.length-1,o=0;for(;n>=o;){let a=Math.floor((n+o)/2),i=r(t[a]);if(i===e)return a;i>e?n=a-1:o=a+1}return n},findNextStep:(t,e=!0,r=15,n=10,o=400)=>{const a=Math.max(t-n,0)+(e?1:-1);return Math.min(o,Math[e?"ceil":"floor"](a/r)*r+n)},getDPI:()=>{let t=1;return"object"==typeof window&&(t=window.devicePixelRatio||1),t},getFromPath:(t,e)=>{const r=e.split(".");let n=t;for(let t=0;t<r.length;t++){const e=r[t];if(!n)return null;let o=n[e];if("function"==typeof o&&(o=o.bind(n)()),!o||!N(o))return o;n=o}return n??null},getOS:J,hasFocus:K,isDefined:t=>null!=t,isEmpty:t=>null==t||""===t,isEqualArrays:k,isEqualBounds:(t,e)=>t===e||!(t&&!e||e&&!t)&&t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height,isEqualObjectKeys:(t,e)=>{if(t===e)return!0;if(t&&!e||e&&!t)return!1;const r=Object.keys(t);if(r.length!==Object.keys(e).length)return!1;for(let n=0;n<r.length;n++)if(t[r[n]]!==e[r[n]])return!1;return!0},isNode:H,isNullOrUndefined:$,isNumeric:t=>{const e=1*t;return Number.isFinite(e)&&"number"==typeof e},isObject:N,isPromiseLike:t=>!!t&&"function"==typeof t.then,isRectInsideRect:(t,e)=>t.top>=e.top&&t.bottom<=e.bottom&&t.left>=e.left&&t.right<=e.right,isRectIntersect:W,mergeContentful:(...t)=>{const e=t.length;if(e>0&&void 0!==t[e-1]&&!N(t[e-1]))return t[e-1];let r=t[0]||{};for(let n=1;n<e;n++)r=A(r,t[n]||{},{arrayMerge:(t,e)=>[...e]});return r},nextTick:t=>{typeof window<"u"&&"function"==typeof window.requestAnimationFrame?window.requestAnimationFrame(()=>{t()}):("function"==typeof setImmediate?setImmediate:setTimeout)(()=>{t()})},openFileDialog:(t="*.*")=>new Promise((e,r)=>{if(!V)return void r("Unable to open dialog with no dom.");const n=document.createElement("input");n.type="file",n.accept=t;let o=null,a=!1;globalThis.addEventListener?.("focus",()=>{setTimeout(()=>{o||a||(a=!0,e(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);e(o)}},n.autofocus=!0,n.click()}),rafThrottle:t=>{let e,r=!1,n=function(){r=!1,t(e)};return function(t){e=t,e&&e.persist&&e.persist(),r||(r=!0,requestAnimationFrame(n))}},removeEmptyProperties:B,removeEqualValues:q,removeListenerAll:t=>{if(!t)return[];for(let e=0;e<t.length;e++)t[e]&&t[e]();return[]},requestTimeout:(t,e)=>{const r=D(),n={id:requestAnimationFrame(function o(){D()-r>=e?t.call(null):n.id=requestAnimationFrame(o)})};return n},roundAccurately:(t,e=0)=>{if(null==t||!isFinite(t))return null;const r=10**e;return Number(Math.round(t*r)/r)},setToPath:(t,e,r)=>{const n=e.split(".");let o=t;if(!o)throw new Error("Can not set path to a null path.");for(let t=0;o&&t<n.length-1;t++){const e=n[t];let r=o[e];if(null==r&&(r={},o[e]=r),!N(r))throw new Error("Can not set path to a non object path.");o=r}if("number"!=typeof r&&"boolean"!=typeof r&&"string"!=typeof r&&!N(r))throw new Error(`Can not set path to ${r} that is not a a supported primitive.`);return o[n[n.length-1]]=r,t},splitNumber:t=>{let e=Math.abs(t);if(isNaN(e)||!isFinite(t))return null;let r=0|e,n=e-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(t),fp:o,ipLength:Math.ceil(Math.log10(r+1)),fpLength:a}},subtractRect:(t,e,r=!1)=>{if(!e)return[t];if(!W(t,e))return[];const n=[];let o=t;const a=()=>{e.top>o.top&&e.top<o.bottom&&(n.push({...o,bottom:e.top}),o={...o,top:e.top})},i=()=>{e.bottom>o.top&&e.bottom<o.bottom&&(n.push({...o,top:e.bottom}),o={...o,bottom:e.bottom})},l=()=>{e.right>o.left&&e.right<o.right&&(n.push({...o,left:e.right}),o={...o,right:e.right})},s=()=>{e.left>o.left&&e.left<o.right&&(n.push({...o,right:e.left}),o={...o,left:e.left})};return r?(s(),l(),a(),i()):(a(),i(),l(),s()),n},textToKey:t=>t.replace(/[^a-zA-Z0-9]/g,"").toLowerCase(),throttle:function(t,e){let r=null;return(...n)=>{const o=Date.now();(!r||o-r>=e)&&(r=o,t(...n))}},toSafeJSON:function t(e){if(null===e||"object"!=typeof e)return e;if("function"==typeof e.toJSON)return e.toJSON();if(Array.isArray(e))return e.map(e=>t(e));if("function"==typeof e.toString&&e.toString!==Object.prototype.toString)return e.toString();const r={};for(const n in e)e.hasOwnProperty(n)&&(r[n]=t(e[n]));return r},transpose:t=>{if(!t)return t;const e=t.length,r=t[0].length,n=[];for(let t=0;t<r;t++)n[t]=Array(e);for(let o=0;o<e;o++)for(let e=0;e<r;e++)n[e][o]=t[o][e];return n},uuidV4:P,validEnumValue:(t,e)=>{if(!Object.values(t).includes(e))throw new Error(`Invalid type: ${e??"null"}. Must be one of: ${Object.values(e).join(", ")}.`)},whenFocus:async(t,e=!1)=>new Promise(r=>{K(t,e)?r(!0):t.addEventListener("focusin",()=>{r(!0)},{once:!0}),t.focus()})},Symbol.toStringTag,{value:"Module"}));Object.freeze(Object.defineProperty({__proto__:null,MESSAGE_ERROR_INVALID_ARG:t=>`Invalid argument: '${t}'.`},Symbol.toStringTag,{value:"Module"}));const Z=t=>{const e=new Uint8Array(t),r=e.byteLength;let n="";for(let t=0;t<r;t++)n+=String.fromCharCode(e[t]);if(typeof window<"u"&&"function"==typeof globalThis.btoa)return globalThis.btoa(n);if(typeof Buffer<"u")return Buffer.from(n,"binary").toString("base64");throw new Error("Unsupported environment")},X=t=>new Promise((e,r)=>{if(t)if(typeof FileReader<"u"){const n=new FileReader;n.onload=()=>{e(n.result)},n.onerror=()=>{r(n.error)},n.readAsText(t)}else if(typeof Buffer<"u"){const n=t=>Buffer.from(t).toString("utf-8");t.arrayBuffer().then(t=>{e(n(t))}).catch(t=>{r(t)})}else r(new Error("Unsupported environment"));else e("")});Object.freeze(Object.defineProperty({__proto__:null,DEFAULT_MIME_TYPE:"*/*",arrayBufferToBase64:Z,base64ToArrayBuffer:t=>{const e=typeof window<"u"&&"function"==typeof globalThis.atob?globalThis.atob(t):Buffer.from(t,"base64").toString("binary"),r=e.length,n=new Uint8Array(r);for(let t=0;t<r;t++)n[t]=e.charCodeAt(t);return n.buffer},blobToString:X},Symbol.toStringTag,{value:"Module"}));const Q="data:image/png;base64,",tt="Unable to resolve image.",et=t=>new Promise(async(e,r)=>{let n=null;try{n=new Image,n.src=t,n.addEventListener("load",function(){e({width:n.naturalWidth,height:n.naturalHeight})},{once:!0}),n.addEventListener("error",function(){URL.revokeObjectURL(t),r("Invalid Image")},{once:!0}),await n.decode("sync")}catch{n?.src&&URL.revokeObjectURL(n.src)}n||r(tt)}),rt="image/svg+xml";var nt,ot;Object.freeze(Object.defineProperty({__proto__:null,DATA_URL_PNG_PREFIX:Q,getImageDataUrl:(t,e=1)=>new Promise(async(r,n)=>{let o=null;try{o=new Image,o.src=t,o.addEventListener("load",function(){try{const t=document.createElement("canvas");t.width=o.naturalWidth,t.height=o.naturalHeight,t.getContext("2d").drawImage(o,0,0);const n=t.toDataURL("image/png",e);r({elemImg:o,dataUrl:n})}catch(e){URL.revokeObjectURL(t),n(e)}},{once:!0}),o.addEventListener("error",function(){URL.revokeObjectURL(t),n("Invalid Image")},{once:!0}),await o.decode("sync")}catch{o?.src&&URL.revokeObjectURL(o.src)}o||n(tt)}),loadImageDetails:async(t,e=null)=>{let r=null;const n=async()=>{try{const n=e??"image/*",o=URL.createObjectURL(new Blob([t],{type:n})),a=await et(o);r={mimeType:n,naturalDimensions:a,asUrl:o}}catch{}},o=async()=>{try{const n=(new TextDecoder).decode(t),o=URL.createObjectURL(new Blob([n],{type:rt})),a=await et(o);r={mimeType:e??rt,naturalDimensions:a,asUrl:o,asSVGText:n}}catch{}};if(e===rt?await o():e.startsWith("image/")?await n():(await n(),r||await o()),!r)throw new Error("Failed to load image");return r}},Symbol.toStringTag,{value:"Module"})),(ot=nt||(nt={})).resolveTypedUpdates=(t,e,r,n)=>{if(null===t)return t;if(void 0===t)return n;let o=t;if(e?.shorthand){const n=e?.shorthand(t,r);void 0!==n&&(o=n)}if(null!==o&&e?.getSubType){const t=e.getSubType(o);t&&(e=t)}const a=e?.properties,i=e?.arrayType??!1;let l=o;if(e&&e.merge&&l&&n)l=e.merge(l,n,r);else if(!i&&a){const t=Object.keys({...o,...n});l=null;for(let e=0;e<t.length;e++){const i=t[e];let s,c=o[i];if(void 0!==c){const t=a[i];s=t?(0,ot.resolveTypedUpdates)(c,t,r,n?.[i]):c}else s=n?.[i];null!=s&&(l=l??{},l[i]=s)}}return l};const at="The Safari browser does not support advanced copy and paste.\nCopy and paste will be limited to within the browser tab.\n\nPlease use Chrome or Edge if external copy and paste is required.",it="You do not have permissions to access the clipboard.\nAll copy and paste operations will be limited to the browser tab.",lt={Safari:"The Safari browser does not support advanced copy and paste.\nCopy and paste will be limited to within the browser tab.\n\nPlease use Chrome or Edge if external copy and paste is required.",Perms:it,PermsWrite:J()===G.Safari?at:it,PermsRead:J()===G.Safari?at:it},st=async()=>new Promise(t=>{document.hasFocus()?t():globalThis.addEventListener?.("focus",()=>{t()},{once:!0}),document.activeElement.focus?.()}),ct=async(t,e,r)=>{if(J()===G.Safari)return await r(new Error(lt.Safari));try{const n=async t=>{try{return await t()}catch(t){if(t.message?.includes("Document is not focused"))return!1;throw t}},o=await(globalThis?.navigator?.permissions?.query({name:t,allowWithoutGesture:!0,allowWithoutSanitization:!0}));let a=!1;if("prompt"===o.state&&(a=await n(e)),a||"granted"!==o.state||(a=await e()),!a)return await r(new Error(o.state))}catch(t){return"No valid data on clipboard"===t.message||"DataError"===t.name?void 0:await r(t)}},ut=async e=>{try{return await e.read({unsanitized:[t]})}catch{}return await e.read()};if(!globalThis.ClipboardItem){const t=(t,e)=>new Blob([e],{type:t});class e{constructor(e,r){this._items={},this._types=Object.keys(e);const n={},o=Object.keys(e);for(let r=0;r<o.length;r++){const a=o[r];let i=e[a];n[a]="string"==typeof i?t(a,i):i}this._items=n,this._presentationStyle=r?.presentationStyle??"unspecified"}get types(){return this._types}getType(t){return Promise.resolve(this._items[t])}supports(t){return!0}}globalThis.ClipboardItem=e}const dt=async(e,r=t)=>new Promise(async(t,n)=>{try{const n=await(async(t,e)=>{if(!t)return null;const r=await ut(t);let n=!1;for(let t=0;!n&&r&&t<r.length;t++)if(n=r[t].types.includes(e),n)return await r[t].getType(e);return n?void 0:null})(e,r);if(n){const e=new FileReader;e.onload=()=>{t(e.result)},e.onerror=()=>{t("")},e.readAsText(n)}else t("")}catch(t){n(t)}}),ft=async(e,r=t)=>{const n=await dt(e,r);if(!n)return null;let o=null;try{o=(new DOMParser).parseFromString(n,t)}catch{console.warn("Can't parse html from clipboard.")}return o},pt="clipboard-uuid",wt="web text/uuid",ht=t=>`<div style="display:none" ${pt}="${t}"/>`,yt=(e,r)=>{let n=null;try{const o=(new DOMParser).parseFromString(r,t);o.body.firstElementChild.setAttribute(pt,e),n=o.getElementsByTagName("body")[0].innerHTML}catch(t){console.warn("Can't embed uuid.",t)}return n},gt=(t,e)=>{if(!e||!t)return!1;try{const r=e.querySelectorAll(`[${pt}="${t}"]`);if(r&&1===r.length)return!0;if(e.querySelector("parsererror"))throw new Error("We are unable to parse node");return!1}catch{return!1}};class bt{constructor(t){if(void 0===t?.nativeClipboard||!0===t?.nativeClipboard)try{this._nativeClipboard=globalThis?.navigator.clipboard}catch{!0===t?.nativeClipboard&&console.warn("NativeClipboard option set to true but no native clipboard available.")}else this._nativeClipboard=!1===t?.nativeClipboard?null:t?.nativeClipboard;this._disableCheckOnFocus=t?.disableCheckOnFocus??!1,this._init()}async _checkForChanges(){this._nativeClipboard&&this._state&&!this._disableCheckOnFocus&&await ct("clipboard-read",async()=>{await st();const e=await dt(this._nativeClipboard,wt);if(!this._state||e&&e===this._state.uuid)return!0;const r=await ft(this._nativeClipboard,t);return!this._state||(gt(this._state.uuid,r)||this.clear(),!0)},async t=>{"denied"===t?.message||t.message?.includes("Document is not focused")||J()===G.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",e=>{t._checkForChanges()}))}async read(){if(!this._nativeClipboard)return this._state?.items??null;const e=this;return await ct("clipboard-read",async()=>{if(await st(),this._state?.uuid){const r=await dt(this._nativeClipboard,wt);if(r&&r===e._state.uuid)return!0;const n=await ft(this._nativeClipboard,t);if(gt(e._state?.uuid,n))return!0}return e._state={items:await ut(this._nativeClipboard),uuid:null,ref:null},this.dispatchEvent(new Event("clipboardread")),!0},async t=>{this.dispatchEvent(new Event("clipboarderrorread"))}),this._state?.items??[]}async write(t){return this._write({uuid:P(),items:t,ref:null})}async _write(n){if(!this._nativeClipboard)return this._state=n,this.dispatchEvent(new Event("clipboardwrite")),this.dispatchEvent(new Event("clipboardchange")),null;const o=this,a=[],i=n.uuid;let l=n.items??[];const s=()=>{o._state={uuid:i,ref:n.ref,items:a},o.dispatchEvent(new Event("clipboardwrite")),o.dispatchEvent(new Event("clipboardchange"))};await ct("clipboard-write",async()=>{await st(),i&&0===l.length&&(l.push(new ClipboardItem({[wt]:new Blob([i],{type:wt})})),l.push(new ClipboardItem({[t]:new Blob([ht(i)],{type:t})})));for(let n=0;n<Math.min(1,l.length);n++){const o=l[n];let s=o.types.indexOf(t),c=null;if(-1!==s){const e=await o.getType(t);c=await X(e),c&&(c=yt(i,c))}if(!c&&o.types.includes(e)){const t=await o.getType(e);if(t){let e=null;"string"==typeof t?(console.warn("text as string",t),e=t):e=await X(t),e&&(c=`<div ${pt}="${i}">${e}</div>`)}}if(!c&&o.types.includes(r)){const t=await o.getType(r),e=Z(await t.arrayBuffer());c=`<div ${pt}="${i}"><img src="${Q+e}"/></div>`}!c&&i&&(c=ht(i));const u=new Blob([c??""],{type:t}),d={};for(let t=0;t<o.types.length;t++){const e=o.types[t];d[e]=t===s?u:o.getType(e)}c&&-1===s&&(d[t]=u),i&&(d[wt]=new Blob([i],{type:wt})),a.push(new ClipboardItem(d))}try{a&&0!==a.length?await this._nativeClipboard.write(a):await(async t=>{t&&await t.writeText("")})(this._nativeClipboard)}catch(t){t.message?.includes("Document is not focused")||console.warn("Unable to write to native clipboard: ",t)}return s(),!0},async t=>{this.dispatchEvent(new Event("clipboarderrorwrite")),s()})}async writeReference(n){if(!n)return void this.clear();let o=null;const a={};try{const t=await(n.toText?.())??null;t&&(a[e]=new Blob([t??""],{type:e}))}catch(t){o=t}try{const e=await(n.toHtml?.())??null;e&&(a[t]=new Blob([e],{type:t}))}catch(t){o=t,console.warn("export to html",t)}try{const t=await(n.toImage?.())??null;t&&(a[r]=t)}catch(t){o=t,console.warn("export to png",t)}const i=this._write({uuid:P(),ref:n,items:Object.keys(a).length>0?[new ClipboardItem(a)]:null});if(o)throw o;return i}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 t=0;!o&&n&&t<n.length;t++)n[t].types.includes(e)&&(o=await n[t].getType(e));if(!o)return void t("");const a=new FileReader;a.onload=()=>{t(a.result)},a.readAsText(o),a.onerror=t=>{r(t)}})}async writeText(t){const r=[new ClipboardItem({[e]:new Blob([t],{type:e})})];return this._write({uuid:P(),items:r,ref:null})}addEventListener(t,e,r={}){const n=r?.capture?this._listenersCapture:this._listeners;let o=n.get(t);o||(o=new Map,n.set(t,o)),o.set(e,"boolean"==typeof r?{}:r)}dispatchEvent(t){if(!t)return;const e=e=>{const r=e.get(t.type);r&&r.forEach((e,n)=>{try{"function"==typeof n?n(t):n.handleEvent&&n.handleEvent(t),e.once&&r.delete(n)}catch(t){console.warn(t)}})};return e(this._listenersCapture),e(this._listeners),!0}removeEventListener(t,e,r){const n=r?.capture?this._listenersCapture:this._listeners,o=n.get(t);o&&(o.delete(e),0===o.size&&n.delete(t))}close(){globalThis.removeEventListener?.("focus",this._onFocus),globalThis.removeEventListener?.("blur",this._onBlur)}}var mt;(mt=bt||(bt={})).ErrorMessages=lt,mt.Global=new mt;let Et=null,St=null,vt=null;const xt=Object.freeze({compileTypescript:async function(t){if(!t?.source)return null;if(St&&Y.deepEqual(St,t))return Et;const e=await async function(){if(vt)return vt;const{TypeScriptCompiler:t}=await import("./BEs22-ynP5XGO3w2.mjs");return vt=new t,vt}(),r=await e.compileModule(t);return Et=r,St=t,r}}),_t=Object.freeze(Object.defineProperty({__proto__:null,ScriptingUtils:xt},Symbol.toStringTag,{value:"Module"}));export{Y as $,_t as i};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
|
|
3
|
+
*
|
|
4
|
+
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
|
+
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
+
*/
|
|
7
|
+
class r{constructor(r={}){this.workerWrapper=null}async getWorkerWrapper(){if(this.workerWrapper)return this.workerWrapper;const{createCompilerWorker:r}=await import("./1RkwhM87R80gyTMd.mjs");return this.workerWrapper=await r(),this.workerWrapper}async compileModule(r){try{return(await this.getWorkerWrapper()).execute(r)}catch(r){throw console.error("Failed to compile using worker:",r),r}}terminate(){this.workerWrapper?.terminate(),this.workerWrapper=null}}export{r as TypeScriptCompiler};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license @sheetxl/sdk - SDK - A high-performance, embeddable spreadsheet engine. - v0.4.11
|
|
3
|
+
*
|
|
4
|
+
* (C) 2025-present SheetXL Inc. & Michael T. Ford
|
|
5
|
+
* License: The license can be found at https://www.sheetxl.com/license.
|
|
6
|
+
*/
|
|
7
|
+
const e={DATE:{s:"Returns the number that represents the date in Microsoft Excel date-time code",p:{year:{d:"is a number from 1900 or 1904 (depending on the workbook's date system) to 9999"},month:{d:"is a number from 1 to 12 representing the month of the year"},day:{d:"is a number from 1 to 31 representing the day of the month"}}},DATEDIF:{s:"Returns the number of days between two dates",p:{startDate:{d:"is a serial date number that represents the start date"},endDate:{d:"is a serial date number that represents the end date"},unit:{d:"is a string that specifies the unit of time to use"}},h:"Legacy"},DATESTRING:{s:"Returns NA.",p:{number:{d:"is a number that is ignored"}},h:"Legacy"},DATEVALUE:{s:"Converts a date in the form of text to a number that represents the date in Microsoft Excel date-time code",p:{dateText:{d:"is text that represents a date in a Microsoft Excel date format, between 1/1/1900 or 1/1/1904 (depending on the workbook's date system) and 12/31/9999"}}},DAY:{s:"Returns the day of the month, a number from 1 to 31.",p:{serialOrString:{d:"is a number in the date-time code used by Excel or text in time format, such as 16:48:00 or 4:48:00 PM"}}},DAYS:{s:"Returns the number of days between the two dates.",p:{endDate:{d:"start_date and end_date are the two dates between which you want to know the number of days"},startDate:{d:"start_date and end_date are the two dates between which you want to know the number of days"}}},DAYS360:{s:"Returns the number of days between two dates based on a 360-day year (twelve 30-day months)",p:{startDate:{d:"start_date and end_date are the two dates between which you want to know the number of days"},endDate:{d:"start_date and end_date are the two dates between which you want to know the number of days"},method:{d:"is a logical value specifying the calculation method: U.S. (NASD) = FALSE; European = TRUE.",v:!1}}},EDATE:{s:"Returns the serial number of the date that is the indicated number of months before or after the start date",p:{startDate:{d:"is a serial date number that represents the start date"},months:{d:"is the number of months before or after start_date"}}},EOMONTH:{s:"Returns the serial number of the last day of the month before or after a specified number of months",p:{startDate:{d:"is a serial date number that represents the start date"},months:{d:"is the number of months before or after the start_date"}}},HOUR:{s:"Returns the hour as a number from 0 (12:00 A.M.) to 23 (11:00 P.M.).",p:{serialOrString:{d:"is a number in the date-time code used by Excel or text in time format, such as 16:48:00 or 4:48:00 PM"}}},ISOWEEKNUM:{s:"Returns the ISO week number in the year for a given date",p:{serialOrString:{d:"is a number in the date-time code used by Excel or text in time format, such as 16:48:00 or 4:48:00 PM"}}},MINUTE:{s:"Returns the minute, a number from 0 to 59.",p:{serialOrString:{d:"is a number in the date-time code used by Excel or text in time format, such as 16:48:00 or 4:48:00 PM"}}},MONTH:{s:"Returns the month, a number from 1 (January) to 12 (December).",p:{serialOrString:{d:"is a number in the date-time code used by Excel"}}},NETWORKDAYS:{s:"Returns the number of whole workdays between two dates",p:{startDate:{d:"is a serial date number that represents the start date"},endDate:{d:"is a serial date number that represents the end date"},holidays:{d:"is an optional set of one or more serial date numbers to exclude from the working calendar, such as state and federal holidays and floating holidays",v:null}}},"NETWORKDAYS.INTL":{s:"Returns the number of whole workdays between two dates with custom weekend parameters",p:{startDate:{d:"is a serial date number that represents the start date"},endDate:{d:"is a serial date number that represents the end date"},weekend:{d:"is a number or string specifying when weekends occur",v:1},holidays:{d:"is an optional set of one or more serial date numbers to exclude from the working calendar, such as state and federal holidays and floating holidays",v:null}}},NOW:{s:"Returns the current date and time formatted as a date and time.",p:{}},SECOND:{s:"Returns the second, a number from 0 to 59.",p:{serialOrString:{d:"is a number in the date-time code used by Excel or text in time format, such as 16:48:23 or 4:48:47 PM"}}},TIME:{s:"Converts hours, minutes, and seconds given as numbers to an Excel serial number, formatted with a time format",p:{hour:{d:"is a number from 0 to 23 representing the hour"},minute:{d:"is a number from 0 to 59 representing the minute"},second:{d:"is a number from 0 to 59 representing the second"}}},TIMEVALUE:{s:"Converts a text time to an Excel serial number for a time, a number from 0 (12:00:00 AM) to 0.999988426 (11:59:59 PM). Format the number with a time format after entering the formula",p:{timeText:{d:"is a text string that gives a time in any one of the Excel time formats (date information in the string is ignored)"}}},TODAY:{s:"Returns the current date formatted as a date.",p:{}},WEEKDAY:{s:"Returns a number from 1 to 7 identifying the day of the week of a date.",p:{serialOrString:{d:"is a number that represents a date"},returnType:{d:"is a number: for Sunday=1 through Saturday=7, use 1; for Monday=1 through Sunday=7, use 2; for Monday=0 through Sunday=6, use 3",v:1}}},WEEKNUM:{s:"Returns the week number in the year",p:{serialOrString:{d:"is the date-time code used by Excel for date and time calculation"},returnType:{d:"is a number (1 or 2) that determines the type of the return value",v:1}}},WORKDAY:{s:"Returns the serial number of the date before or after a specified number of workdays",p:{startDate:{d:"is a serial date number that represents the start date"},days:{d:"is the number of nonweekend and non-holiday days before or after start_date"},holidays:{d:"is an optional array of one or more serial date numbers to exclude from the working calendar, such as state and federal holidays and floating holidays",v:null}}},"WORKDAY.INTL":{s:"Returns the serial number of the date before or after a specified number of workdays with custom weekend parameters",p:{startDate:{d:"is a serial date number that represents the start date"},days:{d:"is the number of nonweekend and non-holiday days before or after start_date"},weekend:{d:"is a number or string specifying when weekends occur",v:1},holidays:{d:"is an optional array of one or more serial date numbers to exclude from the working calendar, such as state and federal holidays and floating holidays",v:null}}},YEAR:{s:"Returns the year of a date, an integer in the range 1900 - 9999.",p:{serialOrString:{d:"is a number in the date-time code used by Excel"}}},YEARFRAC:{s:"Returns the year fraction representing the number of whole days between start_date and end_date",p:{startDate:{d:"is a serial date number that represents the start date"},endDate:{d:"is a serial date number that represents the end date"},basis:{d:"is the type of day count basis to use",v:0}}}};export{e as default};
|