diff --git a/components/columnsBar.d.ts b/components/columnsBar.d.ts deleted file mode 100644 index cfbec3a..0000000 --- a/components/columnsBar.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import Spreadsheet from "../main"; -export declare class ColumnsBar { - element: HTMLCanvasElement; - private root; - height: number; - width: number; - ctx: CanvasRenderingContext2D; - constructor(root: Spreadsheet); - private createElement; - setElementPosition(top: number, left: number): void; - private isColumnSelected; - private renderText; - private renderRect; - private renderSingleColumn; - renderBar(): void; -} diff --git a/components/editor.d.ts b/components/editor.d.ts deleted file mode 100644 index 3a72363..0000000 --- a/components/editor.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import Spreadsheet from "../main"; -import { Position } from "../modules/cell"; -export declare class Editor { - element: HTMLInputElement; - root: Spreadsheet; - constructor(root: Spreadsheet); - hide(): void; - show(position: Position, initialString?: string): void; - handleKeydown: (event: KeyboardEvent) => void; - handleClickOutside: (event: MouseEvent) => void; -} diff --git a/components/rowsBar.d.ts b/components/rowsBar.d.ts deleted file mode 100644 index b04a25a..0000000 --- a/components/rowsBar.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import Spreadsheet from "../main"; -export declare class RowsBar { - element: HTMLCanvasElement; - ctx: CanvasRenderingContext2D; - root: Spreadsheet; - width: number; - height: number; - resizerHeight: number; - constructor(root: Spreadsheet); - private createElement; - setElementPosition(top: number, left: number): void; - private isRowSelected; - private renderText; - private renderRect; - private renderSingleRow; - renderBar(): void; -} diff --git a/components/scroller.d.ts b/components/scroller.d.ts deleted file mode 100644 index 530afbf..0000000 --- a/components/scroller.d.ts +++ /dev/null @@ -1,29 +0,0 @@ -import Spreadsheet from "../main"; -export interface ViewportRect { - top: number; - left: number; - right: number; - bottom: number; -} -export declare class Scroller { - element: HTMLDivElement; - private verticalScroller; - private horizontalScroller; - private root; - private isSelecting; - constructor(root: Spreadsheet); - setSelectingMode(mode: boolean): void; - private handleMouseMove; - private handleMouseUp; - private handleDoubleClick; - private handleKeydown; - private handleClick; - private handleScroll; - getViewportBoundlingRect(): ViewportRect; - private buildComponent; - private getActualHeight; - private getActualWidth; - updateScrollerSize(): void; - private setScrollerHeight; - private setScrollerWidth; -} diff --git a/components/sheet.d.ts b/components/sheet.d.ts deleted file mode 100644 index 2b7be6c..0000000 --- a/components/sheet.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import Spreadsheet from "../main"; -import { Position } from "../modules/cell"; -/** - * Display (CANVAS) element where cells render - */ -export declare class Sheet { - element: HTMLCanvasElement; - ctx: CanvasRenderingContext2D; - root: Spreadsheet; - constructor(root: Spreadsheet); - getCellByCoords(x: number, y: number): Position; - renderCell(position: Position): void; - private getSelectionRange; - private renderSelectionRange; - renderSelection(): void; - renderSheet(): void; -} diff --git a/components/table.d.ts b/components/table.d.ts deleted file mode 100644 index 12b8770..0000000 --- a/components/table.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import Spreadsheet from "../main"; -import { ViewProperties } from "../modules/config"; -/** Base (root) component */ -export declare class Table { - element: HTMLDivElement; - root: Spreadsheet; - constructor(root: Spreadsheet); - changeElementSizes(sizes: ViewProperties): void; -} diff --git a/components/toolbar.d.ts b/components/toolbar.d.ts deleted file mode 100644 index a13712f..0000000 --- a/components/toolbar.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import Spreadsheet from "../main"; -export declare class Toolbar { - element: HTMLDivElement; - root: Spreadsheet; - height: number; - constructor(root: Spreadsheet); -} diff --git a/demo.js b/demo.js index 98119e1..16bc3c1 100644 --- a/demo.js +++ b/demo.js @@ -1,2 +1,13977 @@ -"use strict";const s=require("./main.js"),r={onCellClick:(e,t)=>{console.log("Cell click",e,t)},onSelectionChange:e=>{console.log("Changed selection: ",e)},onCellChange(e){console.log("Cell changed: ",e)},onCopy:(e,t,i)=>{console.log("Copy event: ",e,t,i)}},o=new s.default("#spreadsheet",r);function c(){const e=o.serializeData();localStorage.setItem("sheet",JSON.stringify(e))}function a(){const e=localStorage.getItem("sheet");if(!e)return;const t=JSON.parse(e);o.loadData(t)}const n=document.querySelector("#save_button"),l=document.querySelector("#load_button");if(!n||!l)throw new Error("LOST");n.addEventListener("click",c);l.addEventListener("click",a); +var Ys = Object.defineProperty; +var Ks = (t, e, n) => e in t ? Ys(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n; +var U = (t, e, n) => (Ks(t, typeof e != "symbol" ? e + "" : e, n), n); +(function() { + const e = document.createElement("link").relList; + if (e && e.supports && e.supports("modulepreload")) + return; + for (const i of document.querySelectorAll('link[rel="modulepreload"]')) + r(i); + new MutationObserver((i) => { + for (const a of i) + if (a.type === "childList") + for (const c of a.addedNodes) + c.tagName === "LINK" && c.rel === "modulepreload" && r(c); + }).observe(document, { childList: !0, subtree: !0 }); + function n(i) { + const a = {}; + return i.integrity && (a.integrity = i.integrity), i.referrerPolicy && (a.referrerPolicy = i.referrerPolicy), i.crossOrigin === "use-credentials" ? a.credentials = "include" : i.crossOrigin === "anonymous" ? a.credentials = "omit" : a.credentials = "same-origin", a; + } + function r(i) { + if (i.ep) + return; + i.ep = !0; + const a = n(i); + fetch(i.href, a); + } +})(); +var yt = /* @__PURE__ */ ((t) => (t.CELL_CLICK = "CELL_CLICK", t.SELECTION_CHANGE = "CHANGE_SELECTION", t.CELL_CHANGE = "CELL_CHANGE", t.COPY_CELLS = "COPY_CELLS", t))(yt || {}); +class zs { + constructor(e) { + U(this, "root"); + U(this, "cellClick", (e, n) => { + var p, u; + if (e.button !== 0) + return; + const { offsetX: r, offsetY: i } = e, a = this.root.getCellByCoords(r, i), c = this.root.getCell(a), h = new Fr(); + h.selectedCell = a, h.selectedRange = { + from: a, + to: a + }, n.setSelectingMode(!0), this.changeSelection(h, !0), (u = (p = this.root.config).onCellClick) == null || u.call(p, e, c); + }); + U(this, "changeSelection", (e, n = !1) => { + var r, i; + this.root.selection = e, n && ((i = (r = this.root.config).onSelectonChange) == null || i.call(r, e)), this.root.renderSheet(), this.root.renderColumnsBar(), this.root.renderRowsBar(); + }); + U(this, "copy", (e, n, r) => { + var i, a; + (a = (i = this.root.config).onCopy) == null || a.call(i, e, n, r); + }); + this.root = e; + } + async dispatch(e) { + switch (e.type) { + case "CELL_CLICK": { + const { event: n, scroller: r } = e; + this.cellClick(n, r); + break; + } + case "CHANGE_SELECTION": { + const { selection: n, enableCallback: r } = e; + this.changeSelection(n, r); + break; + } + case "CELL_CHANGE": { + const { cell: n, enableCallback: r } = e; + if (n.value.substring(0, 1).startsWith("=")) + try { + await n.evalFormula(this.root.formulaParser), n.displayValue = n.resultValue, this.root.renderCell(n.position.row, n.position.column), this.changeCellValues(n, r); + return; + } catch (i) { + console.error(i); + } + this.root.renderCell(n.position.row, n.position.column), this.changeCellValues(n, r); + break; + } + case "COPY_CELLS": { + const { data: n, dataAsString: r, range: i } = e; + this.copy(i, n, r); + break; + } + } + } + changeCellValues(e, n = !0) { + var r, i; + n && ((i = (r = this.root.config).onCellChange) == null || i.call(r, e)); + } +} +class Gt { + constructor(e, n) { + U(this, "x"); + U(this, "y"); + U(this, "width"); + U(this, "height"); + this.x = this.getXCoord(n.column, e), this.y = this.getYCoord(n.row, e), this.width = e.columns[n.column].width, this.height = e.rows[n.row].height; + } + getXCoord(e, n) { + let r = 0; + for (let i = 0; i < e; i++) + r += n.columns[i].width; + return r; + } + getYCoord(e, n) { + let r = 0; + for (let i = 0; i < e; i++) + r += n.rows[i].height; + return r; + } +} +class Xs { + constructor(e) { + U(this, "element"); + U(this, "root"); + U(this, "handleKeydown", (e) => { + const { key: n } = e; + switch (n) { + case "Escape": { + this.hide(); + break; + } + case "Enter": { + if (!this.root.selection.selectedCell) + return; + this.root.changeCellValues(this.root.selection.selectedCell, { + value: this.element.value, + displayValue: this.element.value + }), this.root.events.dispatch({ + type: yt.CELL_CHANGE, + cell: this.root.getCell(this.root.selection.selectedCell) + }), this.hide(), this.root.renderSelection(); + } + } + }); + U(this, "handleClickOutside", (e) => { + const n = e.target; + this.element.contains(n) || this.hide(); + }); + this.root = e; + const n = document.createElement("input"); + n.classList.add(Wt + "editor"), this.element = n, this.hide(); + } + hide() { + this.element.style.display = "none", this.element.classList.add("hide"), this.element.blur(), window.removeEventListener("click", this.handleClickOutside), this.element.removeEventListener("keydown", this.handleKeydown), this.root.focusTable(); + } + show(e, n) { + const { height: r, width: i, x: a, y: c } = new Gt(this.root.config, e), h = this.root.getCell(e); + this.element.classList.remove("hide"), this.element.style.top = c - this.root.viewport.top + this.root.columnsBarHeight + "px", this.element.style.left = a - this.root.viewport.left + this.root.rowsBarWidth + "px", this.element.style.width = i + "px", this.element.style.height = r + "px", this.element.style.display = "block", window.addEventListener("click", this.handleClickOutside), this.element.addEventListener("keydown", this.handleKeydown), this.element.value = n || h.value, this.element.focus(), n || this.element.select(); + } +} +function ni(t, e) { + return t.column === e.column && t.row === e.row; +} +class Qs { + constructor(e) { + U(this, "element"); + U(this, "verticalScroller"); + U(this, "horizontalScroller"); + U(this, "root"); + U(this, "isSelecting", !1); + U(this, "handleMouseMove", (e) => { + if (!this.isSelecting) + return; + const { offsetX: n, offsetY: r } = e, i = this.root.getCellByCoords(n, r); + let a = !1; + this.root.selection.selectedRange && (a = !ni( + this.root.selection.selectedRange.to, + i + ), a && (this.root.selection.selectedRange.to = i, this.root.events.dispatch({ + type: yt.SELECTION_CHANGE, + selection: this.root.selection, + enableCallback: !0 + }))); + }); + U(this, "handleMouseUp", () => { + this.isSelecting = !1; + const e = { ...this.root.selection }; + this.root.selection.selectedRange && ni( + this.root.selection.selectedRange.from, + this.root.selection.selectedRange.to + ) && (e.selectedRange = null, this.root.events.dispatch({ + type: yt.SELECTION_CHANGE, + selection: e, + enableCallback: !1 + })), this.root.renderSheet(), this.root.renderColumnsBar(), this.root.renderRowsBar(); + }); + U(this, "handleDoubleClick", (e) => { + e.preventDefault(); + const n = this.root.getCellByCoords(e.offsetX, e.offsetY); + this.root.showEditor(n); + }); + U(this, "handleKeydown", (e) => { + if (["ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown"].includes(e.key)) { + switch (e.preventDefault(), this.root.selection.selectedRange = null, e.key) { + case "ArrowLeft": { + this.root.selection.selectedCell && this.root.selection.selectedCell.column > 0 && (this.root.selection.selectedCell.column -= 1); + break; + } + case "ArrowRight": { + this.root.selection.selectedCell && this.root.selection.selectedCell.column < this.root.config.columns.length - 1 && (this.root.selection.selectedCell.column += 1); + break; + } + case "ArrowUp": { + this.root.selection.selectedCell && this.root.selection.selectedCell.row > 0 && (this.root.selection.selectedCell.row -= 1); + break; + } + case "ArrowDown": { + this.root.selection.selectedCell && this.root.selection.selectedCell.row < this.root.config.rows.length - 1 && (this.root.selection.selectedCell.row += 1); + break; + } + } + this.root.events.dispatch({ + type: yt.SELECTION_CHANGE, + selection: this.root.selection, + enableCallback: !0 + }); + } + const n = /^([a-z]|[а-я]|[0-9]|=)$/; + if (!e.metaKey && !e.ctrlKey) { + const r = n.test(e.key.toLowerCase()); + if (e.key === "F2" || r) { + if (e.preventDefault(), !this.root.selection.selectedCell) + return; + this.root.showEditor( + this.root.selection.selectedCell, + r ? e.key : void 0 + ); + } + } + if (e.key === "Delete" && (e.preventDefault(), this.root.deleteSelectedCellsValues(), this.root.renderSheet()), e.metaKey || e.ctrlKey) { + if (e.code === "KeyC") { + let r; + const i = new Fr(); + if (this.root.selection.selectedRange) { + const { from: a, to: c } = this.root.selection.selectedRange; + i.selectedRange = this.root.selection.selectedRange, r = [...this.root.data.slice(a.row, c.row + 1).map((u) => u.slice(a.column, c.column + 1))]; + } else if (this.root.selection.selectedCell) { + const { column: a, row: c } = this.root.selection.selectedCell; + r = [[this.root.data[c][a]]], i.selectedRange = { + from: this.root.selection.selectedCell, + to: this.root.selection.selectedCell + }; + } else + return; + this.root.clipboard.copy(r, i.selectedRange); + return; + } + e.code; + } + }); + U(this, "handleClick", (e) => { + this.root.events.dispatch({ + type: yt.CELL_CLICK, + event: e, + scroller: this + }); + }); + U(this, "handleScroll", () => { + const e = this.getViewportBoundlingRect(); + this.root.viewport.updateValues(e), this.root.renderSheet(), this.root.renderColumnsBar(), this.root.renderRowsBar(); + }); + this.root = e; + const { horizontalScroller: n, scroller: r, verticalScroller: i } = this.buildComponent(); + this.element = r, this.verticalScroller = i, this.horizontalScroller = n, this.element.style.height = this.root.config.view.height + "px", this.element.style.width = this.root.config.view.width + "px", this.element.style.top = this.root.columnsBarHeight + "px", this.element.style.left = this.root.rowsBarWidth + "px", this.element.tabIndex = -1, this.updateScrollerSize(), this.element.addEventListener("scroll", this.handleScroll), this.element.addEventListener("mousedown", this.handleClick), this.element.addEventListener("mousemove", this.handleMouseMove), this.element.addEventListener("mouseup", this.handleMouseUp), this.element.addEventListener("dblclick", this.handleDoubleClick), this.element.addEventListener("keydown", this.handleKeydown), this.element.addEventListener("paste", (a) => { + this.root.selection.selectedCell && this.root.clipboard.paste( + this.root, + this.root.selection.selectedCell, + a + ); + }); + } + setSelectingMode(e) { + this.isSelecting = e; + } + getViewportBoundlingRect() { + const { scrollTop: e, scrollLeft: n } = this.element, { height: r, width: i } = this.element.getBoundingClientRect(), a = e + r, c = n + i; + return { + top: e, + left: n, + bottom: a, + right: c + }; + } + buildComponent() { + const e = document.createElement("div"), n = document.createElement("div"), r = document.createElement("div"), i = document.createElement("div"), a = document.createElement("div"); + return n.style.width = "0px", n.style.pointerEvents = "none", r.style.pointerEvents = "none", i.style.display = "flex", a.appendChild(n), a.appendChild(r), i.appendChild(a), this.verticalScroller = n, this.horizontalScroller = r, e.appendChild(i), e.contentEditable = "false", e.classList.add(Wt + "scroller"), { scroller: e, verticalScroller: n, horizontalScroller: r }; + } + getActualHeight() { + return this.root.config.rows.reduce((e, n) => (e += n.height, e), 0); + } + getActualWidth() { + return this.root.config.columns.reduce((e, n) => (e += n.width, e), 0); + } + updateScrollerSize() { + const e = this.getActualHeight(), n = this.getActualWidth(); + this.setScrollerHeight(e), this.setScrollerWidth(n); + } + setScrollerHeight(e) { + this.verticalScroller.style.height = e + "px"; + } + setScrollerWidth(e) { + this.horizontalScroller.style.width = e + "px"; + } +} +class vo { + constructor(e) { + U(this, "fontSize", 16); + U(this, "fontColor", "black"); + U(this, "background", "white"); + U(this, "borderColor", "black"); + U(this, "selectedBackground", "#4287f5"); + U(this, "selectedFontColor", "#ffffff"); + e && Object.assign(this, e); + } +} +class Zs { + constructor(e, n) { + U(this, "row"); + U(this, "column"); + this.row = e, this.column = n; + } +} +class Js { + constructor(e) { + U(this, "value"); + U(this, "displayValue"); + U(this, "resultValue"); + U(this, "position"); + U(this, "style"); + this.value = e.value, this.displayValue = e.displayValue, this.resultValue = e.resultValue, this.position = e.position, this.style = e.style; + } +} +let Br = class { + constructor(e) { + /** True value (data) */ + U(this, "value"); + /** Value to render */ + U(this, "displayValue"); + /** This refers to the values that were obtained by calculations, for example, after calculating the formula */ + U(this, "resultValue"); + U(this, "position"); + U(this, "style", null); + U(this, "cellsDependsOnThisCell", []); + U(this, "dependedFromCells", []); + this.value = e.value, this.displayValue = e.displayValue, this.resultValue = e.resultValue, this.position = e.position, this.style = e.style; + } + getSerializableCell() { + return new Js({ + displayValue: this.displayValue, + position: this.position, + resultValue: this.resultValue, + style: this.style, + value: this.value + }); + } + changeStyles(e) { + this.style = e; + } + changeValues(e) { + Object.assign(this, e); + } + evalFormula(e) { + this.value.substring(0, 1) === "=" && (this.resultValue = e.parser.parse(this.value.slice(1), { + col: this.position.column, + row: this.position.row + })); + } + // private isCellInRange(root: Spreadsheet): boolean { + // const { column, row } = this.position; + // const { selectedRange } = root.selection; + // if (!selectedRange) return false; + // const isCellInRow = + // row >= Math.min(selectedRange.from.row, selectedRange.to.row) && + // row <= Math.max(selectedRange.to.row, selectedRange.from.row); + // const isCellInCol = + // column >= Math.min(selectedRange.from.column, selectedRange.to.column) && + // column <= Math.max(selectedRange.to.column, selectedRange.from.column); + // return isCellInCol && isCellInRow; + // } + render(e) { + const n = new Gt(e.config, this.position); + let { x: r, y: i } = n; + const { height: a, width: c } = n, { ctx: h } = e; + i -= e.viewport.top, r -= e.viewport.left; + const p = this.style ?? e.styles.cells; + h.clearRect(r, i, c, a), h.fillStyle = p.background, h.strokeStyle = "black", h.fillRect(r, i, c - 1, a - 1), h.strokeRect(r, i, c, a), h.fillStyle = p.fontColor, h.textAlign = "left", h.font = `${p.fontSize}px Arial`, h.textBaseline = "middle", h.fillText(this.displayValue, r + 2, i + a / 2); + } +}, js = class { + constructor(e) { + U(this, "element"); + U(this, "ctx"); + U(this, "root"); + this.root = e; + const n = document.createElement("canvas"); + n.classList.add(Wt + "sheet"), n.height = this.root.config.view.height, n.width = this.root.config.view.width, n.style.width = this.root.config.view.width + "px", n.style.height = this.root.config.view.height + "px", n.style.left = "0px", this.element = n; + const r = this.element.getContext("2d"); + if (!r) + throw new Error("Enable hardware acceleration"); + this.ctx = r; + } + getCellByCoords(e, n) { + let r = 0, i = 0; + for (; i <= n && (i += this.root.config.rows[r].height, !(i >= n)); ) + r++; + let a = 0, c = 0; + for (; c <= e && (c += this.root.config.columns[a].width, !(c >= e)); ) + a++; + return new Zs(r, a); + } + renderCell(e) { + const { column: n, row: r } = e; + this.root.data[r][n].render(this.root); + } + getSelectionRange() { + const { selectedCell: e, selectedRange: n } = this.root.selection; + if (!(!e && !n)) { + if (n) { + const r = Math.min(n.from.row, n.to.row), i = Math.min( + n.from.column, + n.to.column + ), a = Math.max(n.from.row, n.to.row), c = Math.max( + n.from.column, + n.to.column + ), h = new Gt(this.root.config, { + row: r, + column: i + }); + let p = 0; + for (let l = i; l <= c; l++) + p += this.root.config.columns[l].width; + let u = 0; + for (let l = r; l <= a; l++) + u += this.root.config.rows[l].height; + const o = h.x - this.root.viewport.left, s = h.y - this.root.viewport.top; + return { x: o, y: s, height: u, width: p }; + } + if (!n && e) { + const r = new Gt(this.root.config, e); + return r.x -= this.root.viewport.left, r.y -= this.root.viewport.top, r; + } + } + } + renderSelectionRange(e, n, r, i) { + this.ctx.save(), this.ctx.strokeStyle = "#7da8ff", this.ctx.lineWidth = 3, this.ctx.strokeRect(e, n, r, i), this.ctx.fillStyle = "#7da8ff35", this.ctx.fillRect(e, n, r, i), this.ctx.restore(); + } + renderSelection() { + const e = this.getSelectionRange(); + if (!e) + return; + const { height: n, width: r, x: i, y: a } = e; + this.renderSelectionRange(i, a, r, n); + } + renderSheet() { + const e = this.root.viewport.firstRow, n = this.root.viewport.lastCol + 3, r = this.root.viewport.lastRow + 3, i = this.root.viewport.firstCol; + for (let a = e; a <= r; a++) + for (let c = i; c <= n && !(!this.root.config.columns[c] || !this.root.config.rows[a]); c++) + this.renderCell({ column: c, row: a }); + this.renderSelection(); + } +}; +class ea { + constructor(e) { + U(this, "element"); + U(this, "root"); + this.root = e; + const n = document.createElement("div"); + n.classList.add(Wt + "spreadsheet_container"), this.element = n, this.changeElementSizes(this.root.viewProps); + } + changeElementSizes(e) { + const { height: n, width: r } = e; + this.element.style.width = r + this.root.rowsBarWidth + "px", this.element.style.height = n + this.root.columnsBarHeight + "px"; + } +} +class ta { + constructor(e) { + U(this, "element"); + U(this, "root"); + U(this, "height", 0); + this.root = e; + const n = document.createElement("div"); + n.classList.add(Wt + "toolbar"), this.element = n; + } +} +class ri { + constructor(e) { + U(this, "rows"); + U(this, "columns"); + U(this, "view", { + width: 800, + height: 600 + }); + U(this, "onCellClick", null); + U(this, "onSelectonChange", null); + U(this, "onCellChange", null); + U(this, "onCopy"); + this.columns = e.columns, this.rows = e.rows, this.view = e.view, this.onCellClick = e.onCellClick ?? null, this.onSelectonChange = e.onSelectionChange ?? null, this.onCellChange = e.onCellChange ?? null, this.onCopy = e.onCopy ?? null; + } +} +class Fr { + constructor() { + U(this, "selectedCell", null); + U(this, "selectedRange", null); + } +} +class na { + constructor() { + U(this, "cells"); + this.cells = new vo(); + } +} +class ii { + constructor(e, n) { + U(this, "root"); + U(this, "top"); + U(this, "left"); + U(this, "right"); + U(this, "bottom"); + U(this, "firstRow"); + U(this, "lastRow"); + U(this, "firstCol"); + U(this, "lastCol"); + this.root = e, this.top = n.top, this.left = n.left, this.right = n.right, this.bottom = n.bottom, this.firstRow = this.getFirstRow(), this.lastCol = this.getFirstRow(); + //!Temp + this.firstCol = this.getFirstRow(); + //!Temp + this.lastRow = this.getLastRow(), this.updateValues({ + top: 0, + left: 0, + right: this.root.viewProps.width, + bottom: this.root.viewProps.height + }); + } + updateValues(e) { + this.top = e.top, this.left = e.left, this.right = e.right, this.bottom = e.bottom, this.firstRow = this.getFirstRow(), this.lastRow = this.getLastRow(), this.firstCol = this.getFirstCol(), this.lastCol = this.getLastCol(); + } + /** Get index of first row in viewport */ + getFirstRow() { + return this.root.cache.getRowByYCoord(this.top); + } + getLastRow() { + return this.root.cache.getRowByYCoord(this.bottom); + } + getFirstCol() { + return this.root.cache.getColumnByXCoord(this.left); + } + getLastCol() { + return this.root.cache.getColumnByXCoord(this.right); + } +} +let ra = class { + constructor(e) { + U(this, "width"); + U(this, "title"); + this.width = e.width, this.title = e.title; + } +}; +class ia { + constructor(e) { + U(this, "height"); + U(this, "title"); + this.height = e.height, this.title = e.title; + } +} +function oa(t, e, n = !1) { + const r = []; + for (let i = 0; i <= t; i++) { + const a = []; + for (let c = 0; c <= e; c++) { + const h = n ? `${i}:${c}` : "", p = new Br({ + displayValue: h, + resultValue: h, + value: h, + position: { + column: c, + row: i + }, + style: null + }); + a.push(p); + } + r.push(a); + } + return r; +} +class sa { + constructor(e) { + U(this, "xPos"); + U(this, "colIdx"); + this.xPos = e.xPos, this.colIdx = e.colIdx; + } +} +class aa { + constructor(e) { + U(this, "yPos"); + U(this, "rowIdx"); + this.yPos = e.yPos, this.rowIdx = e.rowIdx; + } +} +class ca { + constructor(e) { + U(this, "columns"); + U(this, "rows"); + this.columns = e.columns, this.rows = e.rows; + } + getRowByYCoord(e) { + let n = 0; + for (let r = 0; r < this.rows.length && (n = r, !(e <= this.rows[r].yPos)); r++) + ; + return n; + } + getColumnByXCoord(e) { + let n = 0; + for (let r = 0; r < this.columns.length && (n = r, !(e <= this.columns[r].xPos)); r++) + ; + return n; + } +} +class la { + constructor(e) { + U(this, "element"); + U(this, "root"); + U(this, "height", 35); + U(this, "width"); + // private resizerWidth = 1; + U(this, "ctx"); + this.root = e, this.element = this.createElement(); + const n = this.element.getContext("2d"); + if (!n) + throw new Error("Enable hardware acceleration"); + this.ctx = n, this.width = this.root.viewProps.width; + } + createElement() { + const e = document.createElement("canvas"); + return e.style.position = "absolute", e.style.height = this.height + "px", e.style.width = this.root.viewProps.width + "px", e.style.display = "block", e.style.borderLeft = "1px solid black", e.width = this.root.viewProps.width, e.height = this.height, e; + } + setElementPosition(e, n) { + this.element.style.top = e + "px", this.element.style.left = n + "px"; + } + isColumnSelected(e) { + const { selectedCell: n, selectedRange: r } = this.root.selection; + return n && n.column === e ? !0 : r ? e >= Math.min(r.from.column, r.to.column) && e <= Math.max(r.from.column, r.to.column) : !1; + } + // private getYCoordWithOffset(renderBox: RenderBox): number { + // const {y} = renderBox + // return y + this.root.toolbarHeight + // } + // private getXCoordWithOffset(renderBox: RenderBox): number { + // const {x} = renderBox + // return x + // } + renderText(e, n) { + const { width: r, x: i } = n; + this.ctx.fillStyle = "black", this.ctx.textAlign = "center", this.ctx.textBaseline = "middle", this.ctx.font = "12px Arial", this.ctx.fillText( + this.root.config.columns[e].title, + i + r / 2 - this.root.viewport.left, + 0 + this.height / 2 + ); + } + renderRect(e, n) { + const { width: r, x: i } = n, a = this.isColumnSelected(e); + this.ctx.fillStyle = a ? "#c7ebff" : "white", this.ctx.strokeStyle = "black", this.ctx.lineWidth = 1; + const c = i - this.root.viewport.left; + this.ctx.fillRect(c - 1, 0, r, this.height), this.ctx.strokeRect(c - 1, 0, r, this.height); + } + renderSingleColumn(e) { + const n = new Gt(this.root.config, { + row: 0, + column: e + }); + this.renderRect(e, n), this.renderText(e, n); + } + renderBar() { + const e = this.root.viewport.lastCol + 3, n = this.root.viewport.firstCol; + this.ctx.beginPath(), this.ctx.strokeStyle = "black", this.ctx.lineWidth = 1, this.ctx.moveTo(0, 0), this.ctx.lineTo(0, this.height), this.ctx.closePath(), this.ctx.stroke(); + for (let r = n; r <= e && this.root.config.columns[r]; r++) + this.renderSingleColumn(r); + } +} +class ua { + constructor(e) { + U(this, "element"); + U(this, "ctx"); + U(this, "root"); + U(this, "width", 35); + U(this, "height"); + U(this, "resizerHeight", 1); + this.root = e, this.element = this.createElement(); + const n = this.element.getContext("2d"); + if (!n) + throw new Error("Enable hardware acceleration"); + this.ctx = n, this.height = this.root.viewProps.height; + } + createElement() { + const e = document.createElement("canvas"); + return e.style.position = "absolute", e.style.height = this.root.viewProps.height + "px", e.style.width = this.width + "px", e.style.display = "block", e.style.borderTop = "1px solid black", e.width = this.width, e.height = this.root.viewProps.height, e; + } + setElementPosition(e, n) { + this.element.style.top = e + "px", this.element.style.left = n + "px"; + } + isRowSelected(e) { + const { selectedCell: n, selectedRange: r } = this.root.selection; + return n && n.row === e ? !0 : r ? e >= Math.min(r.from.row, r.to.row) && e <= Math.max(r.from.row, r.to.row) : !1; + } + renderText(e, n) { + const { y: r, height: i } = n; + this.ctx.fillStyle = "black", this.ctx.textAlign = "center", this.ctx.textBaseline = "middle", this.ctx.font = "12px Arial", this.ctx.fillText( + this.root.config.rows[e].title, + this.width / 2, + r - this.root.viewport.top + i / 2 + ); + } + renderRect(e, n) { + const { y: r, height: i } = n, a = this.isRowSelected(e); + this.ctx.fillStyle = a ? "#c7ebff" : "white", this.ctx.strokeStyle = "black", this.ctx.lineWidth = this.resizerHeight; + const c = r - this.root.viewport.top; + this.ctx.fillRect(0, c - 1, this.width, i), this.ctx.strokeRect(0, c - 1, this.width, i); + } + renderSingleRow(e) { + const n = new Gt(this.root.config, { + column: 0, + row: e + }); + this.renderRect(e, n), this.renderText(e, n); + } + renderBar() { + const e = this.root.viewport.lastRow + 3, n = this.root.viewport.firstRow; + this.ctx.beginPath(), this.ctx.moveTo(0, 0), this.ctx.strokeStyle = "black", this.ctx.lineWidth = 16, this.ctx.lineTo(35, 0), this.ctx.closePath(), this.ctx.stroke(); + for (let r = n; r <= e && this.root.config.rows[r]; r++) + this.renderSingleRow(r); + } +} +class fa { + constructor(e) { + U(this, "saved", null); + U(this, "root"); + this.root = e; + } + copy(e, n) { + const r = e.map((i) => i.map((a) => a.displayValue).join(" ")).join(` +`); + this.saved = e, navigator.clipboard.writeText(r), this.root.events.dispatch({ + type: yt.COPY_CELLS, + data: e, + dataAsString: r, + range: n + }); + } + paste(e, { column: n, row: r }, i) { + if (!this.saved) { + if (!i.clipboardData) + return; + const h = i.clipboardData.getData("text"); + try { + const u = h.split(` +`).map((l) => l.split(" ")).map((l) => l.map((f) => { + const v = { + displayValue: f, + position: { + column: n, + row: r + }, + resultValue: f, + style: new vo(), + value: f + }; + return new Br(v); + })), o = u.length, s = u[0] ? u[0].length : 0; + for (let l = 0; l < o; l++) + for (let f = 0; f < s; f++) { + const v = u[l][f], d = { + column: n + f, + row: r + l + }, g = { + displayValue: v.displayValue, + value: v.value, + style: v.style + }; + e.changeCellValues(d, g, !1); + } + } catch (p) { + console.error("Cannot read clipboard. ", p); + } + e.renderSheet(); + return; + } + const a = this.saved.length, c = this.saved[0] ? this.saved[0].length : 0; + for (let h = 0; h < a; h++) + for (let p = 0; p < c; p++) { + const u = this.saved[h][p], o = { + column: n + p, + row: r + h + }, s = { + displayValue: u.displayValue, + value: u.value, + style: u.style + }; + e.changeCellValues(o, s, !1); + } + } +} +var go = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {}; +function ha(t) { + return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t; +} +function pa(t) { + if (t.__esModule) + return t; + var e = t.default; + if (typeof e == "function") { + var n = function r() { + if (this instanceof r) { + var i = [null]; + i.push.apply(i, arguments); + var a = Function.bind.apply(e, i); + return new a(); + } + return e.apply(this, arguments); + }; + n.prototype = e.prototype; + } else + n = {}; + return Object.defineProperty(n, "__esModule", { value: !0 }), Object.keys(t).forEach(function(r) { + var i = Object.getOwnPropertyDescriptor(t, r); + Object.defineProperty(n, r, i.get ? i : { + enumerable: !0, + get: function() { + return t[r]; + } + }); + }), n; +} +let da = class { + constructor(e, n) { + if (e == null && n == null) + this._data = [], this._refs = []; + else { + if (e.length !== n.length) + throw Error("Collection: data length should match references length."); + this._data = e, this._refs = n; + } + } + get data() { + return this._data; + } + get refs() { + return this._refs; + } + get length() { + return this._data.length; + } + /** + * Add data and references to this collection. + * @param {{}} obj - data + * @param {{}} ref - reference + */ + add(e, n) { + this._data.push(e), this._refs.push(n); + } +}; +var Gn = da, or, oi; +function ge() { + if (oi) + return or; + oi = 1; + const t = he(), e = Gn, n = { + NUMBER: 0, + ARRAY: 1, + BOOLEAN: 2, + STRING: 3, + RANGE_REF: 4, + // can be 'A:C' or '1:4', not only 'A1:C3' + CELL_REF: 5, + COLLECTIONS: 6, + // Unions of references + NUMBER_NO_BOOLEAN: 10 + }, r = [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600, 6227020800, 87178291200, 1307674368e3, 20922789888e3, 355687428096e3, 6402373705728e3, 121645100408832e3, 243290200817664e4, 5109094217170944e4, 11240007277776077e5, 2585201673888498e7, 6204484017332394e8, 15511210043330986e9, 40329146112660565e10, 10888869450418352e12, 30488834461171387e13, 8841761993739702e15, 26525285981219107e16, 8222838654177922e18, 2631308369336935e20, 8683317618811886e21, 29523279903960416e22, 10333147966386145e24, 37199332678990125e25, 13763753091226346e27, 5230226174666011e29, 20397882081197444e30, 8159152832478977e32, 3345252661316381e34, 140500611775288e37, 6041526306337383e37, 2658271574788449e39, 11962222086548019e40, 5502622159812089e42, 25862324151116818e43, 12413915592536073e45, 6082818640342675e47, 30414093201713376e48, 15511187532873822e50, 8065817517094388e52, 42748832840600255e53, 2308436973392414e56, 12696403353658276e57, 7109985878048635e59, 40526919504877214e60, 23505613312828785e62, 13868311854568984e64, 832098711274139e67, 5075802138772248e68, 3146997326038794e70, 198260831540444e73, 12688693218588417e73, 8247650592082472e75, 5443449390774431e77, 3647111091818868e79, 24800355424368305e80, 1711224524281413e83, 11978571669969892e84, 8504785885678623e86, 61234458376886085e87, 44701154615126844e89, 3307885441519386e92, 248091408113954e95, 18854947016660504e95, 14518309202828587e97, 11324281178206297e99, 8946182130782976e101, 7156945704626381e103, 5797126020747368e105, 4753643337012842e107, 3945523969720659e109, 3314240134565353e111, 281710411438055e114, 24227095383672734e114, 2107757298379528e117, 18548264225739844e118, 1650795516090846e121, 14857159644817615e122, 1352001527678403e125, 12438414054641308e126, 11567725070816416e128, 1087366156656743e131, 1032997848823906e133, 9916779348709496e134, 9619275968248212e136, 9426890448883248e138, 9332621544394415e140, 9332621544394415e142], i = {}; + Object.keys(n).forEach((o) => { + i[n[o]] = o; + }); + class a { + constructor() { + this.Types = n, this.type2Number = { + number: n.NUMBER, + boolean: n.BOOLEAN, + string: n.STRING, + object: -1 + }; + } + checkFunctionResult(s) { + if (typeof s === "number") { + if (isNaN(s)) + return t.VALUE; + if (!isFinite(s)) + return t.NUM; + } + return s ?? t.NULL; + } + /** + * Flatten an array + * @param {Array} arr1 + * @returns {*} + */ + flattenDeep(s) { + return s.reduce((l, f) => Array.isArray(f) ? l.concat(this.flattenDeep(f)) : l.concat(f), []); + } + /** + * + * @param obj + * @param isArray - if it is an array: [1,2,3], will extract the first element + * @param allowBoolean - Allow parse boolean into number + * @returns {number|FormulaError} + */ + acceptNumber(s, l = !0, f = !0) { + if (s instanceof t) + return s; + let v; + if (typeof s == "number") + v = s; + else if (typeof s == "boolean") + if (f) + v = Number(s); + else + throw t.VALUE; + else if (typeof s == "string") { + if (s.length === 0 || (v = Number(s), v !== v)) + throw t.VALUE; + } else if (Array.isArray(s)) + if (l) + v = this.acceptNumber(s[0][0]); + else if (s[0].length === 1) + v = this.acceptNumber(s[0][0]); + else + throw t.VALUE; + else + throw Error("Unknown type in FormulaHelpers.acceptNumber"); + return v; + } + /** + * Flatten parameters to 1D array. + * @see {@link FormulaHelpers.accept} + * @param {Array} params - Parameter that needs to flatten. + * @param {Types|null} valueType - The type each item should be, + * null if allows any type. This only applies to literals. + * @param {boolean} allowUnion - Allow union, e.g. (A1:C1, E4:F3) + * @param {function} hook - Invoked after parsing each item. + * of the array. + * @param {*} [defValue=null] - The value if an param is omitted. i.e. SUM(1,2,,,,,) + * @param {number} [minSize=1] - The minimum size of the parameters + */ + flattenParams(s, l, f, v, d = null, g = 1) { + if (s.length < g) + throw t.ARG_MISSING([l]); + d == null && (d = l === n.NUMBER ? 0 : l == null ? null : ""), s.forEach((E) => { + const { isCellRef: A, isRangeRef: m, isArray: N } = E, y = E.value instanceof e, R = !A && !m && !N && !y, T = { isLiteral: R, isCellRef: A, isRangeRef: m, isArray: N, isUnion: y }; + if (R) + E.omitted ? E = d : E = this.accept(E, l, d), v(E, T); + else if (A) + v(E.value, T); + else if (y) { + if (!f) + throw t.VALUE; + E = E.value.data, E = this.flattenDeep(E), E.forEach((w) => { + v(w, T); + }); + } else + (m || N) && (E = this.flattenDeep(E.value), E.forEach((w) => { + v(w, T); + })); + }); + } + /** + * Check if the param valid, return the parsed param. + * If type is not given, return the un-parsed param. + * @param {*} param + * @param {number|null} [type] - The expected type + * NUMBER: Expect a single number, + * ARRAY: Expect an flatten array, + * BOOLEAN: Expect a single boolean, + * STRING: Expect a single string, + * COLLECTIONS: Expect an Array of the above types + * null: Do not parse the value, return it directly. + * The collection is not a flatted array. + * @param {*} [defValue] - Default value if the param is not given. + * if undefined, this param is required, a Error will throw if not given. + * if null, and param is undefined, null will be returned. + * @param {boolean} [flat=true] - If the array should be flattened, + * only applicable when type is ARRAY. + * If false, collection is disallowed. + * @param {boolean} allowSingleValue - If pack single value into 2d array, + * only applicable when type is ARRAY. + * @return {string|number|boolean|{}|Array} + */ + accept(s, l = null, f, v = !0, d = !1) { + if (Array.isArray(l) && (l = l[0]), s == null && f === void 0) + throw t.ARG_MISSING([l]); + if (s == null) + return f; + if (typeof s != "object" || Array.isArray(s)) + return s; + const g = s.isArray; + if (s.value != null && (s = s.value), l == null) + return s; + if (s instanceof t) + throw s; + if (l === n.ARRAY) { + if (Array.isArray(s)) + return v ? this.flattenDeep(s) : s; + if (s instanceof e) + throw t.VALUE; + if (d) + return v ? [s] : [[s]]; + throw t.VALUE; + } else if (l === n.COLLECTIONS) + return s; + g && (s = s[0][0]); + const E = this.type(s); + if (l === n.STRING) + E === n.BOOLEAN ? s = s ? "TRUE" : "FALSE" : s = `${s}`; + else if (l === n.BOOLEAN) { + if (E === n.STRING) + throw t.VALUE; + E === n.NUMBER && (s = !!s); + } else if (l === n.NUMBER) + s = this.acceptNumber(s, !1); + else if (l === n.NUMBER_NO_BOOLEAN) + s = this.acceptNumber(s, !1, !1); + else + throw t.VALUE; + return s; + } + type(s) { + let l = this.type2Number[typeof s]; + return l === -1 && (Array.isArray(s) ? l = n.ARRAY : s.ref ? s.ref.from ? l = n.RANGE_REF : l = n.CELL_REF : s instanceof e && (l = n.COLLECTIONS)), l; + } + isRangeRef(s) { + return s.ref && s.ref.from; + } + isCellRef(s) { + return s.ref && !s.ref.from; + } + /** + * Helper function for SUMIF, AVERAGEIF,... + * @param context + * @param range1 + * @param range2 + */ + retrieveRanges(s, l, f) { + return f = u.extend(l, f), l = this.retrieveArg(s, l), l = c.accept(l, n.ARRAY, void 0, !1, !0), f !== l ? (f = this.retrieveArg(s, f), f = c.accept(f, n.ARRAY, void 0, !1, !0)) : f = l, [l, f]; + } + retrieveArg(s, l) { + if (l === null) + return { value: 0, isArray: !1, omitted: !0 }; + const f = s.utils.extractRefValue(l); + return { value: f.val, isArray: f.isArray, ref: l.ref }; + } + } + const c = new a(), h = { + /** + * @param {string|*} obj + * @returns {*} + */ + isWildCard: (o) => typeof o == "string" ? /[*?]/.test(o) : !1, + toRegex: (o, s) => RegExp(o.replace(/[.+^${}()|[\]\\]/g, "\\$&").replace(/([^~]??)[?]/g, "$1.").replace(/([^~]??)[*]/g, "$1.*").replace(/~([?*])/g, "$1"), s) + }, p = { + /** + * Parse criteria, support comparison and wild card match. + * @param {string|number} criteria + * @return {{op: string, value: string|number|boolean|RegExp, match: boolean|undefined}} - The parsed criteria. + */ + parse: (o) => { + const s = typeof o; + if (s === "string") { + const l = o.toUpperCase(); + if (l === "TRUE" || l === "FALSE") + return { op: "=", value: l === "TRUE" }; + const f = o.match(/(<>|>=|<=|>|<|=)(.*)/); + if (f) { + let v = f[1], d; + if (isNaN(f[2])) { + const g = f[2].toUpperCase(); + if (g === "TRUE" || g === "FALSE") + d = g === "TRUE"; + else if (/#NULL!|#DIV\/0!|#VALUE!|#NAME\?|#NUM!|#N\/A|#REF!/.test(f[2])) + d = new t(f[2]); + else if (d = f[2], h.isWildCard(d)) + return { op: "wc", value: h.toRegex(d), match: v === "=" }; + } else + d = Number(f[2]); + return { op: v, value: d }; + } else + return h.isWildCard(o) ? { op: "wc", value: h.toRegex(o), match: !0 } : { op: "=", value: o }; + } else { + if (s === "boolean" || s === "number" || Array.isArray(o) || o instanceof t) + return { op: "=", value: o }; + throw Error(`Criteria.parse: type ${typeof o} not support`); + } + } + }, u = { + columnNumberToName: (o) => { + let s = o, l = "", f = 0; + for (; s > 0; ) + f = (s - 1) % 26, l = String.fromCharCode("A".charCodeAt(0) + f) + l, s = Math.floor((s - f) / 26); + return l; + }, + columnNameToNumber: (o) => { + o = o.toUpperCase(); + const s = o.length; + let l = 0; + for (let f = 0; f < s; f++) { + const v = o.charCodeAt(f); + isNaN(v) || (l += (v - 64) * 26 ** (s - f - 1)); + } + return l; + }, + /** + * Extend range2 to match with the dimension in range1. + * @param {{ref: {}}} range1 + * @param {{ref: {}}} [range2] + */ + extend: (o, s) => { + if (s == null) + return o; + let l, f; + if (c.isCellRef(o)) + l = 0, f = 0; + else if (c.isRangeRef(o)) + l = o.ref.to.row - o.ref.from.row, f = o.ref.to.col - o.ref.from.col; + else + throw Error("Address.extend should not reach here."); + return c.isCellRef(s) ? (l > 0 || f > 0) && (s = { + ref: { + from: { col: s.ref.col, row: s.ref.row }, + to: { row: s.ref.row + l, col: s.ref.col + f } + } + }) : (s.ref.to.row = s.ref.from.row + l, s.ref.to.col = s.ref.from.col + f), s; + } + }; + return or = { + FormulaHelpers: c, + Types: n, + ReversedTypes: i, + Factorials: r, + WildCard: h, + Criteria: p, + Address: u + }, or; +} +var sr, si; +function he() { + if (si) + return sr; + si = 1; + class t extends Error { + /** + * @param {string} error - error code, i.e. #NUM! + * @param {string} [msg] - detailed error message + * @param {object|Error} [details] + * @returns {FormulaError} + */ + constructor(n, r, i) { + if (super(r), r == null && i == null && t.errorMap.has(n)) + return t.errorMap.get(n); + r == null && i == null ? (this._error = n, t.errorMap.set(n, this)) : this._error = n, this.details = i; + } + /** + * Get the error name. + * @returns {string} formula error + */ + get error() { + return this._error; + } + get name() { + return this._error; + } + /** + * Return true if two errors are same. + * @param {FormulaError} err + * @returns {boolean} if two errors are same. + */ + equals(n) { + return n instanceof t && n._error === this._error; + } + /** + * Return the formula error in string representation. + * @returns {string} the formula error in string representation. + */ + toString() { + return this._error; + } + } + return t.errorMap = /* @__PURE__ */ new Map(), t.DIV0 = new t("#DIV/0!"), t.NA = new t("#N/A"), t.NAME = new t("#NAME?"), t.NULL = new t("#NULL!"), t.NUM = new t("#NUM!"), t.REF = new t("#REF!"), t.VALUE = new t("#VALUE!"), t.NOT_IMPLEMENTED = (e) => new t("#NAME?", `Function ${e} is not implemented.`), t.TOO_MANY_ARGS = (e) => new t("#N/A", `Function ${e} has too many arguments.`), t.ARG_MISSING = (e) => { + const { Types: n } = ge(); + return new t("#N/A", `Argument type ${e.map((r) => n[r]).join(", ")} is missing.`); + }, t.ERROR = (e, n) => new t("#ERROR!", e, n), sr = t, sr; +} +let _e = class { +}; +_e.version = "0.10.3"; +function bt(t) { + let e = "", n = t.length - 1; + for (; n >= 0; ) + e += t.charAt(n--); + return e; +} +function ke(t, e) { + let n = ""; + for (; n.length < e; ) + n += t; + return n; +} +function ze(t, e) { + let n = "" + t; + return n.length >= e ? n : ke("0", e - n.length) + n; +} +function ar(t, e) { + let n = "" + t; + return n.length >= e ? n : ke(" ", e - n.length) + n; +} +function hn(t, e) { + let n = "" + t; + return n.length >= e ? n : n + ke(" ", e - n.length); +} +function va(t, e) { + let n = "" + Math.round(t); + return n.length >= e ? n : ke("0", e - n.length) + n; +} +function ga(t, e) { + let n = "" + t; + return n.length >= e ? n : ke("0", e - n.length) + n; +} +const ai = Math.pow(2, 32); +function Dt(t, e) { + if (t > ai || t < -ai) + return va(t, e); + const n = Math.round(t); + return ga(n, e); +} +function Ln(t, e) { + return e = e || 0, t.length >= 7 + e && (t.charCodeAt(e) | 32) === 103 && (t.charCodeAt(e + 1) | 32) === 101 && (t.charCodeAt(e + 2) | 32) === 110 && (t.charCodeAt(e + 3) | 32) === 101 && (t.charCodeAt(e + 4) | 32) === 114 && (t.charCodeAt(e + 5) | 32) === 97 && (t.charCodeAt(e + 6) | 32) === 108; +} +const ci = [ + ["Sun", "Sunday"], + ["Mon", "Monday"], + ["Tue", "Tuesday"], + ["Wed", "Wednesday"], + ["Thu", "Thursday"], + ["Fri", "Friday"], + ["Sat", "Saturday"] +], cr = [ + ["J", "Jan", "January"], + ["F", "Feb", "February"], + ["M", "Mar", "March"], + ["A", "Apr", "April"], + ["M", "May", "May"], + ["J", "Jun", "June"], + ["J", "Jul", "July"], + ["A", "Aug", "August"], + ["S", "Sep", "September"], + ["O", "Oct", "October"], + ["N", "Nov", "November"], + ["D", "Dec", "December"] +]; +function Eo(t) { + t[0] = "General", t[1] = "0", t[2] = "0.00", t[3] = "#,##0", t[4] = "#,##0.00", t[9] = "0%", t[10] = "0.00%", t[11] = "0.00E+00", t[12] = "# ?/?", t[13] = "# ??/??", t[14] = "m/d/yy", t[15] = "d-mmm-yy", t[16] = "d-mmm", t[17] = "mmm-yy", t[18] = "h:mm AM/PM", t[19] = "h:mm:ss AM/PM", t[20] = "h:mm", t[21] = "h:mm:ss", t[22] = "m/d/yy h:mm", t[37] = "#,##0 ;(#,##0)", t[38] = "#,##0 ;[Red](#,##0)", t[39] = "#,##0.00;(#,##0.00)", t[40] = "#,##0.00;[Red](#,##0.00)", t[45] = "mm:ss", t[46] = "[h]:mm:ss", t[47] = "mmss.0", t[48] = "##0.0E+0", t[49] = "@", t[56] = '"上午/下午 "hh"時"mm"分"ss"秒 "', t[65535] = "General"; +} +const _t = {}; +Eo(_t); +function pn(t, e, n) { + const r = t < 0 ? -1 : 1; + let i = t * r, a = 0, c = 1, h = 0, p = 1, u = 0, o = 0, s = Math.floor(i); + for (; u < e && (s = Math.floor(i), h = s * c + a, o = s * u + p, !(i - s < 5e-8)); ) + i = 1 / (i - s), a = c, c = h, p = u, u = o; + if (o > e && (u > e ? (o = p, h = a) : (o = u, h = c)), !n) + return [0, r * h, o]; + const l = Math.floor(r * h / o); + return [l, r * h - l * o, o]; +} +function Zt(t, e, n) { + if (t > 2958465 || t < 0) + return null; + let r = t | 0, i = Math.floor(86400 * (t - r)), a = 0, c = []; + const h = { D: r, T: i, u: 86400 * (t - r) - i, y: 0, m: 0, d: 0, H: 0, M: 0, S: 0, q: 0 }; + if (Math.abs(h.u) < 1e-6 && (h.u = 0), e && e.date1904 && (r += 1462), h.u > 0.9999 && (h.u = 0, ++i === 86400 && (h.T = i = 0, ++r, ++h.D)), r === 60) + c = n ? [1317, 10, 29] : [1900, 2, 29], a = 3; + else if (r === 0) + c = n ? [1317, 8, 29] : [1900, 1, 0], a = 6; + else { + r > 60 && --r; + const p = new Date(1900, 0, 1); + p.setDate(p.getDate() + r - 1), c = [p.getFullYear(), p.getMonth() + 1, p.getDate()], a = p.getDay(), r < 60 && (a = (a + 6) % 7), n && (a = Ra()); + } + return h.y = c[0], h.m = c[1], h.d = c[2], h.S = i % 60, i = Math.floor(i / 60), h.M = i % 60, i = Math.floor(i / 60), h.H = i, h.q = a, h; +} +_e.parse_date_code = Zt; +const mo = new Date(1899, 11, 31, 0, 0, 0), Ea = mo.getTime(), ma = new Date(1900, 2, 1, 0, 0, 0); +function Ro(t, e) { + let n = t.getTime(); + return e ? n -= 1461 * 24 * 60 * 60 * 1e3 : t >= ma && (n += 24 * 60 * 60 * 1e3), (n - (Ea + (t.getTimezoneOffset() - mo.getTimezoneOffset()) * 6e4)) / (24 * 60 * 60 * 1e3); +} +function No(t) { + return t.toString(10); +} +_e._general_int = No; +const Ao = function() { + const e = /\.(\d*[1-9])0+$/, n = /\.0*$/, r = /\.(\d*[1-9])0+/, i = /\.0*[Ee]/, a = /(E[+-])(\d)$/; + function c(o) { + const s = o < 0 ? 12 : 11; + let l = u(o.toFixed(12)); + return l.length <= s || (l = o.toPrecision(10), l.length <= s) ? l : o.toExponential(5); + } + function h(o) { + let s = o.toFixed(11).replace(e, ".$1"); + return s.length > (o < 0 ? 12 : 11) && (s = o.toPrecision(6)), s; + } + function p(o) { + for (let s = 0; s !== o.length; ++s) + if ((o.charCodeAt(s) | 32) === 101) + return o.replace(r, ".$1").replace(i, "E").replace("e", "E").replace(a, "$10$2"); + return o; + } + function u(o) { + return o.indexOf(".") > -1 ? o.replace(n, "").replace(e, ".$1") : o; + } + return function(s) { + let l = Math.floor(Math.log(Math.abs(s)) * Math.LOG10E), f; + return l >= -4 && l <= -1 ? f = s.toPrecision(10 + l) : Math.abs(l) <= 9 ? f = c(s) : l === 10 ? f = s.toFixed(10).substr(0, 12) : f = h(s), u(p(f)); + }; +}(); +_e._general_num = Ao; +function _n(t, e) { + switch (typeof t) { + case "string": + return t; + case "boolean": + return t ? "TRUE" : "FALSE"; + case "number": + return (t | 0) === t ? No(t) : Ao(t); + case "undefined": + return ""; + case "object": + if (t == null) + return ""; + if (t instanceof Date) + return Io(14, Ro(t, e && e.date1904), e); + } + throw new Error("unsupported value in General format: " + t); +} +_e._general = _n; +function Ra() { + return 0; +} +function Na(t, e, n, r) { + let i = "", a = 0, c = 0, h = n.y, p, u = 0; + switch (t) { + case 98: + h = n.y + 543; + case 121: + switch (e.length) { + case 1: + case 2: + p = h % 100, u = 2; + break; + default: + p = h % 1e4, u = 4; + break; + } + break; + case 109: + switch (e.length) { + case 1: + case 2: + p = n.m, u = e.length; + break; + case 3: + return cr[n.m - 1][1]; + case 5: + return cr[n.m - 1][0]; + default: + return cr[n.m - 1][2]; + } + break; + case 100: + switch (e.length) { + case 1: + case 2: + p = n.d, u = e.length; + break; + case 3: + return ci[n.q][0]; + default: + return ci[n.q][1]; + } + break; + case 104: + switch (e.length) { + case 1: + case 2: + p = 1 + (n.H + 11) % 12, u = e.length; + break; + default: + throw "bad hour format: " + e; + } + break; + case 72: + switch (e.length) { + case 1: + case 2: + p = n.H, u = e.length; + break; + default: + throw "bad hour format: " + e; + } + break; + case 77: + switch (e.length) { + case 1: + case 2: + p = n.M, u = e.length; + break; + default: + throw "bad minute format: " + e; + } + break; + case 115: + if (e !== "s" && e !== "ss" && e !== ".0" && e !== ".00" && e !== ".000") + throw "bad second format: " + e; + return n.u === 0 && (e === "s" || e === "ss") ? ze(n.S, e.length) : (r >= 2 ? c = r === 3 ? 1e3 : 100 : c = r === 1 ? 10 : 1, a = Math.round(c * (n.S + n.u)), a >= 60 * c && (a = 0), e === "s" ? a === 0 ? "0" : "" + a / c : (i = ze(a, 2 + r), e === "ss" ? i.substr(0, 2) : "." + i.substr(2, e.length - 1))); + case 90: + switch (e) { + case "[h]": + case "[hh]": + p = n.D * 24 + n.H; + break; + case "[m]": + case "[mm]": + p = (n.D * 24 + n.H) * 60 + n.M; + break; + case "[s]": + case "[ss]": + p = ((n.D * 24 + n.H) * 60 + n.M) * 60 + Math.round(n.S + n.u); + break; + default: + throw "bad abstime format: " + e; + } + u = e.length === 3 ? 1 : 2; + break; + case 101: + p = h, u = 1; + } + return u > 0 ? ze(p, u) : ""; +} +function Rt(t) { + if (t.length <= 3) + return t; + let n = t.length % 3, r = t.substr(0, n); + for (; n !== t.length; n += 3) + r += (r.length > 0 ? "," : "") + t.substr(n, 3); + return r; +} +const ft = function() { + const e = /%/g; + function n(y, R, T) { + const w = R.replace(e, ""), C = R.length - w.length; + return ft(y, w, T * Math.pow(10, 2 * C)) + ke("%", C); + } + function r(y, R, T) { + let w = R.length - 1; + for (; R.charCodeAt(w - 1) === 44; ) + --w; + return ft(y, R.substr(0, w), T / Math.pow(10, 3 * (R.length - w))); + } + function i(y, R) { + let T, w = y.indexOf("E") - y.indexOf(".") - 1; + if (y.match(/^#+0.0E\+0$/)) { + if (R === 0) + return "0.0E+0"; + if (R < 0) + return "-" + i(y, -R); + let C = y.indexOf("."); + C === -1 && (C = y.indexOf("E")); + let M = Math.floor(Math.log(R) * Math.LOG10E) % C; + if (M < 0 && (M += C), T = (R / Math.pow(10, M)).toPrecision(w + 1 + (C + M) % C), T.indexOf("e") === -1) { + const _ = Math.floor(Math.log(R) * Math.LOG10E); + for (T.indexOf(".") === -1 ? T = T.charAt(0) + "." + T.substr(1) + "E+" + (_ - T.length + M) : T += "E+" + (_ - M); T.substr(0, 2) === "0."; ) + T = T.charAt(0) + T.substr(2, C) + "." + T.substr(2 + C), T = T.replace(/^0+([1-9])/, "$1").replace(/^0+\./, "0."); + T = T.replace(/\+-/, "-"); + } + T = T.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/, function(_, W, F, S) { + return W + F + S.substr(0, (C + M) % C) + "." + S.substr(M) + "E"; + }); + } else + T = R.toExponential(w); + return y.match(/E\+00$/) && T.match(/e[+-]\d$/) && (T = T.substr(0, T.length - 1) + "0" + T.charAt(T.length - 1)), y.match(/E\-/) && T.match(/e\+/) && (T = T.replace(/e\+/, "e")), T.replace("e", "E"); + } + const a = /# (\?+)( ?)\/( ?)(\d+)/; + function c(y, R, T) { + const w = parseInt(y[4], 10), C = Math.round(R * w), M = Math.floor(C / w); + let _ = C - M * w, W = w; + return T + (M === 0 ? "" : "" + M) + " " + (_ === 0 ? ke(" ", y[1].length + 1 + y[4].length) : ar(_, y[1].length) + y[2] + "/" + y[3] + ze(W, y[4].length)); + } + function h(y, R, T) { + return T + (R === 0 ? "" : "" + R) + ke(" ", y[1].length + 2 + y[4].length); + } + const p = /^#*0*\.([0#]+)/, u = /\).*[0#]/, o = /\(###\) ###\\?-####/; + function s(y) { + let R = "", T; + for (let w = 0; w !== y.length; ++w) + switch (T = y.charCodeAt(w)) { + case 35: + break; + case 63: + R += " "; + break; + case 48: + R += "0"; + break; + default: + R += String.fromCharCode(T); + } + return R; + } + function l(y, R) { + const T = Math.pow(10, R); + return "" + Math.round(y * T) / T; + } + function f(y, R) { + return R < ("" + Math.round((y - Math.floor(y)) * Math.pow(10, R))).length ? 0 : Math.round((y - Math.floor(y)) * Math.pow(10, R)); + } + function v(y, R) { + return R < ("" + Math.round((y - Math.floor(y)) * Math.pow(10, R))).length ? 1 : 0; + } + function d(y) { + return y < 2147483647 && y > -2147483648 ? "" + (y >= 0 ? y | 0 : y - 1 | 0) : "" + Math.floor(y); + } + function g(y, R, T) { + if (y.charCodeAt(0) === 40 && !R.match(u)) { + const G = R.replace(/\( */, "").replace(/ \)/, "").replace(/\)/, ""); + return T >= 0 ? g("n", G, T) : "(" + g("n", G, -T) + ")"; + } + if (R.charCodeAt(R.length - 1) === 44) + return r(y, R, T); + if (R.indexOf("%") !== -1) + return n(y, R, T); + if (R.indexOf("E") !== -1) + return i(R, T); + if (R.charCodeAt(0) === 36) + return "$" + g(y, R.substr(R.charAt(1) == " " ? 2 : 1), T); + let w, C, M, _, W = Math.abs(T), F = T < 0 ? "-" : ""; + if (R.match(/^00+$/)) + return F + Dt(W, R.length); + if (R.match(/^[#?]+$/)) + return w = Dt(T, 0), w === "0" && (w = ""), w.length > R.length ? w : s(R.substr(0, R.length - w.length)) + w; + if (C = R.match(a)) + return c(C, W, F); + if (R.match(/^#+0+$/)) + return F + Dt(W, R.length - R.indexOf("0")); + if (C = R.match(p)) + return w = l(T, C[1].length).replace(/^([^\.]+)$/, "$1." + s(C[1])).replace(/\.$/, "." + s(C[1])).replace(/\.(\d*)$/, function(G, J) { + return "." + J + ke("0", s(C[1]).length - J.length); + }), R.indexOf("0.") !== -1 ? w : w.replace(/^0\./, "."); + if (R = R.replace(/^#+([0.])/, "$1"), C = R.match(/^(0*)\.(#*)$/)) + return F + l(W, C[2].length).replace(/\.(\d*[1-9])0*$/, ".$1").replace(/^(-?\d*)$/, "$1.").replace(/^0\./, C[1].length ? "0." : "."); + if (C = R.match(/^#{1,3},##0(\.?)$/)) + return F + Rt(Dt(W, 0)); + if (C = R.match(/^#,##0\.([#0]*0)$/)) + return T < 0 ? "-" + g(y, R, -T) : Rt("" + (Math.floor(T) + v(T, C[1].length))) + "." + ze(f(T, C[1].length), C[1].length); + if (C = R.match(/^#,#*,#0/)) + return g(y, R.replace(/^#,#*,/, ""), T); + if (C = R.match(/^([0#]+)(\\?-([0#]+))+$/)) + return w = bt(g(y, R.replace(/[\\-]/g, ""), T)), M = 0, bt(bt(R.replace(/\\/g, "")).replace(/[0#]/g, function(G) { + return M < w.length ? w.charAt(M++) : G === "0" ? "0" : ""; + })); + if (R.match(o)) + return w = g(y, "##########", T), "(" + w.substr(0, 3) + ") " + w.substr(3, 3) + "-" + w.substr(6); + let S = ""; + if (C = R.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/)) + return M = Math.min(C[4].length, 7), _ = pn(W, Math.pow(10, M) - 1, !1), w = "" + F, S = ft("n", C[1], _[1]), S.charAt(S.length - 1) === " " && (S = S.substr(0, S.length - 1) + "0"), w += S + C[2] + "/" + C[3], S = hn(_[2], M), S.length < C[4].length && (S = s(C[4].substr(C[4].length - S.length)) + S), w += S, w; + if (C = R.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/)) + return M = Math.min(Math.max(C[1].length, C[4].length), 7), _ = pn(W, Math.pow(10, M) - 1, !0), F + (_[0] || (_[1] ? "" : "0")) + " " + (_[1] ? ar(_[1], M) + C[2] + "/" + C[3] + hn(_[2], M) : ke(" ", 2 * M + 1 + C[2].length + C[3].length)); + if (C = R.match(/^[#0?]+$/)) + return w = Dt(T, 0), R.length <= w.length ? w : s(R.substr(0, R.length - w.length)) + w; + if (C = R.match(/^([#0?]+)\.([#0]+)$/)) { + w = "" + T.toFixed(Math.min(C[2].length, 10)).replace(/([^0])0+$/, "$1"), M = w.indexOf("."); + const G = R.indexOf(".") - M, J = R.length - w.length - G; + return s(R.substr(0, G) + w + R.substr(R.length - J)); + } + if (C = R.match(/^00,000\.([#0]*0)$/)) + return M = f(T, C[1].length), T < 0 ? "-" + g(y, R, -T) : Rt(d(T)).replace(/^\d,\d{3}$/, "0$&").replace(/^\d*$/, function(G) { + return "00," + (G.length < 3 ? ze(0, 3 - G.length) : "") + G; + }) + "." + ze(M, C[1].length); + switch (R) { + case "###,##0.00": + return g(y, "#,##0.00", T); + case "###,###": + case "##,###": + case "#,###": + const G = Rt(Dt(W, 0)); + return G !== "0" ? F + G : ""; + case "###,###.00": + return g(y, "###,##0.00", T).replace(/^0\./, "."); + case "#,###.00": + return g(y, "#,##0.00", T).replace(/^0\./, "."); + } + throw new Error("unsupported format |" + R + "|"); + } + function E(y, R, T) { + let w = R.length - 1; + for (; R.charCodeAt(w - 1) === 44; ) + --w; + return ft(y, R.substr(0, w), T / Math.pow(10, 3 * (R.length - w))); + } + function A(y, R, T) { + const w = R.replace(e, ""), C = R.length - w.length; + return ft(y, w, T * Math.pow(10, 2 * C)) + ke("%", C); + } + function m(y, R) { + let T, w = y.indexOf("E") - y.indexOf(".") - 1; + if (y.match(/^#+0.0E\+0$/)) { + if (R === 0) + return "0.0E+0"; + if (R < 0) + return "-" + m(y, -R); + let C = y.indexOf("."); + C === -1 && (C = y.indexOf("E")); + let M = Math.floor(Math.log(R) * Math.LOG10E) % C; + if (M < 0 && (M += C), T = (R / Math.pow(10, M)).toPrecision(w + 1 + (C + M) % C), !T.match(/[Ee]/)) { + const _ = Math.floor(Math.log(R) * Math.LOG10E); + T.indexOf(".") === -1 ? T = T.charAt(0) + "." + T.substr(1) + "E+" + (_ - T.length + M) : T += "E+" + (_ - M), T = T.replace(/\+-/, "-"); + } + T = T.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/, function(_, W, F, S) { + return W + F + S.substr(0, (C + M) % C) + "." + S.substr(M) + "E"; + }); + } else + T = R.toExponential(w); + return y.match(/E\+00$/) && T.match(/e[+-]\d$/) && (T = T.substr(0, T.length - 1) + "0" + T.charAt(T.length - 1)), y.match(/E\-/) && T.match(/e\+/) && (T = T.replace(/e\+/, "e")), T.replace("e", "E"); + } + function N(y, R, T) { + if (y.charCodeAt(0) === 40 && !R.match(u)) { + const G = R.replace(/\( */, "").replace(/ \)/, "").replace(/\)/, ""); + return T >= 0 ? N("n", G, T) : "(" + N("n", G, -T) + ")"; + } + if (R.charCodeAt(R.length - 1) === 44) + return E(y, R, T); + if (R.indexOf("%") !== -1) + return A(y, R, T); + if (R.indexOf("E") !== -1) + return m(R, T); + if (R.charCodeAt(0) === 36) + return "$" + N(y, R.substr(R.charAt(1) == " " ? 2 : 1), T); + let w, C, M, _, W = Math.abs(T), F = T < 0 ? "-" : ""; + if (R.match(/^00+$/)) + return F + ze(W, R.length); + if (R.match(/^[#?]+$/)) + return w = "" + T, T === 0 && (w = ""), w.length > R.length ? w : s(R.substr(0, R.length - w.length)) + w; + if (C = R.match(a)) + return h(C, W, F); + if (R.match(/^#+0+$/)) + return F + ze(W, R.length - R.indexOf("0")); + if (C = R.match(p)) + return w = ("" + T).replace(/^([^\.]+)$/, "$1." + s(C[1])).replace(/\.$/, "." + s(C[1])), w = w.replace(/\.(\d*)$/, function(G, J) { + return "." + J + ke("0", s(C[1]).length - J.length); + }), R.indexOf("0.") !== -1 ? w : w.replace(/^0\./, "."); + if (R = R.replace(/^#+([0.])/, "$1"), C = R.match(/^(0*)\.(#*)$/)) + return F + ("" + W).replace(/\.(\d*[1-9])0*$/, ".$1").replace(/^(-?\d*)$/, "$1.").replace(/^0\./, C[1].length ? "0." : "."); + if (C = R.match(/^#{1,3},##0(\.?)$/)) + return F + Rt("" + W); + if (C = R.match(/^#,##0\.([#0]*0)$/)) + return T < 0 ? "-" + N(y, R, -T) : Rt("" + T) + "." + ke("0", C[1].length); + if (C = R.match(/^#,#*,#0/)) + return N(y, R.replace(/^#,#*,/, ""), T); + if (C = R.match(/^([0#]+)(\\?-([0#]+))+$/)) + return w = bt(N(y, R.replace(/[\\-]/g, ""), T)), M = 0, bt(bt(R.replace(/\\/g, "")).replace(/[0#]/g, function(G) { + return M < w.length ? w.charAt(M++) : G === "0" ? "0" : ""; + })); + if (R.match(o)) + return w = N(y, "##########", T), "(" + w.substr(0, 3) + ") " + w.substr(3, 3) + "-" + w.substr(6); + let S = ""; + if (C = R.match(/^([#0?]+)( ?)\/( ?)([#0?]+)/)) + return M = Math.min(C[4].length, 7), _ = pn(W, Math.pow(10, M) - 1, !1), w = "" + F, S = ft("n", C[1], _[1]), S.charAt(S.length - 1) == " " && (S = S.substr(0, S.length - 1) + "0"), w += S + C[2] + "/" + C[3], S = hn(_[2], M), S.length < C[4].length && (S = s(C[4].substr(C[4].length - S.length)) + S), w += S, w; + if (C = R.match(/^# ([#0?]+)( ?)\/( ?)([#0?]+)/)) + return M = Math.min(Math.max(C[1].length, C[4].length), 7), _ = pn(W, Math.pow(10, M) - 1, !0), F + (_[0] || (_[1] ? "" : "0")) + " " + (_[1] ? ar(_[1], M) + C[2] + "/" + C[3] + hn(_[2], M) : ke(" ", 2 * M + 1 + C[2].length + C[3].length)); + if (C = R.match(/^[#0?]+$/)) + return w = "" + T, R.length <= w.length ? w : s(R.substr(0, R.length - w.length)) + w; + if (C = R.match(/^([#0]+)\.([#0]+)$/)) { + w = "" + T.toFixed(Math.min(C[2].length, 10)).replace(/([^0])0+$/, "$1"), M = w.indexOf("."); + let G = R.indexOf(".") - M, J = R.length - w.length - G; + return s(R.substr(0, G) + w + R.substr(R.length - J)); + } + if (C = R.match(/^00,000\.([#0]*0)$/)) + return T < 0 ? "-" + N(y, R, -T) : Rt("" + T).replace(/^\d,\d{3}$/, "0$&").replace(/^\d*$/, function(G) { + return "00," + (G.length < 3 ? ze(0, 3 - G.length) : "") + G; + }) + "." + ze(0, C[1].length); + switch (R) { + case "###,###": + case "##,###": + case "#,###": + const G = Rt("" + W); + return G !== "0" ? F + G : ""; + default: + if (R.match(/\.[0#?]*$/)) + return N(y, R.slice(0, R.lastIndexOf(".")), T) + s(R.slice(R.lastIndexOf("."))); + } + throw new Error("unsupported format |" + R + "|"); + } + return function(R, T, w) { + return (w | 0) === w ? N(R, T, w) : g(R, T, w); + }; +}(); +function yo(t) { + const e = []; + let n = !1, r = 0; + for (let i = 0; i < t.length; ++i) + switch ( + /*cc=*/ + t.charCodeAt(i) + ) { + case 34: + n = !n; + break; + case 95: + case 42: + case 92: + ++i; + break; + case 59: + e[e.length] = t.substr(r, i - r), r = i + 1; + } + if (e[e.length] = t.substr(r), n === !0) + throw new Error("Format |" + t + "| unterminated string "); + return e; +} +_e._split = yo; +const To = /\[[HhMmSs]*\]/; +function wo(t) { + let e = 0, n = "", r = ""; + for (; e < t.length; ) + switch (n = t.charAt(e)) { + case "G": + Ln(t, e) && (e += 6), e++; + break; + case '"': + for ( + ; + /*cc=*/ + t.charCodeAt(++e) !== 34 && e < t.length; + ) + ++e; + ++e; + break; + case "\\": + e += 2; + break; + case "_": + e += 2; + break; + case "@": + ++e; + break; + case "B": + case "b": + if (t.charAt(e + 1) === "1" || t.charAt(e + 1) === "2") + return !0; + case "M": + case "D": + case "Y": + case "H": + case "S": + case "E": + case "m": + case "d": + case "y": + case "h": + case "s": + case "e": + case "g": + return !0; + case "A": + case "a": + if (t.substr(e, 3).toUpperCase() === "A/P" || t.substr(e, 5).toUpperCase() === "AM/PM") + return !0; + ++e; + break; + case "[": + for (r = n; t.charAt(e++) !== "]" && e < t.length; ) + r += t.charAt(e); + if (r.match(To)) + return !0; + break; + case ".": + case "0": + case "#": + for (; e < t.length && ("0#?.,E+-%".indexOf(n = t.charAt(++e)) > -1 || n == "\\" && t.charAt(e + 1) == "-" && "0#".indexOf(t.charAt(e + 2)) > -1); ) + ; + break; + case "?": + for (; t.charAt(++e) === n; ) + ; + break; + case "*": + ++e, (t.charAt(e) === " " || t.charAt(e) === "*") && ++e; + break; + case "(": + case ")": + ++e; + break; + case "1": + case "2": + case "3": + case "4": + case "5": + case "6": + case "7": + case "8": + case "9": + for (; e < t.length && "0123456789".indexOf(t.charAt(++e)) > -1; ) + ; + break; + case " ": + ++e; + break; + default: + ++e; + break; + } + return !1; +} +_e.is_date = wo; +function Co(t, e, n, r) { + let i = [], a = "", c = 0, h = "", p = "t", u, o, s, l = "H"; + for (; c < t.length; ) + switch (h = t.charAt(c)) { + case "G": + if (!Ln(t, c)) + throw new Error("unrecognized character " + h + " in " + t); + i[i.length] = { t: "G", v: "General" }, c += 7; + break; + case '"': + for (a = ""; (s = t.charCodeAt(++c)) !== 34 && c < t.length; ) + a += String.fromCharCode(s); + i[i.length] = { t: "t", v: a }, ++c; + break; + case "\\": + const R = t.charAt(++c), T = R === "(" || R === ")" ? R : "t"; + i[i.length] = { t: T, v: R }, ++c; + break; + case "_": + i[i.length] = { t: "t", v: " " }, c += 2; + break; + case "@": + i[i.length] = { t: "T", v: e }, ++c; + break; + case "B": + case "b": + if (t.charAt(c + 1) === "1" || t.charAt(c + 1) === "2") { + if (u == null && (u = Zt(e, n, t.charAt(c + 1) === "2"), u == null)) + return ""; + i[i.length] = { t: "X", v: t.substr(c, 2) }, p = h, c += 2; + break; + } + case "M": + case "D": + case "Y": + case "H": + case "S": + case "E": + h = h.toLowerCase(); + case "m": + case "d": + case "y": + case "h": + case "s": + case "e": + case "g": + if (e < 0 || u == null && (u = Zt(e, n), u == null)) + return ""; + for (a = h; ++c < t.length && t.charAt(c).toLowerCase() === h; ) + a += h; + h === "m" && p.toLowerCase() === "h" && (h = "M"), h === "h" && (h = l), i[i.length] = { t: h, v: a }, p = h; + break; + case "A": + case "a": + const w = { t: h, v: h }; + if (u == null && (u = Zt(e, n)), t.substr(c, 3).toUpperCase() === "A/P" ? (u != null && (w.v = u.H >= 12 ? "P" : "A"), w.t = "T", l = "h", c += 3) : t.substr(c, 5).toUpperCase() === "AM/PM" ? (u != null && (w.v = u.H >= 12 ? "PM" : "AM"), w.t = "T", c += 5, l = "h") : (w.t = "t", ++c), u == null && w.t === "T") + return ""; + i[i.length] = w, p = h; + break; + case "[": + for (a = h; t.charAt(c++) !== "]" && c < t.length; ) + a += t.charAt(c); + if (a.slice(-1) !== "]") + throw 'unterminated "[" block: |' + a + "|"; + if (a.match(To)) { + if (u == null && (u = Zt(e, n), u == null)) + return ""; + i[i.length] = { t: "Z", v: a.toLowerCase() }, p = a.charAt(1); + } else + a.indexOf("$") > -1 && (a = (a.match(/\$([^-\[\]]*)/) || [])[1] || "$", wo(t) || (i[i.length] = { t: "t", v: a })); + break; + case ".": + if (u != null) { + for (a = h; ++c < t.length && (h = t.charAt(c)) === "0"; ) + a += h; + i[i.length] = { t: "s", v: a }; + break; + } + case "0": + case "#": + for (a = h; ++c < t.length && "0#?.,E+-%".indexOf(h = t.charAt(c)) > -1 || h == "\\" && t.charAt(c + 1) == "-" && c < t.length - 2 && "0#".indexOf(t.charAt(c + 2)) > -1; ) + a += h; + i[i.length] = { t: "n", v: a }; + break; + case "?": + for (a = h; t.charAt(++c) === h; ) + a += h; + i[i.length] = { t: h, v: a }, p = h; + break; + case "*": + ++c, (t.charAt(c) === " " || t.charAt(c) === "*") && ++c; + break; + case "(": + case ")": + i[i.length] = { t: r === 1 || typeof e == "number" && e < 0 ? "t" : h, v: h }, ++c; + break; + case "1": + case "2": + case "3": + case "4": + case "5": + case "6": + case "7": + case "8": + case "9": + for (a = h; c < t.length && "0123456789".indexOf(t.charAt(++c)) > -1; ) + a += t.charAt(c); + i[i.length] = { t: "D", v: a }; + break; + case " ": + i[i.length] = { t: h, v: h }, ++c; + break; + default: + if (",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(h) === -1) + throw new Error("unrecognized character " + h + " in " + t); + i[i.length] = { t: "t", v: h }, ++c; + break; + } + let f = 0, v = 0, d; + for (c = i.length - 1, p = "t"; c >= 0; --c) + switch (i[c].t) { + case "h": + case "H": + i[c].t = l, p = "h", f < 1 && (f = 1); + break; + case "s": + (d = i[c].v.match(/\.0+$/)) && (v = Math.max(v, d[0].length - 1)), f < 3 && (f = 3); + case "d": + case "y": + case "M": + case "e": + p = i[c].t; + break; + case "m": + p === "s" && (i[c].t = "M", f < 2 && (f = 2)); + break; + case "X": + break; + case "Z": + f < 1 && i[c].v.match(/[Hh]/) && (f = 1), f < 2 && i[c].v.match(/[Mm]/) && (f = 2), f < 3 && i[c].v.match(/[Ss]/) && (f = 3); + } + switch (f) { + case 0: + break; + case 1: + u.u >= 0.5 && (u.u = 0, ++u.S), u.S >= 60 && (u.S = 0, ++u.M), u.M >= 60 && (u.M = 0, ++u.H); + break; + case 2: + u.u >= 0.5 && (u.u = 0, ++u.S), u.S >= 60 && (u.S = 0, ++u.M); + break; + } + let g = "", E; + for (c = 0; c < i.length; ++c) + switch (i[c].t) { + case "t": + case "T": + case " ": + case "D": + break; + case "X": + i[c].v = "", i[c].t = ";"; + break; + case "d": + case "m": + case "y": + case "h": + case "H": + case "M": + case "s": + case "e": + case "b": + case "Z": + i[c].v = Na(i[c].t.charCodeAt(0), i[c].v, u, v), i[c].t = "t"; + break; + case "n": + case "(": + case "?": + for (E = c + 1; i[E] != null && ((h = i[E].t) === "?" || h === "D" || (h === " " || h === "t") && i[E + 1] != null && (i[E + 1].t === "?" || i[E + 1].t === "t" && i[E + 1].v === "/") || i[c].t === "(" && (h === " " || h === "n" || h === ")") || h === "t" && (i[E].v === "/" || i[E].v === " " && i[E + 1] != null && i[E + 1].t === "?")); ) + i[c].v += i[E].v, i[E] = { v: "", t: ";" }, ++E; + g += i[c].v, c = E - 1; + break; + case "G": + i[c].t = "t", i[c].v = _n(e, n); + break; + } + let A = "", m, N; + if (g.length > 0) { + g.charCodeAt(0) === 40 ? (m = e < 0 && g.charCodeAt(0) === 45 ? -e : e, N = ft("(", g, m)) : (m = e < 0 && r > 1 ? -e : e, N = ft("n", g, m), m < 0 && i[0] && i[0].t === "t" && (N = N.substr(1), i[0].v = "-" + i[0].v)), E = N.length - 1; + let R = i.length; + for (c = 0; c < i.length; ++c) + if (i[c] != null && i[c].t !== "t" && i[c].v.indexOf(".") > -1) { + R = c; + break; + } + let T = i.length; + if (R === i.length && N.indexOf("E") === -1) { + for (c = i.length - 1; c >= 0; --c) + i[c] == null || "n?(".indexOf(i[c].t) === -1 || (E >= i[c].v.length - 1 ? (E -= i[c].v.length, i[c].v = N.substr(E + 1, i[c].v.length)) : E < 0 ? i[c].v = "" : (i[c].v = N.substr(0, E + 1), E = -1), i[c].t = "t", T = c); + E >= 0 && T < i.length && (i[T].v = N.substr(0, E + 1) + i[T].v); + } else if (R !== i.length && N.indexOf("E") === -1) { + for (E = N.indexOf(".") - 1, c = R; c >= 0; --c) + if (!(i[c] == null || "n?(".indexOf(i[c].t) === -1)) { + for (o = i[c].v.indexOf(".") > -1 && c === R ? i[c].v.indexOf(".") - 1 : i[c].v.length - 1, A = i[c].v.substr(o + 1); o >= 0; --o) + E >= 0 && (i[c].v.charAt(o) === "0" || i[c].v.charAt(o) === "#") && (A = N.charAt(E--) + A); + i[c].v = A, i[c].t = "t", T = c; + } + for (E >= 0 && T < i.length && (i[T].v = N.substr(0, E + 1) + i[T].v), E = N.indexOf(".") + 1, c = R; c < i.length; ++c) + if (!(i[c] == null || "n?(".indexOf(i[c].t) === -1 && c !== R)) { + for (o = i[c].v.indexOf(".") > -1 && c === R ? i[c].v.indexOf(".") + 1 : 0, A = i[c].v.substr(0, o); o < i[c].v.length; ++o) + E < N.length && (A += N.charAt(E++)); + i[c].v = A, i[c].t = "t", T = c; + } + } + } + for (c = 0; c < i.length; ++c) + i[c] != null && "n(?".indexOf(i[c].t) > -1 && (m = r > 1 && e < 0 && c > 0 && i[c - 1].v === "-" ? -e : e, i[c].v = ft(i[c].t, i[c].v, m), i[c].t = "t"); + let y = ""; + for (c = 0; c !== i.length; ++c) + i[c] != null && (y += i[c].v); + return y; +} +_e._eval = Co; +const li = /\[[=<>]/, ui = /\[([=<>]*)(-?\d+\.?\d*)\]/; +function fi(t, e) { + if (e == null) + return !1; + const n = parseFloat(e[2]); + switch (e[1]) { + case "=": + if (t === n) + return !0; + break; + case ">": + if (t > n) + return !0; + break; + case "<": + if (t < n) + return !0; + break; + case "<>": + if (t !== n) + return !0; + break; + case ">=": + if (t >= n) + return !0; + break; + case "<=": + if (t <= n) + return !0; + break; + } + return !1; +} +function Aa(t, e) { + let n = yo(t), r = n.length, i = n[r - 1].indexOf("@"); + if (r < 4 && i > -1 && --r, n.length > 4) + throw new Error("cannot find right format for |" + n.join("|") + "|"); + if (typeof e != "number") + return [4, n.length === 4 || i > -1 ? n[n.length - 1] : "@"]; + switch (n.length) { + case 1: + n = i > -1 ? ["General", "General", "General", n[0]] : [n[0], n[0], n[0], "@"]; + break; + case 2: + n = i > -1 ? [n[0], n[0], n[0], n[1]] : [n[0], n[1], n[0], "@"]; + break; + case 3: + n = i > -1 ? [n[0], n[1], n[0], n[2]] : [n[0], n[1], n[2], "@"]; + break; + } + const a = e > 0 ? n[0] : e < 0 ? n[1] : n[2]; + if (n[0].indexOf("[") === -1 && n[1].indexOf("[") === -1) + return [r, a]; + if (n[0].match(li) != null || n[1].match(li) != null) { + const c = n[0].match(ui), h = n[1].match(ui); + return fi(e, c) ? [r, n[0]] : fi(e, h) ? [r, n[1]] : [r, n[c != null && h != null ? 2 : 1]]; + } + return [r, a]; +} +function Io(t, e, n) { + n == null && (n = {}); + let r = ""; + switch (typeof t) { + case "string": + t === "m/d/yy" && n.dateNF ? r = n.dateNF : r = t; + break; + case "number": + t === 14 && n.dateNF ? r = n.dateNF : r = (n.table != null ? n.table : _t)[t]; + break; + } + if (Ln(r, 0)) + return _n(e, n); + e instanceof Date && (e = Ro(e, n.date1904)); + const i = Aa(r, e); + if (Ln(i[1])) + return _n(e, n); + if (e === !0) + e = "TRUE"; + else if (e === !1) + e = "FALSE"; + else if (e === "" || e == null) + return ""; + return Co(i[1], e, n, i[0]); +} +function Oo(t, e) { + if (typeof e != "number") { + e = +e || -1; + for (let n = 0; n < 392; ++n) { + if (_t[n] === void 0) { + e < 0 && (e = n); + continue; + } + if (_t[n] === t) { + e = n; + break; + } + } + e < 0 && (e = 391); + } + return _t[e] = t, e; +} +_e.load = Oo; +_e._table = _t; +_e.get_table = function() { + return _t; +}; +_e.load_table = function(e) { + for (let n = 0; n !== 392; ++n) + e[n] !== void 0 && Oo(e[n], n); +}; +_e.init_table = Eo; +_e.format = Io; +var Mo = _e, Uo = { exports: {} }; +(function(t) { + const e = "ศูนย์บาทถ้วน", n = [ + "", + "หนึ่ง", + "สอง", + "สาม", + "สี่", + "ห้า", + "หก", + "เจ็ด", + "แปด", + "เก้า" + ], r = [ + "", + "สิบ", + "ร้อย", + "พัน", + "หมื่น", + "แสน", + "ล้าน" + ]; + function i(p) { + let u = ""; + const o = p.length, s = 7; + if (o > s) { + const l = o - s + 1, f = p.slice(0, l), v = p.slice(l); + return i(f) + "ล้าน" + i(v); + } else + for (let l = 0; l < o; l++) { + const f = p[l]; + f > 0 && (u += n[f] + r[o - l - 1]); + } + return u; + } + function a(p) { + let u = p; + u = u.replace("หนึ่งสิบ", "สิบ"), u = u.replace("สองสิบ", "ยี่สิบ"); + const o = 5; + return u.length > o && u.length - u.lastIndexOf("หนึ่ง") === o && (u = u.substr(0, u.length - o) + "เอ็ด"), u; + } + function c(p, u) { + let o = ""; + return p === "" && u === "" ? o = e : p !== "" && u === "" ? o = p + "บาทถ้วน" : p === "" && u !== "" ? o = u + "สตางค์" : o = p + "บาท" + u + "สตางค์", o; + } + function h(p) { + let u = e; + if (isNaN(p) || p >= Number.MAX_SAFE_INTEGER) + return u; + const o = Math.floor(p).toString(), s = Math.round(p % 1 * 100).toString(), l = Array.from(o).map(Number), f = Array.from(s).map(Number); + let v = i(l), d = i(f); + return v = a(v), d = a(d), u = c(v, d), u; + } + t.exports != null && (t.exports = h); +})(Uo); +var ya = Uo.exports; +const Ce = he(), { FormulaHelpers: Ta, Types: Y, WildCard: hi } = ge(), q = Ta, lr = Mo, wa = ya, pi = { + latin: { halfRE: /[!-~]/g, fullRE: /[!-~]/g, delta: 65248 }, + hangul1: { halfRE: /[ᄀ-ᄒ]/g, fullRE: /[ᆨ-ᇂ]/g, delta: -60921 }, + hangul2: { halfRE: /[ᅡ-ᅵ]/g, fullRE: /[ᅡ-ᅵ]/g, delta: -61025 }, + kana: { + delta: 0, + half: "。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚", + full: "。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゛゜" + }, + extras: { + delta: 0, + half: "¢£¬¯¦¥₩ |←↑→↓■°", + full: "¢£¬ ̄¦¥₩ │←↑→↓■○" + } +}, Ca = (t) => (e) => t.delta ? String.fromCharCode(e.charCodeAt(0) + t.delta) : [...t.full][[...t.half].indexOf(e)], Ia = (t) => (e) => t.delta ? String.fromCharCode(e.charCodeAt(0) - t.delta) : [...t.half][[...t.full].indexOf(e)], Lo = (t, e) => t[e + "RE"] || new RegExp("[" + t[e] + "]", "g"), _o = Object.keys(pi).map((t) => pi[t]), Oa = (t) => _o.reduce((e, n) => e.replace(Lo(n, "half"), Ca(n)), t), Ma = (t) => _o.reduce((e, n) => e.replace(Lo(n, "full"), Ia(n)), t), ut = { + ASC: (t) => (t = q.accept(t, Y.STRING), Ma(t)), + BAHTTEXT: (t) => { + t = q.accept(t, Y.NUMBER); + try { + return wa(t); + } catch (e) { + throw Error(`Error in https://github.com/jojoee/bahttext +${e.toString()}`); + } + }, + CHAR: (t) => { + if (t = q.accept(t, Y.NUMBER), t > 255 || t < 1) + throw Ce.VALUE; + return String.fromCharCode(t); + }, + CLEAN: (t) => (t = q.accept(t, Y.STRING), t.replace(/[\x00-\x1F]/g, "")), + CODE: (t) => { + if (t = q.accept(t, Y.STRING), t.length === 0) + throw Ce.VALUE; + return t.charCodeAt(0); + }, + CONCAT: (...t) => { + let e = ""; + return q.flattenParams(t, Y.STRING, !1, (n) => { + n = q.accept(n, Y.STRING), e += n; + }), e; + }, + CONCATENATE: (...t) => { + let e = ""; + if (t.length === 0) + throw Error("CONCATENATE need at least one argument."); + return t.forEach((n) => { + n = q.accept(n, Y.STRING), e += n; + }), e; + }, + DBCS: (t) => (t = q.accept(t, Y.STRING), Oa(t)), + DOLLAR: (t, e) => { + t = q.accept(t, Y.NUMBER), e = q.accept(e, Y.NUMBER, 2); + const n = Array(e).fill("0").join(""); + return lr.format(`$#,##0.${n}_);($#,##0.${n})`, t).trim(); + }, + EXACT: (t, e) => (t = q.accept(t, [Y.STRING]), e = q.accept(e, [Y.STRING]), t === e), + FIND: (t, e, n) => { + if (t = q.accept(t, Y.STRING), e = q.accept(e, Y.STRING), n = q.accept(n, Y.NUMBER, 1), n < 1 || n > e.length) + throw Ce.VALUE; + const r = e.indexOf(t, n - 1); + if (r === -1) + throw Ce.VALUE; + return r + 1; + }, + FINDB: (...t) => ut.FIND(...t), + FIXED: (t, e, n) => { + t = q.accept(t, Y.NUMBER), e = q.accept(e, Y.NUMBER, 2), n = q.accept(n, Y.BOOLEAN, !1); + const r = Array(e).fill("0").join(""), i = n ? "" : "#,"; + return lr.format(`${i}##0.${r}_);(${i}##0.${r})`, t).trim(); + }, + LEFT: (t, e) => { + if (t = q.accept(t, Y.STRING), e = q.accept(e, Y.NUMBER, 1), e < 0) + throw Ce.VALUE; + return e > t.length ? t : t.slice(0, e); + }, + LEFTB: (...t) => ut.LEFT(...t), + LEN: (t) => (t = q.accept(t, Y.STRING), t.length), + LENB: (...t) => ut.LEN(...t), + LOWER: (t) => (t = q.accept(t, Y.STRING), t.toLowerCase()), + MID: (t, e, n) => { + if (t = q.accept(t, Y.STRING), e = q.accept(e, Y.NUMBER), n = q.accept(n, Y.NUMBER), e > t.length) + return ""; + if (e < 1 || n < 1) + throw Ce.VALUE; + return t.slice(e - 1, e + n - 1); + }, + MIDB: (...t) => ut.MID(...t), + NUMBERVALUE: (t, e, n) => { + if (t = q.accept(t, Y.STRING), e = q.accept(e, Y.STRING, "."), n = q.accept(n, Y.STRING, ","), t.length === 0) + return 0; + if (e.length === 0 || n.length === 0 || (e = e[0], n = n[0], e === n || t.indexOf(e) < t.lastIndexOf(n))) + throw Ce.VALUE; + const r = t.replace(n, "").replace(e, ".").replace(/[^\-0-9.%()]/g, "").match(/([(-]*)([0-9]*[.]*[0-9]+)([)]?)([%]*)/); + if (!r) + throw Ce.VALUE; + const i = r[1].length, a = r[3].length, c = r[4].length; + let h = Number(r[2]); + if (i > 1 || i && !a || !i && a || isNaN(h)) + throw Ce.VALUE; + return h = h / 100 ** c, i ? -h : h; + }, + PHONETIC: () => { + }, + PROPER: (t) => (t = q.accept(t, [Y.STRING]), t = t.toLowerCase(), t = t.charAt(0).toUpperCase() + t.slice(1), t.replace( + /(?:[^a-zA-Z])([a-zA-Z])/g, + (e) => e.toUpperCase() + )), + REPLACE: (t, e, n, r) => { + t = q.accept(t, [Y.STRING]), e = q.accept(e, [Y.NUMBER]), n = q.accept(n, [Y.NUMBER]), r = q.accept(r, [Y.STRING]); + let i = t.split(""); + return i.splice(e - 1, n, r), i.join(""); + }, + REPLACEB: (...t) => ut.REPLACE(...t), + REPT: (t, e) => { + t = q.accept(t, Y.STRING), e = q.accept(e, Y.NUMBER); + let n = ""; + for (let r = 0; r < e; r++) + n += t; + return n; + }, + RIGHT: (t, e) => { + if (t = q.accept(t, Y.STRING), e = q.accept(e, Y.NUMBER, 1), e < 0) + throw Ce.VALUE; + const n = t.length; + return e > n ? t : t.slice(n - e); + }, + RIGHTB: (...t) => ut.RIGHT(...t), + SEARCH: (t, e, n) => { + if (t = q.accept(t, Y.STRING), e = q.accept(e, Y.STRING), n = q.accept(n, Y.NUMBER, 1), n < 1 || n > e.length) + throw Ce.VALUE; + let r = hi.isWildCard(t) ? hi.toRegex(t, "i") : t; + const i = e.slice(n - 1).search(r); + if (i === -1) + throw Ce.VALUE; + return i + n; + }, + SEARCHB: (...t) => ut.SEARCH(...t), + SUBSTITUTE: (...t) => { + }, + T: (t) => (t = q.accept(t), typeof t == "string" ? t : ""), + TEXT: (t, e) => { + t = q.accept(t, Y.NUMBER), e = q.accept(e, Y.STRING); + try { + return lr.format(e, t); + } catch (n) { + throw console.error(n), Ce.VALUE; + } + }, + TEXTJOIN: (...t) => { + }, + TRIM: (t) => (t = q.accept(t, [Y.STRING]), t.replace(/^\s+|\s+$/g, "")), + UNICHAR: (t) => { + if (t = q.accept(t, [Y.NUMBER]), t <= 0) + throw Ce.VALUE; + return String.fromCharCode(t); + }, + UNICODE: (t) => ut.CODE(t) +}; +var Po = ut; +const tn = he(), { FormulaHelpers: Pn } = ge(), Ua = { + unaryOp: (t, e, n) => { + let r = 1; + if (t.forEach((i) => { + if (i !== "+") + if (i === "-") + r = -r; + else + throw new Error(`Unrecognized prefix: ${i}`); + }), e == null && (e = 0), r === 1) + return e; + try { + e = Pn.acceptNumber(e, n); + } catch (i) { + if (i instanceof tn) + Array.isArray(e) && (e = e[0][0]); + else + throw i; + } + return typeof e == "number" && isNaN(e) ? tn.VALUE : -e; + } +}, La = { + percentOp: (t, e, n) => { + try { + t = Pn.acceptNumber(t, n); + } catch (r) { + if (r instanceof tn) + return r; + throw r; + } + if (e === "%") + return t / 100; + throw new Error(`Unrecognized postfix: ${e}`); + } +}, Nt = { boolean: 3, string: 2, number: 1 }, _a = { + compareOp: (t, e, n, r, i) => { + t == null && (t = 0), n == null && (n = 0), r && (t = t[0][0]), i && (n = n[0][0]); + const a = typeof t, c = typeof n; + if (a === c) + switch (e) { + case "=": + return t === n; + case ">": + return t > n; + case "<": + return t < n; + case "<>": + return t !== n; + case "<=": + return t <= n; + case ">=": + return t >= n; + } + else + switch (e) { + case "=": + return !1; + case ">": + return Nt[a] > Nt[c]; + case "<": + return Nt[a] < Nt[c]; + case "<>": + return !0; + case "<=": + return Nt[a] <= Nt[c]; + case ">=": + return Nt[a] >= Nt[c]; + } + throw Error("Infix.compareOp: Should not reach here."); + }, + concatOp: (t, e, n, r, i) => { + t == null && (t = ""), n == null && (n = ""), r && (t = t[0][0]), i && (n = n[0][0]); + const a = typeof t, c = typeof n; + return a === "boolean" && (t = t ? "TRUE" : "FALSE"), c === "boolean" && (n = n ? "TRUE" : "FALSE"), "" + t + n; + }, + mathOp: (t, e, n, r, i) => { + t == null && (t = 0), n == null && (n = 0); + try { + t = Pn.acceptNumber(t, r), n = Pn.acceptNumber(n, i); + } catch (a) { + if (a instanceof tn) + return a; + throw a; + } + switch (e) { + case "+": + return t + n; + case "-": + return t - n; + case "*": + return t * n; + case "/": + return n === 0 ? tn.DIV0 : t / n; + case "^": + return t ** n; + } + throw Error("Infix.mathOp: Should not reach here."); + } +}; +var br = { + Prefix: Ua, + Postfix: La, + Infix: _a, + Operators: { + compareOp: ["<", ">", "=", "<>", "<=", ">="], + concatOp: ["&"], + mathOp: ["+", "-", "*", "/", "^"] + } +}; +const Q = he(), { FormulaHelpers: Pa, Types: P, Factorials: ko, Criteria: ka } = ge(), { Infix: xa } = br, L = Pa, ur = [], fr = []; +function Cn(t) { + return t <= 100 ? ko[t] : ur[t] > 0 ? ur[t] : ur[t] = Cn(t - 1) * t; +} +function xo(t) { + return t === 1 || t === 0 ? 1 : t === 2 ? 2 : fr[t] > 0 ? fr[t] : fr[t] = xo(t - 2) * t; +} +const Pe = { + ABS: (t) => (t = L.accept(t, P.NUMBER), Math.abs(t)), + AGGREGATE: (t, e, n, ...r) => { + }, + ARABIC: (t) => { + if (t = L.accept(t, P.STRING).toUpperCase(), !/^M*(?:D?C{0,3}|C[MD])(?:L?X{0,3}|X[CL])(?:V?I{0,3}|I[XV])$/.test(t)) + throw new Q("#VALUE!", "Invalid roman numeral in ARABIC evaluation."); + let e = 0; + return t.replace(/[MDLV]|C[MD]?|X[CL]?|I[XV]?/g, function(n) { + e += { + M: 1e3, + CM: 900, + D: 500, + CD: 400, + C: 100, + XC: 90, + L: 50, + XL: 40, + X: 10, + IX: 9, + V: 5, + IV: 4, + I: 1 + }[n]; + }), e; + }, + BASE: (t, e, n) => { + if (t = L.accept(t, P.NUMBER), t < 0 || t >= 2 ** 53 || (e = L.accept(e, P.NUMBER), e < 2 || e > 36) || (n = L.accept(n, P.NUMBER, 0), n < 0)) + throw Q.NUM; + const r = t.toString(e).toUpperCase(); + return new Array(Math.max(n + 1 - r.length, 0)).join("0") + r; + }, + CEILING: (t, e) => { + if (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER), e === 0) + return 0; + if (t / e % 1 === 0) + return t; + const n = Math.abs(e), r = Math.floor(Math.abs(t) / n); + return t < 0 ? e < 0 ? -n * (r + 1) : -n * r : (r + 1) * n; + }, + "CEILING.MATH": (t, e, n) => { + if (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER, t > 0 ? 1 : -1), n = L.accept(n, P.NUMBER, 0), t >= 0) + return Pe.CEILING(t, e); + const r = n ? e : 0; + return Pe.CEILING(t, e) - r; + }, + "CEILING.PRECISE": (t, e) => (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER, 1), Pe.CEILING(t, Math.abs(e))), + COMBIN: (t, e) => { + if (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER), t < 0 || e < 0 || t < e) + throw Q.NUM; + const n = Pe.FACT(t), r = Pe.FACT(e); + return n / r / Pe.FACT(t - e); + }, + COMBINA: (t, e) => { + if (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER), (t === 0 || t === 1) && e === 0) + return 1; + if (t < 0 || e < 0) + throw Q.NUM; + return Pe.COMBIN(t + e - 1, t - 1); + }, + DECIMAL: (t, e) => { + if (t = L.accept(t, P.STRING), e = L.accept(e, P.NUMBER), e = Math.trunc(e), e < 2 || e > 36) + throw Q.NUM; + const n = parseInt(t, e); + if (isNaN(n)) + throw Q.NUM; + return n; + }, + DEGREES: (t) => (t = L.accept(t, P.NUMBER), t * (180 / Math.PI)), + EVEN: (t) => Pe.CEILING(t, -2), + EXP: (t) => (t = L.accept(t, P.NUMBER), Math.exp(t)), + FACT: (t) => { + if (t = L.accept(t, P.NUMBER), t = Math.trunc(t), t > 170 || t < 0) + throw Q.NUM; + return t <= 100 ? ko[t] : Cn(t); + }, + FACTDOUBLE: (t) => { + if (t = L.accept(t, P.NUMBER), t = Math.trunc(t), t < -1) + throw Q.NUM; + return t === -1 ? 1 : xo(t); + }, + FLOOR: (t, e) => { + if (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER), e === 0) + return 0; + if (t > 0 && e < 0) + throw Q.NUM; + if (t / e % 1 === 0) + return t; + const n = Math.abs(e), r = Math.floor(Math.abs(t) / n); + return t < 0 ? e < 0 ? -n * r : -n * (r + 1) : r * n; + }, + "FLOOR.MATH": (t, e, n) => (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER, t > 0 ? 1 : -1), n = L.accept(n, P.NUMBER, 0), n === 0 || t >= 0 ? Pe.FLOOR(t, Math.abs(e)) : Pe.FLOOR(t, e) + e), + "FLOOR.PRECISE": (t, e) => (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER, 1), Pe.FLOOR(t, Math.abs(e))), + GCD: (...t) => { + const e = []; + L.flattenParams( + t, + null, + !1, + (c) => { + if (c = typeof c == "boolean" ? NaN : Number(c), isNaN(c)) + throw Q.VALUE; + if (c < 0 || c > 9007199254740990) + throw Q.NUM; + e.push(Math.trunc(c)); + }, + 0 + ); + let n, r, i = t.length, a = Math.abs(e[0]); + for (n = 1; n < i; n++) { + for (r = Math.abs(e[n]); a && r; ) + a > r ? a %= r : r %= a; + a += r; + } + return a; + }, + INT: (t) => (t = L.accept(t, P.NUMBER), Math.floor(t)), + "ISO.CEILING": (...t) => Pe["CEILING.PRECISE"](...t), + LCM: (...t) => { + const e = []; + L.flattenParams( + t, + null, + !1, + (i) => { + if (i = typeof i == "boolean" ? NaN : Number(i), isNaN(i)) + throw Q.VALUE; + if (i < 0 || i > 9007199254740990) + throw Q.NUM; + e.push(Math.trunc(i)); + }, + 1 + ); + let n = e.length, r = Math.abs(e[0]); + for (let i = 1; i < n; i++) { + let a = Math.abs(e[i]), c = r; + for (; r && a; ) + r > a ? r %= a : a %= r; + r = Math.abs(c * e[i]) / (r + a); + } + return r; + }, + LN: (t) => (t = L.accept(t, P.NUMBER), Math.log(t)), + LOG: (t, e) => (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER, 10), Math.log(t) / Math.log(e)), + LOG10: (t) => (t = L.accept(t, P.NUMBER), Math.log10(t)), + MDETERM: (t) => { + if (t = L.accept(t, P.ARRAY, void 0, !1, !0), t[0].length !== t.length) + throw Q.VALUE; + const e = t.length, n = t[0].length; + let r = 0, i, a; + if (e === 1) + return t[0][0]; + if (e === 2) + return t[0][0] * t[1][1] - t[0][1] * t[1][0]; + for (let c = 0; c < n; c++) { + i = t[0][c], a = t[0][c]; + for (let h = 1; h < e; h++) + a *= t[h][((c + h) % n + n) % n], i *= t[h][((c - h) % n + n) % n]; + r += a - i; + } + return r; + }, + MINVERSE: (t) => { + }, + MMULT: (t, e) => { + t = L.accept(t, P.ARRAY, void 0, !1, !0), e = L.accept(e, P.ARRAY, void 0, !1, !0); + const n = t.length, r = t[0].length, i = e.length, a = e[0].length, c = new Array(n); + if (r !== i) + throw Q.VALUE; + for (let h = 0; h < n; h++) { + c[h] = new Array(a); + for (let p = 0; p < a; p++) { + c[h][p] = 0; + for (let u = 0; u < r; u++) { + const o = t[h][u], s = e[u][p]; + if (typeof o != "number" || typeof s != "number") + throw Q.VALUE; + c[h][p] += t[h][u] * e[u][p]; + } + } + } + return c; + }, + MOD: (t, e) => { + if (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER), e === 0) + throw Q.DIV0; + return t - e * Pe.INT(t / e); + }, + MROUND: (t, e) => { + if (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER), e === 0) + return 0; + if (t > 0 && e < 0 || t < 0 && e > 0) + throw Q.NUM; + return t / e % 1 === 0 ? t : Math.round(t / e) * e; + }, + MULTINOMIAL: (...t) => { + let e = 0, n = 1; + return L.flattenParams(t, P.NUMBER, !1, (r) => { + if (r < 0) + throw Q.NUM; + e += r, n *= Cn(r); + }), Cn(e) / n; + }, + MUNIT: (t) => { + t = L.accept(t, P.NUMBER); + const e = []; + for (let n = 0; n < t; n++) { + const r = []; + for (let i = 0; i < t; i++) + n === i ? r.push(1) : r.push(0); + e.push(r); + } + return e; + }, + ODD: (t) => { + if (t = L.accept(t, P.NUMBER), t === 0) + return 1; + let e = Math.ceil(Math.abs(t)); + return e = e & 1 ? e : e + 1, t > 0 ? e : -e; + }, + PI: () => Math.PI, + POWER: (t, e) => (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER), t ** e), + PRODUCT: (...t) => { + let e = 1; + return L.flattenParams(t, null, !0, (n, r) => { + const i = Number(n); + r.isLiteral && !isNaN(i) ? e *= i : typeof n == "number" && (e *= n); + }, 1), e; + }, + QUOTIENT: (t, e) => (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER), Math.trunc(t / e)), + RADIANS: (t) => (t = L.accept(t, P.NUMBER), t / 180 * Math.PI), + RAND: () => Math.random(), + RANDBETWEEN: (t, e) => (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER), Math.floor(Math.random() * (e - t + 1) + t)), + ROMAN: (t, e) => { + if (t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER, 0), e !== 0) + throw Error("ROMAN: only allows form=0 (classic form)."); + const n = String(t).split(""), r = ["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM", "", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC", "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"]; + let i = "", a = 3; + for (; a--; ) + i = (r[+n.pop() + a * 10] || "") + i; + return new Array(+n.join("") + 1).join("M") + i; + }, + ROUND: (t, e) => { + t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER); + const n = Math.pow(10, Math.abs(e)), r = t > 0 ? 1 : -1; + return e > 0 ? r * Math.round(Math.abs(t) * n) / n : e === 0 ? r * Math.round(Math.abs(t)) : r * Math.round(Math.abs(t) / n) * n; + }, + ROUNDDOWN: (t, e) => { + t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER); + const n = Math.pow(10, Math.abs(e)), r = t > 0 ? 1 : -1; + if (e > 0) { + const i = 1 / n * 0.5; + return r * Math.round((Math.abs(t) - i) * n) / n; + } else { + if (e === 0) + return r * Math.round(Math.abs(t) - 0.5); + { + const i = n * 0.5; + return r * Math.round((Math.abs(t) - i) / n) * n; + } + } + }, + ROUNDUP: (t, e) => { + t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER); + const n = Math.pow(10, Math.abs(e)), r = t > 0 ? 1 : -1; + if (e > 0) { + const i = 1 / n * 0.5; + return r * Math.round((Math.abs(t) + i) * n) / n; + } else { + if (e === 0) + return r * Math.round(Math.abs(t) + 0.5); + { + const i = n * 0.5; + return r * Math.round((Math.abs(t) + i) / n) * n; + } + } + }, + SERIESSUM: (t, e, n, r) => { + t = L.accept(t, P.NUMBER), e = L.accept(e, P.NUMBER), n = L.accept(n, P.NUMBER); + let i = 0, a; + return L.flattenParams([r], P.NUMBER, !1, (c) => { + if (typeof c != "number") + throw Q.VALUE; + i === 0 ? a = c * Math.pow(t, e) : a += c * Math.pow(t, e + i * n), i++; + }), a; + }, + SIGN: (t) => (t = L.accept(t, P.NUMBER), t > 0 ? 1 : t === 0 ? 0 : -1), + SQRT: (t) => { + if (t = L.accept(t, P.NUMBER), t < 0) + throw Q.NUM; + return Math.sqrt(t); + }, + SQRTPI: (t) => { + if (t = L.accept(t, P.NUMBER), t < 0) + throw Q.NUM; + return Math.sqrt(t * Math.PI); + }, + SUBTOTAL: () => { + }, + SUM: (...t) => { + let e = 0; + return L.flattenParams( + t, + P.NUMBER, + !0, + (n, r) => { + (r.isLiteral || typeof n == "number") && (e += n); + } + ), e; + }, + /** + * This functions requires instance of {@link FormulaParser}. + */ + SUMIF: (t, e, n, r) => { + const i = L.retrieveRanges(t, e, r); + e = i[0], r = i[1], n = L.retrieveArg(t, n); + const a = n.isArray; + n = ka.parse(L.accept(n)); + let c = 0; + return e.forEach((h, p) => { + h.forEach((u, o) => { + const s = r[p][o]; + typeof s == "number" && (n.op === "wc" ? n.match === n.value.test(u) && (c += s) : xa.compareOp(u, n.op, n.value, Array.isArray(u), a) && (c += s)); + }); + }), c; + }, + SUMIFS: () => { + }, + SUMPRODUCT: (t, ...e) => { + t = L.accept(t, P.ARRAY, void 0, !1, !0), e.forEach((r) => { + if (r = L.accept(r, P.ARRAY, void 0, !1, !0), t[0].length !== r[0].length || t.length !== r.length) + throw Q.VALUE; + for (let i = 0; i < t.length; i++) + for (let a = 0; a < t[0].length; a++) + typeof t[i][a] != "number" && (t[i][a] = 0), typeof r[i][a] != "number" && (r[i][a] = 0), t[i][a] *= r[i][a]; + }); + let n = 0; + return t.forEach((r) => { + r.forEach((i) => { + n += i; + }); + }), n; + }, + SUMSQ: (...t) => { + let e = 0; + return L.flattenParams( + t, + P.NUMBER, + !0, + (n, r) => { + (r.isLiteral || typeof n == "number") && (e += n ** 2); + } + ), e; + }, + SUMX2MY2: (t, e) => { + const n = [], r = []; + let i = 0; + if (L.flattenParams([t], null, !1, (a, c) => { + n.push(a); + }), L.flattenParams([e], null, !1, (a, c) => { + r.push(a); + }), n.length !== r.length) + throw Q.NA; + for (let a = 0; a < n.length; a++) + typeof n[a] == "number" && typeof r[a] == "number" && (i += n[a] ** 2 - r[a] ** 2); + return i; + }, + SUMX2PY2: (t, e) => { + const n = [], r = []; + let i = 0; + if (L.flattenParams([t], null, !1, (a, c) => { + n.push(a); + }), L.flattenParams([e], null, !1, (a, c) => { + r.push(a); + }), n.length !== r.length) + throw Q.NA; + for (let a = 0; a < n.length; a++) + typeof n[a] == "number" && typeof r[a] == "number" && (i += n[a] ** 2 + r[a] ** 2); + return i; + }, + SUMXMY2: (t, e) => { + const n = [], r = []; + let i = 0; + if (L.flattenParams([t], null, !1, (a, c) => { + n.push(a); + }), L.flattenParams([e], null, !1, (a, c) => { + r.push(a); + }), n.length !== r.length) + throw Q.NA; + for (let a = 0; a < n.length; a++) + typeof n[a] == "number" && typeof r[a] == "number" && (i += (n[a] - r[a]) ** 2); + return i; + }, + TRUNC: (t) => (t = L.accept(t, P.NUMBER), Math.trunc(t)) +}; +var So = Pe; +const Ie = he(), { FormulaHelpers: Sa, Types: ie } = ge(), oe = Sa, Vt = 2 ** 27 - 1, Ba = { + ACOS: (t) => { + if (t = oe.accept(t, ie.NUMBER), t > 1 || t < -1) + throw Ie.NUM; + return Math.acos(t); + }, + ACOSH: (t) => { + if (t = oe.accept(t, ie.NUMBER), t < 1) + throw Ie.NUM; + return Math.acosh(t); + }, + ACOT: (t) => (t = oe.accept(t, ie.NUMBER), Math.PI / 2 - Math.atan(t)), + ACOTH: (t) => { + if (t = oe.accept(t, ie.NUMBER), Math.abs(t) <= 1) + throw Ie.NUM; + return Math.atanh(1 / t); + }, + ASIN: (t) => { + if (t = oe.accept(t, ie.NUMBER), t > 1 || t < -1) + throw Ie.NUM; + return Math.asin(t); + }, + ASINH: (t) => (t = oe.accept(t, ie.NUMBER), Math.asinh(t)), + ATAN: (t) => (t = oe.accept(t, ie.NUMBER), Math.atan(t)), + ATAN2: (t, e) => { + if (t = oe.accept(t, ie.NUMBER), e = oe.accept(e, ie.NUMBER), e === 0 && t === 0) + throw Ie.DIV0; + return Math.atan2(e, t); + }, + ATANH: (t) => { + if (t = oe.accept(t, ie.NUMBER), Math.abs(t) > 1) + throw Ie.NUM; + return Math.atanh(t); + }, + COS: (t) => { + if (t = oe.accept(t, ie.NUMBER), Math.abs(t) > Vt) + throw Ie.NUM; + return Math.cos(t); + }, + COSH: (t) => (t = oe.accept(t, ie.NUMBER), Math.cosh(t)), + COT: (t) => { + if (t = oe.accept(t, ie.NUMBER), Math.abs(t) > Vt) + throw Ie.NUM; + if (t === 0) + throw Ie.DIV0; + return 1 / Math.tan(t); + }, + COTH: (t) => { + if (t = oe.accept(t, ie.NUMBER), t === 0) + throw Ie.DIV0; + return 1 / Math.tanh(t); + }, + CSC: (t) => { + if (t = oe.accept(t, ie.NUMBER), Math.abs(t) > Vt) + throw Ie.NUM; + return 1 / Math.sin(t); + }, + CSCH: (t) => { + if (t = oe.accept(t, ie.NUMBER), t === 0) + throw Ie.DIV0; + return 1 / Math.sinh(t); + }, + SEC: (t) => { + if (t = oe.accept(t, ie.NUMBER), Math.abs(t) > Vt) + throw Ie.NUM; + return 1 / Math.cos(t); + }, + SECH: (t) => (t = oe.accept(t, ie.NUMBER), 1 / Math.cosh(t)), + SIN: (t) => { + if (t = oe.accept(t, ie.NUMBER), Math.abs(t) > Vt) + throw Ie.NUM; + return Math.sin(t); + }, + SINH: (t) => (t = oe.accept(t, ie.NUMBER), Math.sinh(t)), + TAN: (t) => { + if (t = oe.accept(t, ie.NUMBER), Math.abs(t) > Vt) + throw Ie.NUM; + return Math.tan(t); + }, + TANH: (t) => (t = oe.accept(t, ie.NUMBER), Math.tanh(t)) +}; +var Fa = Ba; +const At = he(), { FormulaHelpers: ba, Types: hr } = ge(), Ke = ba; +function pr(t) { + let e = 0, n = 0; + return Ke.flattenParams(t, null, !0, (r) => { + const i = typeof r; + i === "string" ? r === "TRUE" ? r = !0 : r === "FALSE" && (r = !1) : i === "number" && (r = !!r), typeof r == "boolean" && (r === !0 ? e++ : n++); + }), [e, n]; +} +const Da = { + AND: (...t) => { + const [e, n] = pr(t); + return e === 0 && n === 0 ? At.VALUE : e > 0 && n === 0; + }, + FALSE: () => !1, + // Special + IF: (t, e, n, r) => (e = Ke.accept(e, hr.BOOLEAN), n = Ke.accept(n), r = Ke.accept(r, null, !1), e ? n : r), + IFERROR: (t, e) => t.value instanceof At ? Ke.accept(e) : Ke.accept(t), + IFNA: function(t, e) { + if (arguments.length > 2) + throw At.TOO_MANY_ARGS("IFNA"); + return At.NA.equals(t.value) ? Ke.accept(e) : Ke.accept(t); + }, + IFS: (...t) => { + if (t.length % 2 !== 0) + return new At("#N/A", "IFS expects all arguments after position 0 to be in pairs."); + for (let e = 0; e < t.length / 2; e++) { + const n = Ke.accept(t[e * 2], hr.BOOLEAN), r = Ke.accept(t[e * 2 + 1]); + if (n) + return r; + } + return At.NA; + }, + NOT: (t) => (t = Ke.accept(t, hr.BOOLEAN), !t), + OR: (...t) => { + const [e, n] = pr(t); + return e === 0 && n === 0 ? At.VALUE : e > 0; + }, + SWITCH: (...t) => { + }, + TRUE: () => !0, + XOR: (...t) => { + const [e, n] = pr(t); + return e === 0 && n === 0 ? At.VALUE : e % 2 === 1; + } +}; +var Va = Da, Bo = {}; +(function(t) { + (function(e) { + e(typeof DO_NOT_EXPORT_BESSEL > "u" ? t : {}); + })(function(e) { + e.version = "1.0.2"; + var n = Math; + function r(o, s) { + for (var l = 0, f = 0; l < o.length; ++l) + f = s * f + o[l]; + return f; + } + function i(o, s, l, f, v) { + if (s === 0) + return l; + if (s === 1) + return f; + for (var d = 2 / o, g = f, E = 1; E < s; ++E) + g = f * E * d + v * l, l = f, f = g; + return g; + } + function a(o, s, l, f, v) { + return function(g, E) { + if (f) { + if (g === 0) + return f == 1 ? -1 / 0 : 1 / 0; + if (g < 0) + return NaN; + } + if (E === 0) + return o(g); + if (E === 1) + return s(g); + if (E < 0) + return NaN; + E |= 0; + var A = o(g), m = s(g); + return i(g, E, A, m, v); + }; + } + var c = function() { + var o = 0.636619772, s = [57568490574, -13362590354, 6516196407e-1, -1121442418e-2, 77392.33017, -184.9052456].reverse(), l = [57568490411, 1029532985, 9494680718e-3, 59272.64853, 267.8532712, 1].reverse(), f = [1, -0.001098628627, 2734510407e-14, -2073370639e-15, 2093887211e-16].reverse(), v = [-0.01562499995, 1430488765e-13, -6911147651e-15, 7621095161e-16, -934935152e-16].reverse(); + function d(y) { + var R = 0, T = 0, w = 0, C = y * y; + if (y < 8) + T = r(s, C), w = r(l, C), R = T / w; + else { + var M = y - 0.785398164; + C = 64 / C, T = r(f, C), w = r(v, C), R = n.sqrt(o / y) * (n.cos(M) * T - n.sin(M) * w * 8 / y); + } + return R; + } + var g = [72362614232, -7895059235, 2423968531e-1, -2972611439e-3, 15704.4826, -30.16036606].reverse(), E = [144725228442, 2300535178, 1858330474e-2, 99447.43394, 376.9991397, 1].reverse(), A = [1, 183105e-8, -3516396496e-14, 2457520174e-15, -240337019e-15].reverse(), m = [0.04687499995, -2002690873e-13, 8449199096e-15, -88228987e-14, 105787412e-15].reverse(); + function N(y) { + var R = 0, T = 0, w = 0, C = y * y, M = n.abs(y) - 2.356194491; + return Math.abs(y) < 8 ? (T = y * r(g, C), w = r(E, C), R = T / w) : (C = 64 / C, T = r(A, C), w = r(m, C), R = n.sqrt(o / n.abs(y)) * (n.cos(M) * T - n.sin(M) * w * 8 / n.abs(y)), y < 0 && (R = -R)), R; + } + return function y(R, T) { + if (T = Math.round(T), !isFinite(R)) + return isNaN(R) ? R : 0; + if (T < 0) + return (T % 2 ? -1 : 1) * y(R, -T); + if (R < 0) + return (T % 2 ? -1 : 1) * y(-R, T); + if (T === 0) + return d(R); + if (T === 1) + return N(R); + if (R === 0) + return 0; + var w = 0; + if (R > T) + w = i(R, T, d(R), N(R), -1); + else { + for (var C = 2 * n.floor((T + n.floor(n.sqrt(40 * T))) / 2), M = !1, _ = 0, W = 0, F = 1, S = 0, G = 2 / R, J = C; J > 0; J--) + S = J * G * F - _, _ = F, F = S, n.abs(F) > 1e10 && (F *= 1e-10, _ *= 1e-10, w *= 1e-10, W *= 1e-10), M && (W += F), M = !M, J == T && (w = _); + W = 2 * W - F, w /= W; + } + return w; + }; + }(), h = function() { + var o = 0.636619772, s = [-2957821389, 7062834065, -5123598036e-1, 1087988129e-2, -86327.92757, 228.4622733].reverse(), l = [40076544269, 7452499648e-1, 7189466438e-3, 47447.2647, 226.1030244, 1].reverse(), f = [1, -0.001098628627, 2734510407e-14, -2073370639e-15, 2093887211e-16].reverse(), v = [-0.01562499995, 1430488765e-13, -6911147651e-15, 7621095161e-16, -934945152e-16].reverse(); + function d(y) { + var R = 0, T = 0, w = 0, C = y * y, M = y - 0.785398164; + return y < 8 ? (T = r(s, C), w = r(l, C), R = T / w + o * c(y, 0) * n.log(y)) : (C = 64 / C, T = r(f, C), w = r(v, C), R = n.sqrt(o / y) * (n.sin(M) * T + n.cos(M) * w * 8 / y)), R; + } + var g = [-4900604943e3, 127527439e4, -51534381390, 7349264551e-1, -4237922726e-3, 8511.937935].reverse(), E = [249958057e5, 424441966400, 3733650367, 2245904002e-2, 102042.605, 354.9632885, 1].reverse(), A = [1, 183105e-8, -3516396496e-14, 2457520174e-15, -240337019e-15].reverse(), m = [0.04687499995, -2002690873e-13, 8449199096e-15, -88228987e-14, 105787412e-15].reverse(); + function N(y) { + var R = 0, T = 0, w = 0, C = y * y, M = y - 2.356194491; + return y < 8 ? (T = y * r(g, C), w = r(E, C), R = T / w + o * (c(y, 1) * n.log(y) - 1 / y)) : (C = 64 / C, T = r(A, C), w = r(m, C), R = n.sqrt(o / y) * (n.sin(M) * T + n.cos(M) * w * 8 / y)), R; + } + return a(d, N, "BESSELY", 1, -1); + }(), p = function() { + var o = [1, 3.5156229, 3.0899424, 1.2067492, 0.2659732, 0.0360768, 45813e-7].reverse(), s = [0.39894228, 0.01328592, 225319e-8, -157565e-8, 916281e-8, -0.02057706, 0.02635537, -0.01647633, 392377e-8].reverse(); + function l(g) { + return g <= 3.75 ? r(o, g * g / (3.75 * 3.75)) : n.exp(n.abs(g)) / n.sqrt(n.abs(g)) * r(s, 3.75 / n.abs(g)); + } + var f = [0.5, 0.87890594, 0.51498869, 0.15084934, 0.02658733, 301532e-8, 32411e-8].reverse(), v = [0.39894228, -0.03988024, -362018e-8, 163801e-8, -0.01031555, 0.02282967, -0.02895312, 0.01787654, -420059e-8].reverse(); + function d(g) { + return g < 3.75 ? g * r(f, g * g / (3.75 * 3.75)) : (g < 0 ? -1 : 1) * n.exp(n.abs(g)) / n.sqrt(n.abs(g)) * r(v, 3.75 / n.abs(g)); + } + return function g(E, A) { + if (A = Math.round(A), A === 0) + return l(E); + if (A === 1) + return d(E); + if (A < 0) + return NaN; + if (n.abs(E) === 0) + return 0; + if (E == 1 / 0) + return 1 / 0; + var m = 0, N, y = 2 / n.abs(E), R = 0, T = 1, w = 0, C = 2 * n.round((A + n.round(n.sqrt(40 * A))) / 2); + for (N = C; N > 0; N--) + w = N * y * T + R, R = T, T = w, n.abs(T) > 1e10 && (T *= 1e-10, R *= 1e-10, m *= 1e-10), N == A && (m = R); + return m *= g(E, 0) / T, E < 0 && A % 2 ? -m : m; + }; + }(), u = function() { + var o = [-0.57721566, 0.4227842, 0.23069756, 0.0348859, 262698e-8, 1075e-7, 74e-7].reverse(), s = [1.25331414, -0.07832358, 0.02189568, -0.01062446, 587872e-8, -25154e-7, 53208e-8].reverse(); + function l(g) { + return g <= 2 ? -n.log(g / 2) * p(g, 0) + r(o, g * g / 4) : n.exp(-g) / n.sqrt(g) * r(s, 2 / g); + } + var f = [1, 0.15443144, -0.67278579, -0.18156897, -0.01919402, -110404e-8, -4686e-8].reverse(), v = [1.25331414, 0.23498619, -0.0365562, 0.01504268, -780353e-8, 325614e-8, -68245e-8].reverse(); + function d(g) { + return g <= 2 ? n.log(g / 2) * p(g, 1) + 1 / g * r(f, g * g / 4) : n.exp(-g) / n.sqrt(g) * r(v, 2 / g); + } + return a(l, d, "BESSELK", 2, 1); + }(); + e.besselj = c, e.bessely = h, e.besseli = p, e.besselk = u; + }); +})(Bo); +var Fo = { exports: {} }; +(function(t, e) { + (function(n, r) { + t.exports = r(); + })(go, function() { + var n = function(r, i) { + var a = Array.prototype.concat, c = Array.prototype.slice, h = Object.prototype.toString; + function p(A, m) { + var N = A > m ? A : m; + return r.pow( + 10, + 17 - ~~(r.log(N > 0 ? N : -N) * r.LOG10E) + ); + } + var u = Array.isArray || function(m) { + return h.call(m) === "[object Array]"; + }; + function o(A) { + return h.call(A) === "[object Function]"; + } + function s(A) { + return typeof A == "number" ? A - A === 0 : !1; + } + function l(A) { + return a.apply([], A); + } + function f() { + return new f._init(arguments); + } + f.fn = f.prototype, f._init = function(m) { + if (u(m[0])) + if (u(m[0][0])) { + o(m[1]) && (m[0] = f.map(m[0], m[1])); + for (var N = 0; N < m[0].length; N++) + this[N] = m[0][N]; + this.length = m[0].length; + } else + this[0] = o(m[1]) ? f.map(m[0], m[1]) : m[0], this.length = 1; + else if (s(m[0])) + this[0] = f.seq.apply(null, m), this.length = 1; + else { + if (m[0] instanceof f) + return f(m[0].toArray()); + this[0] = [], this.length = 1; + } + return this; + }, f._init.prototype = f.prototype, f._init.constructor = f, f.utils = { + calcRdx: p, + isArray: u, + isFunction: o, + isNumber: s, + toVector: l + }, f._random_fn = r.random, f.setRandom = function(m) { + if (typeof m != "function") + throw new TypeError("fn is not a function"); + f._random_fn = m; + }, f.extend = function(m) { + var N, y; + if (arguments.length === 1) { + for (y in m) + f[y] = m[y]; + return this; + } + for (N = 1; N < arguments.length; N++) + for (y in arguments[N]) + m[y] = arguments[N][y]; + return m; + }, f.rows = function(m) { + return m.length || 1; + }, f.cols = function(m) { + return m[0].length || 1; + }, f.dimensions = function(m) { + return { + rows: f.rows(m), + cols: f.cols(m) + }; + }, f.row = function(m, N) { + return u(N) ? N.map(function(y) { + return f.row(m, y); + }) : m[N]; + }, f.rowa = function(m, N) { + return f.row(m, N); + }, f.col = function(m, N) { + if (u(N)) { + var y = f.arange(m.length).map(function() { + return new Array(N.length); + }); + return N.forEach(function(w, C) { + f.arange(m.length).forEach(function(M) { + y[M][C] = m[M][w]; + }); + }), y; + } + for (var R = new Array(m.length), T = 0; T < m.length; T++) + R[T] = [m[T][N]]; + return R; + }, f.cola = function(m, N) { + return f.col(m, N).map(function(y) { + return y[0]; + }); + }, f.diag = function(m) { + for (var N = f.rows(m), y = new Array(N), R = 0; R < N; R++) + y[R] = [m[R][R]]; + return y; + }, f.antidiag = function(m) { + for (var N = f.rows(m) - 1, y = new Array(N), R = 0; N >= 0; N--, R++) + y[R] = [m[R][N]]; + return y; + }, f.transpose = function(m) { + var N = [], y, R, T, w, C; + for (u(m[0]) || (m = [m]), R = m.length, T = m[0].length, C = 0; C < T; C++) { + for (y = new Array(R), w = 0; w < R; w++) + y[w] = m[w][C]; + N.push(y); + } + return N.length === 1 ? N[0] : N; + }, f.map = function(m, N, y) { + var R, T, w, C, M; + for (u(m[0]) || (m = [m]), T = m.length, w = m[0].length, C = y ? m : new Array(T), R = 0; R < T; R++) + for (C[R] || (C[R] = new Array(w)), M = 0; M < w; M++) + C[R][M] = N(m[R][M], R, M); + return C.length === 1 ? C[0] : C; + }, f.cumreduce = function(m, N, y) { + var R, T, w, C, M; + for (u(m[0]) || (m = [m]), T = m.length, w = m[0].length, C = y ? m : new Array(T), R = 0; R < T; R++) + for (C[R] || (C[R] = new Array(w)), w > 0 && (C[R][0] = m[R][0]), M = 1; M < w; M++) + C[R][M] = N(C[R][M - 1], m[R][M]); + return C.length === 1 ? C[0] : C; + }, f.alter = function(m, N) { + return f.map(m, N, !0); + }, f.create = function(m, N, y) { + var R = new Array(m), T, w; + for (o(N) && (y = N, N = m), T = 0; T < m; T++) + for (R[T] = new Array(N), w = 0; w < N; w++) + R[T][w] = y(T, w); + return R; + }; + function v() { + return 0; + } + f.zeros = function(m, N) { + return s(N) || (N = m), f.create(m, N, v); + }; + function d() { + return 1; + } + f.ones = function(m, N) { + return s(N) || (N = m), f.create(m, N, d); + }, f.rand = function(m, N) { + return s(N) || (N = m), f.create(m, N, f._random_fn); + }; + function g(A, m) { + return A === m ? 1 : 0; + } + f.identity = function(m, N) { + return s(N) || (N = m), f.create(m, N, g); + }, f.symmetric = function(m) { + var N = m.length, y, R; + if (m.length !== m[0].length) + return !1; + for (y = 0; y < N; y++) + for (R = 0; R < N; R++) + if (m[R][y] !== m[y][R]) + return !1; + return !0; + }, f.clear = function(m) { + return f.alter(m, v); + }, f.seq = function(m, N, y, R) { + o(R) || (R = !1); + var T = [], w = p(m, N), C = (N * w - m * w) / ((y - 1) * w), M = m, _; + for (_ = 0; M <= N && _ < y; _++, M = (m * w + C * w * _) / w) + T.push(R ? R(M, _) : M); + return T; + }, f.arange = function(m, N, y) { + var R = [], T; + if (y = y || 1, N === i && (N = m, m = 0), m === N || y === 0) + return []; + if (m < N && y < 0) + return []; + if (m > N && y > 0) + return []; + if (y > 0) + for (T = m; T < N; T += y) + R.push(T); + else + for (T = m; T > N; T += y) + R.push(T); + return R; + }, f.slice = function() { + function A(N, y, R, T) { + var w, C = [], M = N.length; + if (y === i && R === i && T === i) + return f.copy(N); + if (y = y || 0, R = R || N.length, y = y >= 0 ? y : M + y, R = R >= 0 ? R : M + R, T = T || 1, y === R || T === 0) + return []; + if (y < R && T < 0) + return []; + if (y > R && T > 0) + return []; + if (T > 0) + for (w = y; w < R; w += T) + C.push(N[w]); + else + for (w = y; w > R; w += T) + C.push(N[w]); + return C; + } + function m(N, y) { + var R, T; + if (y = y || {}, s(y.row)) { + if (s(y.col)) + return N[y.row][y.col]; + var w = f.rowa(N, y.row); + return R = y.col || {}, A(w, R.start, R.end, R.step); + } + if (s(y.col)) { + var C = f.cola(N, y.col); + return T = y.row || {}, A(C, T.start, T.end, T.step); + } + T = y.row || {}, R = y.col || {}; + var M = A(N, T.start, T.end, T.step); + return M.map(function(_) { + return A(_, R.start, R.end, R.step); + }); + } + return m; + }(), f.sliceAssign = function(m, N, y) { + var R, T; + if (s(N.row)) { + if (s(N.col)) + return m[N.row][N.col] = y; + N.col = N.col || {}, N.col.start = N.col.start || 0, N.col.end = N.col.end || m[0].length, N.col.step = N.col.step || 1, R = f.arange( + N.col.start, + r.min(m.length, N.col.end), + N.col.step + ); + var w = N.row; + return R.forEach(function(M, _) { + m[w][M] = y[_]; + }), m; + } + if (s(N.col)) { + N.row = N.row || {}, N.row.start = N.row.start || 0, N.row.end = N.row.end || m.length, N.row.step = N.row.step || 1, T = f.arange( + N.row.start, + r.min(m[0].length, N.row.end), + N.row.step + ); + var C = N.col; + return T.forEach(function(M, _) { + m[M][C] = y[_]; + }), m; + } + return y[0].length === i && (y = [y]), N.row.start = N.row.start || 0, N.row.end = N.row.end || m.length, N.row.step = N.row.step || 1, N.col.start = N.col.start || 0, N.col.end = N.col.end || m[0].length, N.col.step = N.col.step || 1, T = f.arange( + N.row.start, + r.min(m.length, N.row.end), + N.row.step + ), R = f.arange( + N.col.start, + r.min(m[0].length, N.col.end), + N.col.step + ), T.forEach(function(M, _) { + R.forEach(function(W, F) { + m[M][W] = y[_][F]; + }); + }), m; + }, f.diagonal = function(m) { + var N = f.zeros(m.length, m.length); + return m.forEach(function(y, R) { + N[R][R] = y; + }), N; + }, f.copy = function(m) { + return m.map(function(N) { + return s(N) ? N : N.map(function(y) { + return y; + }); + }); + }; + var E = f.prototype; + return E.length = 0, E.push = Array.prototype.push, E.sort = Array.prototype.sort, E.splice = Array.prototype.splice, E.slice = Array.prototype.slice, E.toArray = function() { + return this.length > 1 ? c.call(this) : c.call(this)[0]; + }, E.map = function(m, N) { + return f(f.map(this, m, N)); + }, E.cumreduce = function(m, N) { + return f(f.cumreduce(this, m, N)); + }, E.alter = function(m) { + return f.alter(this, m), this; + }, function(A) { + for (var m = 0; m < A.length; m++) + (function(N) { + E[N] = function(y) { + var R = this, T; + return y ? (setTimeout(function() { + y.call(R, E[N].call(R)); + }), this) : (T = f[N](this), u(T) ? f(T) : T); + }; + })(A[m]); + }("transpose clear symmetric rows cols dimensions diag antidiag".split(" ")), function(A) { + for (var m = 0; m < A.length; m++) + (function(N) { + E[N] = function(y, R) { + var T = this; + return R ? (setTimeout(function() { + R.call(T, E[N].call(T, y)); + }), this) : f(f[N](this, y)); + }; + })(A[m]); + }("row col".split(" ")), function(A) { + for (var m = 0; m < A.length; m++) + (function(N) { + E[N] = function() { + return f(f[N].apply(null, arguments)); + }; + })(A[m]); + }("create zeros ones rand identity".split(" ")), f; + }(Math); + return function(r, i) { + var a = r.utils.isFunction; + function c(u, o) { + return u - o; + } + function h(u, o, s) { + return i.max(o, i.min(u, s)); + } + r.sum = function(o) { + for (var s = 0, l = o.length; --l >= 0; ) + s += o[l]; + return s; + }, r.sumsqrd = function(o) { + for (var s = 0, l = o.length; --l >= 0; ) + s += o[l] * o[l]; + return s; + }, r.sumsqerr = function(o) { + for (var s = r.mean(o), l = 0, f = o.length, v; --f >= 0; ) + v = o[f] - s, l += v * v; + return l; + }, r.sumrow = function(o) { + for (var s = 0, l = o.length; --l >= 0; ) + s += o[l]; + return s; + }, r.product = function(o) { + for (var s = 1, l = o.length; --l >= 0; ) + s *= o[l]; + return s; + }, r.min = function(o) { + for (var s = o[0], l = 0; ++l < o.length; ) + o[l] < s && (s = o[l]); + return s; + }, r.max = function(o) { + for (var s = o[0], l = 0; ++l < o.length; ) + o[l] > s && (s = o[l]); + return s; + }, r.unique = function(o) { + for (var s = {}, l = [], f = 0; f < o.length; f++) + s[o[f]] || (s[o[f]] = !0, l.push(o[f])); + return l; + }, r.mean = function(o) { + return r.sum(o) / o.length; + }, r.meansqerr = function(o) { + return r.sumsqerr(o) / o.length; + }, r.geomean = function(o) { + var s = o.map(i.log), l = r.mean(s); + return i.exp(l); + }, r.median = function(o) { + var s = o.length, l = o.slice().sort(c); + return s & 1 ? l[s / 2 | 0] : (l[s / 2 - 1] + l[s / 2]) / 2; + }, r.cumsum = function(o) { + return r.cumreduce(o, function(s, l) { + return s + l; + }); + }, r.cumprod = function(o) { + return r.cumreduce(o, function(s, l) { + return s * l; + }); + }, r.diff = function(o) { + var s = [], l = o.length, f; + for (f = 1; f < l; f++) + s.push(o[f] - o[f - 1]); + return s; + }, r.rank = function(u) { + var o, s = [], l = {}; + for (o = 0; o < u.length; o++) { + var f = u[o]; + l[f] ? l[f]++ : (l[f] = 1, s.push(f)); + } + var v = s.sort(c), d = {}, g = 1; + for (o = 0; o < v.length; o++) { + var f = v[o], E = l[f], A = g, m = g + E - 1, N = (A + m) / 2; + d[f] = N, g += E; + } + return u.map(function(y) { + return d[y]; + }); + }, r.mode = function(o) { + var s = o.length, l = o.slice().sort(c), f = 1, v = 0, d = 0, g = [], E; + for (E = 0; E < s; E++) + l[E] === l[E + 1] ? f++ : (f > v ? (g = [l[E]], v = f, d = 0) : f === v && (g.push(l[E]), d++), f = 1); + return d === 0 ? g[0] : g; + }, r.range = function(o) { + return r.max(o) - r.min(o); + }, r.variance = function(o, s) { + return r.sumsqerr(o) / (o.length - (s ? 1 : 0)); + }, r.pooledvariance = function(o) { + var s = o.reduce(function(f, v) { + return f + r.sumsqerr(v); + }, 0), l = o.reduce(function(f, v) { + return f + v.length; + }, 0); + return s / (l - o.length); + }, r.deviation = function(u) { + for (var o = r.mean(u), s = u.length, l = new Array(s), f = 0; f < s; f++) + l[f] = u[f] - o; + return l; + }, r.stdev = function(o, s) { + return i.sqrt(r.variance(o, s)); + }, r.pooledstdev = function(o) { + return i.sqrt(r.pooledvariance(o)); + }, r.meandev = function(o) { + for (var s = r.mean(o), l = [], f = o.length - 1; f >= 0; f--) + l.push(i.abs(o[f] - s)); + return r.mean(l); + }, r.meddev = function(o) { + for (var s = r.median(o), l = [], f = o.length - 1; f >= 0; f--) + l.push(i.abs(o[f] - s)); + return r.median(l); + }, r.coeffvar = function(o) { + return r.stdev(o) / r.mean(o); + }, r.quartiles = function(o) { + var s = o.length, l = o.slice().sort(c); + return [ + l[i.round(s / 4) - 1], + l[i.round(s / 2) - 1], + l[i.round(s * 3 / 4) - 1] + ]; + }, r.quantiles = function(o, s, l, f) { + var v = o.slice().sort(c), d = [s.length], g = o.length, E, A, m, N, y, R; + for (typeof l > "u" && (l = 3 / 8), typeof f > "u" && (f = 3 / 8), E = 0; E < s.length; E++) + A = s[E], m = l + A * (1 - l - f), N = g * A + m, y = i.floor(h(N, 1, g - 1)), R = h(N - y, 0, 1), d[E] = (1 - R) * v[y - 1] + R * v[y]; + return d; + }, r.percentile = function(o, s, l) { + var f = o.slice().sort(c), v = s * (f.length + (l ? 1 : -1)) + (l ? 0 : 1), d = parseInt(v), g = v - d; + return d + 1 < f.length ? f[d - 1] + g * (f[d] - f[d - 1]) : f[d - 1]; + }, r.percentileOfScore = function(o, s, l) { + var f = 0, v = o.length, d = !1, g, E; + for (l === "strict" && (d = !0), E = 0; E < v; E++) + g = o[E], (d && g < s || !d && g <= s) && f++; + return f / v; + }, r.histogram = function(o, s) { + s = s || 4; + var l = r.min(o), f = (r.max(o) - l) / s, v = o.length, d = [], g; + for (g = 0; g < s; g++) + d[g] = 0; + for (g = 0; g < v; g++) + d[i.min(i.floor((o[g] - l) / f), s - 1)] += 1; + return d; + }, r.covariance = function(o, s) { + var l = r.mean(o), f = r.mean(s), v = o.length, d = new Array(v), g; + for (g = 0; g < v; g++) + d[g] = (o[g] - l) * (s[g] - f); + return r.sum(d) / (v - 1); + }, r.corrcoeff = function(o, s) { + return r.covariance(o, s) / r.stdev(o, 1) / r.stdev(s, 1); + }, r.spearmancoeff = function(u, o) { + return u = r.rank(u), o = r.rank(o), r.corrcoeff(u, o); + }, r.stanMoment = function(o, s) { + for (var l = r.mean(o), f = r.stdev(o), v = o.length, d = 0, g = 0; g < v; g++) + d += i.pow((o[g] - l) / f, s); + return d / o.length; + }, r.skewness = function(o) { + return r.stanMoment(o, 3); + }, r.kurtosis = function(o) { + return r.stanMoment(o, 4) - 3; + }; + var p = r.prototype; + (function(u) { + for (var o = 0; o < u.length; o++) + (function(s) { + p[s] = function(l, f) { + var v = [], d = 0, g = this; + if (a(l) && (f = l, l = !1), f) + return setTimeout(function() { + f.call(g, p[s].call(g, l)); + }), this; + if (this.length > 1) { + for (g = l === !0 ? this : this.transpose(); d < g.length; d++) + v[d] = r[s](g[d]); + return v; + } + return r[s](this[0], l); + }; + })(u[o]); + })("cumsum cumprod".split(" ")), function(u) { + for (var o = 0; o < u.length; o++) + (function(s) { + p[s] = function(l, f) { + var v = [], d = 0, g = this; + if (a(l) && (f = l, l = !1), f) + return setTimeout(function() { + f.call(g, p[s].call(g, l)); + }), this; + if (this.length > 1) { + for (s !== "sumrow" && (g = l === !0 ? this : this.transpose()); d < g.length; d++) + v[d] = r[s](g[d]); + return l === !0 ? r[s](r.utils.toVector(v)) : v; + } + return r[s](this[0], l); + }; + })(u[o]); + }("sum sumsqrd sumsqerr sumrow product min max unique mean meansqerr geomean median diff rank mode range variance deviation stdev meandev meddev coeffvar quartiles histogram skewness kurtosis".split(" ")), function(u) { + for (var o = 0; o < u.length; o++) + (function(s) { + p[s] = function() { + var l = [], f = 0, v = this, d = Array.prototype.slice.call(arguments), g; + if (a(d[d.length - 1])) { + g = d[d.length - 1]; + var E = d.slice(0, d.length - 1); + return setTimeout(function() { + g.call( + v, + p[s].apply(v, E) + ); + }), this; + } else { + g = void 0; + var A = function(N) { + return r[s].apply(v, [N].concat(d)); + }; + } + if (this.length > 1) { + for (v = v.transpose(); f < v.length; f++) + l[f] = A(v[f]); + return l; + } + return A(this[0]); + }; + })(u[o]); + }("quantiles percentileOfScore".split(" ")); + }(n, Math), function(r, i) { + r.gammaln = function(c) { + var h = 0, p = [ + 76.18009172947146, + -86.50532032941678, + 24.01409824083091, + -1.231739572450155, + 0.001208650973866179, + -5395239384953e-18 + ], u = 1.000000000190015, o, s, l; + for (l = (s = o = c) + 5.5, l -= (o + 0.5) * i.log(l); h < 6; h++) + u += p[h] / ++s; + return i.log(2.5066282746310007 * u / o) - l; + }, r.loggam = function(c) { + var h, p, u, o, s, l, f, v = [ + 0.08333333333333333, + -0.002777777777777778, + 7936507936507937e-19, + -5952380952380952e-19, + 8417508417508418e-19, + -0.001917526917526918, + 0.00641025641025641, + -0.02955065359477124, + 0.1796443723688307, + -1.3924322169059 + ]; + if (h = c, f = 0, c == 1 || c == 2) + return 0; + for (c <= 7 && (f = i.floor(7 - c), h = c + f), p = 1 / (h * h), u = 2 * i.PI, s = v[9], l = 8; l >= 0; l--) + s *= p, s += v[l]; + if (o = s / h + 0.5 * i.log(u) + (h - 0.5) * i.log(h) - h, c <= 7) + for (l = 1; l <= f; l++) + o -= i.log(h - 1), h -= 1; + return o; + }, r.gammafn = function(c) { + var h = [ + -1.716185138865495, + 24.76565080557592, + -379.80425647094563, + 629.3311553128184, + 866.9662027904133, + -31451.272968848367, + -36144.413418691176, + 66456.14382024054 + ], p = [ + -30.8402300119739, + 315.35062697960416, + -1015.1563674902192, + -3107.771671572311, + 22538.11842098015, + 4755.846277527881, + -134659.9598649693, + -115132.2596755535 + ], u = !1, o = 0, s = 0, l = 0, f = c, v, d, g, E; + if (c > 171.6243769536076) + return 1 / 0; + if (f <= 0) + if (E = f % 1 + 36e-17, E) + u = (f & 1 ? -1 : 1) * i.PI / i.sin(i.PI * E), f = 1 - f; + else + return 1 / 0; + for (g = f, f < 1 ? d = f++ : d = (f -= o = (f | 0) - 1) - 1, v = 0; v < 8; ++v) + l = (l + h[v]) * d, s = s * d + p[v]; + if (E = l / s + 1, g < f) + E /= g; + else if (g > f) + for (v = 0; v < o; ++v) + E *= f, f++; + return u && (E = u / E), E; + }, r.gammap = function(c, h) { + return r.lowRegGamma(c, h) * r.gammafn(c); + }, r.lowRegGamma = function(c, h) { + var p = r.gammaln(c), u = c, o = 1 / c, s = o, l = h + 1 - c, f = 1 / 1e-30, v = 1 / l, d = v, g = 1, E = -~(i.log(c >= 1 ? c : 1 / c) * 8.5 + c * 0.4 + 17), A; + if (h < 0 || c <= 0) + return NaN; + if (h < c + 1) { + for (; g <= E; g++) + o += s *= h / ++u; + return o * i.exp(-h + c * i.log(h) - p); + } + for (; g <= E; g++) + A = -g * (g - c), l += 2, v = A * v + l, f = l + A / f, v = 1 / v, d *= v * f; + return 1 - d * i.exp(-h + c * i.log(h) - p); + }, r.factorialln = function(c) { + return c < 0 ? NaN : r.gammaln(c + 1); + }, r.factorial = function(c) { + return c < 0 ? NaN : r.gammafn(c + 1); + }, r.combination = function(c, h) { + return c > 170 || h > 170 ? i.exp(r.combinationln(c, h)) : r.factorial(c) / r.factorial(h) / r.factorial(c - h); + }, r.combinationln = function(c, h) { + return r.factorialln(c) - r.factorialln(h) - r.factorialln(c - h); + }, r.permutation = function(c, h) { + return r.factorial(c) / r.factorial(c - h); + }, r.betafn = function(c, h) { + if (!(c <= 0 || h <= 0)) + return c + h > 170 ? i.exp(r.betaln(c, h)) : r.gammafn(c) * r.gammafn(h) / r.gammafn(c + h); + }, r.betaln = function(c, h) { + return r.gammaln(c) + r.gammaln(h) - r.gammaln(c + h); + }, r.betacf = function(c, h, p) { + var u = 1e-30, o = 1, s = h + p, l = h + 1, f = h - 1, v = 1, d = 1 - s * c / l, g, E, A, m; + for (i.abs(d) < u && (d = u), d = 1 / d, m = d; o <= 100 && (g = 2 * o, E = o * (p - o) * c / ((f + g) * (h + g)), d = 1 + E * d, i.abs(d) < u && (d = u), v = 1 + E / v, i.abs(v) < u && (v = u), d = 1 / d, m *= d * v, E = -(h + o) * (s + o) * c / ((h + g) * (l + g)), d = 1 + E * d, i.abs(d) < u && (d = u), v = 1 + E / v, i.abs(v) < u && (v = u), d = 1 / d, A = d * v, m *= A, !(i.abs(A - 1) < 3e-7)); o++) + ; + return m; + }, r.gammapinv = function(c, h) { + var p = 0, u = h - 1, o = 1e-8, s = r.gammaln(h), l, f, v, d, g, E, A; + if (c >= 1) + return i.max(100, h + 100 * i.sqrt(h)); + if (c <= 0) + return 0; + for (h > 1 ? (E = i.log(u), A = i.exp(u * (E - 1) - s), g = c < 0.5 ? c : 1 - c, v = i.sqrt(-2 * i.log(g)), l = (2.30753 + v * 0.27061) / (1 + v * (0.99229 + v * 0.04481)) - v, c < 0.5 && (l = -l), l = i.max( + 1e-3, + h * i.pow(1 - 1 / (9 * h) - l / (3 * i.sqrt(h)), 3) + )) : (v = 1 - h * (0.253 + h * 0.12), c < v ? l = i.pow(c / v, 1 / h) : l = 1 - i.log(1 - (c - v) / (1 - v))); p < 12; p++) { + if (l <= 0) + return 0; + if (f = r.lowRegGamma(h, l) - c, h > 1 ? v = A * i.exp(-(l - u) + u * (i.log(l) - E)) : v = i.exp(-l + u * i.log(l) - s), d = f / v, l -= v = d / (1 - 0.5 * i.min(1, d * ((h - 1) / l - 1))), l <= 0 && (l = 0.5 * (l + v)), i.abs(v) < o * l) + break; + } + return l; + }, r.erf = function(c) { + var h = [ + -1.3026537197817094, + 0.6419697923564902, + 0.019476473204185836, + -0.00956151478680863, + -946595344482036e-18, + 366839497852761e-18, + 42523324806907e-18, + -20278578112534e-18, + -1624290004647e-18, + 130365583558e-17, + 15626441722e-18, + -85238095915e-18, + 6529054439e-18, + 5059343495e-18, + -991364156e-18, + -227365122e-18, + 96467911e-18, + 2394038e-18, + -6886027e-18, + 894487e-18, + 313092e-18, + -112708e-18, + 381e-18, + 7106e-18, + -1523e-18, + -94e-18, + 121e-18, + -28e-18 + ], p = h.length - 1, u = !1, o = 0, s = 0, l, f, v, d; + for (c < 0 && (c = -c, u = !0), l = 2 / (2 + c), f = 4 * l - 2; p > 0; p--) + v = o, o = f * o - s + h[p], s = v; + return d = l * i.exp(-c * c + 0.5 * (h[0] + f * o) - s), u ? d - 1 : 1 - d; + }, r.erfc = function(c) { + return 1 - r.erf(c); + }, r.erfcinv = function(c) { + var h = 0, p, u, o, s; + if (c >= 2) + return -100; + if (c <= 0) + return 100; + for (s = c < 1 ? c : 2 - c, o = i.sqrt(-2 * i.log(s / 2)), p = -0.70711 * ((2.30753 + o * 0.27061) / (1 + o * (0.99229 + o * 0.04481)) - o); h < 2; h++) + u = r.erfc(p) - s, p += u / (1.1283791670955126 * i.exp(-p * p) - p * u); + return c < 1 ? p : -p; + }, r.ibetainv = function(c, h, p) { + var u = 1e-8, o = h - 1, s = p - 1, l = 0, f, v, d, g, E, A, m, N, y, R, T; + if (c <= 0) + return 0; + if (c >= 1) + return 1; + for (h >= 1 && p >= 1 ? (d = c < 0.5 ? c : 1 - c, g = i.sqrt(-2 * i.log(d)), m = (2.30753 + g * 0.27061) / (1 + g * (0.99229 + g * 0.04481)) - g, c < 0.5 && (m = -m), N = (m * m - 3) / 6, y = 2 / (1 / (2 * h - 1) + 1 / (2 * p - 1)), R = m * i.sqrt(N + y) / y - (1 / (2 * p - 1) - 1 / (2 * h - 1)) * (N + 5 / 6 - 2 / (3 * y)), m = h / (h + p * i.exp(2 * R))) : (f = i.log(h / (h + p)), v = i.log(p / (h + p)), g = i.exp(h * f) / h, E = i.exp(p * v) / p, R = g + E, c < g / R ? m = i.pow(h * R * c, 1 / h) : m = 1 - i.pow(p * R * (1 - c), 1 / p)), T = -r.gammaln(h) - r.gammaln(p) + r.gammaln(h + p); l < 10; l++) { + if (m === 0 || m === 1) + return m; + if (A = r.ibeta(m, h, p) - c, g = i.exp(o * i.log(m) + s * i.log(1 - m) + T), E = A / g, m -= g = E / (1 - 0.5 * i.min(1, E * (o / m - s / (1 - m)))), m <= 0 && (m = 0.5 * (m + g)), m >= 1 && (m = 0.5 * (m + g + 1)), i.abs(g) < u * m && l > 0) + break; + } + return m; + }, r.ibeta = function(c, h, p) { + var u = c === 0 || c === 1 ? 0 : i.exp(r.gammaln(h + p) - r.gammaln(h) - r.gammaln(p) + h * i.log(c) + p * i.log(1 - c)); + return c < 0 || c > 1 ? !1 : c < (h + 1) / (h + p + 2) ? u * r.betacf(c, h, p) / h : 1 - u * r.betacf(1 - c, p, h) / p; + }, r.randn = function(c, h) { + var p, u, o, s, l; + if (h || (h = c), c) + return r.create(c, h, function() { + return r.randn(); + }); + do + p = r._random_fn(), u = 1.7156 * (r._random_fn() - 0.5), o = p - 0.449871, s = i.abs(u) + 0.386595, l = o * o + s * (0.196 * s - 0.25472 * o); + while (l > 0.27597 && (l > 0.27846 || u * u > -4 * i.log(p) * p * p)); + return u / p; + }, r.randg = function(c, h, p) { + var u = c, o, s, l, f, v, d; + if (p || (p = h), c || (c = 1), h) + return d = r.zeros(h, p), d.alter(function() { + return r.randg(c); + }), d; + c < 1 && (c += 1), o = c - 1 / 3, s = 1 / i.sqrt(9 * o); + do { + do + v = r.randn(), f = 1 + s * v; + while (f <= 0); + f = f * f * f, l = r._random_fn(); + } while (l > 1 - 0.331 * i.pow(v, 4) && i.log(l) > 0.5 * v * v + o * (1 - f + i.log(f))); + if (c == u) + return o * f; + do + l = r._random_fn(); + while (l === 0); + return i.pow(l, 1 / u) * o * f; + }, function(a) { + for (var c = 0; c < a.length; c++) + (function(h) { + r.fn[h] = function() { + return r( + r.map(this, function(p) { + return r[h](p); + }) + ); + }; + })(a[c]); + }("gammaln gammafn factorial factorialln".split(" ")), function(a) { + for (var c = 0; c < a.length; c++) + (function(h) { + r.fn[h] = function() { + return r(r[h].apply(null, arguments)); + }; + })(a[c]); + }("randn".split(" ")); + }(n, Math), function(r, i) { + (function(u) { + for (var o = 0; o < u.length; o++) + (function(s) { + r[s] = function l(f, v, d) { + return this instanceof l ? (this._a = f, this._b = v, this._c = d, this) : new l(f, v, d); + }, r.fn[s] = function(l, f, v) { + var d = r[s](l, f, v); + return d.data = this, d; + }, r[s].prototype.sample = function(l) { + var f = this._a, v = this._b, d = this._c; + return l ? r.alter(l, function() { + return r[s].sample(f, v, d); + }) : r[s].sample(f, v, d); + }, function(l) { + for (var f = 0; f < l.length; f++) + (function(v) { + r[s].prototype[v] = function(d) { + var g = this._a, E = this._b, A = this._c; + return !d && d !== 0 && (d = this.data), typeof d != "number" ? r.fn.map.call(d, function(m) { + return r[s][v](m, g, E, A); + }) : r[s][v](d, g, E, A); + }; + })(l[f]); + }("pdf cdf inv".split(" ")), function(l) { + for (var f = 0; f < l.length; f++) + (function(v) { + r[s].prototype[v] = function() { + return r[s][v](this._a, this._b, this._c); + }; + })(l[f]); + }("mean median mode variance".split(" ")); + })(u[o]); + })("beta centralF cauchy chisquare exponential gamma invgamma kumaraswamy laplace lognormal noncentralt normal pareto studentt weibull uniform binomial negbin hypgeom poisson triangular tukey arcsine".split(" ")), r.extend(r.beta, { + pdf: function(o, s, l) { + return o > 1 || o < 0 ? 0 : s == 1 && l == 1 ? 1 : s < 512 && l < 512 ? i.pow(o, s - 1) * i.pow(1 - o, l - 1) / r.betafn(s, l) : i.exp((s - 1) * i.log(o) + (l - 1) * i.log(1 - o) - r.betaln(s, l)); + }, + cdf: function(o, s, l) { + return o > 1 || o < 0 ? (o > 1) * 1 : r.ibeta(o, s, l); + }, + inv: function(o, s, l) { + return r.ibetainv(o, s, l); + }, + mean: function(o, s) { + return o / (o + s); + }, + median: function(o, s) { + return r.ibetainv(0.5, o, s); + }, + mode: function(o, s) { + return (o - 1) / (o + s - 2); + }, + // return a random sample + sample: function(o, s) { + var l = r.randg(o); + return l / (l + r.randg(s)); + }, + variance: function(o, s) { + return o * s / (i.pow(o + s, 2) * (o + s + 1)); + } + }), r.extend(r.centralF, { + // This implementation of the pdf function avoids float overflow + // See the way that R calculates this value: + // https://svn.r-project.org/R/trunk/src/nmath/df.c + pdf: function(o, s, l) { + var f, v, d; + return o < 0 ? 0 : s <= 2 ? o === 0 && s < 2 ? 1 / 0 : o === 0 && s === 2 ? 1 : 1 / r.betafn(s / 2, l / 2) * i.pow(s / l, s / 2) * i.pow(o, s / 2 - 1) * i.pow(1 + s / l * o, -(s + l) / 2) : (f = s * o / (l + o * s), v = l / (l + o * s), d = s * v / 2, d * r.binomial.pdf((s - 2) / 2, (s + l - 2) / 2, f)); + }, + cdf: function(o, s, l) { + return o < 0 ? 0 : r.ibeta(s * o / (s * o + l), s / 2, l / 2); + }, + inv: function(o, s, l) { + return l / (s * (1 / r.ibetainv(o, s / 2, l / 2) - 1)); + }, + mean: function(o, s) { + return s > 2 ? s / (s - 2) : void 0; + }, + mode: function(o, s) { + return o > 2 ? s * (o - 2) / (o * (s + 2)) : void 0; + }, + // return a random sample + sample: function(o, s) { + var l = r.randg(o / 2) * 2, f = r.randg(s / 2) * 2; + return l / o / (f / s); + }, + variance: function(o, s) { + if (!(s <= 4)) + return 2 * s * s * (o + s - 2) / (o * (s - 2) * (s - 2) * (s - 4)); + } + }), r.extend(r.cauchy, { + pdf: function(o, s, l) { + return l < 0 ? 0 : l / (i.pow(o - s, 2) + i.pow(l, 2)) / i.PI; + }, + cdf: function(o, s, l) { + return i.atan((o - s) / l) / i.PI + 0.5; + }, + inv: function(u, o, s) { + return o + s * i.tan(i.PI * (u - 0.5)); + }, + median: function(o) { + return o; + }, + mode: function(o) { + return o; + }, + sample: function(o, s) { + return r.randn() * i.sqrt(1 / (2 * r.randg(0.5))) * s + o; + } + }), r.extend(r.chisquare, { + pdf: function(o, s) { + return o < 0 ? 0 : o === 0 && s === 2 ? 0.5 : i.exp((s / 2 - 1) * i.log(o) - o / 2 - s / 2 * i.log(2) - r.gammaln(s / 2)); + }, + cdf: function(o, s) { + return o < 0 ? 0 : r.lowRegGamma(s / 2, o / 2); + }, + inv: function(u, o) { + return 2 * r.gammapinv(u, 0.5 * o); + }, + mean: function(u) { + return u; + }, + // TODO: this is an approximation (is there a better way?) + median: function(o) { + return o * i.pow(1 - 2 / (9 * o), 3); + }, + mode: function(o) { + return o - 2 > 0 ? o - 2 : 0; + }, + sample: function(o) { + return r.randg(o / 2) * 2; + }, + variance: function(o) { + return 2 * o; + } + }), r.extend(r.exponential, { + pdf: function(o, s) { + return o < 0 ? 0 : s * i.exp(-s * o); + }, + cdf: function(o, s) { + return o < 0 ? 0 : 1 - i.exp(-s * o); + }, + inv: function(u, o) { + return -i.log(1 - u) / o; + }, + mean: function(u) { + return 1 / u; + }, + median: function(u) { + return 1 / u * i.log(2); + }, + mode: function() { + return 0; + }, + sample: function(o) { + return -1 / o * i.log(r._random_fn()); + }, + variance: function(u) { + return i.pow(u, -2); + } + }), r.extend(r.gamma, { + pdf: function(o, s, l) { + return o < 0 ? 0 : o === 0 && s === 1 ? 1 / l : i.exp((s - 1) * i.log(o) - o / l - r.gammaln(s) - s * i.log(l)); + }, + cdf: function(o, s, l) { + return o < 0 ? 0 : r.lowRegGamma(s, o / l); + }, + inv: function(u, o, s) { + return r.gammapinv(u, o) * s; + }, + mean: function(u, o) { + return u * o; + }, + mode: function(o, s) { + if (o > 1) + return (o - 1) * s; + }, + sample: function(o, s) { + return r.randg(o) * s; + }, + variance: function(o, s) { + return o * s * s; + } + }), r.extend(r.invgamma, { + pdf: function(o, s, l) { + return o <= 0 ? 0 : i.exp(-(s + 1) * i.log(o) - l / o - r.gammaln(s) + s * i.log(l)); + }, + cdf: function(o, s, l) { + return o <= 0 ? 0 : 1 - r.lowRegGamma(s, l / o); + }, + inv: function(u, o, s) { + return s / r.gammapinv(1 - u, o); + }, + mean: function(u, o) { + return u > 1 ? o / (u - 1) : void 0; + }, + mode: function(o, s) { + return s / (o + 1); + }, + sample: function(o, s) { + return s / r.randg(o); + }, + variance: function(o, s) { + if (!(o <= 2)) + return s * s / ((o - 1) * (o - 1) * (o - 2)); + } + }), r.extend(r.kumaraswamy, { + pdf: function(o, s, l) { + return o === 0 && s === 1 ? l : o === 1 && l === 1 ? s : i.exp(i.log(s) + i.log(l) + (s - 1) * i.log(o) + (l - 1) * i.log(1 - i.pow(o, s))); + }, + cdf: function(o, s, l) { + return o < 0 ? 0 : o > 1 ? 1 : 1 - i.pow(1 - i.pow(o, s), l); + }, + inv: function(o, s, l) { + return i.pow(1 - i.pow(1 - o, 1 / l), 1 / s); + }, + mean: function(u, o) { + return o * r.gammafn(1 + 1 / u) * r.gammafn(o) / r.gammafn(1 + 1 / u + o); + }, + median: function(o, s) { + return i.pow(1 - i.pow(2, -1 / s), 1 / o); + }, + mode: function(o, s) { + if (o >= 1 && s >= 1 && o !== 1 && s !== 1) + return i.pow((o - 1) / (o * s - 1), 1 / o); + }, + variance: function() { + throw new Error("variance not yet implemented"); + } + }), r.extend(r.lognormal, { + pdf: function(o, s, l) { + return o <= 0 ? 0 : i.exp(-i.log(o) - 0.5 * i.log(2 * i.PI) - i.log(l) - i.pow(i.log(o) - s, 2) / (2 * l * l)); + }, + cdf: function(o, s, l) { + return o < 0 ? 0 : 0.5 + 0.5 * r.erf((i.log(o) - s) / i.sqrt(2 * l * l)); + }, + inv: function(u, o, s) { + return i.exp(-1.4142135623730951 * s * r.erfcinv(2 * u) + o); + }, + mean: function(o, s) { + return i.exp(o + s * s / 2); + }, + median: function(o) { + return i.exp(o); + }, + mode: function(o, s) { + return i.exp(o - s * s); + }, + sample: function(o, s) { + return i.exp(r.randn() * s + o); + }, + variance: function(o, s) { + return (i.exp(s * s) - 1) * i.exp(2 * o + s * s); + } + }), r.extend(r.noncentralt, { + pdf: function(o, s, l) { + var f = 1e-14; + return i.abs(l) < f ? r.studentt.pdf(o, s) : i.abs(o) < f ? i.exp(r.gammaln((s + 1) / 2) - l * l / 2 - 0.5 * i.log(i.PI * s) - r.gammaln(s / 2)) : s / o * (r.noncentralt.cdf(o * i.sqrt(1 + 2 / s), s + 2, l) - r.noncentralt.cdf(o, s, l)); + }, + cdf: function(o, s, l) { + var f = 1e-14, v = 200; + if (i.abs(l) < f) + return r.studentt.cdf(o, s); + var d = !1; + o < 0 && (d = !0, l = -l); + for (var g = r.normal.cdf(-l, 0, 1), E = f + 1, A = E, m = o * o / (o * o + s), N = 0, y = i.exp(-l * l / 2), R = i.exp(-l * l / 2 - 0.5 * i.log(2) - r.gammaln(3 / 2)) * l; N < v || A > f || E > f; ) + A = E, N > 0 && (y *= l * l / (2 * N), R *= l * l / (2 * (N + 1 / 2))), E = y * r.beta.cdf(m, N + 0.5, s / 2) + R * r.beta.cdf(m, N + 1, s / 2), g += 0.5 * E, N++; + return d ? 1 - g : g; + } + }), r.extend(r.normal, { + pdf: function(o, s, l) { + return i.exp(-0.5 * i.log(2 * i.PI) - i.log(l) - i.pow(o - s, 2) / (2 * l * l)); + }, + cdf: function(o, s, l) { + return 0.5 * (1 + r.erf((o - s) / i.sqrt(2 * l * l))); + }, + inv: function(u, o, s) { + return -1.4142135623730951 * s * r.erfcinv(2 * u) + o; + }, + mean: function(u) { + return u; + }, + median: function(o) { + return o; + }, + mode: function(u) { + return u; + }, + sample: function(o, s) { + return r.randn() * s + o; + }, + variance: function(u, o) { + return o * o; + } + }), r.extend(r.pareto, { + pdf: function(o, s, l) { + return o < s ? 0 : l * i.pow(s, l) / i.pow(o, l + 1); + }, + cdf: function(o, s, l) { + return o < s ? 0 : 1 - i.pow(s / o, l); + }, + inv: function(o, s, l) { + return s / i.pow(1 - o, 1 / l); + }, + mean: function(o, s) { + if (!(s <= 1)) + return s * i.pow(o, s) / (s - 1); + }, + median: function(o, s) { + return o * (s * i.SQRT2); + }, + mode: function(o) { + return o; + }, + variance: function(u, o) { + if (!(o <= 2)) + return u * u * o / (i.pow(o - 1, 2) * (o - 2)); + } + }), r.extend(r.studentt, { + pdf: function(o, s) { + return s = s > 1e100 ? 1e100 : s, 1 / (i.sqrt(s) * r.betafn(0.5, s / 2)) * i.pow(1 + o * o / s, -((s + 1) / 2)); + }, + cdf: function(o, s) { + var l = s / 2; + return r.ibeta((o + i.sqrt(o * o + s)) / (2 * i.sqrt(o * o + s)), l, l); + }, + inv: function(u, o) { + var s = r.ibetainv(2 * i.min(u, 1 - u), 0.5 * o, 0.5); + return s = i.sqrt(o * (1 - s) / s), u > 0.5 ? s : -s; + }, + mean: function(o) { + return o > 1 ? 0 : void 0; + }, + median: function() { + return 0; + }, + mode: function() { + return 0; + }, + sample: function(o) { + return r.randn() * i.sqrt(o / (2 * r.randg(o / 2))); + }, + variance: function(o) { + return o > 2 ? o / (o - 2) : o > 1 ? 1 / 0 : void 0; + } + }), r.extend(r.weibull, { + pdf: function(o, s, l) { + return o < 0 || s < 0 || l < 0 ? 0 : l / s * i.pow(o / s, l - 1) * i.exp(-i.pow(o / s, l)); + }, + cdf: function(o, s, l) { + return o < 0 ? 0 : 1 - i.exp(-i.pow(o / s, l)); + }, + inv: function(u, o, s) { + return o * i.pow(-i.log(1 - u), 1 / s); + }, + mean: function(u, o) { + return u * r.gammafn(1 + 1 / o); + }, + median: function(o, s) { + return o * i.pow(i.log(2), 1 / s); + }, + mode: function(o, s) { + return s <= 1 ? 0 : o * i.pow((s - 1) / s, 1 / s); + }, + sample: function(o, s) { + return o * i.pow(-i.log(r._random_fn()), 1 / s); + }, + variance: function(o, s) { + return o * o * r.gammafn(1 + 2 / s) - i.pow(r.weibull.mean(o, s), 2); + } + }), r.extend(r.uniform, { + pdf: function(o, s, l) { + return o < s || o > l ? 0 : 1 / (l - s); + }, + cdf: function(o, s, l) { + return o < s ? 0 : o < l ? (o - s) / (l - s) : 1; + }, + inv: function(u, o, s) { + return o + u * (s - o); + }, + mean: function(o, s) { + return 0.5 * (o + s); + }, + median: function(o, s) { + return r.mean(o, s); + }, + mode: function() { + throw new Error("mode is not yet implemented"); + }, + sample: function(o, s) { + return o / 2 + s / 2 + (s / 2 - o / 2) * (2 * r._random_fn() - 1); + }, + variance: function(o, s) { + return i.pow(s - o, 2) / 12; + } + }); + function a(u, o, s, l) { + for (var f = 0, v = 1, d = 1, g = 1, E = 0, A = 0, m; i.abs((d - A) / d) > l; ) + A = d, m = -(o + E) * (o + s + E) * u / (o + 2 * E) / (o + 2 * E + 1), f = d + m * f, v = g + m * v, E = E + 1, m = E * (s - E) * u / (o + 2 * E - 1) / (o + 2 * E), d = f + m * d, g = v + m * g, f = f / g, v = v / g, d = d / g, g = 1; + return d / o; + } + r.extend(r.binomial, { + pdf: function(o, s, l) { + return l === 0 || l === 1 ? s * l === o ? 1 : 0 : r.combination(s, o) * i.pow(l, o) * i.pow(1 - l, s - o); + }, + cdf: function(o, s, l) { + var f, v = 1e-10; + if (o < 0) + return 0; + if (o >= s) + return 1; + if (l < 0 || l > 1 || s <= 0) + return NaN; + o = i.floor(o); + var d = l, g = o + 1, E = s - o, A = g + E, m = i.exp(r.gammaln(A) - r.gammaln(E) - r.gammaln(g) + g * i.log(d) + E * i.log(1 - d)); + return d < (g + 1) / (A + 2) ? f = m * a(d, g, E, v) : f = 1 - m * a(1 - d, E, g, v), i.round((1 - f) * (1 / v)) / (1 / v); + } + }), r.extend(r.negbin, { + pdf: function(o, s, l) { + return o !== o >>> 0 ? !1 : o < 0 ? 0 : r.combination(o + s - 1, s - 1) * i.pow(1 - l, o) * i.pow(l, s); + }, + cdf: function(o, s, l) { + var f = 0, v = 0; + if (o < 0) + return 0; + for (; v <= o; v++) + f += r.negbin.pdf(v, s, l); + return f; + } + }), r.extend(r.hypgeom, { + pdf: function(o, s, l, f) { + if (o !== o | 0) + return !1; + if (o < 0 || o < l - (s - f)) + return 0; + if (o > f || o > l) + return 0; + if (l * 2 > s) + return f * 2 > s ? r.hypgeom.pdf(s - l - f + o, s, s - l, s - f) : r.hypgeom.pdf(f - o, s, s - l, f); + if (f * 2 > s) + return r.hypgeom.pdf(l - o, s, l, s - f); + if (l < f) + return r.hypgeom.pdf(o, s, f, l); + for (var v = 1, d = 0, g = 0; g < o; g++) { + for (; v > 1 && d < f; ) + v *= 1 - l / (s - d), d++; + v *= (f - g) * (l - g) / ((g + 1) * (s - l - f + g + 1)); + } + for (; d < f; d++) + v *= 1 - l / (s - d); + return i.min(1, i.max(0, v)); + }, + cdf: function(o, s, l, f) { + if (o < 0 || o < l - (s - f)) + return 0; + if (o >= f || o >= l) + return 1; + if (l * 2 > s) + return f * 2 > s ? r.hypgeom.cdf(s - l - f + o, s, s - l, s - f) : 1 - r.hypgeom.cdf(f - o - 1, s, s - l, f); + if (f * 2 > s) + return 1 - r.hypgeom.cdf(l - o - 1, s, l, s - f); + if (l < f) + return r.hypgeom.cdf(o, s, f, l); + for (var v = 1, d = 1, g = 0, E = 0; E < o; E++) { + for (; v > 1 && g < f; ) { + var A = 1 - l / (s - g); + d *= A, v *= A, g++; + } + d *= (f - E) * (l - E) / ((E + 1) * (s - l - f + E + 1)), v += d; + } + for (; g < f; g++) + v *= 1 - l / (s - g); + return i.min(1, i.max(0, v)); + } + }), r.extend(r.poisson, { + pdf: function(o, s) { + return s < 0 || o % 1 !== 0 || o < 0 ? 0 : i.pow(s, o) * i.exp(-s) / r.factorial(o); + }, + cdf: function(o, s) { + var l = [], f = 0; + if (o < 0) + return 0; + for (; f <= o; f++) + l.push(r.poisson.pdf(f, s)); + return r.sum(l); + }, + mean: function(u) { + return u; + }, + variance: function(u) { + return u; + }, + sampleSmall: function(o) { + var s = 1, l = 0, f = i.exp(-o); + do + l++, s *= r._random_fn(); + while (s > f); + return l - 1; + }, + sampleLarge: function(o) { + var s = o, l, f, v, d, g, E, A, m, N, y; + for (d = i.sqrt(s), g = i.log(s), A = 0.931 + 2.53 * d, E = -0.059 + 0.02483 * A, m = 1.1239 + 1.1328 / (A - 3.4), N = 0.9277 - 3.6224 / (A - 2); ; ) { + if (f = i.random() - 0.5, v = i.random(), y = 0.5 - i.abs(f), l = i.floor((2 * E / y + A) * f + s + 0.43), y >= 0.07 && v <= N) + return l; + if (!(l < 0 || y < 0.013 && v > y) && i.log(v) + i.log(m) - i.log(E / (y * y) + A) <= -s + l * g - r.loggam(l + 1)) + return l; + } + }, + sample: function(o) { + return o < 10 ? this.sampleSmall(o) : this.sampleLarge(o); + } + }), r.extend(r.triangular, { + pdf: function(o, s, l, f) { + return l <= s || f < s || f > l ? NaN : o < s || o > l ? 0 : o < f ? 2 * (o - s) / ((l - s) * (f - s)) : o === f ? 2 / (l - s) : 2 * (l - o) / ((l - s) * (l - f)); + }, + cdf: function(o, s, l, f) { + return l <= s || f < s || f > l ? NaN : o <= s ? 0 : o >= l ? 1 : o <= f ? i.pow(o - s, 2) / ((l - s) * (f - s)) : 1 - i.pow(l - o, 2) / ((l - s) * (l - f)); + }, + inv: function(o, s, l, f) { + return l <= s || f < s || f > l ? NaN : o <= (f - s) / (l - s) ? s + (l - s) * i.sqrt(o * ((f - s) / (l - s))) : s + (l - s) * (1 - i.sqrt((1 - o) * (1 - (f - s) / (l - s)))); + }, + mean: function(o, s, l) { + return (o + s + l) / 3; + }, + median: function(o, s, l) { + if (l <= (o + s) / 2) + return s - i.sqrt((s - o) * (s - l)) / i.sqrt(2); + if (l > (o + s) / 2) + return o + i.sqrt((s - o) * (l - o)) / i.sqrt(2); + }, + mode: function(o, s, l) { + return l; + }, + sample: function(o, s, l) { + var f = r._random_fn(); + return f < (l - o) / (s - o) ? o + i.sqrt(f * (s - o) * (l - o)) : s - i.sqrt((1 - f) * (s - o) * (s - l)); + }, + variance: function(o, s, l) { + return (o * o + s * s + l * l - o * s - o * l - s * l) / 18; + } + }), r.extend(r.arcsine, { + pdf: function(o, s, l) { + return l <= s ? NaN : o <= s || o >= l ? 0 : 2 / i.PI * i.pow(i.pow(l - s, 2) - i.pow(2 * o - s - l, 2), -0.5); + }, + cdf: function(o, s, l) { + return o < s ? 0 : o < l ? 2 / i.PI * i.asin(i.sqrt((o - s) / (l - s))) : 1; + }, + inv: function(u, o, s) { + return o + (0.5 - 0.5 * i.cos(i.PI * u)) * (s - o); + }, + mean: function(o, s) { + return s <= o ? NaN : (o + s) / 2; + }, + median: function(o, s) { + return s <= o ? NaN : (o + s) / 2; + }, + mode: function() { + throw new Error("mode is not yet implemented"); + }, + sample: function(o, s) { + return (o + s) / 2 + (s - o) / 2 * i.sin(2 * i.PI * r.uniform.sample(0, 1)); + }, + variance: function(o, s) { + return s <= o ? NaN : i.pow(s - o, 2) / 8; + } + }); + function c(u) { + return u / i.abs(u); + } + r.extend(r.laplace, { + pdf: function(o, s, l) { + return l <= 0 ? 0 : i.exp(-i.abs(o - s) / l) / (2 * l); + }, + cdf: function(o, s, l) { + return l <= 0 ? 0 : o < s ? 0.5 * i.exp((o - s) / l) : 1 - 0.5 * i.exp(-(o - s) / l); + }, + mean: function(u) { + return u; + }, + median: function(u) { + return u; + }, + mode: function(u) { + return u; + }, + variance: function(u, o) { + return 2 * o * o; + }, + sample: function(o, s) { + var l = r._random_fn() - 0.5; + return o - s * c(l) * i.log(1 - 2 * i.abs(l)); + } + }); + function h(u, o, s) { + var l = 12, f = 6, v = -30, d = -50, g = 60, E = 8, A = 3, m = 2, N = 3, y = [ + 0.9815606342467192, + 0.9041172563704749, + 0.7699026741943047, + 0.5873179542866175, + 0.3678314989981802, + 0.1252334085114689 + ], R = [ + 0.04717533638651183, + 0.10693932599531843, + 0.16007832854334622, + 0.20316742672306592, + 0.2334925365383548, + 0.24914704581340277 + ], T = u * 0.5; + if (T >= E) + return 1; + var w = 2 * r.normal.cdf(T, 0, 1, 1, 0) - 1; + w >= i.exp(d / s) ? w = i.pow(w, s) : w = 0; + var C; + u > A ? C = m : C = N; + for (var M = T, _ = (E - T) / C, W = M + _, F = 0, S = s - 1, G = 1; G <= C; G++) { + for (var J = 0, le = 0.5 * (W + M), tt = 0.5 * (W - M), Ae = 1; Ae <= l; Ae++) { + var Be, Fe; + f < Ae ? (Be = l - Ae + 1, Fe = y[Be - 1]) : (Be = Ae, Fe = -y[Be - 1]); + var nt = tt * Fe, Ee = le + nt, ue = Ee * Ee; + if (ue > g) + break; + var gt = 2 * r.normal.cdf(Ee, 0, 1, 1, 0), Bt = 2 * r.normal.cdf(Ee, u, 1, 1, 0), Et = gt * 0.5 - Bt * 0.5; + Et >= i.exp(v / S) && (Et = R[Be - 1] * i.exp(-(0.5 * ue)) * i.pow(Et, S), J += Et); + } + J *= 2 * tt * s / i.sqrt(2 * i.PI), F += J, M = W, W += _; + } + return w += F, w <= i.exp(v / o) ? 0 : (w = i.pow(w, o), w >= 1 ? 1 : w); + } + function p(u, o, s) { + var l = 0.322232421088, f = 0.099348462606, v = -1, d = 0.588581570495, g = -0.342242088547, E = 0.531103462366, A = -0.204231210125, m = 0.10353775285, N = -453642210148e-16, y = 0.0038560700634, R = 0.8832, T = 0.2368, w = 1.214, C = 1.208, M = 1.4142, _ = 120, W = 0.5 - 0.5 * u, F = i.sqrt(i.log(1 / (W * W))), S = F + ((((F * N + A) * F + g) * F + v) * F + l) / ((((F * y + m) * F + E) * F + d) * F + f); + s < _ && (S += (S * S * S + S) / s / 4); + var G = R - T * S; + return s < _ && (G += -w / s + C * S / s), S * (G * i.log(o - 1) + M); + } + r.extend(r.tukey, { + cdf: function(o, s, l) { + var f = 1, v = s, d = 16, g = 8, E = -30, A = 1e-14, m = 100, N = 800, y = 5e3, R = 25e3, T = 1, w = 0.5, C = 0.25, M = 0.125, _ = [ + 0.9894009349916499, + 0.9445750230732326, + 0.8656312023878318, + 0.755404408355003, + 0.6178762444026438, + 0.45801677765722737, + 0.2816035507792589, + 0.09501250983763744 + ], W = [ + 0.027152459411754096, + 0.062253523938647894, + 0.09515851168249279, + 0.12462897125553388, + 0.14959598881657674, + 0.16915651939500254, + 0.18260341504492358, + 0.1894506104550685 + ]; + if (o <= 0) + return 0; + if (l < 2 || f < 1 || v < 2) + return NaN; + if (!Number.isFinite(o)) + return 1; + if (l > R) + return h(o, f, v); + var F = l * 0.5, S = F * i.log(l) - l * i.log(2) - r.gammaln(F), G = F - 1, J = l * 0.25, le; + l <= m ? le = T : l <= N ? le = w : l <= y ? le = C : le = M, S += i.log(le); + for (var tt = 0, Ae = 1; Ae <= 50; Ae++) { + for (var Be = 0, Fe = (2 * Ae - 1) * le, nt = 1; nt <= d; nt++) { + var Ee, ue; + g < nt ? (Ee = nt - g - 1, ue = S + G * i.log(Fe + _[Ee] * le) - (_[Ee] * le + Fe) * J) : (Ee = nt - 1, ue = S + G * i.log(Fe - _[Ee] * le) + (_[Ee] * le - Fe) * J); + var gt; + if (ue >= E) { + g < nt ? gt = o * i.sqrt((_[Ee] * le + Fe) * 0.5) : gt = o * i.sqrt((-(_[Ee] * le) + Fe) * 0.5); + var Bt = h(gt, f, v), Et = Bt * W[Ee] * i.exp(ue); + Be += Et; + } + } + if (Ae * le >= 1 && Be <= A) + break; + tt += Be; + } + if (Be > A) + throw new Error("tukey.cdf failed to converge"); + return tt > 1 && (tt = 1), tt; + }, + inv: function(u, o, s) { + var l = 1, f = o, v = 1e-4, d = 50; + if (s < 2 || l < 1 || f < 2) + return NaN; + if (u < 0 || u > 1) + return NaN; + if (u === 0) + return 0; + if (u === 1) + return 1 / 0; + var g = p(u, f, s), E = r.tukey.cdf(g, o, s) - u, A; + E > 0 ? A = i.max(0, g - 1) : A = g + 1; + for (var m = r.tukey.cdf(A, o, s) - u, N, y = 1; y < d; y++) { + N = A - m * (A - g) / (m - E), E = m, g = A, N < 0 && (N = 0, m = -u), m = r.tukey.cdf(N, o, s) - u, A = N; + var R = i.abs(A - g); + if (R < v) + return N; + } + throw new Error("tukey.inv failed to converge"); + } + }); + }(n, Math), function(r, i) { + var a = Array.prototype.push, c = r.utils.isArray; + function h(p) { + return c(p) || p instanceof r; + } + r.extend({ + // add a vector/matrix to a vector/matrix or scalar + add: function(u, o) { + return h(o) ? (h(o[0]) || (o = [o]), r.map(u, function(s, l, f) { + return s + o[l][f]; + })) : r.map(u, function(s) { + return s + o; + }); + }, + // subtract a vector or scalar from the vector + subtract: function(u, o) { + return h(o) ? (h(o[0]) || (o = [o]), r.map(u, function(s, l, f) { + return s - o[l][f] || 0; + })) : r.map(u, function(s) { + return s - o; + }); + }, + // matrix division + divide: function(u, o) { + return h(o) ? (h(o[0]) || (o = [o]), r.multiply(u, r.inv(o))) : r.map(u, function(s) { + return s / o; + }); + }, + // matrix multiplication + multiply: function(u, o) { + var s, l, f, v, d, g, E, A; + if (u.length === void 0 && o.length === void 0) + return u * o; + if (d = u.length, g = u[0].length, E = r.zeros(d, f = h(o) ? o[0].length : g), A = 0, h(o)) { + for (; A < f; A++) + for (s = 0; s < d; s++) { + for (v = 0, l = 0; l < g; l++) + v += u[s][l] * o[l][A]; + E[s][A] = v; + } + return d === 1 && A === 1 ? E[0][0] : E; + } + return r.map(u, function(m) { + return m * o; + }); + }, + // outer([1,2,3],[4,5,6]) + // === + // [[1],[2],[3]] times [[4,5,6]] + // -> + // [[4,5,6],[8,10,12],[12,15,18]] + outer: function(u, o) { + return r.multiply(u.map(function(s) { + return [s]; + }), [o]); + }, + // Returns the dot product of two matricies + dot: function(u, o) { + h(u[0]) || (u = [u]), h(o[0]) || (o = [o]); + for (var s = u[0].length === 1 && u.length !== 1 ? r.transpose(u) : u, l = o[0].length === 1 && o.length !== 1 ? r.transpose(o) : o, f = [], v = 0, d = s.length, g = s[0].length, E, A; v < d; v++) { + for (f[v] = [], E = 0, A = 0; A < g; A++) + E += s[v][A] * l[v][A]; + f[v] = E; + } + return f.length === 1 ? f[0] : f; + }, + // raise every element by a scalar + pow: function(u, o) { + return r.map(u, function(s) { + return i.pow(s, o); + }); + }, + // exponentiate every element + exp: function(u) { + return r.map(u, function(o) { + return i.exp(o); + }); + }, + // generate the natural log of every element + log: function(u) { + return r.map(u, function(o) { + return i.log(o); + }); + }, + // generate the absolute values of the vector + abs: function(u) { + return r.map(u, function(o) { + return i.abs(o); + }); + }, + // computes the p-norm of the vector + // In the case that a matrix is passed, uses the first row as the vector + norm: function(u, o) { + var s = 0, l = 0; + for (isNaN(o) && (o = 2), h(u[0]) && (u = u[0]); l < u.length; l++) + s += i.pow(i.abs(u[l]), o); + return i.pow(s, 1 / o); + }, + // computes the angle between two vectors in rads + // In case a matrix is passed, this uses the first row as the vector + angle: function(u, o) { + return i.acos(r.dot(u, o) / (r.norm(u) * r.norm(o))); + }, + // augment one matrix by another + // Note: this function returns a matrix, not a jStat object + aug: function(u, o) { + var s = [], l; + for (l = 0; l < u.length; l++) + s.push(u[l].slice()); + for (l = 0; l < s.length; l++) + a.apply(s[l], o[l]); + return s; + }, + // The inv() function calculates the inverse of a matrix + // Create the inverse by augmenting the matrix by the identity matrix of the + // appropriate size, and then use G-J elimination on the augmented matrix. + inv: function(u) { + for (var o = u.length, s = u[0].length, l = r.identity(o, s), f = r.gauss_jordan(u, l), v = [], d = 0, g; d < o; d++) + for (v[d] = [], g = s; g < f[0].length; g++) + v[d][g - s] = f[d][g]; + return v; + }, + // calculate the determinant of a matrix + det: function p(u) { + if (u.length === 2) + return u[0][0] * u[1][1] - u[0][1] * u[1][0]; + for (var o = 0, s = 0; s < u.length; s++) { + for (var l = [], f = 1; f < u.length; f++) { + l[f - 1] = []; + for (var v = 0; v < u.length; v++) + v < s ? l[f - 1][v] = u[f][v] : v > s && (l[f - 1][v - 1] = u[f][v]); + } + var d = s % 2 ? -1 : 1; + o += p(l) * u[0][s] * d; + } + return o; + }, + gauss_elimination: function(u, o) { + var s = 0, l = 0, f = u.length, v = u[0].length, d = 1, g = 0, E = [], A, m, N, y; + for (u = r.aug(u, o), A = u[0].length, s = 0; s < f; s++) { + for (m = u[s][s], l = s, y = s + 1; y < v; y++) + m < i.abs(u[y][s]) && (m = u[y][s], l = y); + if (l != s) + for (y = 0; y < A; y++) + N = u[s][y], u[s][y] = u[l][y], u[l][y] = N; + for (l = s + 1; l < f; l++) + for (d = u[l][s] / u[s][s], y = s; y < A; y++) + u[l][y] = u[l][y] - d * u[s][y]; + } + for (s = f - 1; s >= 0; s--) { + for (g = 0, l = s + 1; l <= f - 1; l++) + g = g + E[l] * u[s][l]; + E[s] = (u[s][A - 1] - g) / u[s][s]; + } + return E; + }, + gauss_jordan: function(u, o) { + var s = r.aug(u, o), l = s.length, f = s[0].length, v = 0, d, g, E; + for (g = 0; g < l; g++) { + var A = g; + for (E = g + 1; E < l; E++) + i.abs(s[E][g]) > i.abs(s[A][g]) && (A = E); + var m = s[g]; + for (s[g] = s[A], s[A] = m, E = g + 1; E < l; E++) + for (v = s[E][g] / s[g][g], d = g; d < f; d++) + s[E][d] -= s[g][d] * v; + } + for (g = l - 1; g >= 0; g--) { + for (v = s[g][g], E = 0; E < g; E++) + for (d = f - 1; d > g - 1; d--) + s[E][d] -= s[g][d] * s[E][g] / v; + for (s[g][g] /= v, d = l; d < f; d++) + s[g][d] /= v; + } + return s; + }, + // solve equation + // Ax=b + // A is upper triangular matrix + // A=[[1,2,3],[0,4,5],[0,6,7]] + // b=[1,2,3] + // triaUpSolve(A,b) // -> [2.666,0.1666,1.666] + // if you use matrix style + // A=[[1,2,3],[0,4,5],[0,6,7]] + // b=[[1],[2],[3]] + // will return [[2.666],[0.1666],[1.666]] + triaUpSolve: function(u, o) { + var s = u[0].length, l = r.zeros(1, s)[0], f, v = !1; + return o[0].length != null && (o = o.map(function(d) { + return d[0]; + }), v = !0), r.arange(s - 1, -1, -1).forEach(function(d) { + f = r.arange(d + 1, s).map(function(g) { + return l[g] * u[d][g]; + }), l[d] = (o[d] - r.sum(f)) / u[d][d]; + }), v ? l.map(function(d) { + return [d]; + }) : l; + }, + triaLowSolve: function(u, o) { + var s = u[0].length, l = r.zeros(1, s)[0], f, v = !1; + return o[0].length != null && (o = o.map(function(d) { + return d[0]; + }), v = !0), r.arange(s).forEach(function(d) { + f = r.arange(d).map(function(g) { + return u[d][g] * l[g]; + }), l[d] = (o[d] - r.sum(f)) / u[d][d]; + }), v ? l.map(function(d) { + return [d]; + }) : l; + }, + // A -> [L,U] + // A=LU + // L is lower triangular matrix + // U is upper triangular matrix + lu: function(u) { + var o = u.length, s = r.identity(o), l = r.zeros(u.length, u[0].length), f; + return r.arange(o).forEach(function(v) { + l[0][v] = u[0][v]; + }), r.arange(1, o).forEach(function(v) { + r.arange(v).forEach(function(d) { + f = r.arange(d).map(function(g) { + return s[v][g] * l[g][d]; + }), s[v][d] = (u[v][d] - r.sum(f)) / l[d][d]; + }), r.arange(v, o).forEach(function(d) { + f = r.arange(v).map(function(g) { + return s[v][g] * l[g][d]; + }), l[v][d] = u[f.length][d] - r.sum(f); + }); + }), [s, l]; + }, + // A -> T + // A=TT' + // T is lower triangular matrix + cholesky: function(u) { + var o = u.length, s = r.zeros(u.length, u[0].length), l; + return r.arange(o).forEach(function(f) { + l = r.arange(f).map(function(v) { + return i.pow(s[f][v], 2); + }), s[f][f] = i.sqrt(u[f][f] - r.sum(l)), r.arange(f + 1, o).forEach(function(v) { + l = r.arange(f).map(function(d) { + return s[f][d] * s[v][d]; + }), s[v][f] = (u[f][v] - r.sum(l)) / s[f][f]; + }); + }), s; + }, + gauss_jacobi: function(u, o, s, l) { + for (var f = 0, v = 0, d = u.length, g = [], E = [], A = [], m, N, y, R; f < d; f++) + for (g[f] = [], E[f] = [], A[f] = [], v = 0; v < d; v++) + f > v ? (g[f][v] = u[f][v], E[f][v] = A[f][v] = 0) : f < v ? (E[f][v] = u[f][v], g[f][v] = A[f][v] = 0) : (A[f][v] = u[f][v], g[f][v] = E[f][v] = 0); + for (y = r.multiply(r.multiply(r.inv(A), r.add(g, E)), -1), N = r.multiply(r.inv(A), o), m = s, R = r.add(r.multiply(y, s), N), f = 2; i.abs(r.norm(r.subtract(R, m))) > l; ) + m = R, R = r.add(r.multiply(y, m), N), f++; + return R; + }, + gauss_seidel: function(u, o, s, l) { + for (var f = 0, v = u.length, d = [], g = [], E = [], A, m, N, y, R; f < v; f++) + for (d[f] = [], g[f] = [], E[f] = [], A = 0; A < v; A++) + f > A ? (d[f][A] = u[f][A], g[f][A] = E[f][A] = 0) : f < A ? (g[f][A] = u[f][A], d[f][A] = E[f][A] = 0) : (E[f][A] = u[f][A], d[f][A] = g[f][A] = 0); + for (y = r.multiply(r.multiply(r.inv(r.add(E, d)), g), -1), N = r.multiply(r.inv(r.add(E, d)), o), m = s, R = r.add(r.multiply(y, s), N), f = 2; i.abs(r.norm(r.subtract(R, m))) > l; ) + m = R, R = r.add(r.multiply(y, m), N), f = f + 1; + return R; + }, + SOR: function(u, o, s, l, f) { + for (var v = 0, d = u.length, g = [], E = [], A = [], m, N, y, R, T; v < d; v++) + for (g[v] = [], E[v] = [], A[v] = [], m = 0; m < d; m++) + v > m ? (g[v][m] = u[v][m], E[v][m] = A[v][m] = 0) : v < m ? (E[v][m] = u[v][m], g[v][m] = A[v][m] = 0) : (A[v][m] = u[v][m], g[v][m] = E[v][m] = 0); + for (R = r.multiply( + r.inv(r.add(A, r.multiply(g, f))), + r.subtract( + r.multiply(A, 1 - f), + r.multiply(E, f) + ) + ), y = r.multiply(r.multiply(r.inv(r.add( + A, + r.multiply(g, f) + )), o), f), N = s, T = r.add(r.multiply(R, s), y), v = 2; i.abs(r.norm(r.subtract(T, N))) > l; ) + N = T, T = r.add(r.multiply(R, N), y), v++; + return T; + }, + householder: function(u) { + for (var o = u.length, s = u[0].length, l = 0, f = [], v = [], d, g, E, A, m; l < o - 1; l++) { + for (d = 0, A = l + 1; A < s; A++) + d += u[A][l] * u[A][l]; + for (m = u[l + 1][l] > 0 ? -1 : 1, d = m * i.sqrt(d), g = i.sqrt((d * d - u[l + 1][l] * d) / 2), f = r.zeros(o, 1), f[l + 1][0] = (u[l + 1][l] - d) / (2 * g), E = l + 2; E < o; E++) + f[E][0] = u[E][l] / (2 * g); + v = r.subtract( + r.identity(o, s), + r.multiply(r.multiply(f, r.transpose(f)), 2) + ), u = r.multiply(v, r.multiply(u, v)); + } + return u; + }, + // A -> [Q,R] + // Q is orthogonal matrix + // R is upper triangular + QR: function() { + var p = r.sum, u = r.arange; + function o(s) { + var l = s.length, f = s[0].length, v = r.zeros(f, f); + s = r.copy(s); + var d, g, E; + for (g = 0; g < f; g++) { + for (v[g][g] = i.sqrt(p(u(l).map(function(A) { + return s[A][g] * s[A][g]; + }))), d = 0; d < l; d++) + s[d][g] = s[d][g] / v[g][g]; + for (E = g + 1; E < f; E++) + for (v[g][E] = p(u(l).map(function(A) { + return s[A][g] * s[A][E]; + })), d = 0; d < l; d++) + s[d][E] = s[d][E] - s[d][g] * v[g][E]; + } + return [s, v]; + } + return o; + }(), + lstsq: function() { + function p(o) { + o = r.copy(o); + var s = o.length, l = r.identity(s); + return r.arange(s - 1, -1, -1).forEach(function(f) { + r.sliceAssign( + l, + { row: f }, + r.divide(r.slice(l, { row: f }), o[f][f]) + ), r.sliceAssign( + o, + { row: f }, + r.divide(r.slice(o, { row: f }), o[f][f]) + ), r.arange(f).forEach(function(v) { + var d = r.multiply(o[v][f], -1), g = r.slice(o, { row: v }), E = r.multiply(r.slice(o, { row: f }), d); + r.sliceAssign(o, { row: v }, r.add(g, E)); + var A = r.slice(l, { row: v }), m = r.multiply(r.slice(l, { row: f }), d); + r.sliceAssign(l, { row: v }, r.add(A, m)); + }); + }), l; + } + function u(o, s) { + var l = !1; + s[0].length === void 0 && (s = s.map(function(R) { + return [R]; + }), l = !0); + var f = r.QR(o), v = f[0], d = f[1], g = o[0].length, E = r.slice(v, { col: { end: g } }), A = r.slice(d, { row: { end: g } }), m = p(A), N = r.transpose(E); + N[0].length === void 0 && (N = [N]); + var y = r.multiply(r.multiply(m, N), s); + return y.length === void 0 && (y = [[y]]), l ? y.map(function(R) { + return R[0]; + }) : y; + } + return u; + }(), + jacobi: function(u) { + for (var o = 1, s = u.length, l = r.identity(s, s), f = [], v, d, g, E, A, m, N, y; o === 1; ) { + for (m = u[0][1], E = 0, A = 1, d = 0; d < s; d++) + for (g = 0; g < s; g++) + d != g && m < i.abs(u[d][g]) && (m = i.abs(u[d][g]), E = d, A = g); + for (u[E][E] === u[A][A] ? N = u[E][A] > 0 ? i.PI / 4 : -i.PI / 4 : N = i.atan(2 * u[E][A] / (u[E][E] - u[A][A])) / 2, y = r.identity(s, s), y[E][E] = i.cos(N), y[E][A] = -i.sin(N), y[A][E] = i.sin(N), y[A][A] = i.cos(N), l = r.multiply(l, y), v = r.multiply(r.multiply(r.inv(y), u), y), u = v, o = 0, d = 1; d < s; d++) + for (g = 1; g < s; g++) + d != g && i.abs(u[d][g]) > 1e-3 && (o = 1); + } + for (d = 0; d < s; d++) + f.push(u[d][d]); + return [l, f]; + }, + rungekutta: function(u, o, s, l, f, v) { + var d, g, E, A, m; + if (v === 2) + for (; l <= s; ) + d = o * u(l, f), g = o * u(l + o, f + d), E = f + (d + g) / 2, f = E, l = l + o; + if (v === 4) + for (; l <= s; ) + d = o * u(l, f), g = o * u(l + o / 2, f + d / 2), A = o * u(l + o / 2, f + g / 2), m = o * u(l + o, f + A), E = f + (d + 2 * g + 2 * A + m) / 6, f = E, l = l + o; + return f; + }, + romberg: function(u, o, s, l) { + for (var f = 0, v = (s - o) / 2, d = [], g = [], E = [], A, m, N, y, R; f < l / 2; ) { + for (R = u(o), N = o, y = 0; N <= s; N = N + v, y++) + d[y] = N; + for (A = d.length, N = 1; N < A - 1; N++) + R += (N % 2 !== 0 ? 4 : 2) * u(d[N]); + R = v / 3 * (R + u(s)), E[f] = R, v /= 2, f++; + } + for (m = E.length, A = 1; m !== 1; ) { + for (N = 0; N < m - 1; N++) + g[N] = (i.pow(4, A) * E[N + 1] - E[N]) / (i.pow(4, A) - 1); + m = g.length, E = g, g = [], A++; + } + return E; + }, + richardson: function(u, o, s, l) { + function f(T, w) { + for (var C = 0, M = T.length, _; C < M; C++) + T[C] === w && (_ = C); + return _; + } + for (var v = i.abs(s - u[f(u, s) + 1]), d = 0, g = [], E = [], A, m, N, y, R; l >= v; ) + A = f(u, s + l), m = f(u, s), g[d] = (o[A] - 2 * o[m] + o[2 * m - A]) / (l * l), l /= 2, d++; + for (y = g.length, N = 1; y != 1; ) { + for (R = 0; R < y - 1; R++) + E[R] = (i.pow(4, N) * g[R + 1] - g[R]) / (i.pow(4, N) - 1); + y = E.length, g = E, E = [], N++; + } + return g; + }, + simpson: function(u, o, s, l) { + for (var f = (s - o) / l, v = u(o), d = [], g = o, E = 0, A = 1, m; g <= s; g = g + f, E++) + d[E] = g; + for (m = d.length; A < m - 1; A++) + v += (A % 2 !== 0 ? 4 : 2) * u(d[A]); + return f / 3 * (v + u(s)); + }, + hermite: function(u, o, s, l) { + for (var f = u.length, v = 0, d = 0, g = [], E = [], A = [], m = [], N; d < f; d++) { + for (g[d] = 1, N = 0; N < f; N++) + d != N && (g[d] *= (l - u[N]) / (u[d] - u[N])); + for (E[d] = 0, N = 0; N < f; N++) + d != N && (E[d] += 1 / (u[d] - u[N])); + A[d] = (1 - 2 * (l - u[d]) * E[d]) * (g[d] * g[d]), m[d] = (l - u[d]) * (g[d] * g[d]), v += A[d] * o[d] + m[d] * s[d]; + } + return v; + }, + lagrange: function(u, o, s) { + for (var l = 0, f = 0, v, d, g = u.length; f < g; f++) { + for (d = o[f], v = 0; v < g; v++) + f != v && (d *= (s - u[v]) / (u[f] - u[v])); + l += d; + } + return l; + }, + cubic_spline: function(u, o, s) { + for (var l = u.length, f = 0, v, d = [], g = [], E = [], A = [], m = [], N = [], y = []; f < l - 1; f++) + m[f] = u[f + 1] - u[f]; + for (E[0] = 0, f = 1; f < l - 1; f++) + E[f] = 3 / m[f] * (o[f + 1] - o[f]) - 3 / m[f - 1] * (o[f] - o[f - 1]); + for (f = 1; f < l - 1; f++) + d[f] = [], g[f] = [], d[f][f - 1] = m[f - 1], d[f][f] = 2 * (m[f - 1] + m[f]), d[f][f + 1] = m[f], g[f][0] = E[f]; + for (A = r.multiply(r.inv(d), g), v = 0; v < l - 1; v++) + N[v] = (o[v + 1] - o[v]) / m[v] - m[v] * (A[v + 1][0] + 2 * A[v][0]) / 3, y[v] = (A[v + 1][0] - A[v][0]) / (3 * m[v]); + for (v = 0; v < l && !(u[v] > s); v++) + ; + return v -= 1, o[v] + (s - u[v]) * N[v] + r.sq(s - u[v]) * A[v] + (s - u[v]) * r.sq(s - u[v]) * y[v]; + }, + gauss_quadrature: function() { + throw new Error("gauss_quadrature not yet implemented"); + }, + PCA: function(u) { + var o = u.length, s = u[0].length, l = 0, f, v, d = [], g = [], E = [], A = [], m = [], N = [], y = [], R = [], T = [], w = []; + for (l = 0; l < o; l++) + d[l] = r.sum(u[l]) / s; + for (l = 0; l < s; l++) + for (y[l] = [], f = 0; f < o; f++) + y[l][f] = u[f][l] - d[f]; + for (y = r.transpose(y), l = 0; l < o; l++) + for (R[l] = [], f = 0; f < o; f++) + R[l][f] = r.dot([y[l]], [y[f]]) / (s - 1); + for (E = r.jacobi(R), T = E[0], g = E[1], w = r.transpose(T), l = 0; l < g.length; l++) + for (f = l; f < g.length; f++) + g[l] < g[f] && (v = g[l], g[l] = g[f], g[f] = v, A = w[l], w[l] = w[f], w[f] = A); + for (N = r.transpose(y), l = 0; l < o; l++) + for (m[l] = [], f = 0; f < N.length; f++) + m[l][f] = r.dot([w[l]], [N[f]]); + return [u, g, w, m]; + } + }), function(p) { + for (var u = 0; u < p.length; u++) + (function(o) { + r.fn[o] = function(s, l) { + var f = this; + return l ? (setTimeout(function() { + l.call(f, r.fn[o].call(f, s)); + }, 15), this) : typeof r[o](this, s) == "number" ? r[o](this, s) : r(r[o](this, s)); + }; + })(p[u]); + }("add divide multiply subtract dot pow exp log abs norm angle".split(" ")); + }(n, Math), function(r, i) { + var a = [].slice, c = r.utils.isNumber, h = r.utils.isArray; + r.extend({ + // 2 different parameter lists: + // (value, mean, sd) + // (value, array, flag) + zscore: function() { + var o = a.call(arguments); + return c(o[1]) ? (o[0] - o[1]) / o[2] : (o[0] - r.mean(o[1])) / r.stdev(o[1], o[2]); + }, + // 3 different paramter lists: + // (value, mean, sd, sides) + // (zscore, sides) + // (value, array, sides, flag) + ztest: function() { + var o = a.call(arguments), s; + return h(o[1]) ? (s = r.zscore(o[0], o[1], o[3]), o[2] === 1 ? r.normal.cdf(-i.abs(s), 0, 1) : r.normal.cdf(-i.abs(s), 0, 1) * 2) : o.length > 2 ? (s = r.zscore(o[0], o[1], o[2]), o[3] === 1 ? r.normal.cdf(-i.abs(s), 0, 1) : r.normal.cdf(-i.abs(s), 0, 1) * 2) : (s = o[0], o[1] === 1 ? r.normal.cdf(-i.abs(s), 0, 1) : r.normal.cdf(-i.abs(s), 0, 1) * 2); + } + }), r.extend(r.fn, { + zscore: function(o, s) { + return (o - this.mean()) / this.stdev(s); + }, + ztest: function(o, s, l) { + var f = i.abs(this.zscore(o, l)); + return s === 1 ? r.normal.cdf(-f, 0, 1) : r.normal.cdf(-f, 0, 1) * 2; + } + }), r.extend({ + // 2 parameter lists + // (value, mean, sd, n) + // (value, array) + tscore: function() { + var o = a.call(arguments); + return o.length === 4 ? (o[0] - o[1]) / (o[2] / i.sqrt(o[3])) : (o[0] - r.mean(o[1])) / (r.stdev(o[1], !0) / i.sqrt(o[1].length)); + }, + // 3 different paramter lists: + // (value, mean, sd, n, sides) + // (tscore, n, sides) + // (value, array, sides) + ttest: function() { + var o = a.call(arguments), s; + return o.length === 5 ? (s = i.abs(r.tscore(o[0], o[1], o[2], o[3])), o[4] === 1 ? r.studentt.cdf(-s, o[3] - 1) : r.studentt.cdf(-s, o[3] - 1) * 2) : c(o[1]) ? (s = i.abs(o[0]), o[2] == 1 ? r.studentt.cdf(-s, o[1] - 1) : r.studentt.cdf(-s, o[1] - 1) * 2) : (s = i.abs(r.tscore(o[0], o[1])), o[2] == 1 ? r.studentt.cdf(-s, o[1].length - 1) : r.studentt.cdf(-s, o[1].length - 1) * 2); + } + }), r.extend(r.fn, { + tscore: function(o) { + return (o - this.mean()) / (this.stdev(!0) / i.sqrt(this.cols())); + }, + ttest: function(o, s) { + return s === 1 ? 1 - r.studentt.cdf(i.abs(this.tscore(o)), this.cols() - 1) : r.studentt.cdf(-i.abs(this.tscore(o)), this.cols() - 1) * 2; + } + }), r.extend({ + // Paramter list is as follows: + // (array1, array2, array3, ...) + // or it is an array of arrays + // array of arrays conversion + anovafscore: function() { + var o = a.call(arguments), s, l, f, v, d, g, E, A; + if (o.length === 1) { + for (d = new Array(o[0].length), E = 0; E < o[0].length; E++) + d[E] = o[0][E]; + o = d; + } + for (l = new Array(), E = 0; E < o.length; E++) + l = l.concat(o[E]); + for (f = r.mean(l), s = 0, E = 0; E < o.length; E++) + s = s + o[E].length * i.pow(r.mean(o[E]) - f, 2); + for (s /= o.length - 1, g = 0, E = 0; E < o.length; E++) + for (v = r.mean(o[E]), A = 0; A < o[E].length; A++) + g += i.pow(o[E][A] - v, 2); + return g /= l.length - o.length, s / g; + }, + // 2 different paramter setups + // (array1, array2, array3, ...) + // (anovafscore, df1, df2) + anovaftest: function() { + var o = a.call(arguments), s, l, f, v; + if (c(o[0])) + return 1 - r.centralF.cdf(o[0], o[1], o[2]); + var d = r.anovafscore(o); + for (s = o.length - 1, f = 0, v = 0; v < o.length; v++) + f = f + o[v].length; + return l = f - s - 1, 1 - r.centralF.cdf(d, s, l); + }, + ftest: function(o, s, l) { + return 1 - r.centralF.cdf(o, s, l); + } + }), r.extend(r.fn, { + anovafscore: function() { + return r.anovafscore(this.toArray()); + }, + anovaftes: function() { + var o = 0, s; + for (s = 0; s < this.length; s++) + o = o + this[s].length; + return r.ftest(this.anovafscore(), this.length - 1, o - this.length); + } + }), r.extend({ + // 2 parameter lists + // (mean1, mean2, n1, n2, sd) + // (array1, array2, sd) + qscore: function() { + var o = a.call(arguments), s, l, f, v, d; + return c(o[0]) ? (s = o[0], l = o[1], f = o[2], v = o[3], d = o[4]) : (s = r.mean(o[0]), l = r.mean(o[1]), f = o[0].length, v = o[1].length, d = o[2]), i.abs(s - l) / (d * i.sqrt((1 / f + 1 / v) / 2)); + }, + // 3 different parameter lists: + // (qscore, n, k) + // (mean1, mean2, n1, n2, sd, n, k) + // (array1, array2, sd, n, k) + qtest: function() { + var o = a.call(arguments), s; + o.length === 3 ? (s = o[0], o = o.slice(1)) : o.length === 7 ? (s = r.qscore(o[0], o[1], o[2], o[3], o[4]), o = o.slice(5)) : (s = r.qscore(o[0], o[1], o[2]), o = o.slice(3)); + var l = o[0], f = o[1]; + return 1 - r.tukey.cdf(s, f, l - f); + }, + tukeyhsd: function(o) { + for (var s = r.pooledstdev(o), l = o.map(function(A) { + return r.mean(A); + }), f = o.reduce(function(A, m) { + return A + m.length; + }, 0), v = [], d = 0; d < o.length; ++d) + for (var g = d + 1; g < o.length; ++g) { + var E = r.qtest(l[d], l[g], o[d].length, o[g].length, s, f, o.length); + v.push([[d, g], E]); + } + return v; + } + }), r.extend({ + // 2 different parameter setups + // (value, alpha, sd, n) + // (value, alpha, array) + normalci: function() { + var o = a.call(arguments), s = new Array(2), l; + return o.length === 4 ? l = i.abs(r.normal.inv(o[1] / 2, 0, 1) * o[2] / i.sqrt(o[3])) : l = i.abs(r.normal.inv(o[1] / 2, 0, 1) * r.stdev(o[2]) / i.sqrt(o[2].length)), s[0] = o[0] - l, s[1] = o[0] + l, s; + }, + // 2 different parameter setups + // (value, alpha, sd, n) + // (value, alpha, array) + tci: function() { + var o = a.call(arguments), s = new Array(2), l; + return o.length === 4 ? l = i.abs(r.studentt.inv(o[1] / 2, o[3] - 1) * o[2] / i.sqrt(o[3])) : l = i.abs(r.studentt.inv(o[1] / 2, o[2].length - 1) * r.stdev(o[2], !0) / i.sqrt(o[2].length)), s[0] = o[0] - l, s[1] = o[0] + l, s; + }, + significant: function(o, s) { + return o < s; + } + }), r.extend(r.fn, { + normalci: function(o, s) { + return r.normalci(o, s, this.toArray()); + }, + tci: function(o, s) { + return r.tci(o, s, this.toArray()); + } + }); + function p(u, o, s, l) { + if (u > 1 || s > 1 || u <= 0 || s <= 0) + throw new Error("Proportions should be greater than 0 and less than 1"); + var f = (u * o + s * l) / (o + l), v = i.sqrt(f * (1 - f) * (1 / o + 1 / l)); + return (u - s) / v; + } + r.extend(r.fn, { + oneSidedDifferenceOfProportions: function(o, s, l, f) { + var v = p(o, s, l, f); + return r.ztest(v, 1); + }, + twoSidedDifferenceOfProportions: function(o, s, l, f) { + var v = p(o, s, l, f); + return r.ztest(v, 2); + } + }); + }(n, Math), n.models = function() { + function r(p) { + var u = p[0].length, o = n.arange(u).map(function(s) { + var l = n.arange(u).filter(function(f) { + return f !== s; + }); + return i( + n.col(p, s).map(function(f) { + return f[0]; + }), + n.col(p, l) + ); + }); + return o; + } + function i(p, u) { + var o = p.length, s = u[0].length - 1, l = o - s - 1, f = n.lstsq(u, p), v = n.multiply(u, f.map(function(y) { + return [y]; + })).map(function(y) { + return y[0]; + }), d = n.subtract(p, v), g = n.mean(p), E = n.sum(v.map(function(y) { + return Math.pow(y - g, 2); + })), A = n.sum(p.map(function(y, R) { + return Math.pow(y - v[R], 2); + })), m = E + A, N = E / m; + return { + exog: u, + endog: p, + nobs: o, + df_model: s, + df_resid: l, + coef: f, + predict: v, + resid: d, + ybar: g, + SST: m, + SSE: E, + SSR: A, + R2: N + }; + } + function a(p) { + var u = r(p.exog), o = Math.sqrt(p.SSR / p.df_resid), s = u.map(function(g) { + var E = g.SST, A = g.R2; + return o / Math.sqrt(E * (1 - A)); + }), l = p.coef.map(function(g, E) { + return (g - 0) / s[E]; + }), f = l.map(function(g) { + var E = n.studentt.cdf(g, p.df_resid); + return (E > 0.5 ? 1 - E : E) * 2; + }), v = n.studentt.inv(0.975, p.df_resid), d = p.coef.map(function(g, E) { + var A = v * s[E]; + return [g - A, g + A]; + }); + return { + se: s, + t: l, + p: f, + sigmaHat: o, + interval95: d + }; + } + function c(p) { + var u = p.R2 / p.df_model / ((1 - p.R2) / p.df_resid), o = function(l, f, v) { + return n.beta.cdf(l / (v / f + l), f / 2, v / 2); + }, s = 1 - o(u, p.df_model, p.df_resid); + return { F_statistic: u, pvalue: s }; + } + function h(p, u) { + var o = i(p, u), s = a(o), l = c(o), f = 1 - (1 - o.R2) * ((o.nobs - 1) / o.df_resid); + return o.t = s, o.f = l, o.adjust_R2 = f, o; + } + return { ols: h }; + }(), n.extend({ + buildxmatrix: function() { + for (var i = new Array(arguments.length), a = 0; a < arguments.length; a++) { + var c = [1]; + i[a] = c.concat(arguments[a]); + } + return n(i); + }, + builddxmatrix: function() { + for (var i = new Array(arguments[0].length), a = 0; a < arguments[0].length; a++) { + var c = [1]; + i[a] = c.concat(arguments[0][a]); + } + return n(i); + }, + buildjxmatrix: function(i) { + for (var a = new Array(i.length), c = 0; c < i.length; c++) + a[c] = i[c]; + return n.builddxmatrix(a); + }, + buildymatrix: function(i) { + return n(i).transpose(); + }, + buildjymatrix: function(i) { + return i.transpose(); + }, + matrixmult: function(i, a) { + var c, h, p, u, o; + if (i.cols() == a.rows()) { + if (a.rows() > 1) { + for (u = [], c = 0; c < i.rows(); c++) + for (u[c] = [], h = 0; h < a.cols(); h++) { + for (o = 0, p = 0; p < i.cols(); p++) + o += i.toArray()[c][p] * a.toArray()[p][h]; + u[c][h] = o; + } + return n(u); + } + for (u = [], c = 0; c < i.rows(); c++) + for (u[c] = [], h = 0; h < a.cols(); h++) { + for (o = 0, p = 0; p < i.cols(); p++) + o += i.toArray()[c][p] * a.toArray()[h]; + u[c][h] = o; + } + return n(u); + } + }, + //regress and regresst to be fixed + regress: function(i, a) { + var c = n.xtranspxinv(i), h = i.transpose(), p = n.matrixmult(n(c), h); + return n.matrixmult(p, a); + }, + regresst: function(i, a, c) { + var h = n.regress(i, a), p = {}; + p.anova = {}; + var u = n.jMatYBar(i, h); + p.yBar = u; + var o = a.mean(); + p.anova.residuals = n.residuals(a, u), p.anova.ssr = n.ssr(u, o), p.anova.msr = p.anova.ssr / (i[0].length - 1), p.anova.sse = n.sse(a, u), p.anova.mse = p.anova.sse / (a.length - (i[0].length - 1) - 1), p.anova.sst = n.sst(a, o), p.anova.mst = p.anova.sst / (a.length - 1), p.anova.r2 = 1 - p.anova.sse / p.anova.sst, p.anova.r2 < 0 && (p.anova.r2 = 0), p.anova.fratio = p.anova.msr / p.anova.mse, p.anova.pvalue = n.anovaftest( + p.anova.fratio, + i[0].length - 1, + a.length - (i[0].length - 1) - 1 + ), p.anova.rmse = Math.sqrt(p.anova.mse), p.anova.r2adj = 1 - p.anova.mse / p.anova.mst, p.anova.r2adj < 0 && (p.anova.r2adj = 0), p.stats = new Array(i[0].length); + for (var s = n.xtranspxinv(i), l, f, v, d = 0; d < h.length; d++) + l = Math.sqrt(p.anova.mse * Math.abs(s[d][d])), f = Math.abs(h[d] / l), v = n.ttest(f, a.length - i[0].length - 1, c), p.stats[d] = [h[d], l, f, v]; + return p.regress = h, p; + }, + xtranspx: function(i) { + return n.matrixmult(i.transpose(), i); + }, + xtranspxinv: function(i) { + var a = n.matrixmult(i.transpose(), i), c = n.inv(a); + return c; + }, + jMatYBar: function(i, a) { + var c = n.matrixmult(i, a); + return new n(c); + }, + residuals: function(i, a) { + return n.matrixsubtract(i, a); + }, + ssr: function(i, a) { + for (var c = 0, h = 0; h < i.length; h++) + c += Math.pow(i[h] - a, 2); + return c; + }, + sse: function(i, a) { + for (var c = 0, h = 0; h < i.length; h++) + c += Math.pow(i[h] - a[h], 2); + return c; + }, + sst: function(i, a) { + for (var c = 0, h = 0; h < i.length; h++) + c += Math.pow(i[h] - a, 2); + return c; + }, + matrixsubtract: function(i, a) { + for (var c = new Array(i.length), h = 0; h < i.length; h++) { + c[h] = new Array(i[h].length); + for (var p = 0; p < i[h].length; p++) + c[h][p] = i[h][p] - a[h][p]; + } + return n(c); + } + }), n.jStat = n, n; + }); +})(Fo); +var bo = Fo.exports; +const D = he(), Ye = Po, { FormulaHelpers: Ga, Types: H } = ge(), b = Ga, dn = Bo, di = bo, $a = 536870911, Ha = -536870912, dr = 511, vn = -512, Wa = /^\s?[+-]?\s?[0-9]+[.]?[0-9]*([eE][+\-][0-9]+)?\s?$/, qa = /^\s?([+-]?\s?([0-9]+[.]?[0-9]*([eE][+\-][0-9]+)?)?)\s?[ij]\s?$/, Ya = /^\s?([+-]?\s?[0-9]+[.]?[0-9]*([eE][+\-][0-9]+)?)\s?([+-]?\s?([0-9]+[.]?[0-9]*([eE][+\-][0-9]+)?)?)\s?[ij]\s?$/; +function re(t) { + t = b.accept(t); + let e = 0, n = 0, r = "i"; + if (typeof t == "number") + return { real: t, im: n, unit: r }; + if (typeof t == "boolean") + throw D.VALUE; + let i = t.match(Wa); + if (i) + return e = Number(i[0]), { real: e, im: n, unit: r }; + if (i = t.match(qa), i) + return n = Number(/^\s?[+-]?\s?$/.test(i[1]) ? i[1] + "1" : i[1]), r = i[0].slice(-1), { real: e, im: n, unit: r }; + if (i = t.match(Ya), i) + return e = Number(i[1]), n = Number(/^\s?[+-]?\s?$/.test(i[3]) ? i[3] + "1" : i[3]), r = i[0].slice(-1), { real: e, im: n, unit: r }; + throw D.NUM; +} +const K = { + BESSELI: (t, e) => { + if (t = b.accept(t, H.NUMBER_NO_BOOLEAN), e = b.accept(e, H.NUMBER_NO_BOOLEAN), e = Math.trunc(e), e < 0) + throw D.NUM; + return dn.besseli(t, e); + }, + BESSELJ: (t, e) => { + if (t = b.accept(t, H.NUMBER_NO_BOOLEAN), e = b.accept(e, H.NUMBER_NO_BOOLEAN), e = Math.trunc(e), e < 0) + throw D.NUM; + return dn.besselj(t, e); + }, + BESSELK: (t, e) => { + if (t = b.accept(t, H.NUMBER_NO_BOOLEAN), e = b.accept(e, H.NUMBER_NO_BOOLEAN), e = Math.trunc(e), e < 0) + throw D.NUM; + return dn.besselk(t, e); + }, + BESSELY: (t, e) => { + if (t = b.accept(t, H.NUMBER_NO_BOOLEAN), e = b.accept(e, H.NUMBER_NO_BOOLEAN), e = Math.trunc(e), e < 0) + throw D.NUM; + return dn.bessely(t, e); + }, + BIN2DEC: (t) => { + t = b.accept(t, H.NUMBER_NO_BOOLEAN); + let e = t.toString(); + if (e.length > 10) + throw D.NUM; + return e.length === 10 && e.substring(0, 1) === "1" ? parseInt(e.substring(1), 2) + vn : parseInt(e, 2); + }, + BIN2HEX: (t, e) => { + t = b.accept(t, H.NUMBER_NO_BOOLEAN), e = b.accept(e, H.NUMBER_NO_BOOLEAN, null); + const n = t.toString(); + if (n.length > 10) + throw D.NUM; + if (n.length === 10 && n.substring(0, 1) === "1") + return (parseInt(n.substring(1), 2) + 1099511627264).toString(16).toUpperCase(); + const r = parseInt(t, 2).toString(16); + if (e == null) + return r.toUpperCase(); + if (e < 0) + throw D.NUM; + if (e = Math.trunc(e), e >= r.length) + return (Ye.REPT("0", e - r.length) + r).toUpperCase(); + throw D.NUM; + }, + BIN2OCT: (t, e) => { + t = b.accept(t, H.NUMBER_NO_BOOLEAN), e = b.accept(e, H.NUMBER, null); + let n = t.toString(); + if (n.length > 10) + throw D.NUM; + if (n.length === 10 && n.substr(0, 1) === "1") + return (parseInt(n.substr(1), 2) + 1073741312).toString(8); + let r = parseInt(t, 2).toString(8); + if (e == null) + return r.toUpperCase(); + if (e < 0) + throw D.NUM; + if (e = Math.trunc(e), e >= r.length) + return Ye.REPT("0", e - r.length) + r; + throw D.NUM; + }, + BITAND: (t, e) => { + if (t = b.accept(t, H.NUMBER), e = b.accept(e, H.NUMBER), t < 0 || e < 0 || Math.floor(t) !== t || Math.floor(e) !== e || t > 281474976710655 || e > 281474976710655) + throw D.NUM; + return t & e; + }, + BITLSHIFT: (t, e) => { + if (t = b.accept(t, H.NUMBER), e = b.accept(e, H.NUMBER), e = Math.trunc(e), Math.abs(e) > 53 || t < 0 || Math.floor(t) !== t || t > 281474976710655) + throw D.NUM; + const n = e >= 0 ? t * 2 ** e : Math.trunc(t / 2 ** -e); + if (n > 281474976710655) + throw D.NUM; + return n; + }, + BITOR: (t, e) => { + if (t = b.accept(t, H.NUMBER), e = b.accept(e, H.NUMBER), t < 0 || e < 0 || Math.floor(t) !== t || Math.floor(e) !== e || t > 281474976710655 || e > 281474976710655) + throw D.NUM; + return t | e; + }, + BITRSHIFT: (t, e) => (t = b.accept(t, H.NUMBER), e = b.accept(e, H.NUMBER), K.BITLSHIFT(t, -e)), + BITXOR: (t, e) => { + if (t = b.accept(t, H.NUMBER), e = b.accept(e, H.NUMBER), t < 0 || t > 281474976710655 || Math.floor(t) !== t || e < 0 || e > 281474976710655 || Math.floor(e) !== e) + throw D.NUM; + return t ^ e; + }, + COMPLEX: (t, e, n) => { + if (t = b.accept(t, H.NUMBER_NO_BOOLEAN), e = b.accept(e, H.NUMBER_NO_BOOLEAN), n = b.accept(n, H.STRING, "i"), n !== "i" && n !== "j") + throw D.VALUE; + if (t === 0 && e === 0) + return 0; + if (t === 0) + return e === 1 ? n : e === -1 ? "-" + n : e.toString() + n; + if (e === 0) + return t.toString(); + { + let r = e > 0 ? "+" : ""; + return e === 1 ? t.toString() + r + n : e === -1 ? t.toString() + r + "-" + n : t.toString() + r + e.toString() + n; + } + }, + DEC2BIN: (t, e) => { + if (t = b.accept(t, H.NUMBER), e = b.accept(e, H.NUMBER, null), t < vn || t > dr) + throw D.NUM; + if (t < 0) + return "1" + Ye.REPT("0", 9 - (512 + t).toString(2).length) + (512 + t).toString(2); + let n = parseInt(t, 10).toString(2); + if (e == null) + return n; + if (e = Math.trunc(e), e <= 0 || e < n.length) + throw D.NUM; + return Ye.REPT("0", e - n.length) + n; + }, + DEC2HEX: (t, e) => { + if (t = b.accept(t, H.NUMBER), e = b.accept(e, H.NUMBER, null), t < -549755813888 || t > 549755813888) + throw D.NUM; + if (t < 0) + return (1099511627776 + t).toString(16).toUpperCase(); + let n = parseInt(t, 10).toString(16); + if (e == null) + return n.toUpperCase(); + if (e = Math.trunc(e), e <= 0 || e < n.length) + throw D.NUM; + return Ye.REPT("0", e - n.length) + n.toUpperCase(); + }, + DEC2OCT: (t, e) => { + if (t = b.accept(t, H.NUMBER), e = b.accept(e, H.NUMBER, null), t < -536870912 || t > 536870912) + throw D.NUM; + if (t < 0) + return (t + 1073741824).toString(8); + let n = parseInt(t, 10).toString(8); + if (e == null) + return n.toUpperCase(); + if (e = Math.trunc(e), e <= 0 || e < n.length) + throw D.NUM; + return Ye.REPT("0", e - n.length) + n; + }, + DELTA: (t, e) => (t = b.accept(t, H.NUMBER_NO_BOOLEAN), e = b.accept(e, H.NUMBER_NO_BOOLEAN, 0), t === e ? 1 : 0), + ERF: (t, e) => (t = b.accept(t, H.NUMBER_NO_BOOLEAN), e = b.accept(e, H.NUMBER_NO_BOOLEAN, 0), di.erf(t)), + ERFC: (t) => (t = b.accept(t, H.NUMBER_NO_BOOLEAN), di.erfc(t)), + GESTEP: (t, e) => (t = b.accept(t, H.NUMBER_NO_BOOLEAN), e = b.accept(e, H.NUMBER_NO_BOOLEAN, 0), t >= e ? 1 : 0), + HEX2BIN: (t, e) => { + if (t = b.accept(t, H.STRING), e = b.accept(e, H.NUMBER, null), t.length > 10 || !/^[0-9a-fA-F]*$/.test(t)) + throw D.NUM; + let n = t.length === 10 && t.substr(0, 1).toLowerCase() === "f", r = n ? parseInt(t, 16) - 1099511627776 : parseInt(t, 16); + if (r < vn || r > dr) + throw D.NUM; + if (n) + return "1" + Ye.REPT("0", 9 - (r + 512).toString(2).length) + (r + 512).toString(2); + let i = r.toString(2); + if (e == null) + return i; + if (e = Math.trunc(e), e <= 0 || e < i.length) + throw D.NUM; + return Ye.REPT("0", e - i.length) + i; + }, + HEX2DEC: (t) => { + if (t = b.accept(t, H.STRING), t.length > 10 || !/^[0-9a-fA-F]*$/.test(t)) + throw D.NUM; + let e = parseInt(t, 16); + return e >= 549755813888 ? e - 1099511627776 : e; + }, + HEX2OCT: (t, e) => { + if (t = b.accept(t, H.STRING), t.length > 10 || !/^[0-9a-fA-F]*$/.test(t)) + throw D.NUM; + let n = K.HEX2DEC(t); + if (n > $a || n < Ha) + throw D.NUM; + return K.DEC2OCT(n, e); + }, + IMABS: (t) => { + const { real: e, im: n } = re(t); + return Math.sqrt(Math.pow(e, 2) + Math.pow(n, 2)); + }, + IMAGINARY: (t) => re(t).im, + IMARGUMENT: (t) => { + const { real: e, im: n } = re(t); + if (e === 0 && n === 0) + throw D.DIV0; + return e === 0 && n > 0 ? Math.PI / 2 : e === 0 && n < 0 ? -Math.PI / 2 : e < 0 && n === 0 ? Math.PI : e > 0 && n === 0 ? 0 : e > 0 ? Math.atan(n / e) : e < 0 && n > 0 ? Math.atan(n / e) + Math.PI : Math.atan(n / e) - Math.PI; + }, + IMCONJUGATE: (t) => { + const { real: e, im: n, unit: r } = re(t); + return n !== 0 ? K.COMPLEX(e, -n, r) : "" + e; + }, + IMCOS: (t) => { + const { real: e, im: n, unit: r } = re(t); + let i = Math.cos(e) * (Math.exp(n) + Math.exp(-n)) / 2, a = -Math.sin(e) * (Math.exp(n) - Math.exp(-n)) / 2; + return K.COMPLEX(i, a, r); + }, + IMCOSH: (t) => { + const { real: e, im: n, unit: r } = re(t); + let i = Math.cos(n) * (Math.exp(e) + Math.exp(-e)) / 2, a = -Math.sin(n) * (Math.exp(e) - Math.exp(-e)) / 2; + return K.COMPLEX(i, -a, r); + }, + IMCOT: (t) => { + t = b.accept(t); + let e = K.IMCOS(t), n = K.IMSIN(t); + return K.IMDIV(e, n); + }, + IMCSC: (t) => (t = b.accept(t), K.IMDIV("1", K.IMSIN(t))), + IMCSCH: (t) => (t = b.accept(t), K.IMDIV("1", K.IMSINH(t))), + IMDIV: (t, e) => { + const n = re(t), r = n.real, i = n.im, a = n.unit, c = re(e), h = c.real, p = c.im, u = c.unit; + if (h === 0 && p === 0 || a !== u) + throw D.NUM; + let o = a, s = Math.pow(h, 2) + Math.pow(p, 2); + return K.COMPLEX((r * h + i * p) / s, (i * h - r * p) / s, o); + }, + IMEXP: (t) => { + const { real: e, im: n, unit: r } = re(t); + let i = Math.exp(e); + return K.COMPLEX(i * Math.cos(n), i * Math.sin(n), r); + }, + IMLN: (t) => { + const { real: e, im: n, unit: r } = re(t); + return K.COMPLEX( + Math.log(Math.sqrt(Math.pow(e, 2) + Math.pow(n, 2))), + Math.atan(n / e), + r + ); + }, + IMLOG10: (t) => { + const { real: e, im: n, unit: r } = re(t); + let i = Math.log(Math.sqrt(Math.pow(e, 2) + Math.pow(n, 2))) / Math.log(10), a = Math.atan(n / e) / Math.log(10); + return K.COMPLEX(i, a, r); + }, + IMLOG2: (t) => { + const { real: e, im: n, unit: r } = re(t); + let i = Math.log(Math.sqrt(Math.pow(e, 2) + Math.pow(n, 2))) / Math.log(2), a = Math.atan(n / e) / Math.log(2); + return K.COMPLEX(i, a, r); + }, + IMPOWER: (t, e) => { + let { unit: n } = re(t); + e = b.accept(e, H.NUMBER_NO_BOOLEAN); + let r = Math.pow(K.IMABS(t), e), i = K.IMARGUMENT(t), a = r * Math.cos(e * i), c = r * Math.sin(e * i); + return K.COMPLEX(a, c, n); + }, + IMPRODUCT: (...t) => { + let e, n = 0; + return b.flattenParams(t, null, !1, (r) => { + if (n === 0) + e = b.accept(r), re(e); + else { + const i = re(e), a = i.real, c = i.im, h = i.unit, p = re(r), u = p.real, o = p.im, s = p.unit; + if (h !== s) + throw D.VALUE; + e = K.COMPLEX(a * u - c * o, a * o + c * u); + } + n++; + }, 1), e; + }, + IMREAL: (t) => re(t).real, + IMSEC: (t) => K.IMDIV("1", K.IMCOS(t)), + IMSECH: (t) => K.IMDIV("1", K.IMCOSH(t)), + IMSIN: (t) => { + const { real: e, im: n, unit: r } = re(t); + let i = Math.sin(e) * (Math.exp(n) + Math.exp(-n)) / 2, a = Math.cos(e) * (Math.exp(n) - Math.exp(-n)) / 2; + return K.COMPLEX(i, a, r); + }, + IMSINH: (t) => { + const { real: e, im: n, unit: r } = re(t); + let i = Math.cos(n) * (Math.exp(e) - Math.exp(-e)) / 2, a = Math.sin(n) * (Math.exp(e) + Math.exp(-e)) / 2; + return K.COMPLEX(i, a, r); + }, + IMSQRT: (t) => { + const { unit: e } = re(t); + let n = Math.sqrt(K.IMABS(t)), r = K.IMARGUMENT(t); + return K.COMPLEX(n * Math.cos(r / 2), n * Math.sin(r / 2), e); + }, + IMSUB: (t, e) => { + const n = re(t), r = n.real, i = n.im, a = n.unit, c = re(e), h = c.real, p = c.im, u = c.unit; + if (a !== u) + throw D.VALUE; + return K.COMPLEX(r - h, i - p, a); + }, + IMSUM: (...t) => { + let e = 0, n = 0, r; + return b.flattenParams(t, null, !1, (i) => { + const { real: a, im: c, unit: h } = re(i); + if (r || (r = h), r !== h) + throw D.VALUE; + e += a, n += c; + }), K.COMPLEX(e, n, r); + }, + IMTAN: (t) => { + const { unit: e } = re(t); + return K.IMDIV(K.IMSIN(t), K.IMCOS(t), e); + }, + // FIXME: need to check the test cases + OCT2BIN: (t, e) => { + if (t = b.accept(t, H.STRING), e = b.accept(e, H.NUMBER, null), t.length > 10 || e > 10 || e !== null && e < 0) + throw D.NUM; + e = Math.trunc(e); + let n = t.length === 10 && t.substring(0, 1) === "7", r = K.OCT2DEC(t); + if (r < vn || r > dr) + return D.NUM; + if (n) + return "1" + Ye.REPT("0", 9 - (512 + r).toString(2).length) + (512 + r).toString(2); + let i = r.toString(2); + if (e === 0) + return i; + if (e < i.length) + throw D.NUM; + return Ye.REPT("0", e - i.length) + i; + }, + OCT2DEC: (t) => { + if (t = b.accept(t, H.STRING), t.length > 10) + throw D.NUM; + for (const n of t) + if (n < "0" || n > "7") + throw D.NUM; + let e = parseInt(t, 8); + return e >= 536870912 ? e - 1073741824 : e; + }, + OCT2HEX: (t, e) => { + if (t = b.accept(t, H.STRING), e = b.accept(e, H.NUMBER_NO_BOOLEAN, null), t.length > 10) + throw D.NUM; + for (const i of t) + if (i < "0" || i > "7") + throw D.NUM; + if (e = Math.trunc(e), e < 0 || e > 10) + throw D.NUM; + let n = K.OCT2DEC(t), r = K.DEC2HEX(n); + if (e === 0) + return r; + if (e < r.length) + throw D.NUM; + return Ye.REPT("0", e - r.length) + r; + } +}; +var Ka = K; +const te = he(), { FormulaHelpers: za, Types: Oe, WildCard: gn, Address: Xa } = ge(), vi = Gn, X = za, Qa = { + ADDRESS: (t, e, n, r, i) => { + if (t = X.accept(t, Oe.NUMBER), e = X.accept(e, Oe.NUMBER), n = X.accept(n, Oe.NUMBER, 1), r = X.accept(r, Oe.BOOLEAN, !0), i = X.accept(i, Oe.STRING, ""), t < 1 || e < 1 || n < 1 || n > 4) + throw te.VALUE; + let a = ""; + return i.length > 0 && (/[^A-Za-z_.\d\u007F-\uFFFF]/.test(i) ? a += `'${i}'!` : a += i + "!"), r ? (a += n === 1 || n === 3 ? "$" : "", a += Xa.columnNumberToName(e), a += n === 1 || n === 2 ? "$" : "", a += t) : (a += "R", a += n === 4 || n === 3 ? `[${t}]` : t, a += "C", a += n === 4 || n === 2 ? `[${e}]` : e), a; + }, + AREAS: (t) => (t = X.accept(t), t instanceof vi ? t.length : 1), + CHOOSE: (t, ...e) => { + }, + // Special + COLUMN: (t, e) => { + if (e == null) { + if (t.position.col != null) + return t.position.col; + throw Error("FormulaParser.parse is called without position parameter."); + } else { + if (typeof e != "object" || Array.isArray(e)) + throw te.VALUE; + if (X.isCellRef(e)) + return e.ref.col; + if (X.isRangeRef(e)) + return e.ref.from.col; + throw Error("ReferenceFunctions.COLUMN should not reach here."); + } + }, + // Special + COLUMNS: (t, e) => { + if (e == null) + throw Error("COLUMNS requires one argument"); + if (typeof e != "object" || Array.isArray(e)) + throw te.VALUE; + if (X.isCellRef(e)) + return 1; + if (X.isRangeRef(e)) + return Math.abs(e.ref.from.col - e.ref.to.col) + 1; + throw Error("ReferenceFunctions.COLUMNS should not reach here."); + }, + HLOOKUP: (t, e, n, r) => { + t = X.accept(t); + try { + e = X.accept(e, Oe.ARRAY, void 0, !1); + } catch (a) { + throw a instanceof te ? te.NA : a; + } + if (n = X.accept(n, Oe.NUMBER), r = X.accept(r, Oe.BOOLEAN, !0), n < 1) + throw te.VALUE; + if (e[n - 1] === void 0) + throw te.REF; + const i = typeof t; + if (r) { + let a = i === typeof e[0][0] ? e[0][0] : null; + for (let c = 1; c < e[0].length; c++) { + const h = e[0][c]; + if (typeof h === i) { + if (a > t && h > t) + throw te.NA; + if (h === t) + return e[n - 1][c]; + if (a != null && h > t && a <= t) + return e[n - 1][c - 1]; + a = h; + } + } + if (a == null) + throw te.NA; + return a; + } else { + let a = -1; + if (gn.isWildCard(t) ? a = e[0].findIndex((c) => gn.toRegex(t, "i").test(c)) : a = e[0].findIndex((c) => c === t), a === -1) + throw te.NA; + return e[n - 1][a]; + } + }, + // Special + INDEX: (t, e, n, r, i) => { + n = t.utils.extractRefValue(n), n = { value: n.val, isArray: n.isArray }, n = X.accept(n, Oe.NUMBER), n = Math.trunc(n), r == null ? r = 1 : (r = t.utils.extractRefValue(r), r = { value: r.val, isArray: r.isArray }, r = X.accept(r, Oe.NUMBER, 1), r = Math.trunc(r)), i == null ? i = 1 : (i = t.utils.extractRefValue(i), i = { value: i.val, isArray: i.isArray }, i = X.accept(i, Oe.NUMBER, 1), i = Math.trunc(i)); + let a = e; + if (e instanceof vi) + a = e.refs[i - 1]; + else if (i > 1) + throw te.REF; + if (n === 0 && r === 0) + return a; + if (n === 0) { + if (X.isRangeRef(a)) { + if (a.ref.to.col - a.ref.from.col < r - 1) + throw te.REF; + return a.ref.from.col += r - 1, a.ref.to.col = a.ref.from.col, a; + } else if (Array.isArray(a)) { + const c = []; + return a.forEach((h) => c.push([h[r - 1]])), c; + } + } + if (r === 0) { + if (X.isRangeRef(a)) { + if (a.ref.to.row - a.ref.from.row < n - 1) + throw te.REF; + return a.ref.from.row += n - 1, a.ref.to.row = a.ref.from.row, a; + } else if (Array.isArray(a)) + return a[r - 1]; + } + if (n !== 0 && r !== 0) { + if (X.isRangeRef(a)) { + if (a = a.ref, a.to.row - a.from.row < n - 1 || a.to.col - a.from.col < r - 1) + throw te.REF; + return { ref: { row: a.from.row + n - 1, col: a.from.col + r - 1 } }; + } else if (X.isCellRef(a)) { + if (a = a.ref, n > 1 || r > 1) + throw te.REF; + return { ref: { row: a.row + n - 1, col: a.col + r - 1 } }; + } else if (Array.isArray(a)) { + if (a.length < n || a[0].length < r) + throw te.REF; + return a[n - 1][r - 1]; + } + } + }, + MATCH: () => { + }, + // Special + ROW: (t, e) => { + if (e == null) { + if (t.position.row != null) + return t.position.row; + throw Error("FormulaParser.parse is called without position parameter."); + } else { + if (typeof e != "object" || Array.isArray(e)) + throw te.VALUE; + if (X.isCellRef(e)) + return e.ref.row; + if (X.isRangeRef(e)) + return e.ref.from.row; + throw Error("ReferenceFunctions.ROW should not reach here."); + } + }, + // Special + ROWS: (t, e) => { + if (e == null) + throw Error("ROWS requires one argument"); + if (typeof e != "object" || Array.isArray(e)) + throw te.VALUE; + if (X.isCellRef(e)) + return 1; + if (X.isRangeRef(e)) + return Math.abs(e.ref.from.row - e.ref.to.row) + 1; + throw Error("ReferenceFunctions.ROWS should not reach here."); + }, + TRANSPOSE: (t) => { + t = X.accept(t, Oe.ARRAY, void 0, !1); + const e = []; + for (let n = 0; n < t[0].length; n++) { + e[n] = []; + for (let r = 0; r < t.length; r++) + e[n][r] = t[r][n]; + } + return e; + }, + VLOOKUP: (t, e, n, r) => { + t = X.accept(t); + try { + e = X.accept(e, Oe.ARRAY, void 0, !1); + } catch (a) { + throw a instanceof te ? te.NA : a; + } + if (n = X.accept(n, Oe.NUMBER), r = X.accept(r, Oe.BOOLEAN, !0), n < 1) + throw te.VALUE; + if (e[0][n - 1] === void 0) + throw te.REF; + const i = typeof t; + if (r) { + let a = i === typeof e[0][0] ? e[0][0] : null; + for (let c = 1; c < e.length; c++) { + const h = e[c], p = e[c][0]; + if (typeof p === i) { + if (a > t && p > t) + throw te.NA; + if (p === t) + return h[n - 1]; + if (a != null && p > t && a <= t) + return e[c - 1][n - 1]; + a = p; + } + } + if (a == null) + throw te.NA; + return a; + } else { + let a = -1; + if (gn.isWildCard(t) ? a = e.findIndex((c) => gn.toRegex(t, "i").test(c[0])) : a = e.findIndex((c) => c[0] === t), a === -1) + throw te.NA; + return e[a][n - 1]; + } + } +}; +var Za = Qa; +const ct = he(), { FormulaHelpers: Ja, Types: ja } = ge(), me = Ja, ec = { + "#NULL!": 1, + "#DIV/0!": 2, + "#VALUE!": 3, + "#REF!": 4, + "#NAME?": 5, + "#NUM!": 6, + "#N/A": 7 +}, tc = { + CELL: (t, e) => { + }, + "ERROR.TYPE": (t) => { + if (t = me.accept(t), t instanceof ct) + return ec[t.toString()]; + throw ct.NA; + }, + INFO: () => { + }, + ISBLANK: (t) => t.ref ? t.value == null || t.value === "" : !1, + ISERR: (t) => (t = me.accept(t), t instanceof ct && t.toString() !== "#N/A"), + ISERROR: (t) => (t = me.accept(t), t instanceof ct), + ISEVEN: (t) => (t = me.accept(t, ja.NUMBER), t = Math.trunc(t), t % 2 === 0), + ISLOGICAL: (t) => (t = me.accept(t), typeof t == "boolean"), + ISNA: (t) => (t = me.accept(t), t instanceof ct && t.toString() === "#N/A"), + ISNONTEXT: (t) => (t = me.accept(t), typeof t != "string"), + ISNUMBER: (t) => (t = me.accept(t), typeof t == "number"), + ISREF: (t) => !t.ref || me.isCellRef(t) && (t.ref.row > 1048576 || t.ref.col > 16384) || me.isRangeRef(t) && (t.ref.from.row > 1048576 || t.ref.from.col > 16384 || t.ref.to.row > 1048576 || t.ref.to.col > 16384) ? !1 : (t = me.accept(t), !(t instanceof ct && t.toString() === "#REF!")), + ISTEXT: (t) => (t = me.accept(t), typeof t == "string"), + N: (t) => { + t = me.accept(t); + const e = typeof t; + if (e === "number") + return t; + if (e === "boolean") + return Number(t); + if (t instanceof ct) + throw t; + return 0; + }, + NA: () => { + throw ct.NA; + }, + TYPE: (t) => { + if (t.ref) { + if (me.isRangeRef(t)) + return 16; + if (me.isCellRef(t) && (t = me.accept(t), typeof t == "string" && t.length === 0)) + return 1; + } + t = me.accept(t); + const e = typeof t; + if (e === "number") + return 1; + if (e === "string") + return 2; + if (e === "boolean") + return 4; + if (t instanceof ct) + return 16; + if (Array.isArray(t)) + return 64; + } +}; +var nc = tc; +const k = he(), { FormulaHelpers: rc, Types: I } = ge(), O = rc, B = bo, En = So, ic = 2.5066282746310002, Do = { + "BETA.DIST": (t, e, n, r, i, a) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), r = O.accept(r, I.BOOLEAN), i = O.accept(i, I.NUMBER, 0), a = O.accept(a, I.NUMBER, 1), e <= 0 || n <= 0 || t < i || t > a || i === a) + throw k.NUM; + return t = (t - i) / (a - i), r ? B.beta.cdf(t, e, n) : B.beta.pdf(t, e, n) / (a - i); + }, + "BETA.INV": (t, e, n, r, i) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), r = O.accept(r, I.NUMBER, 0), i = O.accept(i, I.NUMBER, 1), e <= 0 || n <= 0 || t <= 0 || t > 1) + throw k.NUM; + return B.beta.inv(t, e, n) * (i - r) + r; + }, + "BINOM.DIST": (t, e, n, r) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), r = O.accept(r, I.BOOLEAN), e < 0 || n < 0 || n > 1 || t < 0 || t > e) + throw k.NUM; + return r ? B.binomial.cdf(t, e, n) : B.binomial.pdf(t, e, n); + }, + "BINOM.DIST.RANGE": (t, e, n, r) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), r = O.accept(r, I.NUMBER, n), t < 0 || e < 0 || e > 1 || n < 0 || n > t || r < n || r > t) + throw k.NUM; + let i = 0; + for (let a = n; a <= r; a++) + i += En.COMBIN(t, a) * Math.pow(e, a) * Math.pow(1 - e, t - a); + return i; + }, + "BINOM.INV": (t, e, n) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), t < 0 || e < 0 || e > 1 || n < 0 || n > 1) + throw k.NUM; + let r = 0; + for (; r <= t; ) { + if (B.binomial.cdf(r, t, e) >= n) + return r; + r++; + } + }, + "CHISQ.DIST": (t, e, n) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), e = Math.trunc(e), t < 0 || e < 1 || e > 10 ** 10) + throw k.NUM; + return n ? B.chisquare.cdf(t, e) : B.chisquare.pdf(t, e); + }, + "CHISQ.DIST.RT": (t, e) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), e = Math.trunc(e), t < 0 || e < 1 || e > 10 ** 10) + throw k.NUM; + return 1 - B.chisquare.cdf(t, e); + }, + "CHISQ.INV": (t, e) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), e = Math.trunc(e), t < 0 || t > 1 || e < 1 || e > 10 ** 10) + throw k.NUM; + return B.chisquare.inv(t, e); + }, + "CHISQ.INV.RT": (t, e) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), e = Math.trunc(e), t < 0 || t > 1 || e < 1 || e > 10 ** 10) + throw k.NUM; + return B.chisquare.inv(1 - t, e); + }, + "CHISQ.TEST": (t, e) => { + const n = O.accept(t, I.ARRAY, void 0, !1, !1), r = O.accept(e, I.ARRAY, void 0, !1, !1); + if (n.length !== r.length || n[0].length !== r[0].length || n.length === 1 && n[0].length === 1) + throw k.NA; + const i = n.length, a = n[0].length; + let c = (i - 1) * (a - 1); + i === 1 ? c = a - 1 : c = i - 1; + let h = 0; + for (let l = 0; l < i; l++) + for (let f = 0; f < a; f++) + if (!(typeof n[l][f] != "number" || typeof r[l][f] != "number")) { + if (r[l][f] === 0) + throw k.DIV0; + h += Math.pow(n[l][f] - r[l][f], 2) / r[l][f]; + } + let p = Math.exp(-0.5 * h); + c % 2 === 1 && (p = p * Math.sqrt(2 * h / Math.PI)); + let u = c; + for (; u >= 2; ) + p = p * h / u, u = u - 2; + let o = p, s = c; + for (; o > 1e-15 * p; ) + s = s + 2, o = o * h / s, p = p + o; + return 1 - p; + }, + "CONFIDENCE.NORM": (t, e, n) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), n = Math.trunc(n), t <= 0 || t >= 1 || e <= 0 || n < 1) + throw k.NUM; + return B.normalci(1, t, e, n)[1] - 1; + }, + "CONFIDENCE.T": (t, e, n) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), n = Math.trunc(n), t <= 0 || t >= 1 || e <= 0 || n < 1) + throw k.NUM; + if (n === 1) + throw k.DIV0; + return B.tci(1, t, e, n)[1] - 1; + }, + CORREL: (t, e) => { + if (t = O.accept(t, I.ARRAY, void 0, !0, !0), e = O.accept(e, I.ARRAY, void 0, !0, !0), t.length !== e.length) + throw k.NA; + const n = [], r = []; + for (let i = 0; i < t.length; i++) + typeof t[i] != "number" || typeof e[i] != "number" || (n.push(t[i]), r.push(e[i])); + if (n.length <= 1) + throw k.DIV0; + return B.corrcoeff(n, r); + }, + "COVARIANCE.P": (t, e) => { + if (t = O.accept(t, I.ARRAY, void 0, !0, !0), e = O.accept(e, I.ARRAY, void 0, !0, !0), t.length !== e.length) + throw k.NA; + const n = [], r = []; + for (let h = 0; h < t.length; h++) + typeof t[h] != "number" || typeof e[h] != "number" || (n.push(t[h]), r.push(e[h])); + const i = B.mean(n), a = B.mean(r); + let c = 0; + for (let h = 0; h < n.length; h++) + c += (n[h] - i) * (r[h] - a); + return c / n.length; + }, + "COVARIANCE.S": (t, e) => { + if (t = O.accept(t, I.ARRAY, void 0, !0, !0), e = O.accept(e, I.ARRAY, void 0, !0, !0), t.length !== e.length) + throw k.NA; + const n = [], r = []; + for (let i = 0; i < t.length; i++) + typeof t[i] != "number" || typeof e[i] != "number" || (n.push(t[i]), r.push(e[i])); + if (n.length <= 1) + throw k.DIV0; + return B.covariance(n, r); + }, + DEVSQ: (...t) => { + let e = 0, n = []; + O.flattenParams(t, I.NUMBER, !0, (i, a) => { + typeof i == "number" && (e += i, n.push(i)); + }); + const r = e / n.length; + e = 0; + for (let i = 0; i < n.length; i++) + e += (n[i] - r) ** 2; + return e; + }, + "EXPON.DIST": (t, e, n) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.BOOLEAN), t < 0 || e <= 0) + throw k.NUM; + return n ? B.exponential.cdf(t, e) : B.exponential.pdf(t, e); + }, + "F.DIST": (t, e, n, r) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), r = O.accept(r, I.BOOLEAN), t < 0 || e < 1 || n < 1) + throw k.NUM; + return e = Math.trunc(e), n = Math.trunc(n), r ? B.centralF.cdf(t, e, n) : B.centralF.pdf(t, e, n); + }, + "F.DIST.RT": (t, e, n) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), t < 0 || e < 1 || n < 1) + throw k.NUM; + return e = Math.trunc(e), n = Math.trunc(n), 1 - B.centralF.cdf(t, e, n); + }, + "F.INV": (t, e, n) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), t < 0 || t > 1 || e < 1 || n < 1) + throw k.NUM; + return e = Math.trunc(e), n = Math.trunc(n), B.centralF.inv(t, e, n); + }, + "F.INV.RT": (t, e, n) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), t < 0 || t > 1 || e < 1 || e >= Math.pow(10, 10) || n < 1 || n >= Math.pow(10, 10)) + throw k.NUM; + return e = Math.trunc(e), n = Math.trunc(n), B.centralF.inv(1 - t, e, n); + }, + /** + * https://en.wikipedia.org/wiki/F-test_of_equality_of_variances + */ + "F.TEST": (t, e) => { + t = O.accept(t, I.ARRAY, void 0, !0, !0), e = O.accept(e, I.ARRAY, void 0, !0, !0); + const n = [], r = []; + let i = 0, a = 0; + for (let p = 0; p < Math.max(t.length, e.length); p++) + typeof t[p] == "number" && (n.push(t[p]), i += t[p]), typeof e[p] == "number" && (r.push(e[p]), a += e[p]); + if (n.length <= 1 || r.length <= 1) + throw k.DIV0; + i /= n.length, a /= r.length; + let c = 0, h = 0; + for (let p = 0; p < n.length; p++) + c += (i - n[p]) ** 2; + c /= n.length - 1; + for (let p = 0; p < r.length; p++) + h += (a - r[p]) ** 2; + return h /= r.length - 1, B.centralF.cdf(c / h, n.length - 1, r.length - 1) * 2; + }, + FISHER: (t) => { + if (t = O.accept(t, I.NUMBER), t <= -1 || t >= 1) + throw k.NUM; + return Math.log((1 + t) / (1 - t)) / 2; + }, + FISHERINV: (t) => { + t = O.accept(t, I.NUMBER); + let e = Math.exp(2 * t); + return (e - 1) / (e + 1); + }, + // FIXME + FORECAST: (t, e, n) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.ARRAY, void 0, !0, !0), n = O.accept(n, I.ARRAY, void 0, !0, !0), n.length !== e.length) + throw k.NA; + const r = [], i = []; + let a = !0; + for (let l = 0; l < e.length; l++) + typeof e[l] != "number" || typeof n[l] != "number" || (r.push(e[l]), i.push(n[l]), n[l] !== n[0] && (a = !1)); + if (a) + throw k.DIV0; + const c = B.mean(r), h = B.mean(i); + let p = 0, u = 0; + for (let l = 0; l < r.length; l++) + p += (i[l] - h) * (r[l] - c), u += (i[l] - h) ** 2; + const o = p / u; + return c - o * h + o * t; + }, + "FORECAST.ETS": () => { + }, + "FORECAST.ETS.CONFINT": () => { + }, + "FORECAST.ETS.SEASONALITY": () => { + }, + "FORECAST.ETS.STAT": () => { + }, + "FORECAST.LINEAR": (...t) => Do.FORECAST(...t), + FREQUENCY: (t, e) => { + t = O.accept(t, I.ARRAY, void 0, !0, !0), e = O.accept(e, I.ARRAY, void 0, !0, !0); + const n = []; + for (let i = 0; i < e.length; i++) + typeof e[i] == "number" && n.push(e[i]); + n.sort(), n.push(1 / 0); + const r = []; + for (let i = 0; i < n.length; i++) { + r[i] = [], r[i][0] = 0; + for (let a = 0; a < t.length; a++) { + if (typeof t[a] != "number") + continue; + t[a] <= n[i] && (r[i][0]++, t[a] = null); + } + } + return r; + }, + GAMMA: (t) => { + if (t = O.accept(t, I.NUMBER), t === 0 || t < 0 && t === Math.trunc(t)) + throw k.NUM; + return B.gammafn(t); + }, + "GAMMA.DIST": (t, e, n, r) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), r = O.accept(r, I.BOOLEAN), t < 0 || e <= 0 || n <= 0) + throw k.NUM; + return r ? B.gamma.cdf(t, e, n, !0) : B.gamma.pdf(t, e, n, !1); + }, + "GAMMA.INV": (t, e, n) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), t < 0 || t > 1 || e <= 0 || n <= 0) + throw k.NUM; + return B.gamma.inv(t, e, n); + }, + GAMMALN: (t) => { + if (t = O.accept(t, I.NUMBER), t <= 0) + throw k.NUM; + return B.gammaln(t); + }, + "GAMMALN.PRECISE": (t) => { + if (t = O.accept(t, I.NUMBER), t <= 0) + throw k.NUM; + return B.gammaln(t); + }, + GAUSS: (t) => (t = O.accept(t, I.NUMBER), B.normal.cdf(t, 0, 1) - 0.5), + GEOMEAN: (...t) => { + const e = []; + return O.flattenParams(t, I.NUMBER, !0, (n, r) => { + typeof n == "number" && e.push(n); + }), B.geomean(e); + }, + GROWTH: (t, e, n, r) => { + t = O.accept(t, I.ARRAY, void 0, !0, !0); + for (let f = 0; f < t.length; f++) + if (typeof t[f] != "number") + throw k.VALUE; + e = O.accept(e, I.ARRAY, null, !0, !0); + const i = e == null; + if (e == null) { + e = []; + for (let f = 1; f <= t.length; f++) + e.push(f); + } else { + if (e.length !== t.length) + throw k.REF; + for (let f = 0; f < e.length; f++) + if (typeof e[f] != "number") + throw k.VALUE; + } + if (n = O.accept(n, I.ARRAY, null, !1, !0), n == null && i) { + n = []; + for (let f = 1; f <= t.length; f++) + n.push(f); + n = [n]; + } else + n == null && (n = Array.isArray(e[0]) ? e : [e]); + r = O.accept(r, I.BOOLEAN, !0); + const a = t.length; + let c = 0, h = 0, p = 0, u = 0; + for (let f = 0; f < a; f++) { + const v = e[f], d = Math.log(t[f]); + c += v, h += d, p += v * d, u += v * v; + } + c /= a, h /= a, p /= a, u /= a; + let o, s; + r ? (o = (p - c * h) / (u - c * c), s = h - o * c) : (o = p / u, s = 0); + const l = []; + for (let f = 0; f < n.length; f++) { + l[f] = []; + for (let v = 0; v < n[0].length; v++) { + if (typeof n[f][v] != "number") + throw k.VALUE; + l[f][v] = Math.exp(s + o * n[f][v]); + } + } + return l; + }, + HARMEAN: (...t) => { + let e = 0, n = 0; + return O.flattenParams(t, I.NUMBER, !0, (r, i) => { + typeof r == "number" && (n += 1 / r, e++); + }), e / n; + }, + "HYPGEOM.DIST": (t, e, n, r, i) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), r = O.accept(r, I.NUMBER), i = O.accept(i, I.BOOLEAN), t = Math.trunc(t), e = Math.trunc(e), n = Math.trunc(n), r = Math.trunc(r), r <= 0 || t < 0 || e <= 0 || n <= 0 || e > r || n > r || e < t || n < t || t < e - r + n) + throw k.NUM; + function a(h, p, u, o) { + return En.COMBIN(u, h) * En.COMBIN(o - u, p - h) / En.COMBIN(o, p); + } + function c(h, p, u, o) { + let s = 0; + for (let l = 0; l <= h; l++) + s += a(l, p, u, o); + return s; + } + return i ? c(t, e, n, r) : a(t, e, n, r); + }, + INTERCEPT: (t, e) => { + if (t = O.accept(t, I.ARRAY, void 0, !0, !0), e = O.accept(e, I.ARRAY, void 0, !0, !0), e.length !== t.length) + throw k.NA; + const n = [], r = []; + for (let u = 0; u < t.length; u++) + typeof t[u] != "number" || typeof e[u] != "number" || (n.push(t[u]), r.push(e[u])); + if (n.length <= 1) + throw k.DIV0; + const i = B.mean(n), a = B.mean(r); + let c = 0, h = 0; + for (let u = 0; u < n.length; u++) + c += (r[u] - a) * (n[u] - i), h += (r[u] - a) ** 2; + const p = c / h; + return i - p * a; + }, + KURT: (...t) => { + let e = 0, n = []; + O.flattenParams(t, I.NUMBER, !0, (a, c) => { + typeof a == "number" && (e += a, n.push(a)); + }); + const r = n.length; + e /= r; + let i = 0; + for (let a = 0; a < r; a++) + i += Math.pow(n[a] - e, 4); + return i = i / Math.pow(B.stdev(n, !0), 4), r * (r + 1) / ((r - 1) * (r - 2) * (r - 3)) * i - 3 * (r - 1) * (r - 1) / ((r - 2) * (r - 3)); + }, + LINEST: () => { + }, + LOGEST: () => { + }, + "LOGNORM.DIST": (t, e, n, r) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), r = O.accept(r, I.BOOLEAN), t <= 0 || n <= 0) + throw k.NUM; + return r ? B.lognormal.cdf(t, e, n) : B.lognormal.pdf(t, e, n); + }, + "LOGNORM.INV": (t, e, n) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), t <= 0 || t >= 1 || n <= 0) + throw k.NUM; + return B.lognormal.inv(t, e, n); + }, + "MODE.MULT": () => { + }, + "MODE.SNGL": () => { + }, + "NEGBINOM.DIST": (t, e, n, r) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), r = O.accept(r, I.BOOLEAN), t = Math.trunc(t), e = Math.trunc(e), n < 0 || n > 1 || t < 0 || e < 1) + throw k.NUM; + return r ? B.negbin.cdf(t, e, n) : B.negbin.pdf(t, e, n); + }, + "NORM.DIST": (t, e, n, r) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), r = O.accept(r, I.BOOLEAN), n <= 0) + throw k.NUM; + return r ? B.normal.cdf(t, e, n) : B.normal.pdf(t, e, n); + }, + "NORM.INV": (t, e, n) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), t <= 0 || t >= 1 || n <= 0) + throw k.NUM; + return B.normal.inv(t, e, n); + }, + "NORM.S.DIST": (t, e) => (t = O.accept(t, I.NUMBER), e = O.accept(e, I.BOOLEAN), e ? B.normal.cdf(t, 0, 1) : B.normal.pdf(t, 0, 1)), + "NORM.S.INV": (t) => { + if (t = O.accept(t, I.NUMBER), t <= 0 || t >= 1) + throw k.NUM; + return B.normal.inv(t, 0, 1); + }, + PEARSON: () => { + }, + "PERCENTILE.EXC": () => { + }, + "PERCENTILE.INC": () => { + }, + "PERCENTRANK.EXC": () => { + }, + "PERCENTRANK.INC": () => { + }, + PERMUTATIONA: () => { + }, + PHI: (t) => (t = O.accept(t, I.NUMBER), Math.exp(-0.5 * t * t) / ic), + "POISSON.DIST": (t, e, n) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.BOOLEAN), t < 0 || e < 0) + throw k.NUM; + return t = Math.trunc(t), n ? B.poisson.cdf(t, e) : B.poisson.pdf(t, e); + }, + PROB: () => { + }, + "QUARTILE.EXC": () => { + }, + "QUARTILE.INC": () => { + }, + "RANK.AVG": () => { + }, + "RANK.EQ": () => { + }, + RSQ: () => { + }, + SKEW: () => { + }, + "SKEW.P": () => { + }, + SLOPE: () => { + }, + STANDARDIZE: (t, e, n) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), n <= 0) + throw k.NUM; + return (t - e) / n; + }, + "STDEV.P": () => { + }, + "STDEV.S": () => { + }, + STDEVA: () => { + }, + STDEVPA: () => { + }, + STEYX: () => { + }, + "T.DIST": (t, e, n) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.BOOLEAN), e < 1) + throw k.NUM; + return n ? B.studentt.cdf(t, e) : B.studentt.pdf(t, e); + }, + "T.DIST.2T": (t, e) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), e < 1 || t < 0) + throw k.NUM; + return (1 - B.studentt.cdf(t, e)) * 2; + }, + "T.DIST.RT": (t, e) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), e < 1) + throw k.NUM; + return 1 - B.studentt.cdf(t, e); + }, + "T.INV": (t, e) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), t <= 0 || t > 1 || e < 1) + throw k.NUM; + return e = e % 1 === 0 ? e : Math.trunc(e), B.studentt.inv(t, e); + }, + "T.INV.2T": (t, e) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), t <= 0 || t > 1 || e < 1) + throw k.NUM; + return e = e % 1 === 0 ? e : Math.trunc(e), Math.abs(B.studentt.inv(t / 2, e)); + }, + "T.TEST": () => { + }, + TREND: () => { + }, + TRIMMEAN: () => { + }, + "VAR.P": () => { + }, + "VAR.S": () => { + }, + VARA: () => { + }, + VARPA: () => { + }, + "WEIBULL.DIST": (t, e, n, r) => { + if (t = O.accept(t, I.NUMBER), e = O.accept(e, I.NUMBER), n = O.accept(n, I.NUMBER), r = O.accept(r, I.BOOLEAN), t < 0 || e <= 0 || n <= 0) + throw k.NUM; + return r ? 1 - Math.exp(-Math.pow(t / n, e)) : Math.pow(t, e - 1) * Math.exp(-Math.pow(t / n, e)) * e / Math.pow(n, e); + }, + "Z.TEST": () => { + } +}; +var oc = { + DistributionFunctions: Do +}; +const sc = he(), { FormulaHelpers: ac, Types: mn, Criteria: gi, Address: Wh } = ge(), { Infix: Ei } = br, lt = ac, { DistributionFunctions: cc } = oc, lc = { + AVEDEV: (...t) => { + let e = 0; + const n = []; + lt.flattenParams(t, mn.NUMBER, !0, (i, a) => { + typeof i == "number" && (e += i, n.push(i)); + }); + const r = e / n.length; + e = 0; + for (let i = 0; i < n.length; i++) + e += Math.abs(n[i] - r); + return e / n.length; + }, + AVERAGE: (...t) => { + let e = 0, n = 0; + return lt.flattenParams(t, mn.NUMBER, !0, (r, i) => { + typeof r == "number" && (e += r, n++); + }), e / n; + }, + AVERAGEA: (...t) => { + let e = 0, n = 0; + return lt.flattenParams(t, mn.NUMBER, !0, (r, i) => { + const a = typeof r; + a === "number" ? (e += r, n++) : a === "string" && n++; + }), e / n; + }, + // special + AVERAGEIF: (t, e, n, r) => { + const i = lt.retrieveRanges(t, e, r); + e = i[0], r = i[1], n = lt.retrieveArg(t, n); + const a = n.isArray; + n = gi.parse(lt.accept(n)); + let c = 0, h = 0; + if (e.forEach((p, u) => { + p.forEach((o, s) => { + const l = r[u][s]; + typeof l == "number" && (n.op === "wc" ? n.match === n.value.test(o) && (c += l, h++) : Ei.compareOp(o, n.op, n.value, Array.isArray(o), a) && (c += l, h++)); + }); + }), h === 0) + throw sc.DIV0; + return c / h; + }, + AVERAGEIFS: () => { + }, + COUNT: (...t) => { + let e = 0; + return lt.flattenParams( + t, + null, + !0, + (n, r) => { + (r.isLiteral && !isNaN(n) || typeof n == "number") && e++; + } + ), e; + }, + COUNTIF: (t, e) => { + t = lt.accept(t, mn.ARRAY, void 0, !1, !0); + const n = e.isArray; + e = lt.accept(e); + let r = 0; + return e = gi.parse(e), t.forEach((i) => { + i.forEach((a) => { + e.op === "wc" ? e.match === e.value.test(a) && r++ : Ei.compareOp(a, e.op, e.value, Array.isArray(a), n) && r++; + }); + }), r; + }, + LARGE: () => { + }, + MAX: () => { + }, + MAXA: () => { + }, + MAXIFS: () => { + }, + MEDIAN: () => { + }, + MIN: () => { + }, + MINA: () => { + }, + MINIFS: () => { + }, + PERMUT: () => { + }, + PERMUTATIONA: () => { + }, + SMALL: () => { + } +}; +var uc = Object.assign(lc, cc); +const De = he(), { FormulaHelpers: fc, Types: pe } = ge(), ae = fc, Rn = 1e3 * 60 * 60 * 24, Ir = new Date(Date.UTC(1900, 0, 1)), hc = [ + void 0, + 0, + 1, + void 0, + void 0, + void 0, + void 0, + void 0, + void 0, + void 0, + void 0, + void 0, + 1, + 2, + 3, + 4, + 5, + 6, + 0 +], pc = [ + void 0, + [1, 2, 3, 4, 5, 6, 7], + [7, 1, 2, 3, 4, 5, 6], + [6, 0, 1, 2, 3, 4, 5], + void 0, + void 0, + void 0, + void 0, + void 0, + void 0, + void 0, + [7, 1, 2, 3, 4, 5, 6], + [6, 7, 1, 2, 3, 4, 5], + [5, 6, 7, 1, 2, 3, 4], + [4, 5, 6, 7, 1, 2, 3], + [3, 4, 5, 6, 7, 1, 2], + [2, 3, 4, 5, 6, 7, 1], + [1, 2, 3, 4, 5, 6, 7] +], mi = [ + void 0, + [6, 0], + [0, 1], + [1, 2], + [2, 3], + [3, 4], + [4, 5], + [5, 6], + void 0, + void 0, + void 0, + [0], + [1], + [2], + [3], + [4], + [5], + [6] +], dc = /^\s*(\d\d?)\s*(:\s*\d\d?)?\s*(:\s*\d\d?)?\s*(pm|am)?\s*$/i, vc = /^\s*((\d\d?)\s*([-\/])\s*(\d\d?))([\d:.apm\s]*)$/i, gc = /^\s*((\d\d?)\s*([-/])\s*(jan\w*|feb\w*|mar\w*|apr\w*|may\w*|jun\w*|jul\w*|aug\w*|sep\w*|oct\w*|nov\w*|dec\w*))([\d:.apm\s]*)$/i, Ec = /^\s*((jan\w*|feb\w*|mar\w*|apr\w*|may\w*|jun\w*|jul\w*|aug\w*|sep\w*|oct\w*|nov\w*|dec\w*)\s*([-/])\s*(\d\d?))([\d:.apm\s]*)$/i; +function mc(t) { + const e = t.match(vc), n = t.match(gc), r = t.match(Ec); + return e ? t = e[1] + e[3] + (/* @__PURE__ */ new Date()).getFullYear() + e[5] : n ? t = n[1] + n[3] + (/* @__PURE__ */ new Date()).getFullYear() + n[5] : r && (t = r[1] + r[3] + (/* @__PURE__ */ new Date()).getFullYear() + r[5]), new Date(Date.parse(`${t} UTC`)); +} +function Rc(t) { + const e = t.match(dc); + if (!e) + return; + const n = e[2] ? e[2] : ":00", r = e[3] ? e[3] : ":00", i = e[4] ? " " + e[4] : "", a = new Date(Date.parse(`1/1/1900 ${e[1] + n + r + i} UTC`)); + let c = /* @__PURE__ */ new Date(); + return c = new Date(Date.UTC( + c.getFullYear(), + c.getMonth(), + c.getDate(), + c.getHours(), + c.getMinutes(), + c.getSeconds(), + c.getMilliseconds() + )), new Date(Date.UTC( + c.getUTCFullYear(), + c.getUTCMonth(), + c.getUTCDate(), + a.getUTCHours(), + a.getUTCMinutes(), + a.getUTCSeconds(), + a.getUTCMilliseconds() + )); +} +function Ot(t) { + const e = t > -22038912e5 ? 2 : 1; + return Math.floor((t - Ir) / 864e5) + e; +} +function Nc(t) { + if (t < 0) + throw De.VALUE; + return t <= 60 ? new Date(Ir.getTime() + (t - 1) * 864e5) : new Date(Ir.getTime() + (t - 2) * 864e5); +} +function Vo(t) { + if (t instanceof Date) + return { date: t }; + t = ae.accept(t); + let e = !0, n; + return isNaN(t) ? (n = Rc(t), n ? e = !1 : n = mc(t)) : (t = Number(t), n = Nc(t)), { date: n, isDateGiven: e }; +} +function Z(t) { + return Vo(t).date; +} +function vr(t, e) { + return t.getUTCFullYear() === e.getUTCFullYear() && t.getUTCMonth() === e.getUTCMonth() && t.getUTCDate() === e.getUTCDate(); +} +function Ac(t) { + return t === 1900 ? !0 : new Date(t, 1, 29).getMonth() === 1; +} +const Mt = { + DATE: (t, e, n) => { + if (t = ae.accept(t, pe.NUMBER), e = ae.accept(e, pe.NUMBER), n = ae.accept(n, pe.NUMBER), t < 0 || t >= 1e4) + throw De.NUM; + return t < 1900 && (t += 1900), Ot(Date.UTC(t, e - 1, n)); + }, + DATEDIF: (t, e, n) => { + if (t = Z(t), e = Z(e), n = ae.accept(n, pe.STRING).toLowerCase(), t > e) + throw De.NUM; + const r = e.getUTCFullYear() - t.getUTCFullYear(), i = e.getUTCMonth() - t.getUTCMonth(), a = e.getUTCDate() - t.getUTCDate(); + let c; + switch (n) { + case "y": + return c = i < 0 || i === 0 && a < 0 ? -1 : 0, c + r; + case "m": + return c = a < 0 ? -1 : 0, r * 12 + i + c; + case "d": + return Math.floor(e - t) / Rn; + case "md": + return t.setUTCFullYear(e.getUTCFullYear()), a < 0 ? t.setUTCMonth(e.getUTCMonth() - 1) : t.setUTCMonth(e.getUTCMonth()), Math.floor(e - t) / Rn; + case "ym": + return c = a < 0 ? -1 : 0, (c + r * 12 + i) % 12; + case "yd": + return i < 0 || i === 0 && a < 0 ? t.setUTCFullYear(e.getUTCFullYear() - 1) : t.setUTCFullYear(e.getUTCFullYear()), Math.floor(e - t) / Rn; + } + }, + /** + * Limitation: Year must be four digit, only support ISO 8016 date format. + * Does not support date without year, i.e. "5-JUL". + * @param {string} dateText + */ + DATEVALUE: (t) => { + t = ae.accept(t, pe.STRING); + const { date: e, isDateGiven: n } = Vo(t); + if (!n) + return 0; + const r = Ot(e); + if (r < 0 || r > 2958465) + throw De.VALUE; + return r; + }, + DAY: (t) => Z(t).getUTCDate(), + DAYS: (t, e) => { + t = Z(t), e = Z(e); + let n = 0; + return e < -22038912e5 && -22038912e5 < t && (n = 1), Math.floor(t - e) / Rn + n; + }, + DAYS360: (t, e, n) => { + t = Z(t), e = Z(e), n = ae.accept(n, pe.BOOLEAN, !1), t.getUTCDate() === 31 && t.setUTCDate(30), !n && t.getUTCDate() < 30 && e.getUTCDate() > 30 ? e.setUTCMonth(e.getUTCMonth() + 1, 1) : e.getUTCDate() === 31 && e.setUTCDate(30); + const r = e.getUTCFullYear() - t.getUTCFullYear(), i = e.getUTCMonth() - t.getUTCMonth(), a = e.getUTCDate() - t.getUTCDate(); + return i * 30 + a + r * 12 * 30; + }, + EDATE: (t, e) => (t = Z(t), e = ae.accept(e, pe.NUMBER), t.setUTCMonth(t.getUTCMonth() + e), Ot(t)), + EOMONTH: (t, e) => (t = Z(t), e = ae.accept(e, pe.NUMBER), t.setUTCMonth(t.getUTCMonth() + e + 1, 0), Ot(t)), + HOUR: (t) => Z(t).getUTCHours(), + ISOWEEKNUM: (t) => { + const e = Z(t), n = new Date(Date.UTC(e.getFullYear(), e.getMonth(), e.getDate())), r = n.getUTCDay(); + n.setUTCDate(n.getUTCDate() + 4 - r); + const i = new Date(Date.UTC(n.getUTCFullYear(), 0, 1)); + return Math.ceil(((n - i) / 864e5 + 1) / 7); + }, + MINUTE: (t) => Z(t).getUTCMinutes(), + MONTH: (t) => Z(t).getUTCMonth() + 1, + NETWORKDAYS: (t, e, n) => { + t = Z(t), e = Z(e); + let r = 1; + if (t > e) { + r = -1; + const c = t; + t = e, e = c; + } + const i = []; + n != null && ae.flattenParams([n], pe.NUMBER, !1, (c) => { + i.push(Z(c)); + }); + let a = 0; + for (; t <= e; ) { + if (t.getUTCDay() !== 0 && t.getUTCDay() !== 6) { + let c = !1; + for (let h = 0; h < i.length; h++) + if (vr(t, i[h])) { + c = !0; + break; + } + c || a++; + } + t.setUTCDate(t.getUTCDate() + 1); + } + return r * a; + }, + "NETWORKDAYS.INTL": (t, e, n, r) => { + t = Z(t), e = Z(e); + let i = 1; + if (t > e) { + i = -1; + const h = t; + t = e, e = h; + } + if (n = ae.accept(n, null, 1), n === "1111111") + return 0; + if (typeof n == "string" && Number(n).toString() !== n) { + if (n.length !== 7) + throw De.VALUE; + n = n.charAt(6) + n.slice(0, 6); + const h = []; + for (let p = 0; p < n.length; p++) + n.charAt(p) === "1" && h.push(p); + n = h; + } else { + if (typeof n != "number") + throw De.VALUE; + n = mi[n]; + } + const a = []; + r != null && ae.flattenParams([r], pe.NUMBER, !1, (h) => { + a.push(Z(h)); + }); + let c = 0; + for (; t <= e; ) { + let h = !1; + for (let p = 0; p < n.length; p++) + if (n[p] === t.getUTCDay()) { + h = !0; + break; + } + if (!h) { + let p = !1; + for (let u = 0; u < a.length; u++) + if (vr(t, a[u])) { + p = !0; + break; + } + p || c++; + } + t.setUTCDate(t.getUTCDate() + 1); + } + return i * c; + }, + NOW: () => { + const t = /* @__PURE__ */ new Date(); + return Ot(Date.UTC( + t.getFullYear(), + t.getMonth(), + t.getDate(), + t.getHours(), + t.getMinutes(), + t.getSeconds(), + t.getMilliseconds() + )) + (3600 * t.getHours() + 60 * t.getMinutes() + t.getSeconds()) / 86400; + }, + SECOND: (t) => Z(t).getUTCSeconds(), + TIME: (t, e, n) => { + if (t = ae.accept(t, pe.NUMBER), e = ae.accept(e, pe.NUMBER), n = ae.accept(n, pe.NUMBER), t < 0 || t > 32767 || e < 0 || e > 32767 || n < 0 || n > 32767) + throw De.NUM; + return (3600 * t + 60 * e + n) / 86400; + }, + TIMEVALUE: (t) => (t = Z(t), (3600 * t.getUTCHours() + 60 * t.getUTCMinutes() + t.getUTCSeconds()) / 86400), + TODAY: () => { + const t = /* @__PURE__ */ new Date(); + return Ot(Date.UTC(t.getFullYear(), t.getMonth(), t.getDate())); + }, + WEEKDAY: (t, e) => { + const n = Z(t); + e = ae.accept(e, pe.NUMBER, 1); + const r = n.getUTCDay(), i = pc[e]; + if (!i) + throw De.NUM; + return i[r]; + }, + WEEKNUM: (t, e) => { + const n = Z(t); + if (e = ae.accept(e, pe.NUMBER, 1), e === 21) + return Mt.ISOWEEKNUM(t); + const r = hc[e], i = new Date(Date.UTC(n.getUTCFullYear(), 0, 1)), a = i.getUTCDay() < r ? 1 : 0; + return Math.ceil(((n - i) / 864e5 + 1) / 7) + a; + }, + WORKDAY: (t, e, n) => Mt["WORKDAY.INTL"](t, e, 1, n), + "WORKDAY.INTL": (t, e, n, r) => { + if (t = Z(t), e = ae.accept(e, pe.NUMBER), n = ae.accept(n, null, 1), n === "1111111") + throw De.VALUE; + if (typeof n == "string" && Number(n).toString() !== n) { + if (n.length !== 7) + throw De.VALUE; + n = n.charAt(6) + n.slice(0, 6); + const c = []; + for (let h = 0; h < n.length; h++) + n.charAt(h) === "1" && c.push(h); + n = c; + } else { + if (typeof n != "number") + throw De.VALUE; + if (n = mi[n], n == null) + throw De.NUM; + } + const i = []; + r != null && ae.flattenParams([r], pe.NUMBER, !1, (c) => { + i.push(Z(c)); + }), t.setUTCDate(t.getUTCDate() + 1); + let a = 0; + for (; a < e; ) { + let c = !1; + for (let h = 0; h < n.length; h++) + if (n[h] === t.getUTCDay()) { + c = !0; + break; + } + if (!c) { + let h = !1; + for (let p = 0; p < i.length; p++) + if (vr(t, i[p])) { + h = !0; + break; + } + h || a++; + } + t.setUTCDate(t.getUTCDate() + 1); + } + return Ot(t) - 1; + }, + YEAR: (t) => Z(t).getUTCFullYear(), + // Warning: may have bugs + YEARFRAC: (t, e, n) => { + if (t = Z(t), e = Z(e), t > e) { + const u = t; + t = e, e = u; + } + if (n = ae.accept(n, pe.NUMBER, 0), n = Math.trunc(n), n < 0 || n > 4) + throw De.VALUE; + let r = t.getUTCDate(); + const i = t.getUTCMonth() + 1, a = t.getUTCFullYear(); + let c = e.getUTCDate(); + const h = e.getUTCMonth() + 1, p = e.getUTCFullYear(); + switch (n) { + case 0: + return r === 31 && c === 31 ? (r = 30, c = 30) : r === 31 ? r = 30 : r === 30 && c === 31 && (c = 30), Math.abs(c + h * 30 + p * 360 - (r + i * 30 + a * 360)) / 360; + case 1: + if (p - a < 2) { + const u = Ac(a) && a !== 1900 ? 366 : 365; + return Mt.DAYS(e, t) / u; + } else { + const u = p - a + 1, s = (new Date(p + 1, 0, 1) - new Date(a, 0, 1)) / 1e3 / 60 / 60 / 24 / u; + return Mt.DAYS(e, t) / s; + } + case 2: + return Math.abs(Mt.DAYS(e, t) / 360); + case 3: + return Math.abs(Mt.DAYS(e, t) / 365); + case 4: + return Math.abs(c + h * 30 + p * 360 - (r + i * 30 + a * 360)) / 360; + } + } +}; +var yc = Mt; +const Tc = he(), { FormulaHelpers: wc, Types: Cc } = ge(), Ic = wc, Oc = { + ENCODEURL: (t) => encodeURIComponent(Ic.accept(t, Cc.STRING)), + FILTERXML: () => { + }, + WEBSERVICE: (t, e) => { + throw Tc.ERROR("WEBSERVICE is not supported in sync mode."); + } +}; +var Mc = Oc, Or = "7.1.2"; +function ee(t) { + return t && t.length === 0; +} +function Qe(t) { + return t == null ? [] : Object.keys(t); +} +function xe(t) { + for (var e = [], n = Object.keys(t), r = 0; r < n.length; r++) + e.push(t[n[r]]); + return e; +} +function Uc(t, e) { + for (var n = [], r = Qe(t), i = 0; i < r.length; i++) { + var a = r[i]; + n.push(e.call(null, t[a], a)); + } + return n; +} +function x(t, e) { + for (var n = [], r = 0; r < t.length; r++) + n.push(e.call(null, t[r], r)); + return n; +} +function Ve(t) { + for (var e = [], n = 0; n < t.length; n++) { + var r = t[n]; + Array.isArray(r) ? e = e.concat(Ve(r)) : e.push(r); + } + return e; +} +function Ze(t) { + return ee(t) ? void 0 : t[0]; +} +function Go(t) { + var e = t && t.length; + return e ? t[e - 1] : void 0; +} +function V(t, e) { + if (Array.isArray(t)) + for (var n = 0; n < t.length; n++) + e.call(null, t[n], n); + else if (Vr(t)) + for (var r = Qe(t), n = 0; n < r.length; n++) { + var i = r[n], a = t[i]; + e.call(null, a, i); + } + else + throw Error("non exhaustive match"); +} +function ot(t) { + return typeof t == "string"; +} +function ht(t) { + return t === void 0; +} +function Ct(t) { + return t instanceof Function; +} +function Re(t, e) { + return e === void 0 && (e = 1), t.slice(e, t.length); +} +function nn(t, e) { + return e === void 0 && (e = 1), t.slice(0, t.length - e); +} +function Je(t, e) { + var n = []; + if (Array.isArray(t)) + for (var r = 0; r < t.length; r++) { + var i = t[r]; + e.call(null, i) && n.push(i); + } + return n; +} +function Ht(t, e) { + return Je(t, function(n) { + return !e(n); + }); +} +function je(t, e) { + for (var n = Object.keys(t), r = {}, i = 0; i < n.length; i++) { + var a = n[i], c = t[a]; + e(c) && (r[a] = c); + } + return r; +} +function $(t, e) { + return Vr(t) ? t.hasOwnProperty(e) : !1; +} +function fe(t, e) { + return $t(t, function(n) { + return n === e; + }) !== void 0; +} +function Se(t) { + for (var e = [], n = 0; n < t.length; n++) + e.push(t[n]); + return e; +} +function on(t) { + var e = {}; + for (var n in t) + Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]); + return e; +} +function $t(t, e) { + for (var n = 0; n < t.length; n++) { + var r = t[n]; + if (e.call(null, r)) + return r; + } +} +function Lc(t, e) { + for (var n = [], r = 0; r < t.length; r++) { + var i = t[r]; + e.call(null, i) && n.push(i); + } + return n; +} +function Ne(t, e, n) { + for (var r = Array.isArray(t), i = r ? t : xe(t), a = r ? [] : Qe(t), c = n, h = 0; h < i.length; h++) + c = e.call(null, c, i[h], r ? h : a[h]); + return c; +} +function sn(t) { + return Ht(t, function(e) { + return e == null; + }); +} +function Dr(t, e) { + e === void 0 && (e = function(r) { + return r; + }); + var n = []; + return Ne(t, function(r, i) { + var a = e(i); + return fe(n, a) ? r : (n.push(a), r.concat(i)); + }, []); +} +function it(t) { + return Array.isArray(t); +} +function pt(t) { + return t instanceof RegExp; +} +function Vr(t) { + return t instanceof Object; +} +function He(t, e) { + for (var n = 0; n < t.length; n++) + if (!e(t[n], n)) + return !1; + return !0; +} +function $n(t, e) { + return Ht(t, function(n) { + return fe(e, n); + }); +} +function $o(t, e) { + for (var n = 0; n < t.length; n++) + if (e(t[n])) + return !0; + return !1; +} +function _c(t, e) { + for (var n = 0; n < t.length; n++) + if (t[n] === e) + return n; + return -1; +} +function et(t) { + for (var e = [], n = 1; n < arguments.length; n++) + e[n - 1] = arguments[n]; + for (var r = 0; r < e.length; r++) + for (var i = e[r], a = Qe(i), c = 0; c < a.length; c++) { + var h = a[c]; + t[h] = i[h]; + } + return t; +} +function Pc(t) { + for (var e = [], n = 1; n < arguments.length; n++) + e[n - 1] = arguments[n]; + for (var r = 0; r < e.length; r++) + for (var i = e[r], a = Qe(i), c = 0; c < a.length; c++) { + var h = a[c]; + $(t, h) || (t[h] = i[h]); + } + return t; +} +function Gr() { + for (var t = [], e = 0; e < arguments.length; e++) + t[e] = arguments[e]; + return Pc.apply(null, [{}].concat(t)); +} +function kc(t, e) { + var n = {}; + return V(t, function(r) { + var i = e(r), a = n[i]; + a ? a.push(r) : n[i] = [r]; + }), n; +} +function Ri(t, e) { + for (var n = on(t), r = Qe(e), i = 0; i < r.length; i++) { + var a = r[i], c = e[a]; + n[a] = c; + } + return n; +} +function de() { +} +function Ni(t) { + return t; +} +function xc(t) { + for (var e = [], n = 0; n < t.length; n++) { + var r = t[n]; + e.push(r !== void 0 ? r : void 0); + } + return e; +} +function Mr(t) { + console && console.error && console.error("Error: " + t); +} +function Ho(t) { + console && console.warn && console.warn("Warning: " + t); +} +function Ai() { + return typeof Map == "function"; +} +function Sc(t, e) { + e.forEach(function(n) { + var r = n.prototype; + Object.getOwnPropertyNames(r).forEach(function(i) { + if (i !== "constructor") { + var a = Object.getOwnPropertyDescriptor(r, i); + a && (a.get || a.set) ? Object.defineProperty(t.prototype, i, a) : t.prototype[i] = n.prototype[i]; + } + }); + }); +} +function Wo(t) { + function e() { + } + e.prototype = t; + var n = new e(); + function r() { + return typeof n.bar; + } + return r(), r(), t; +} +function kn(t) { + return t[t.length - 1]; +} +function qo(t) { + var e = (/* @__PURE__ */ new Date()).getTime(), n = t(), r = (/* @__PURE__ */ new Date()).getTime(), i = r - e; + return { time: i, value: n }; +} +var Yo = { exports: {} }; +(function(t) { + (function(e, n) { + t.exports ? t.exports = n() : e.regexpToAst = n(); + })( + typeof self < "u" ? ( + // istanbul ignore next + self + ) : go, + function() { + function e() { + } + e.prototype.saveState = function() { + return { + idx: this.idx, + input: this.input, + groupIdx: this.groupIdx + }; + }, e.prototype.restoreState = function(d) { + this.idx = d.idx, this.input = d.input, this.groupIdx = d.groupIdx; + }, e.prototype.pattern = function(d) { + this.idx = 0, this.input = d, this.groupIdx = 0, this.consumeChar("/"); + var g = this.disjunction(); + this.consumeChar("/"); + for (var E = { + type: "Flags", + loc: { begin: this.idx, end: d.length }, + global: !1, + ignoreCase: !1, + multiLine: !1, + unicode: !1, + sticky: !1 + }; this.isRegExpFlag(); ) + switch (this.popChar()) { + case "g": + h(E, "global"); + break; + case "i": + h(E, "ignoreCase"); + break; + case "m": + h(E, "multiLine"); + break; + case "u": + h(E, "unicode"); + break; + case "y": + h(E, "sticky"); + break; + } + if (this.idx !== this.input.length) + throw Error( + "Redundant input: " + this.input.substring(this.idx) + ); + return { + type: "Pattern", + flags: E, + value: g, + loc: this.loc(0) + }; + }, e.prototype.disjunction = function() { + var d = [], g = this.idx; + for (d.push(this.alternative()); this.peekChar() === "|"; ) + this.consumeChar("|"), d.push(this.alternative()); + return { type: "Disjunction", value: d, loc: this.loc(g) }; + }, e.prototype.alternative = function() { + for (var d = [], g = this.idx; this.isTerm(); ) + d.push(this.term()); + return { type: "Alternative", value: d, loc: this.loc(g) }; + }, e.prototype.term = function() { + return this.isAssertion() ? this.assertion() : this.atom(); + }, e.prototype.assertion = function() { + var d = this.idx; + switch (this.popChar()) { + case "^": + return { + type: "StartAnchor", + loc: this.loc(d) + }; + case "$": + return { type: "EndAnchor", loc: this.loc(d) }; + case "\\": + switch (this.popChar()) { + case "b": + return { + type: "WordBoundary", + loc: this.loc(d) + }; + case "B": + return { + type: "NonWordBoundary", + loc: this.loc(d) + }; + } + throw Error("Invalid Assertion Escape"); + case "(": + this.consumeChar("?"); + var g; + switch (this.popChar()) { + case "=": + g = "Lookahead"; + break; + case "!": + g = "NegativeLookahead"; + break; + } + p(g); + var E = this.disjunction(); + return this.consumeChar(")"), { + type: g, + value: E, + loc: this.loc(d) + }; + } + u(); + }, e.prototype.quantifier = function(d) { + var g, E = this.idx; + switch (this.popChar()) { + case "*": + g = { + atLeast: 0, + atMost: 1 / 0 + }; + break; + case "+": + g = { + atLeast: 1, + atMost: 1 / 0 + }; + break; + case "?": + g = { + atLeast: 0, + atMost: 1 + }; + break; + case "{": + var A = this.integerIncludingZero(); + switch (this.popChar()) { + case "}": + g = { + atLeast: A, + atMost: A + }; + break; + case ",": + var m; + this.isDigit() ? (m = this.integerIncludingZero(), g = { + atLeast: A, + atMost: m + }) : g = { + atLeast: A, + atMost: 1 / 0 + }, this.consumeChar("}"); + break; + } + if (d === !0 && g === void 0) + return; + p(g); + break; + } + if (!(d === !0 && g === void 0)) + return p(g), this.peekChar(0) === "?" ? (this.consumeChar("?"), g.greedy = !1) : g.greedy = !0, g.type = "Quantifier", g.loc = this.loc(E), g; + }, e.prototype.atom = function() { + var d, g = this.idx; + switch (this.peekChar()) { + case ".": + d = this.dotAll(); + break; + case "\\": + d = this.atomEscape(); + break; + case "[": + d = this.characterClass(); + break; + case "(": + d = this.group(); + break; + } + return d === void 0 && this.isPatternCharacter() && (d = this.patternCharacter()), p(d), d.loc = this.loc(g), this.isQuantifier() && (d.quantifier = this.quantifier()), d; + }, e.prototype.dotAll = function() { + return this.consumeChar("."), { + type: "Set", + complement: !0, + value: [a(` +`), a("\r"), a("\u2028"), a("\u2029")] + }; + }, e.prototype.atomEscape = function() { + switch (this.consumeChar("\\"), this.peekChar()) { + case "1": + case "2": + case "3": + case "4": + case "5": + case "6": + case "7": + case "8": + case "9": + return this.decimalEscapeAtom(); + case "d": + case "D": + case "s": + case "S": + case "w": + case "W": + return this.characterClassEscape(); + case "f": + case "n": + case "r": + case "t": + case "v": + return this.controlEscapeAtom(); + case "c": + return this.controlLetterEscapeAtom(); + case "0": + return this.nulCharacterAtom(); + case "x": + return this.hexEscapeSequenceAtom(); + case "u": + return this.regExpUnicodeEscapeSequenceAtom(); + default: + return this.identityEscapeAtom(); + } + }, e.prototype.decimalEscapeAtom = function() { + var d = this.positiveInteger(); + return { type: "GroupBackReference", value: d }; + }, e.prototype.characterClassEscape = function() { + var d, g = !1; + switch (this.popChar()) { + case "d": + d = s; + break; + case "D": + d = s, g = !0; + break; + case "s": + d = f; + break; + case "S": + d = f, g = !0; + break; + case "w": + d = l; + break; + case "W": + d = l, g = !0; + break; + } + return p(d), { type: "Set", value: d, complement: g }; + }, e.prototype.controlEscapeAtom = function() { + var d; + switch (this.popChar()) { + case "f": + d = a("\f"); + break; + case "n": + d = a(` +`); + break; + case "r": + d = a("\r"); + break; + case "t": + d = a(" "); + break; + case "v": + d = a("\v"); + break; + } + return p(d), { type: "Character", value: d }; + }, e.prototype.controlLetterEscapeAtom = function() { + this.consumeChar("c"); + var d = this.popChar(); + if (/[a-zA-Z]/.test(d) === !1) + throw Error("Invalid "); + var g = d.toUpperCase().charCodeAt(0) - 64; + return { type: "Character", value: g }; + }, e.prototype.nulCharacterAtom = function() { + return this.consumeChar("0"), { type: "Character", value: a("\0") }; + }, e.prototype.hexEscapeSequenceAtom = function() { + return this.consumeChar("x"), this.parseHexDigits(2); + }, e.prototype.regExpUnicodeEscapeSequenceAtom = function() { + return this.consumeChar("u"), this.parseHexDigits(4); + }, e.prototype.identityEscapeAtom = function() { + var d = this.popChar(); + return { type: "Character", value: a(d) }; + }, e.prototype.classPatternCharacterAtom = function() { + switch (this.peekChar()) { + case ` +`: + case "\r": + case "\u2028": + case "\u2029": + case "\\": + case "]": + throw Error("TBD"); + default: + var d = this.popChar(); + return { type: "Character", value: a(d) }; + } + }, e.prototype.characterClass = function() { + var d = [], g = !1; + for (this.consumeChar("["), this.peekChar(0) === "^" && (this.consumeChar("^"), g = !0); this.isClassAtom(); ) { + var E = this.classAtom(), A = E.type === "Character"; + if (A && this.isRangeDash()) { + this.consumeChar("-"); + var m = this.classAtom(), N = m.type === "Character"; + if (N) { + if (m.value < E.value) + throw Error("Range out of order in character class"); + d.push({ from: E.value, to: m.value }); + } else + c(E.value, d), d.push(a("-")), c(m.value, d); + } else + c(E.value, d); + } + return this.consumeChar("]"), { type: "Set", complement: g, value: d }; + }, e.prototype.classAtom = function() { + switch (this.peekChar()) { + case "]": + case ` +`: + case "\r": + case "\u2028": + case "\u2029": + throw Error("TBD"); + case "\\": + return this.classEscape(); + default: + return this.classPatternCharacterAtom(); + } + }, e.prototype.classEscape = function() { + switch (this.consumeChar("\\"), this.peekChar()) { + case "b": + return this.consumeChar("b"), { type: "Character", value: a("\b") }; + case "d": + case "D": + case "s": + case "S": + case "w": + case "W": + return this.characterClassEscape(); + case "f": + case "n": + case "r": + case "t": + case "v": + return this.controlEscapeAtom(); + case "c": + return this.controlLetterEscapeAtom(); + case "0": + return this.nulCharacterAtom(); + case "x": + return this.hexEscapeSequenceAtom(); + case "u": + return this.regExpUnicodeEscapeSequenceAtom(); + default: + return this.identityEscapeAtom(); + } + }, e.prototype.group = function() { + var d = !0; + switch (this.consumeChar("("), this.peekChar(0)) { + case "?": + this.consumeChar("?"), this.consumeChar(":"), d = !1; + break; + default: + this.groupIdx++; + break; + } + var g = this.disjunction(); + this.consumeChar(")"); + var E = { + type: "Group", + capturing: d, + value: g + }; + return d && (E.idx = this.groupIdx), E; + }, e.prototype.positiveInteger = function() { + var d = this.popChar(); + if (i.test(d) === !1) + throw Error("Expecting a positive integer"); + for (; r.test(this.peekChar(0)); ) + d += this.popChar(); + return parseInt(d, 10); + }, e.prototype.integerIncludingZero = function() { + var d = this.popChar(); + if (r.test(d) === !1) + throw Error("Expecting an integer"); + for (; r.test(this.peekChar(0)); ) + d += this.popChar(); + return parseInt(d, 10); + }, e.prototype.patternCharacter = function() { + var d = this.popChar(); + switch (d) { + case ` +`: + case "\r": + case "\u2028": + case "\u2029": + case "^": + case "$": + case "\\": + case ".": + case "*": + case "+": + case "?": + case "(": + case ")": + case "[": + case "|": + throw Error("TBD"); + default: + return { type: "Character", value: a(d) }; + } + }, e.prototype.isRegExpFlag = function() { + switch (this.peekChar(0)) { + case "g": + case "i": + case "m": + case "u": + case "y": + return !0; + default: + return !1; + } + }, e.prototype.isRangeDash = function() { + return this.peekChar() === "-" && this.isClassAtom(1); + }, e.prototype.isDigit = function() { + return r.test(this.peekChar(0)); + }, e.prototype.isClassAtom = function(d) { + switch (d === void 0 && (d = 0), this.peekChar(d)) { + case "]": + case ` +`: + case "\r": + case "\u2028": + case "\u2029": + return !1; + default: + return !0; + } + }, e.prototype.isTerm = function() { + return this.isAtom() || this.isAssertion(); + }, e.prototype.isAtom = function() { + if (this.isPatternCharacter()) + return !0; + switch (this.peekChar(0)) { + case ".": + case "\\": + case "[": + case "(": + return !0; + default: + return !1; + } + }, e.prototype.isAssertion = function() { + switch (this.peekChar(0)) { + case "^": + case "$": + return !0; + case "\\": + switch (this.peekChar(1)) { + case "b": + case "B": + return !0; + default: + return !1; + } + case "(": + return this.peekChar(1) === "?" && (this.peekChar(2) === "=" || this.peekChar(2) === "!"); + default: + return !1; + } + }, e.prototype.isQuantifier = function() { + var d = this.saveState(); + try { + return this.quantifier(!0) !== void 0; + } catch { + return !1; + } finally { + this.restoreState(d); + } + }, e.prototype.isPatternCharacter = function() { + switch (this.peekChar()) { + case "^": + case "$": + case "\\": + case ".": + case "*": + case "+": + case "?": + case "(": + case ")": + case "[": + case "|": + case "/": + case ` +`: + case "\r": + case "\u2028": + case "\u2029": + return !1; + default: + return !0; + } + }, e.prototype.parseHexDigits = function(d) { + for (var g = "", E = 0; E < d; E++) { + var A = this.popChar(); + if (n.test(A) === !1) + throw Error("Expecting a HexDecimal digits"); + g += A; + } + var m = parseInt(g, 16); + return { type: "Character", value: m }; + }, e.prototype.peekChar = function(d) { + return d === void 0 && (d = 0), this.input[this.idx + d]; + }, e.prototype.popChar = function() { + var d = this.peekChar(0); + return this.consumeChar(), d; + }, e.prototype.consumeChar = function(d) { + if (d !== void 0 && this.input[this.idx] !== d) + throw Error( + "Expected: '" + d + "' but found: '" + this.input[this.idx] + "' at offset: " + this.idx + ); + if (this.idx >= this.input.length) + throw Error("Unexpected end of input"); + this.idx++; + }, e.prototype.loc = function(d) { + return { begin: d, end: this.idx }; + }; + var n = /[0-9a-fA-F]/, r = /[0-9]/, i = /[1-9]/; + function a(d) { + return d.charCodeAt(0); + } + function c(d, g) { + d.length !== void 0 ? d.forEach(function(E) { + g.push(E); + }) : g.push(d); + } + function h(d, g) { + if (d[g] === !0) + throw "duplicate flag " + g; + d[g] = !0; + } + function p(d) { + if (d === void 0) + throw Error("Internal Error - Should never get here!"); + } + function u() { + throw Error("Internal Error - Should never get here!"); + } + var o, s = []; + for (o = a("0"); o <= a("9"); o++) + s.push(o); + var l = [a("_")].concat(s); + for (o = a("a"); o <= a("z"); o++) + l.push(o); + for (o = a("A"); o <= a("Z"); o++) + l.push(o); + var f = [ + a(" "), + a("\f"), + a(` +`), + a("\r"), + a(" "), + a("\v"), + a(" "), + a(" "), + a(" "), + a(" "), + a(" "), + a(" "), + a(" "), + a(" "), + a(" "), + a(" "), + a(" "), + a(" "), + a(" "), + a(" "), + a("\u2028"), + a("\u2029"), + a(" "), + a(" "), + a(" "), + a("\uFEFF") + ]; + function v() { + } + return v.prototype.visitChildren = function(d) { + for (var g in d) { + var E = d[g]; + d.hasOwnProperty(g) && (E.type !== void 0 ? this.visit(E) : Array.isArray(E) && E.forEach(function(A) { + this.visit(A); + }, this)); + } + }, v.prototype.visit = function(d) { + switch (d.type) { + case "Pattern": + this.visitPattern(d); + break; + case "Flags": + this.visitFlags(d); + break; + case "Disjunction": + this.visitDisjunction(d); + break; + case "Alternative": + this.visitAlternative(d); + break; + case "StartAnchor": + this.visitStartAnchor(d); + break; + case "EndAnchor": + this.visitEndAnchor(d); + break; + case "WordBoundary": + this.visitWordBoundary(d); + break; + case "NonWordBoundary": + this.visitNonWordBoundary(d); + break; + case "Lookahead": + this.visitLookahead(d); + break; + case "NegativeLookahead": + this.visitNegativeLookahead(d); + break; + case "Character": + this.visitCharacter(d); + break; + case "Set": + this.visitSet(d); + break; + case "Group": + this.visitGroup(d); + break; + case "GroupBackReference": + this.visitGroupBackReference(d); + break; + case "Quantifier": + this.visitQuantifier(d); + break; + } + this.visitChildren(d); + }, v.prototype.visitPattern = function(d) { + }, v.prototype.visitFlags = function(d) { + }, v.prototype.visitDisjunction = function(d) { + }, v.prototype.visitAlternative = function(d) { + }, v.prototype.visitStartAnchor = function(d) { + }, v.prototype.visitEndAnchor = function(d) { + }, v.prototype.visitWordBoundary = function(d) { + }, v.prototype.visitNonWordBoundary = function(d) { + }, v.prototype.visitLookahead = function(d) { + }, v.prototype.visitNegativeLookahead = function(d) { + }, v.prototype.visitCharacter = function(d) { + }, v.prototype.visitSet = function(d) { + }, v.prototype.visitGroup = function(d) { + }, v.prototype.visitGroupBackReference = function(d) { + }, v.prototype.visitQuantifier = function(d) { + }, { + RegExpParser: e, + BaseRegExpVisitor: v, + VERSION: "0.5.0" + }; + } + ); +})(Yo); +var an = Yo.exports, In = {}, Bc = new an.RegExpParser(); +function Hn(t) { + var e = t.toString(); + if (In.hasOwnProperty(e)) + return In[e]; + var n = Bc.pattern(e); + return In[e] = n, n; +} +function Fc() { + In = {}; +} +var bc = globalThis && globalThis.__extends || function() { + var t = function(e, n) { + return t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(r, i) { + r.__proto__ = i; + } || function(r, i) { + for (var a in i) + Object.prototype.hasOwnProperty.call(i, a) && (r[a] = i[a]); + }, t(e, n); + }; + return function(e, n) { + t(e, n); + function r() { + this.constructor = e; + } + e.prototype = n === null ? Object.create(n) : (r.prototype = n.prototype, new r()); + }; +}(), Ko = "Complement Sets are not supported for first char optimization", xn = `Unable to use "first char" lexer optimizations: +`; +function Dc(t, e) { + e === void 0 && (e = !1); + try { + var n = Hn(t), r = Ur(n.value, {}, n.flags.ignoreCase); + return r; + } catch (a) { + if (a.message === Ko) + e && Ho("" + xn + (" Unable to optimize: < " + t.toString() + ` > +`) + ` Complement Sets cannot be automatically optimized. + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`); + else { + var i = ""; + e && (i = ` + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`), Mr(xn + ` +` + (" Failed parsing: < " + t.toString() + ` > +`) + (" Using the regexp-to-ast library version: " + an.VERSION + ` +`) + " Please open an issue at: https://github.com/bd82/regexp-to-ast/issues" + i); + } + } + return []; +} +function Ur(t, e, n) { + switch (t.type) { + case "Disjunction": + for (var r = 0; r < t.value.length; r++) + Ur(t.value[r], e, n); + break; + case "Alternative": + for (var i = t.value, r = 0; r < i.length; r++) { + var a = i[r]; + switch (a.type) { + case "EndAnchor": + case "GroupBackReference": + case "Lookahead": + case "NegativeLookahead": + case "StartAnchor": + case "WordBoundary": + case "NonWordBoundary": + continue; + } + var c = a; + switch (c.type) { + case "Character": + Nn(c.value, e, n); + break; + case "Set": + if (c.complement === !0) + throw Error(Ko); + V(c.value, function(u) { + if (typeof u == "number") + Nn(u, e, n); + else { + var o = u; + if (n === !0) + for (var s = o.from; s <= o.to; s++) + Nn(s, e, n); + else { + for (var s = o.from; s <= o.to && s < Jt; s++) + Nn(s, e, n); + if (o.to >= Jt) + for (var l = o.from >= Jt ? o.from : Jt, f = o.to, v = Tt(l), d = Tt(f), g = v; g <= d; g++) + e[g] = g; + } + } + }); + break; + case "Group": + Ur(c.value, e, n); + break; + default: + throw Error("Non Exhaustive Match"); + } + var h = c.quantifier !== void 0 && c.quantifier.atLeast === 0; + if ( + // A group may be optional due to empty contents /(?:)/ + // or if everything inside it is optional /((a)?)/ + c.type === "Group" && Lr(c) === !1 || // If this term is not a group it may only be optional if it has an optional quantifier + c.type !== "Group" && h === !1 + ) + break; + } + break; + default: + throw Error("non exhaustive match!"); + } + return xe(e); +} +function Nn(t, e, n) { + var r = Tt(t); + e[r] = r, n === !0 && Vc(t, e); +} +function Vc(t, e) { + var n = String.fromCharCode(t), r = n.toUpperCase(); + if (r !== n) { + var i = Tt(r.charCodeAt(0)); + e[i] = i; + } else { + var a = n.toLowerCase(); + if (a !== n) { + var i = Tt(a.charCodeAt(0)); + e[i] = i; + } + } +} +function yi(t, e) { + return $t(t.value, function(n) { + if (typeof n == "number") + return fe(e, n); + var r = n; + return $t(e, function(i) { + return r.from <= i && i <= r.to; + }) !== void 0; + }); +} +function Lr(t) { + return t.quantifier && t.quantifier.atLeast === 0 ? !0 : t.value ? it(t.value) ? He(t.value, Lr) : Lr(t.value) : !1; +} +var Gc = ( + /** @class */ + function(t) { + bc(e, t); + function e(n) { + var r = t.call(this) || this; + return r.targetCharCodes = n, r.found = !1, r; + } + return e.prototype.visitChildren = function(n) { + if (this.found !== !0) { + switch (n.type) { + case "Lookahead": + this.visitLookahead(n); + return; + case "NegativeLookahead": + this.visitNegativeLookahead(n); + return; + } + t.prototype.visitChildren.call(this, n); + } + }, e.prototype.visitCharacter = function(n) { + fe(this.targetCharCodes, n.value) && (this.found = !0); + }, e.prototype.visitSet = function(n) { + n.complement ? yi(n, this.targetCharCodes) === void 0 && (this.found = !0) : yi(n, this.targetCharCodes) !== void 0 && (this.found = !0); + }, e; + }(an.BaseRegExpVisitor) +); +function $r(t, e) { + if (e instanceof RegExp) { + var n = Hn(e), r = new Gc(t); + return r.visit(n), r.found; + } else + return $t(e, function(i) { + return fe(t, i.charCodeAt(0)); + }) !== void 0; +} +var zo = globalThis && globalThis.__extends || function() { + var t = function(e, n) { + return t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(r, i) { + r.__proto__ = i; + } || function(r, i) { + for (var a in i) + Object.prototype.hasOwnProperty.call(i, a) && (r[a] = i[a]); + }, t(e, n); + }; + return function(e, n) { + t(e, n); + function r() { + this.constructor = e; + } + e.prototype = n === null ? Object.create(n) : (r.prototype = n.prototype, new r()); + }; +}(), st = "PATTERN", Lt = "defaultMode", An = "modes", Xo = typeof new RegExp("(?:)").sticky == "boolean"; +function $c(t, e) { + e = Gr(e, { + useSticky: Xo, + debug: !1, + safeMode: !1, + positionTracking: "full", + lineTerminatorCharacters: ["\r", ` +`], + tracer: function(A, m) { + return m(); + } + }); + var n = e.tracer; + n("initCharCodeToOptimizedIndexMap", function() { + fl(); + }); + var r; + n("Reject Lexer.NA", function() { + r = Ht(t, function(A) { + return A[st] === Xe.NA; + }); + }); + var i = !1, a; + n("Transform Patterns", function() { + i = !1, a = x(r, function(A) { + var m = A[st]; + if (pt(m)) { + var N = m.source; + return N.length === 1 && // only these regExp meta characters which can appear in a length one regExp + N !== "^" && N !== "$" && N !== "." && !m.ignoreCase ? N : N.length === 2 && N[0] === "\\" && // not a meta character + !fe([ + "d", + "D", + "s", + "S", + "t", + "r", + "n", + "t", + "0", + "c", + "b", + "B", + "f", + "v", + "w", + "W" + ], N[1]) ? N[1] : e.useSticky ? wi(m) : Ti(m); + } else { + if (Ct(m)) + return i = !0, { exec: m }; + if ($(m, "exec")) + return i = !0, m; + if (typeof m == "string") { + if (m.length === 1) + return m; + var y = m.replace(/[\\^$.*+?()[\]{}|]/g, "\\$&"), R = new RegExp(y); + return e.useSticky ? wi(R) : Ti(R); + } else + throw Error("non exhaustive match"); + } + }); + }); + var c, h, p, u, o; + n("misc mapping", function() { + c = x(r, function(A) { + return A.tokenTypeIdx; + }), h = x(r, function(A) { + var m = A.GROUP; + if (m !== Xe.SKIPPED) { + if (ot(m)) + return m; + if (ht(m)) + return !1; + throw Error("non exhaustive match"); + } + }), p = x(r, function(A) { + var m = A.LONGER_ALT; + if (m) { + var N = _c(r, m); + return N; + } + }), u = x(r, function(A) { + return A.PUSH_MODE; + }), o = x(r, function(A) { + return $(A, "POP_MODE"); + }); + }); + var s; + n("Line Terminator Handling", function() { + var A = Jo(e.lineTerminatorCharacters); + s = x(r, function(m) { + return !1; + }), e.positionTracking !== "onlyOffset" && (s = x(r, function(m) { + if ($(m, "LINE_BREAKS")) + return m.LINE_BREAKS; + if (Zo(m, A) === !1) + return $r(A, m.PATTERN); + })); + }); + var l, f, v, d; + n("Misc Mapping #2", function() { + l = x(r, Qo), f = x(a, cl), v = Ne(r, function(A, m) { + var N = m.GROUP; + return ot(N) && N !== Xe.SKIPPED && (A[N] = []), A; + }, {}), d = x(a, function(A, m) { + return { + pattern: a[m], + longerAlt: p[m], + canLineTerminator: s[m], + isCustom: l[m], + short: f[m], + group: h[m], + push: u[m], + pop: o[m], + tokenTypeIdx: c[m], + tokenType: r[m] + }; + }); + }); + var g = !0, E = []; + return e.safeMode || n("First Char Optimization", function() { + E = Ne(r, function(A, m, N) { + if (typeof m.PATTERN == "string") { + var y = m.PATTERN.charCodeAt(0), R = Tt(y); + gr(A, R, d[N]); + } else if (it(m.START_CHARS_HINT)) { + var T; + V(m.START_CHARS_HINT, function(C) { + var M = typeof C == "string" ? C.charCodeAt(0) : C, _ = Tt(M); + T !== _ && (T = _, gr(A, _, d[N])); + }); + } else if (pt(m.PATTERN)) + if (m.PATTERN.unicode) + g = !1, e.ensureOptimizations && Mr("" + xn + (" Unable to analyze < " + m.PATTERN.toString() + ` > pattern. +`) + ` The regexp unicode flag is not currently supported by the regexp-to-ast library. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`); + else { + var w = Dc(m.PATTERN, e.ensureOptimizations); + ee(w) && (g = !1), V(w, function(C) { + gr(A, C, d[N]); + }); + } + else + e.ensureOptimizations && Mr("" + xn + (" TokenType: <" + m.name + `> is using a custom token pattern without providing parameter. +`) + ` This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`), g = !1; + return A; + }, []); + }), n("ArrayPacking", function() { + E = xc(E); + }), { + emptyGroups: v, + patternIdxToConfig: d, + charCodeToPatternIdxToConfig: E, + hasCustom: i, + canBeOptimized: g + }; +} +function Hc(t, e) { + var n = [], r = qc(t); + n = n.concat(r.errors); + var i = Yc(r.valid), a = i.valid; + return n = n.concat(i.errors), n = n.concat(Wc(a)), n = n.concat(el(a)), n = n.concat(tl(a, e)), n = n.concat(nl(a)), n; +} +function Wc(t) { + var e = [], n = Je(t, function(r) { + return pt(r[st]); + }); + return e = e.concat(zc(n)), e = e.concat(Zc(n)), e = e.concat(Jc(n)), e = e.concat(jc(n)), e = e.concat(Xc(n)), e; +} +function qc(t) { + var e = Je(t, function(i) { + return !$(i, st); + }), n = x(e, function(i) { + return { + message: "Token Type: ->" + i.name + "<- missing static 'PATTERN' property", + type: se.MISSING_PATTERN, + tokenTypes: [i] + }; + }), r = $n(t, e); + return { errors: n, valid: r }; +} +function Yc(t) { + var e = Je(t, function(i) { + var a = i[st]; + return !pt(a) && !Ct(a) && !$(a, "exec") && !ot(a); + }), n = x(e, function(i) { + return { + message: "Token Type: ->" + i.name + "<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.", + type: se.INVALID_PATTERN, + tokenTypes: [i] + }; + }), r = $n(t, e); + return { errors: n, valid: r }; +} +var Kc = /[^\\][\$]/; +function zc(t) { + var e = ( + /** @class */ + function(i) { + zo(a, i); + function a() { + var c = i !== null && i.apply(this, arguments) || this; + return c.found = !1, c; + } + return a.prototype.visitEndAnchor = function(c) { + this.found = !0; + }, a; + }(an.BaseRegExpVisitor) + ), n = Je(t, function(i) { + var a = i[st]; + try { + var c = Hn(a), h = new e(); + return h.visit(c), h.found; + } catch { + return Kc.test(a.source); + } + }), r = x(n, function(i) { + return { + message: `Unexpected RegExp Anchor Error: + Token Type: ->` + i.name + `<- static 'PATTERN' cannot contain end of input anchor '$' + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`, + type: se.EOI_ANCHOR_FOUND, + tokenTypes: [i] + }; + }); + return r; +} +function Xc(t) { + var e = Je(t, function(r) { + var i = r[st]; + return i.test(""); + }), n = x(e, function(r) { + return { + message: "Token Type: ->" + r.name + "<- static 'PATTERN' must not match an empty string", + type: se.EMPTY_MATCH_PATTERN, + tokenTypes: [r] + }; + }); + return n; +} +var Qc = /[^\\[][\^]|^\^/; +function Zc(t) { + var e = ( + /** @class */ + function(i) { + zo(a, i); + function a() { + var c = i !== null && i.apply(this, arguments) || this; + return c.found = !1, c; + } + return a.prototype.visitStartAnchor = function(c) { + this.found = !0; + }, a; + }(an.BaseRegExpVisitor) + ), n = Je(t, function(i) { + var a = i[st]; + try { + var c = Hn(a), h = new e(); + return h.visit(c), h.found; + } catch { + return Qc.test(a.source); + } + }), r = x(n, function(i) { + return { + message: `Unexpected RegExp Anchor Error: + Token Type: ->` + i.name + `<- static 'PATTERN' cannot contain start of input anchor '^' + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`, + type: se.SOI_ANCHOR_FOUND, + tokenTypes: [i] + }; + }); + return r; +} +function Jc(t) { + var e = Je(t, function(r) { + var i = r[st]; + return i instanceof RegExp && (i.multiline || i.global); + }), n = x(e, function(r) { + return { + message: "Token Type: ->" + r.name + "<- static 'PATTERN' may NOT contain global('g') or multiline('m')", + type: se.UNSUPPORTED_FLAGS_FOUND, + tokenTypes: [r] + }; + }); + return n; +} +function jc(t) { + var e = [], n = x(t, function(a) { + return Ne(t, function(c, h) { + return a.PATTERN.source === h.PATTERN.source && !fe(e, h) && h.PATTERN !== Xe.NA && (e.push(h), c.push(h)), c; + }, []); + }); + n = sn(n); + var r = Je(n, function(a) { + return a.length > 1; + }), i = x(r, function(a) { + var c = x(a, function(p) { + return p.name; + }), h = Ze(a).PATTERN; + return { + message: "The same RegExp pattern ->" + h + "<-" + ("has been used in all of the following Token Types: " + c.join(", ") + " <-"), + type: se.DUPLICATE_PATTERNS_FOUND, + tokenTypes: a + }; + }); + return i; +} +function el(t) { + var e = Je(t, function(r) { + if (!$(r, "GROUP")) + return !1; + var i = r.GROUP; + return i !== Xe.SKIPPED && i !== Xe.NA && !ot(i); + }), n = x(e, function(r) { + return { + message: "Token Type: ->" + r.name + "<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String", + type: se.INVALID_GROUP_TYPE_FOUND, + tokenTypes: [r] + }; + }); + return n; +} +function tl(t, e) { + var n = Je(t, function(i) { + return i.PUSH_MODE !== void 0 && !fe(e, i.PUSH_MODE); + }), r = x(n, function(i) { + var a = "Token Type: ->" + i.name + "<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->" + i.PUSH_MODE + "<-which does not exist"; + return { + message: a, + type: se.PUSH_MODE_DOES_NOT_EXIST, + tokenTypes: [i] + }; + }); + return r; +} +function nl(t) { + var e = [], n = Ne(t, function(r, i, a) { + var c = i.PATTERN; + return c === Xe.NA || (ot(c) ? r.push({ str: c, idx: a, tokenType: i }) : pt(c) && il(c) && r.push({ str: c.source, idx: a, tokenType: i })), r; + }, []); + return V(t, function(r, i) { + V(n, function(a) { + var c = a.str, h = a.idx, p = a.tokenType; + if (i < h && rl(c, r.PATTERN)) { + var u = "Token: ->" + p.name + `<- can never be matched. +` + ("Because it appears AFTER the Token Type ->" + r.name + "<-") + `in the lexer's definition. +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`; + e.push({ + message: u, + type: se.UNREACHABLE_PATTERN, + tokenTypes: [r, p] + }); + } + }); + }), e; +} +function rl(t, e) { + if (pt(e)) { + var n = e.exec(t); + return n !== null && n.index === 0; + } else { + if (Ct(e)) + return e(t, 0, [], {}); + if ($(e, "exec")) + return e.exec(t, 0, [], {}); + if (typeof e == "string") + return e === t; + throw Error("non exhaustive match"); + } +} +function il(t) { + var e = [ + ".", + "\\", + "[", + "]", + "|", + "^", + "$", + "(", + ")", + "?", + "*", + "+", + "{" + ]; + return $t(e, function(n) { + return t.source.indexOf(n) !== -1; + }) === void 0; +} +function Ti(t) { + var e = t.ignoreCase ? "i" : ""; + return new RegExp("^(?:" + t.source + ")", e); +} +function wi(t) { + var e = t.ignoreCase ? "iy" : "y"; + return new RegExp("" + t.source, e); +} +function ol(t, e, n) { + var r = []; + return $(t, Lt) || r.push({ + message: "A MultiMode Lexer cannot be initialized without a <" + Lt + `> property in its definition +`, + type: se.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE + }), $(t, An) || r.push({ + message: "A MultiMode Lexer cannot be initialized without a <" + An + `> property in its definition +`, + type: se.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY + }), $(t, An) && $(t, Lt) && !$(t.modes, t.defaultMode) && r.push({ + message: "A MultiMode Lexer cannot be initialized with a " + Lt + ": <" + t.defaultMode + `>which does not exist +`, + type: se.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST + }), $(t, An) && V(t.modes, function(i, a) { + V(i, function(c, h) { + ht(c) && r.push({ + message: "A Lexer cannot be initialized using an undefined Token Type. Mode:" + ("<" + a + "> at index: <" + h + `> +`), + type: se.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED + }); + }); + }), r; +} +function sl(t, e, n) { + var r = [], i = !1, a = sn(Ve(Uc(t.modes, function(p) { + return p; + }))), c = Ht(a, function(p) { + return p[st] === Xe.NA; + }), h = Jo(n); + return e && V(c, function(p) { + var u = Zo(p, h); + if (u !== !1) { + var o = ul(p, u), s = { + message: o, + type: u.issue, + tokenType: p + }; + r.push(s); + } else + $(p, "LINE_BREAKS") ? p.LINE_BREAKS === !0 && (i = !0) : $r(h, p.PATTERN) && (i = !0); + }), e && !i && r.push({ + message: `Warning: No LINE_BREAKS Found. + This Lexer has been defined to track line and column information, + But none of the Token Types can be identified as matching a line terminator. + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS + for details.`, + type: se.NO_LINE_BREAKS_FLAGS + }), r; +} +function al(t) { + var e = {}, n = Qe(t); + return V(n, function(r) { + var i = t[r]; + if (it(i)) + e[r] = []; + else + throw Error("non exhaustive match"); + }), e; +} +function Qo(t) { + var e = t.PATTERN; + if (pt(e)) + return !1; + if (Ct(e)) + return !0; + if ($(e, "exec")) + return !0; + if (ot(e)) + return !1; + throw Error("non exhaustive match"); +} +function cl(t) { + return ot(t) && t.length === 1 ? t.charCodeAt(0) : !1; +} +var ll = { + // implements /\n|\r\n?/g.test + test: function(t) { + for (var e = t.length, n = this.lastIndex; n < e; n++) { + var r = t.charCodeAt(n); + if (r === 10) + return this.lastIndex = n + 1, !0; + if (r === 13) + return t.charCodeAt(n + 1) === 10 ? this.lastIndex = n + 2 : this.lastIndex = n + 1, !0; + } + return !1; + }, + lastIndex: 0 +}; +function Zo(t, e) { + if ($(t, "LINE_BREAKS")) + return !1; + if (pt(t.PATTERN)) { + try { + $r(e, t.PATTERN); + } catch (n) { + return { + issue: se.IDENTIFY_TERMINATOR, + errMsg: n.message + }; + } + return !1; + } else { + if (ot(t.PATTERN)) + return !1; + if (Qo(t)) + return { issue: se.CUSTOM_LINE_BREAK }; + throw Error("non exhaustive match"); + } +} +function ul(t, e) { + if (e.issue === se.IDENTIFY_TERMINATOR) + return `Warning: unable to identify line terminator usage in pattern. +` + (" The problem is in the <" + t.name + `> Token Type +`) + (" Root cause: " + e.errMsg + `. +`) + " For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR"; + if (e.issue === se.CUSTOM_LINE_BREAK) + return `Warning: A Custom Token Pattern should specify the option. +` + (" The problem is in the <" + t.name + `> Token Type +`) + " For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK"; + throw Error("non exhaustive match"); +} +function Jo(t) { + var e = x(t, function(n) { + return ot(n) && n.length > 0 ? n.charCodeAt(0) : n; + }); + return e; +} +function gr(t, e, n) { + t[e] === void 0 ? t[e] = [n] : t[e].push(n); +} +var Jt = 256; +function Tt(t) { + return t < Jt ? t : On[t]; +} +var On = []; +function fl() { + if (ee(On)) { + On = new Array(65536); + for (var t = 0; t < 65536; t++) + On[t] = t > 255 ? 255 + ~~(t / 255) : t; + } +} +function Wn(t, e) { + var n = t.tokenTypeIdx; + return n === e.tokenTypeIdx ? !0 : e.isParent === !0 && e.categoryMatchesMap[n] === !0; +} +function Sn(t, e) { + return t.tokenTypeIdx === e.tokenTypeIdx; +} +var Ci = 1, jo = {}; +function cn(t) { + var e = hl(t); + pl(e), vl(e), dl(e), V(e, function(n) { + n.isParent = n.categoryMatches.length > 0; + }); +} +function hl(t) { + for (var e = Se(t), n = t, r = !0; r; ) { + n = sn(Ve(x(n, function(a) { + return a.CATEGORIES; + }))); + var i = $n(n, e); + e = e.concat(i), ee(i) ? r = !1 : n = i; + } + return e; +} +function pl(t) { + V(t, function(e) { + ts(e) || (jo[Ci] = e, e.tokenTypeIdx = Ci++), Ii(e) && !it(e.CATEGORIES) && (e.CATEGORIES = [e.CATEGORIES]), Ii(e) || (e.CATEGORIES = []), gl(e) || (e.categoryMatches = []), El(e) || (e.categoryMatchesMap = {}); + }); +} +function dl(t) { + V(t, function(e) { + e.categoryMatches = [], V(e.categoryMatchesMap, function(n, r) { + e.categoryMatches.push(jo[r].tokenTypeIdx); + }); + }); +} +function vl(t) { + V(t, function(e) { + es([], e); + }); +} +function es(t, e) { + V(t, function(n) { + e.categoryMatchesMap[n.tokenTypeIdx] = !0; + }), V(e.CATEGORIES, function(n) { + var r = t.concat(e); + fe(r, n) || es(r, n); + }); +} +function ts(t) { + return $(t, "tokenTypeIdx"); +} +function Ii(t) { + return $(t, "CATEGORIES"); +} +function gl(t) { + return $(t, "categoryMatches"); +} +function El(t) { + return $(t, "categoryMatchesMap"); +} +function ml(t) { + return $(t, "tokenTypeIdx"); +} +var ns = { + buildUnableToPopLexerModeMessage: function(t) { + return "Unable to pop Lexer Mode after encountering Token ->" + t.image + "<- The Mode Stack is empty"; + }, + buildUnexpectedCharactersMessage: function(t, e, n, r, i) { + return "unexpected character: ->" + t.charAt(e) + "<- at offset: " + e + "," + (" skipped " + n + " characters."); + } +}, se; +(function(t) { + t[t.MISSING_PATTERN = 0] = "MISSING_PATTERN", t[t.INVALID_PATTERN = 1] = "INVALID_PATTERN", t[t.EOI_ANCHOR_FOUND = 2] = "EOI_ANCHOR_FOUND", t[t.UNSUPPORTED_FLAGS_FOUND = 3] = "UNSUPPORTED_FLAGS_FOUND", t[t.DUPLICATE_PATTERNS_FOUND = 4] = "DUPLICATE_PATTERNS_FOUND", t[t.INVALID_GROUP_TYPE_FOUND = 5] = "INVALID_GROUP_TYPE_FOUND", t[t.PUSH_MODE_DOES_NOT_EXIST = 6] = "PUSH_MODE_DOES_NOT_EXIST", t[t.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE = 7] = "MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE", t[t.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY = 8] = "MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY", t[t.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST = 9] = "MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST", t[t.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED = 10] = "LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED", t[t.SOI_ANCHOR_FOUND = 11] = "SOI_ANCHOR_FOUND", t[t.EMPTY_MATCH_PATTERN = 12] = "EMPTY_MATCH_PATTERN", t[t.NO_LINE_BREAKS_FLAGS = 13] = "NO_LINE_BREAKS_FLAGS", t[t.UNREACHABLE_PATTERN = 14] = "UNREACHABLE_PATTERN", t[t.IDENTIFY_TERMINATOR = 15] = "IDENTIFY_TERMINATOR", t[t.CUSTOM_LINE_BREAK = 16] = "CUSTOM_LINE_BREAK"; +})(se || (se = {})); +var jt = { + deferDefinitionErrorsHandling: !1, + positionTracking: "full", + lineTerminatorsPattern: /\n|\r\n?/g, + lineTerminatorCharacters: [` +`, "\r"], + ensureOptimizations: !1, + safeMode: !1, + errorMessageProvider: ns, + traceInitPerf: !1, + skipValidations: !1 +}; +Object.freeze(jt); +var Xe = ( + /** @class */ + function() { + function t(e, n) { + var r = this; + if (n === void 0 && (n = jt), this.lexerDefinition = e, this.lexerDefinitionErrors = [], this.lexerDefinitionWarning = [], this.patternIdxToConfig = {}, this.charCodeToPatternIdxToConfig = {}, this.modes = [], this.emptyGroups = {}, this.config = void 0, this.trackStartLines = !0, this.trackEndLines = !0, this.hasCustom = !1, this.canModeBeOptimized = {}, typeof n == "boolean") + throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`); + this.config = Ri(jt, n); + var i = this.config.traceInitPerf; + i === !0 ? (this.traceInitMaxIdent = 1 / 0, this.traceInitPerf = !0) : typeof i == "number" && (this.traceInitMaxIdent = i, this.traceInitPerf = !0), this.traceInitIndent = -1, this.TRACE_INIT("Lexer Constructor", function() { + var a, c = !0; + r.TRACE_INIT("Lexer Config handling", function() { + if (r.config.lineTerminatorsPattern === jt.lineTerminatorsPattern) + r.config.lineTerminatorsPattern = ll; + else if (r.config.lineTerminatorCharacters === jt.lineTerminatorCharacters) + throw Error(`Error: Missing property on the Lexer config. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`); + if (n.safeMode && n.ensureOptimizations) + throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.'); + r.trackStartLines = /full|onlyStart/i.test(r.config.positionTracking), r.trackEndLines = /full/i.test(r.config.positionTracking), it(e) ? (a = { modes: {} }, a.modes[Lt] = Se(e), a[Lt] = Lt) : (c = !1, a = on(e)); + }), r.config.skipValidations === !1 && (r.TRACE_INIT("performRuntimeChecks", function() { + r.lexerDefinitionErrors = r.lexerDefinitionErrors.concat(ol(a, r.trackStartLines, r.config.lineTerminatorCharacters)); + }), r.TRACE_INIT("performWarningRuntimeChecks", function() { + r.lexerDefinitionWarning = r.lexerDefinitionWarning.concat(sl(a, r.trackStartLines, r.config.lineTerminatorCharacters)); + })), a.modes = a.modes ? a.modes : {}, V(a.modes, function(o, s) { + a.modes[s] = Ht(o, function(l) { + return ht(l); + }); + }); + var h = Qe(a.modes); + if (V(a.modes, function(o, s) { + r.TRACE_INIT("Mode: <" + s + "> processing", function() { + if (r.modes.push(s), r.config.skipValidations === !1 && r.TRACE_INIT("validatePatterns", function() { + r.lexerDefinitionErrors = r.lexerDefinitionErrors.concat(Hc(o, h)); + }), ee(r.lexerDefinitionErrors)) { + cn(o); + var l; + r.TRACE_INIT("analyzeTokenTypes", function() { + l = $c(o, { + lineTerminatorCharacters: r.config.lineTerminatorCharacters, + positionTracking: n.positionTracking, + ensureOptimizations: n.ensureOptimizations, + safeMode: n.safeMode, + tracer: r.TRACE_INIT.bind(r) + }); + }), r.patternIdxToConfig[s] = l.patternIdxToConfig, r.charCodeToPatternIdxToConfig[s] = l.charCodeToPatternIdxToConfig, r.emptyGroups = Ri(r.emptyGroups, l.emptyGroups), r.hasCustom = l.hasCustom || r.hasCustom, r.canModeBeOptimized[s] = l.canBeOptimized; + } + }); + }), r.defaultMode = a.defaultMode, !ee(r.lexerDefinitionErrors) && !r.config.deferDefinitionErrorsHandling) { + var p = x(r.lexerDefinitionErrors, function(o) { + return o.message; + }), u = p.join(`----------------------- +`); + throw new Error(`Errors detected in definition of Lexer: +` + u); + } + V(r.lexerDefinitionWarning, function(o) { + Ho(o.message); + }), r.TRACE_INIT("Choosing sub-methods implementations", function() { + if (Xo ? (r.chopInput = Ni, r.match = r.matchWithTest) : (r.updateLastIndex = de, r.match = r.matchWithExec), c && (r.handleModes = de), r.trackStartLines === !1 && (r.computeNewColumn = Ni), r.trackEndLines === !1 && (r.updateTokenEndLineColumnLocation = de), /full/i.test(r.config.positionTracking)) + r.createTokenInstance = r.createFullToken; + else if (/onlyStart/i.test(r.config.positionTracking)) + r.createTokenInstance = r.createStartOnlyToken; + else if (/onlyOffset/i.test(r.config.positionTracking)) + r.createTokenInstance = r.createOffsetOnlyToken; + else + throw Error('Invalid config option: "' + r.config.positionTracking + '"'); + r.hasCustom ? (r.addToken = r.addTokenUsingPush, r.handlePayload = r.handlePayloadWithCustom) : (r.addToken = r.addTokenUsingMemberAccess, r.handlePayload = r.handlePayloadNoCustom); + }), r.TRACE_INIT("Failed Optimization Warnings", function() { + var o = Ne(r.canModeBeOptimized, function(s, l, f) { + return l === !1 && s.push(f), s; + }, []); + if (n.ensureOptimizations && !ee(o)) + throw Error("Lexer Modes: < " + o.join(", ") + ` > cannot be optimized. + Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. + Or inspect the console log for details on how to resolve these issues.`); + }), r.TRACE_INIT("clearRegExpParserCache", function() { + Fc(); + }), r.TRACE_INIT("toFastProperties", function() { + Wo(r); + }); + }); + } + return t.prototype.tokenize = function(e, n) { + if (n === void 0 && (n = this.defaultMode), !ee(this.lexerDefinitionErrors)) { + var r = x(this.lexerDefinitionErrors, function(c) { + return c.message; + }), i = r.join(`----------------------- +`); + throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: +` + i); + } + var a = this.tokenizeInternal(e, n); + return a; + }, t.prototype.tokenizeInternal = function(e, n) { + var r = this, i, a, c, h, p, u, o, s, l, f, v, d, g, E, A = e, m = A.length, N = 0, y = 0, R = this.hasCustom ? 0 : Math.floor(e.length / 10), T = new Array(R), w = [], C = this.trackStartLines ? 1 : void 0, M = this.trackStartLines ? 1 : void 0, _ = al(this.emptyGroups), W = this.trackStartLines, F = this.config.lineTerminatorsPattern, S = 0, G = [], J = [], le = [], tt = []; + Object.freeze(tt); + var Ae = void 0; + function Be() { + return G; + } + function Fe(we) { + var Kt = Tt(we), Ft = J[Kt]; + return Ft === void 0 ? tt : Ft; + } + var nt = function(we) { + if (le.length === 1 && // if we have both a POP_MODE and a PUSH_MODE this is in-fact a "transition" + // So no error should occur. + we.tokenType.PUSH_MODE === void 0) { + var Kt = r.config.errorMessageProvider.buildUnableToPopLexerModeMessage(we); + w.push({ + offset: we.startOffset, + line: we.startLine !== void 0 ? we.startLine : void 0, + column: we.startColumn !== void 0 ? we.startColumn : void 0, + length: we.image.length, + message: Kt + }); + } else { + le.pop(); + var Ft = Go(le); + G = r.patternIdxToConfig[Ft], J = r.charCodeToPatternIdxToConfig[Ft], S = G.length; + var qs = r.canModeBeOptimized[Ft] && r.config.safeMode === !1; + J && qs ? Ae = Fe : Ae = Be; + } + }; + function Ee(we) { + le.push(we), J = this.charCodeToPatternIdxToConfig[we], G = this.patternIdxToConfig[we], S = G.length, S = G.length; + var Kt = this.canModeBeOptimized[we] && this.config.safeMode === !1; + J && Kt ? Ae = Fe : Ae = Be; + } + Ee.call(this, n); + for (var ue; N < m; ) { + p = null; + var gt = A.charCodeAt(N), Bt = Ae(gt), Et = Bt.length; + for (i = 0; i < Et; i++) { + ue = Bt[i]; + var mt = ue.pattern; + u = null; + var qt = ue.short; + if (qt !== !1 ? gt === qt && (p = mt) : ue.isCustom === !0 ? (E = mt.exec(A, N, T, _), E !== null ? (p = E[0], E.payload !== void 0 && (u = E.payload)) : p = null) : (this.updateLastIndex(mt, N), p = this.match(mt, e, N)), p !== null) { + if (h = ue.longerAlt, h !== void 0) { + var jn = G[h], er = jn.pattern; + o = null, jn.isCustom === !0 ? (E = er.exec(A, N, T, _), E !== null ? (c = E[0], E.payload !== void 0 && (o = E.payload)) : c = null) : (this.updateLastIndex(er, N), c = this.match(er, e, N)), c && c.length > p.length && (p = c, u = o, ue = jn); + } + break; + } + } + if (p !== null) { + if (s = p.length, l = ue.group, l !== void 0 && (f = ue.tokenTypeIdx, v = this.createTokenInstance(p, N, f, ue.tokenType, C, M, s), this.handlePayload(v, u), l === !1 ? y = this.addToken(T, y, v) : _[l].push(v)), e = this.chopInput(e, s), N = N + s, M = this.computeNewColumn(M, s), W === !0 && ue.canLineTerminator === !0) { + var fn = 0, tr = void 0, nr = void 0; + F.lastIndex = 0; + do + tr = F.test(p), tr === !0 && (nr = F.lastIndex - 1, fn++); + while (tr === !0); + fn !== 0 && (C = C + fn, M = s - nr, this.updateTokenEndLineColumnLocation(v, l, nr, fn, C, M, s)); + } + this.handleModes(ue, nt, Ee, v); + } else { + for (var rr = N, ei = C, ti = M, Yt = !1; !Yt && N < m; ) + for (A.charCodeAt(N), e = this.chopInput(e, 1), N++, a = 0; a < S; a++) { + var ir = G[a], mt = ir.pattern, qt = ir.short; + if (qt !== !1 ? A.charCodeAt(N) === qt && (Yt = !0) : ir.isCustom === !0 ? Yt = mt.exec(A, N, T, _) !== null : (this.updateLastIndex(mt, N), Yt = mt.exec(e) !== null), Yt === !0) + break; + } + d = N - rr, g = this.config.errorMessageProvider.buildUnexpectedCharactersMessage(A, rr, d, ei, ti), w.push({ + offset: rr, + line: ei, + column: ti, + length: d, + message: g + }); + } + } + return this.hasCustom || (T.length = y), { + tokens: T, + groups: _, + errors: w + }; + }, t.prototype.handleModes = function(e, n, r, i) { + if (e.pop === !0) { + var a = e.push; + n(i), a !== void 0 && r.call(this, a); + } else + e.push !== void 0 && r.call(this, e.push); + }, t.prototype.chopInput = function(e, n) { + return e.substring(n); + }, t.prototype.updateLastIndex = function(e, n) { + e.lastIndex = n; + }, t.prototype.updateTokenEndLineColumnLocation = function(e, n, r, i, a, c, h) { + var p, u; + n !== void 0 && (p = r === h - 1, u = p ? -1 : 0, i === 1 && p === !0 || (e.endLine = a + u, e.endColumn = c - 1 + -u)); + }, t.prototype.computeNewColumn = function(e, n) { + return e + n; + }, t.prototype.createTokenInstance = function() { + return null; + }, t.prototype.createOffsetOnlyToken = function(e, n, r, i) { + return { + image: e, + startOffset: n, + tokenTypeIdx: r, + tokenType: i + }; + }, t.prototype.createStartOnlyToken = function(e, n, r, i, a, c) { + return { + image: e, + startOffset: n, + startLine: a, + startColumn: c, + tokenTypeIdx: r, + tokenType: i + }; + }, t.prototype.createFullToken = function(e, n, r, i, a, c, h) { + return { + image: e, + startOffset: n, + endOffset: n + h - 1, + startLine: a, + endLine: a, + startColumn: c, + endColumn: c + h - 1, + tokenTypeIdx: r, + tokenType: i + }; + }, t.prototype.addToken = function(e, n, r) { + return 666; + }, t.prototype.addTokenUsingPush = function(e, n, r) { + return e.push(r), n; + }, t.prototype.addTokenUsingMemberAccess = function(e, n, r) { + return e[n] = r, n++, n; + }, t.prototype.handlePayload = function(e, n) { + }, t.prototype.handlePayloadNoCustom = function(e, n) { + }, t.prototype.handlePayloadWithCustom = function(e, n) { + n !== null && (e.payload = n); + }, t.prototype.match = function(e, n, r) { + return null; + }, t.prototype.matchWithTest = function(e, n, r) { + var i = e.test(n); + return i === !0 ? n.substring(r, e.lastIndex) : null; + }, t.prototype.matchWithExec = function(e, n) { + var r = e.exec(n); + return r !== null ? r[0] : r; + }, t.prototype.TRACE_INIT = function(e, n) { + if (this.traceInitPerf === !0) { + this.traceInitIndent++; + var r = new Array(this.traceInitIndent + 1).join(" "); + this.traceInitIndent < this.traceInitMaxIdent && console.log(r + "--> <" + e + ">"); + var i = qo(n), a = i.time, c = i.value, h = a > 10 ? console.warn : console.log; + return this.traceInitIndent < this.traceInitMaxIdent && h(r + "<-- <" + e + "> time: " + a + "ms"), this.traceInitIndent--, c; + } else + return n(); + }, t.SKIPPED = "This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.", t.NA = /NOT_APPLICABLE/, t; + }() +); +function Pt(t) { + return rs(t) ? t.LABEL : t.name; +} +function Rl(t) { + return t.name; +} +function rs(t) { + return ot(t.LABEL) && t.LABEL !== ""; +} +var Nl = "parent", Oi = "categories", Mi = "label", Ui = "group", Li = "push_mode", _i = "pop_mode", Pi = "longer_alt", ki = "line_breaks", xi = "start_chars_hint"; +function Hr(t) { + return Al(t); +} +function Al(t) { + var e = t.pattern, n = {}; + if (n.name = t.name, ht(e) || (n.PATTERN = e), $(t, Nl)) + throw `The parent property is no longer supported. +See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`; + return $(t, Oi) && (n.CATEGORIES = t[Oi]), cn([n]), $(t, Mi) && (n.LABEL = t[Mi]), $(t, Ui) && (n.GROUP = t[Ui]), $(t, _i) && (n.POP_MODE = t[_i]), $(t, Li) && (n.PUSH_MODE = t[Li]), $(t, Pi) && (n.LONGER_ALT = t[Pi]), $(t, ki) && (n.LINE_BREAKS = t[ki]), $(t, xi) && (n.START_CHARS_HINT = t[xi]), n; +} +var wt = Hr({ name: "EOF", pattern: Xe.NA }); +cn([wt]); +function qn(t, e, n, r, i, a, c, h) { + return { + image: e, + startOffset: n, + endOffset: r, + startLine: i, + endLine: a, + startColumn: c, + endColumn: h, + tokenTypeIdx: t.tokenTypeIdx, + tokenType: t + }; +} +function yl(t, e) { + return Wn(t, e); +} +var vt = globalThis && globalThis.__extends || function() { + var t = function(e, n) { + return t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(r, i) { + r.__proto__ = i; + } || function(r, i) { + for (var a in i) + Object.prototype.hasOwnProperty.call(i, a) && (r[a] = i[a]); + }, t(e, n); + }; + return function(e, n) { + t(e, n); + function r() { + this.constructor = e; + } + e.prototype = n === null ? Object.create(n) : (r.prototype = n.prototype, new r()); + }; +}(), at = ( + /** @class */ + function() { + function t(e) { + this._definition = e; + } + return Object.defineProperty(t.prototype, "definition", { + get: function() { + return this._definition; + }, + set: function(e) { + this._definition = e; + }, + enumerable: !1, + configurable: !0 + }), t.prototype.accept = function(e) { + e.visit(this), V(this.definition, function(n) { + n.accept(e); + }); + }, t; + }() +), Ue = ( + /** @class */ + function(t) { + vt(e, t); + function e(n) { + var r = t.call(this, []) || this; + return r.idx = 1, et(r, je(n, function(i) { + return i !== void 0; + })), r; + } + return Object.defineProperty(e.prototype, "definition", { + get: function() { + return this.referencedRule !== void 0 ? this.referencedRule.definition : []; + }, + set: function(n) { + }, + enumerable: !1, + configurable: !0 + }), e.prototype.accept = function(n) { + n.visit(this); + }, e; + }(at) +), kt = ( + /** @class */ + function(t) { + vt(e, t); + function e(n) { + var r = t.call(this, n.definition) || this; + return r.orgText = "", et(r, je(n, function(i) { + return i !== void 0; + })), r; + } + return e; + }(at) +), Te = ( + /** @class */ + function(t) { + vt(e, t); + function e(n) { + var r = t.call(this, n.definition) || this; + return r.ignoreAmbiguities = !1, et(r, je(n, function(i) { + return i !== void 0; + })), r; + } + return e; + }(at) +), ye = ( + /** @class */ + function(t) { + vt(e, t); + function e(n) { + var r = t.call(this, n.definition) || this; + return r.idx = 1, et(r, je(n, function(i) { + return i !== void 0; + })), r; + } + return e; + }(at) +), We = ( + /** @class */ + function(t) { + vt(e, t); + function e(n) { + var r = t.call(this, n.definition) || this; + return r.idx = 1, et(r, je(n, function(i) { + return i !== void 0; + })), r; + } + return e; + }(at) +), qe = ( + /** @class */ + function(t) { + vt(e, t); + function e(n) { + var r = t.call(this, n.definition) || this; + return r.idx = 1, et(r, je(n, function(i) { + return i !== void 0; + })), r; + } + return e; + }(at) +), ce = ( + /** @class */ + function(t) { + vt(e, t); + function e(n) { + var r = t.call(this, n.definition) || this; + return r.idx = 1, et(r, je(n, function(i) { + return i !== void 0; + })), r; + } + return e; + }(at) +), Ge = ( + /** @class */ + function(t) { + vt(e, t); + function e(n) { + var r = t.call(this, n.definition) || this; + return r.idx = 1, et(r, je(n, function(i) { + return i !== void 0; + })), r; + } + return e; + }(at) +), $e = ( + /** @class */ + function(t) { + vt(e, t); + function e(n) { + var r = t.call(this, n.definition) || this; + return r.idx = 1, r.ignoreAmbiguities = !1, r.hasPredicates = !1, et(r, je(n, function(i) { + return i !== void 0; + })), r; + } + return Object.defineProperty(e.prototype, "definition", { + get: function() { + return this._definition; + }, + set: function(n) { + this._definition = n; + }, + enumerable: !1, + configurable: !0 + }), e; + }(at) +), ne = ( + /** @class */ + function() { + function t(e) { + this.idx = 1, et(this, je(e, function(n) { + return n !== void 0; + })); + } + return t.prototype.accept = function(e) { + e.visit(this); + }, t; + }() +); +function is(t) { + return x(t, en); +} +function en(t) { + function e(i) { + return x(i, en); + } + if (t instanceof Ue) + return { + type: "NonTerminal", + name: t.nonTerminalName, + idx: t.idx + }; + if (t instanceof Te) + return { + type: "Alternative", + definition: e(t.definition) + }; + if (t instanceof ye) + return { + type: "Option", + idx: t.idx, + definition: e(t.definition) + }; + if (t instanceof We) + return { + type: "RepetitionMandatory", + idx: t.idx, + definition: e(t.definition) + }; + if (t instanceof qe) + return { + type: "RepetitionMandatoryWithSeparator", + idx: t.idx, + separator: en(new ne({ terminalType: t.separator })), + definition: e(t.definition) + }; + if (t instanceof Ge) + return { + type: "RepetitionWithSeparator", + idx: t.idx, + separator: en(new ne({ terminalType: t.separator })), + definition: e(t.definition) + }; + if (t instanceof ce) + return { + type: "Repetition", + idx: t.idx, + definition: e(t.definition) + }; + if (t instanceof $e) + return { + type: "Alternation", + idx: t.idx, + definition: e(t.definition) + }; + if (t instanceof ne) { + var n = { + type: "Terminal", + name: t.terminalType.name, + label: Pt(t.terminalType), + idx: t.idx + }, r = t.terminalType.PATTERN; + return t.terminalType.PATTERN && (n.pattern = pt(r) ? r.source : r), n; + } else { + if (t instanceof kt) + return { + type: "Rule", + name: t.name, + orgText: t.orgText, + definition: e(t.definition) + }; + throw Error("non exhaustive match"); + } +} +var Yn = ( + /** @class */ + function() { + function t() { + } + return t.prototype.walk = function(e, n) { + var r = this; + n === void 0 && (n = []), V(e.definition, function(i, a) { + var c = Re(e.definition, a + 1); + if (i instanceof Ue) + r.walkProdRef(i, c, n); + else if (i instanceof ne) + r.walkTerminal(i, c, n); + else if (i instanceof Te) + r.walkFlat(i, c, n); + else if (i instanceof ye) + r.walkOption(i, c, n); + else if (i instanceof We) + r.walkAtLeastOne(i, c, n); + else if (i instanceof qe) + r.walkAtLeastOneSep(i, c, n); + else if (i instanceof Ge) + r.walkManySep(i, c, n); + else if (i instanceof ce) + r.walkMany(i, c, n); + else if (i instanceof $e) + r.walkOr(i, c, n); + else + throw Error("non exhaustive match"); + }); + }, t.prototype.walkTerminal = function(e, n, r) { + }, t.prototype.walkProdRef = function(e, n, r) { + }, t.prototype.walkFlat = function(e, n, r) { + var i = n.concat(r); + this.walk(e, i); + }, t.prototype.walkOption = function(e, n, r) { + var i = n.concat(r); + this.walk(e, i); + }, t.prototype.walkAtLeastOne = function(e, n, r) { + var i = [ + new ye({ definition: e.definition }) + ].concat(n, r); + this.walk(e, i); + }, t.prototype.walkAtLeastOneSep = function(e, n, r) { + var i = Si(e, n, r); + this.walk(e, i); + }, t.prototype.walkMany = function(e, n, r) { + var i = [ + new ye({ definition: e.definition }) + ].concat(n, r); + this.walk(e, i); + }, t.prototype.walkManySep = function(e, n, r) { + var i = Si(e, n, r); + this.walk(e, i); + }, t.prototype.walkOr = function(e, n, r) { + var i = this, a = n.concat(r); + V(e.definition, function(c) { + var h = new Te({ definition: [c] }); + i.walk(h, a); + }); + }, t; + }() +); +function Si(t, e, n) { + var r = [ + new ye({ + definition: [new ne({ terminalType: t.separator })].concat(t.definition) + }) + ], i = r.concat(e, n); + return i; +} +var xt = ( + /** @class */ + function() { + function t() { + } + return t.prototype.visit = function(e) { + var n = e; + switch (n.constructor) { + case Ue: + return this.visitNonTerminal(n); + case Te: + return this.visitAlternative(n); + case ye: + return this.visitOption(n); + case We: + return this.visitRepetitionMandatory(n); + case qe: + return this.visitRepetitionMandatoryWithSeparator(n); + case Ge: + return this.visitRepetitionWithSeparator(n); + case ce: + return this.visitRepetition(n); + case $e: + return this.visitAlternation(n); + case ne: + return this.visitTerminal(n); + case kt: + return this.visitRule(n); + default: + throw Error("non exhaustive match"); + } + }, t.prototype.visitNonTerminal = function(e) { + }, t.prototype.visitAlternative = function(e) { + }, t.prototype.visitOption = function(e) { + }, t.prototype.visitRepetition = function(e) { + }, t.prototype.visitRepetitionMandatory = function(e) { + }, t.prototype.visitRepetitionMandatoryWithSeparator = function(e) { + }, t.prototype.visitRepetitionWithSeparator = function(e) { + }, t.prototype.visitAlternation = function(e) { + }, t.prototype.visitTerminal = function(e) { + }, t.prototype.visitRule = function(e) { + }, t; + }() +), Tl = globalThis && globalThis.__extends || function() { + var t = function(e, n) { + return t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(r, i) { + r.__proto__ = i; + } || function(r, i) { + for (var a in i) + Object.prototype.hasOwnProperty.call(i, a) && (r[a] = i[a]); + }, t(e, n); + }; + return function(e, n) { + t(e, n); + function r() { + this.constructor = e; + } + e.prototype = n === null ? Object.create(n) : (r.prototype = n.prototype, new r()); + }; +}(); +function wl(t) { + return t instanceof Te || t instanceof ye || t instanceof ce || t instanceof We || t instanceof qe || t instanceof Ge || t instanceof ne || t instanceof kt; +} +function Bn(t, e) { + e === void 0 && (e = []); + var n = t instanceof ye || t instanceof ce || t instanceof Ge; + return n ? !0 : t instanceof $e ? $o(t.definition, function(r) { + return Bn(r, e); + }) : t instanceof Ue && fe(e, t) ? !1 : t instanceof at ? (t instanceof Ue && e.push(t), He(t.definition, function(r) { + return Bn(r, e); + })) : !1; +} +function Cl(t) { + return t instanceof $e; +} +function rt(t) { + if (t instanceof Ue) + return "SUBRULE"; + if (t instanceof ye) + return "OPTION"; + if (t instanceof $e) + return "OR"; + if (t instanceof We) + return "AT_LEAST_ONE"; + if (t instanceof qe) + return "AT_LEAST_ONE_SEP"; + if (t instanceof Ge) + return "MANY_SEP"; + if (t instanceof ce) + return "MANY"; + if (t instanceof ne) + return "CONSUME"; + throw Error("non exhaustive match"); +} +var os = ( + /** @class */ + function(t) { + Tl(e, t); + function e() { + var n = t !== null && t.apply(this, arguments) || this; + return n.separator = "-", n.dslMethods = { + option: [], + alternation: [], + repetition: [], + repetitionWithSeparator: [], + repetitionMandatory: [], + repetitionMandatoryWithSeparator: [] + }, n; + } + return e.prototype.reset = function() { + this.dslMethods = { + option: [], + alternation: [], + repetition: [], + repetitionWithSeparator: [], + repetitionMandatory: [], + repetitionMandatoryWithSeparator: [] + }; + }, e.prototype.visitTerminal = function(n) { + var r = n.terminalType.name + this.separator + "Terminal"; + $(this.dslMethods, r) || (this.dslMethods[r] = []), this.dslMethods[r].push(n); + }, e.prototype.visitNonTerminal = function(n) { + var r = n.nonTerminalName + this.separator + "Terminal"; + $(this.dslMethods, r) || (this.dslMethods[r] = []), this.dslMethods[r].push(n); + }, e.prototype.visitOption = function(n) { + this.dslMethods.option.push(n); + }, e.prototype.visitRepetitionWithSeparator = function(n) { + this.dslMethods.repetitionWithSeparator.push(n); + }, e.prototype.visitRepetitionMandatory = function(n) { + this.dslMethods.repetitionMandatory.push(n); + }, e.prototype.visitRepetitionMandatoryWithSeparator = function(n) { + this.dslMethods.repetitionMandatoryWithSeparator.push(n); + }, e.prototype.visitRepetition = function(n) { + this.dslMethods.repetition.push(n); + }, e.prototype.visitAlternation = function(n) { + this.dslMethods.alternation.push(n); + }, e; + }(xt) +), yn = new os(); +function Il(t) { + yn.reset(), t.accept(yn); + var e = yn.dslMethods; + return yn.reset(), e; +} +function ln(t) { + if (t instanceof Ue) + return ln(t.referencedRule); + if (t instanceof ne) + return Ul(t); + if (wl(t)) + return Ol(t); + if (Cl(t)) + return Ml(t); + throw Error("non exhaustive match"); +} +function Ol(t) { + for (var e = [], n = t.definition, r = 0, i = n.length > r, a, c = !0; i && c; ) + a = n[r], c = Bn(a), e = e.concat(ln(a)), r = r + 1, i = n.length > r; + return Dr(e); +} +function Ml(t) { + var e = x(t.definition, function(n) { + return ln(n); + }); + return Dr(Ve(e)); +} +function Ul(t) { + return [t.terminalType]; +} +var ss = "_~IN~_", Ll = globalThis && globalThis.__extends || function() { + var t = function(e, n) { + return t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(r, i) { + r.__proto__ = i; + } || function(r, i) { + for (var a in i) + Object.prototype.hasOwnProperty.call(i, a) && (r[a] = i[a]); + }, t(e, n); + }; + return function(e, n) { + t(e, n); + function r() { + this.constructor = e; + } + e.prototype = n === null ? Object.create(n) : (r.prototype = n.prototype, new r()); + }; +}(), _l = ( + /** @class */ + function(t) { + Ll(e, t); + function e(n) { + var r = t.call(this) || this; + return r.topProd = n, r.follows = {}, r; + } + return e.prototype.startWalking = function() { + return this.walk(this.topProd), this.follows; + }, e.prototype.walkTerminal = function(n, r, i) { + }, e.prototype.walkProdRef = function(n, r, i) { + var a = kl(n.referencedRule, n.idx) + this.topProd.name, c = r.concat(i), h = new Te({ definition: c }), p = ln(h); + this.follows[a] = p; + }, e; + }(Yn) +); +function Pl(t) { + var e = {}; + return V(t, function(n) { + var r = new _l(n).startWalking(); + et(e, r); + }), e; +} +function kl(t, e) { + return t.name + e + ss; +} +var Wr = { + buildMismatchTokenMessage: function(t) { + var e = t.expected, n = t.actual; + t.previous, t.ruleName; + var r = rs(e), i = r ? "--> " + Pt(e) + " <--" : "token of type --> " + e.name + " <--", a = "Expecting " + i + " but found --> '" + n.image + "' <--"; + return a; + }, + buildNotAllInputParsedMessage: function(t) { + var e = t.firstRedundant; + return t.ruleName, "Redundant input, expecting EOF but found: " + e.image; + }, + buildNoViableAltMessage: function(t) { + var e = t.expectedPathsPerAlt, n = t.actual; + t.previous; + var r = t.customUserDescription; + t.ruleName; + var i = "Expecting: ", a = Ze(n).image, c = ` +but found: '` + a + "'"; + if (r) + return i + r + c; + var h = Ne(e, function(s, l) { + return s.concat(l); + }, []), p = x(h, function(s) { + return "[" + x(s, function(l) { + return Pt(l); + }).join(", ") + "]"; + }), u = x(p, function(s, l) { + return " " + (l + 1) + ". " + s; + }), o = `one of these possible Token sequences: +` + u.join(` +`); + return i + o + c; + }, + buildEarlyExitMessage: function(t) { + var e = t.expectedIterationPaths, n = t.actual, r = t.customUserDescription; + t.ruleName; + var i = "Expecting: ", a = Ze(n).image, c = ` +but found: '` + a + "'"; + if (r) + return i + r + c; + var h = x(e, function(u) { + return "[" + x(u, function(o) { + return Pt(o); + }).join(",") + "]"; + }), p = `expecting at least one iteration which starts with one of these possible Token sequences:: + ` + ("<" + h.join(" ,") + ">"); + return i + p + c; + } +}; +Object.freeze(Wr); +var as = { + buildRuleNotFoundError: function(t, e) { + var n = "Invalid grammar, reference to a rule which is not defined: ->" + e.nonTerminalName + `<- +inside top level rule: ->` + t.name + "<-"; + return n; + } +}, Kn = { + buildDuplicateFoundError: function(t, e) { + function n(o) { + return o instanceof ne ? o.terminalType.name : o instanceof Ue ? o.nonTerminalName : ""; + } + var r = t.name, i = Ze(e), a = i.idx, c = rt(i), h = n(i), p = a > 0, u = "->" + c + (p ? a : "") + "<- " + (h ? "with argument: ->" + h + "<-" : "") + ` + appears more than once (` + e.length + " times) in the top level rule: ->" + r + `<-. + For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES + `; + return u = u.replace(/[ \t]+/g, " "), u = u.replace(/\s\s+/g, ` +`), u; + }, + buildNamespaceConflictError: function(t) { + var e = `Namespace conflict found in grammar. +` + ("The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <" + t.name + `>. +`) + `To resolve this make sure each Terminal and Non-Terminal names are unique +This is easy to accomplish by using the convention that Terminal names start with an uppercase letter +and Non-Terminal names start with a lower case letter.`; + return e; + }, + buildAlternationPrefixAmbiguityError: function(t) { + var e = x(t.prefixPath, function(i) { + return Pt(i); + }).join(", "), n = t.alternation.idx === 0 ? "" : t.alternation.idx, r = "Ambiguous alternatives: <" + t.ambiguityIndices.join(" ,") + `> due to common lookahead prefix +` + ("in inside <" + t.topLevelRule.name + `> Rule, +`) + ("<" + e + `> may appears as a prefix path in all these alternatives. +`) + `See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX +For Further details.`; + return r; + }, + buildAlternationAmbiguityError: function(t) { + var e = x(t.prefixPath, function(i) { + return Pt(i); + }).join(", "), n = t.alternation.idx === 0 ? "" : t.alternation.idx, r = "Ambiguous Alternatives Detected: <" + t.ambiguityIndices.join(" ,") + "> in " + (" inside <" + t.topLevelRule.name + `> Rule, +`) + ("<" + e + `> may appears as a prefix path in all these alternatives. +`); + return r = r + `See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`, r; + }, + buildEmptyRepetitionError: function(t) { + var e = rt(t.repetition); + t.repetition.idx !== 0 && (e += t.repetition.idx); + var n = "The repetition <" + e + "> within Rule <" + t.topLevelRule.name + `> can never consume any tokens. +This could lead to an infinite loop.`; + return n; + }, + // TODO: remove - `errors_public` from nyc.config.js exclude + // once this method is fully removed from this file + buildTokenNameError: function(t) { + return "deprecated"; + }, + buildEmptyAlternationError: function(t) { + var e = "Ambiguous empty alternative: <" + (t.emptyChoiceIdx + 1) + ">" + (" in inside <" + t.topLevelRule.name + `> Rule. +`) + "Only the last alternative may be an empty alternative."; + return e; + }, + buildTooManyAlternativesError: function(t) { + var e = `An Alternation cannot have more than 256 alternatives: +` + (" inside <" + t.topLevelRule.name + `> Rule. + has ` + (t.alternation.definition.length + 1) + " alternatives."); + return e; + }, + buildLeftRecursionError: function(t) { + var e = t.topLevelRule.name, n = x(t.leftRecursionPath, function(a) { + return a.name; + }), r = e + " --> " + n.concat([e]).join(" --> "), i = `Left Recursion found in grammar. +` + ("rule: <" + e + `> can be invoked from itself (directly or indirectly) +`) + (`without consuming any Tokens. The grammar path that causes this is: + ` + r + ` +`) + ` To fix this refactor your grammar to remove the left recursion. +see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`; + return i; + }, + // TODO: remove - `errors_public` from nyc.config.js exclude + // once this method is fully removed from this file + buildInvalidRuleNameError: function(t) { + return "deprecated"; + }, + buildDuplicateRuleNameError: function(t) { + var e; + t.topLevelRule instanceof kt ? e = t.topLevelRule.name : e = t.topLevelRule; + var n = "Duplicate definition, rule: ->" + e + "<- is already defined in the grammar: ->" + t.grammarName + "<-"; + return n; + } +}, xl = globalThis && globalThis.__extends || function() { + var t = function(e, n) { + return t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(r, i) { + r.__proto__ = i; + } || function(r, i) { + for (var a in i) + Object.prototype.hasOwnProperty.call(i, a) && (r[a] = i[a]); + }, t(e, n); + }; + return function(e, n) { + t(e, n); + function r() { + this.constructor = e; + } + e.prototype = n === null ? Object.create(n) : (r.prototype = n.prototype, new r()); + }; +}(); +function Sl(t, e) { + var n = new Bl(t, e); + return n.resolveRefs(), n.errors; +} +var Bl = ( + /** @class */ + function(t) { + xl(e, t); + function e(n, r) { + var i = t.call(this) || this; + return i.nameToTopRule = n, i.errMsgProvider = r, i.errors = [], i; + } + return e.prototype.resolveRefs = function() { + var n = this; + V(xe(this.nameToTopRule), function(r) { + n.currTopLevel = r, r.accept(n); + }); + }, e.prototype.visitNonTerminal = function(n) { + var r = this.nameToTopRule[n.nonTerminalName]; + if (r) + n.referencedRule = r; + else { + var i = this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel, n); + this.errors.push({ + message: i, + type: Le.UNRESOLVED_SUBRULE_REF, + ruleName: this.currTopLevel.name, + unresolvedRefName: n.nonTerminalName + }); + } + }, e; + }(xt) +), St = globalThis && globalThis.__extends || function() { + var t = function(e, n) { + return t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(r, i) { + r.__proto__ = i; + } || function(r, i) { + for (var a in i) + Object.prototype.hasOwnProperty.call(i, a) && (r[a] = i[a]); + }, t(e, n); + }; + return function(e, n) { + t(e, n); + function r() { + this.constructor = e; + } + e.prototype = n === null ? Object.create(n) : (r.prototype = n.prototype, new r()); + }; +}(), Fl = ( + /** @class */ + function(t) { + St(e, t); + function e(n, r) { + var i = t.call(this) || this; + return i.topProd = n, i.path = r, i.possibleTokTypes = [], i.nextProductionName = "", i.nextProductionOccurrence = 0, i.found = !1, i.isAtEndOfPath = !1, i; + } + return e.prototype.startWalking = function() { + if (this.found = !1, this.path.ruleStack[0] !== this.topProd.name) + throw Error("The path does not start with the walker's top Rule!"); + return this.ruleStack = Se(this.path.ruleStack).reverse(), this.occurrenceStack = Se(this.path.occurrenceStack).reverse(), this.ruleStack.pop(), this.occurrenceStack.pop(), this.updateExpectedNext(), this.walk(this.topProd), this.possibleTokTypes; + }, e.prototype.walk = function(n, r) { + r === void 0 && (r = []), this.found || t.prototype.walk.call(this, n, r); + }, e.prototype.walkProdRef = function(n, r, i) { + if (n.referencedRule.name === this.nextProductionName && n.idx === this.nextProductionOccurrence) { + var a = r.concat(i); + this.updateExpectedNext(), this.walk(n.referencedRule, a); + } + }, e.prototype.updateExpectedNext = function() { + ee(this.ruleStack) ? (this.nextProductionName = "", this.nextProductionOccurrence = 0, this.isAtEndOfPath = !0) : (this.nextProductionName = this.ruleStack.pop(), this.nextProductionOccurrence = this.occurrenceStack.pop()); + }, e; + }(Yn) +), bl = ( + /** @class */ + function(t) { + St(e, t); + function e(n, r) { + var i = t.call(this, n, r) || this; + return i.path = r, i.nextTerminalName = "", i.nextTerminalOccurrence = 0, i.nextTerminalName = i.path.lastTok.name, i.nextTerminalOccurrence = i.path.lastTokOccurrence, i; + } + return e.prototype.walkTerminal = function(n, r, i) { + if (this.isAtEndOfPath && n.terminalType.name === this.nextTerminalName && n.idx === this.nextTerminalOccurrence && !this.found) { + var a = r.concat(i), c = new Te({ definition: a }); + this.possibleTokTypes = ln(c), this.found = !0; + } + }, e; + }(Fl) +), zn = ( + /** @class */ + function(t) { + St(e, t); + function e(n, r) { + var i = t.call(this) || this; + return i.topRule = n, i.occurrence = r, i.result = { + token: void 0, + occurrence: void 0, + isEndOfRule: void 0 + }, i; + } + return e.prototype.startWalking = function() { + return this.walk(this.topRule), this.result; + }, e; + }(Yn) +), Dl = ( + /** @class */ + function(t) { + St(e, t); + function e() { + return t !== null && t.apply(this, arguments) || this; + } + return e.prototype.walkMany = function(n, r, i) { + if (n.idx === this.occurrence) { + var a = Ze(r.concat(i)); + this.result.isEndOfRule = a === void 0, a instanceof ne && (this.result.token = a.terminalType, this.result.occurrence = a.idx); + } else + t.prototype.walkMany.call(this, n, r, i); + }, e; + }(zn) +), Bi = ( + /** @class */ + function(t) { + St(e, t); + function e() { + return t !== null && t.apply(this, arguments) || this; + } + return e.prototype.walkManySep = function(n, r, i) { + if (n.idx === this.occurrence) { + var a = Ze(r.concat(i)); + this.result.isEndOfRule = a === void 0, a instanceof ne && (this.result.token = a.terminalType, this.result.occurrence = a.idx); + } else + t.prototype.walkManySep.call(this, n, r, i); + }, e; + }(zn) +), Vl = ( + /** @class */ + function(t) { + St(e, t); + function e() { + return t !== null && t.apply(this, arguments) || this; + } + return e.prototype.walkAtLeastOne = function(n, r, i) { + if (n.idx === this.occurrence) { + var a = Ze(r.concat(i)); + this.result.isEndOfRule = a === void 0, a instanceof ne && (this.result.token = a.terminalType, this.result.occurrence = a.idx); + } else + t.prototype.walkAtLeastOne.call(this, n, r, i); + }, e; + }(zn) +), Fi = ( + /** @class */ + function(t) { + St(e, t); + function e() { + return t !== null && t.apply(this, arguments) || this; + } + return e.prototype.walkAtLeastOneSep = function(n, r, i) { + if (n.idx === this.occurrence) { + var a = Ze(r.concat(i)); + this.result.isEndOfRule = a === void 0, a instanceof ne && (this.result.token = a.terminalType, this.result.occurrence = a.idx); + } else + t.prototype.walkAtLeastOneSep.call(this, n, r, i); + }, e; + }(zn) +); +function _r(t, e, n) { + n === void 0 && (n = []), n = Se(n); + var r = [], i = 0; + function a(u) { + return u.concat(Re(t, i + 1)); + } + function c(u) { + var o = _r(a(u), e, n); + return r.concat(o); + } + for (; n.length < e && i < t.length; ) { + var h = t[i]; + if (h instanceof Te) + return c(h.definition); + if (h instanceof Ue) + return c(h.definition); + if (h instanceof ye) + r = c(h.definition); + else if (h instanceof We) { + var p = h.definition.concat([ + new ce({ + definition: h.definition + }) + ]); + return c(p); + } else if (h instanceof qe) { + var p = [ + new Te({ definition: h.definition }), + new ce({ + definition: [new ne({ terminalType: h.separator })].concat(h.definition) + }) + ]; + return c(p); + } else if (h instanceof Ge) { + var p = h.definition.concat([ + new ce({ + definition: [new ne({ terminalType: h.separator })].concat(h.definition) + }) + ]); + r = c(p); + } else if (h instanceof ce) { + var p = h.definition.concat([ + new ce({ + definition: h.definition + }) + ]); + r = c(p); + } else { + if (h instanceof $e) + return V(h.definition, function(u) { + ee(u.definition) === !1 && (r = c(u.definition)); + }), r; + if (h instanceof ne) + n.push(h.terminalType); + else + throw Error("non exhaustive match"); + } + i++; + } + return r.push({ + partialPath: n, + suffixDef: Re(t, i) + }), r; +} +function cs(t, e, n, r) { + var i = "EXIT_NONE_TERMINAL", a = [i], c = "EXIT_ALTERNATIVE", h = !1, p = e.length, u = p - r - 1, o = [], s = []; + for (s.push({ + idx: -1, + def: t, + ruleStack: [], + occurrenceStack: [] + }); !ee(s); ) { + var l = s.pop(); + if (l === c) { + h && Go(s).idx <= u && s.pop(); + continue; + } + var f = l.def, v = l.idx, d = l.ruleStack, g = l.occurrenceStack; + if (!ee(f)) { + var E = f[0]; + if (E === i) { + var A = { + idx: v, + def: Re(f), + ruleStack: nn(d), + occurrenceStack: nn(g) + }; + s.push(A); + } else if (E instanceof ne) + if (v < p - 1) { + var m = v + 1, N = e[m]; + if (n(N, E.terminalType)) { + var A = { + idx: m, + def: Re(f), + ruleStack: d, + occurrenceStack: g + }; + s.push(A); + } + } else if (v === p - 1) + o.push({ + nextTokenType: E.terminalType, + nextTokenOccurrence: E.idx, + ruleStack: d, + occurrenceStack: g + }), h = !0; + else + throw Error("non exhaustive match"); + else if (E instanceof Ue) { + var y = Se(d); + y.push(E.nonTerminalName); + var R = Se(g); + R.push(E.idx); + var A = { + idx: v, + def: E.definition.concat(a, Re(f)), + ruleStack: y, + occurrenceStack: R + }; + s.push(A); + } else if (E instanceof ye) { + var T = { + idx: v, + def: Re(f), + ruleStack: d, + occurrenceStack: g + }; + s.push(T), s.push(c); + var w = { + idx: v, + def: E.definition.concat(Re(f)), + ruleStack: d, + occurrenceStack: g + }; + s.push(w); + } else if (E instanceof We) { + var C = new ce({ + definition: E.definition, + idx: E.idx + }), M = E.definition.concat([C], Re(f)), A = { + idx: v, + def: M, + ruleStack: d, + occurrenceStack: g + }; + s.push(A); + } else if (E instanceof qe) { + var _ = new ne({ + terminalType: E.separator + }), C = new ce({ + definition: [_].concat(E.definition), + idx: E.idx + }), M = E.definition.concat([C], Re(f)), A = { + idx: v, + def: M, + ruleStack: d, + occurrenceStack: g + }; + s.push(A); + } else if (E instanceof Ge) { + var T = { + idx: v, + def: Re(f), + ruleStack: d, + occurrenceStack: g + }; + s.push(T), s.push(c); + var _ = new ne({ + terminalType: E.separator + }), W = new ce({ + definition: [_].concat(E.definition), + idx: E.idx + }), M = E.definition.concat([W], Re(f)), w = { + idx: v, + def: M, + ruleStack: d, + occurrenceStack: g + }; + s.push(w); + } else if (E instanceof ce) { + var T = { + idx: v, + def: Re(f), + ruleStack: d, + occurrenceStack: g + }; + s.push(T), s.push(c); + var W = new ce({ + definition: E.definition, + idx: E.idx + }), M = E.definition.concat([W], Re(f)), w = { + idx: v, + def: M, + ruleStack: d, + occurrenceStack: g + }; + s.push(w); + } else if (E instanceof $e) + for (var F = E.definition.length - 1; F >= 0; F--) { + var S = E.definition[F], G = { + idx: v, + def: S.definition.concat(Re(f)), + ruleStack: d, + occurrenceStack: g + }; + s.push(G), s.push(c); + } + else if (E instanceof Te) + s.push({ + idx: v, + def: E.definition.concat(Re(f)), + ruleStack: d, + occurrenceStack: g + }); + else if (E instanceof kt) + s.push(Gl(E, v, d, g)); + else + throw Error("non exhaustive match"); + } + } + return o; +} +function Gl(t, e, n, r) { + var i = Se(n); + i.push(t.name); + var a = Se(r); + return a.push(1), { + idx: e, + def: t.definition, + ruleStack: i, + occurrenceStack: a + }; +} +var ls = globalThis && globalThis.__extends || function() { + var t = function(e, n) { + return t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(r, i) { + r.__proto__ = i; + } || function(r, i) { + for (var a in i) + Object.prototype.hasOwnProperty.call(i, a) && (r[a] = i[a]); + }, t(e, n); + }; + return function(e, n) { + t(e, n); + function r() { + this.constructor = e; + } + e.prototype = n === null ? Object.create(n) : (r.prototype = n.prototype, new r()); + }; +}(), j; +(function(t) { + t[t.OPTION = 0] = "OPTION", t[t.REPETITION = 1] = "REPETITION", t[t.REPETITION_MANDATORY = 2] = "REPETITION_MANDATORY", t[t.REPETITION_MANDATORY_WITH_SEPARATOR = 3] = "REPETITION_MANDATORY_WITH_SEPARATOR", t[t.REPETITION_WITH_SEPARATOR = 4] = "REPETITION_WITH_SEPARATOR", t[t.ALTERNATION = 5] = "ALTERNATION"; +})(j || (j = {})); +function $l(t) { + if (t instanceof ye) + return j.OPTION; + if (t instanceof ce) + return j.REPETITION; + if (t instanceof We) + return j.REPETITION_MANDATORY; + if (t instanceof qe) + return j.REPETITION_MANDATORY_WITH_SEPARATOR; + if (t instanceof Ge) + return j.REPETITION_WITH_SEPARATOR; + if (t instanceof $e) + return j.ALTERNATION; + throw Error("non exhaustive match"); +} +function Hl(t, e, n, r, i, a) { + var c = qr(t, e, n), h = hs(c) ? Sn : Wn; + return a(c, r, h, i); +} +function Wl(t, e, n, r, i, a) { + var c = Yr(t, e, i, n), h = hs(c) ? Sn : Wn; + return a(c[0], h, r); +} +function ql(t, e, n, r) { + var i = t.length, a = He(t, function(p) { + return He(p, function(u) { + return u.length === 1; + }); + }); + if (e) + return function(p) { + for (var u = x(p, function(m) { + return m.GATE; + }), o = 0; o < i; o++) { + var s = t[o], l = s.length, f = u[o]; + if (!(f !== void 0 && f.call(this) === !1)) + e: + for (var v = 0; v < l; v++) { + for (var d = s[v], g = d.length, E = 0; E < g; E++) { + var A = this.LA(E + 1); + if (n(A, d[E]) === !1) + continue e; + } + return o; + } + } + }; + if (a && !r) { + var c = x(t, function(p) { + return Ve(p); + }), h = Ne(c, function(p, u, o) { + return V(u, function(s) { + $(p, s.tokenTypeIdx) || (p[s.tokenTypeIdx] = o), V(s.categoryMatches, function(l) { + $(p, l) || (p[l] = o); + }); + }), p; + }, []); + return function() { + var p = this.LA(1); + return h[p.tokenTypeIdx]; + }; + } else + return function() { + for (var p = 0; p < i; p++) { + var u = t[p], o = u.length; + e: + for (var s = 0; s < o; s++) { + for (var l = u[s], f = l.length, v = 0; v < f; v++) { + var d = this.LA(v + 1); + if (n(d, l[v]) === !1) + continue e; + } + return p; + } + } + }; +} +function Yl(t, e, n) { + var r = He(t, function(u) { + return u.length === 1; + }), i = t.length; + if (r && !n) { + var a = Ve(t); + if (a.length === 1 && ee(a[0].categoryMatches)) { + var c = a[0], h = c.tokenTypeIdx; + return function() { + return this.LA(1).tokenTypeIdx === h; + }; + } else { + var p = Ne(a, function(u, o, s) { + return u[o.tokenTypeIdx] = !0, V(o.categoryMatches, function(l) { + u[l] = !0; + }), u; + }, []); + return function() { + var u = this.LA(1); + return p[u.tokenTypeIdx] === !0; + }; + } + } else + return function() { + e: + for (var u = 0; u < i; u++) { + for (var o = t[u], s = o.length, l = 0; l < s; l++) { + var f = this.LA(l + 1); + if (e(f, o[l]) === !1) + continue e; + } + return !0; + } + return !1; + }; +} +var Kl = ( + /** @class */ + function(t) { + ls(e, t); + function e(n, r, i) { + var a = t.call(this) || this; + return a.topProd = n, a.targetOccurrence = r, a.targetProdType = i, a; + } + return e.prototype.startWalking = function() { + return this.walk(this.topProd), this.restDef; + }, e.prototype.checkIsTarget = function(n, r, i, a) { + return n.idx === this.targetOccurrence && this.targetProdType === r ? (this.restDef = i.concat(a), !0) : !1; + }, e.prototype.walkOption = function(n, r, i) { + this.checkIsTarget(n, j.OPTION, r, i) || t.prototype.walkOption.call(this, n, r, i); + }, e.prototype.walkAtLeastOne = function(n, r, i) { + this.checkIsTarget(n, j.REPETITION_MANDATORY, r, i) || t.prototype.walkOption.call(this, n, r, i); + }, e.prototype.walkAtLeastOneSep = function(n, r, i) { + this.checkIsTarget(n, j.REPETITION_MANDATORY_WITH_SEPARATOR, r, i) || t.prototype.walkOption.call(this, n, r, i); + }, e.prototype.walkMany = function(n, r, i) { + this.checkIsTarget(n, j.REPETITION, r, i) || t.prototype.walkOption.call(this, n, r, i); + }, e.prototype.walkManySep = function(n, r, i) { + this.checkIsTarget(n, j.REPETITION_WITH_SEPARATOR, r, i) || t.prototype.walkOption.call(this, n, r, i); + }, e; + }(Yn) +), us = ( + /** @class */ + function(t) { + ls(e, t); + function e(n, r, i) { + var a = t.call(this) || this; + return a.targetOccurrence = n, a.targetProdType = r, a.targetRef = i, a.result = [], a; + } + return e.prototype.checkIsTarget = function(n, r) { + n.idx === this.targetOccurrence && this.targetProdType === r && (this.targetRef === void 0 || n === this.targetRef) && (this.result = n.definition); + }, e.prototype.visitOption = function(n) { + this.checkIsTarget(n, j.OPTION); + }, e.prototype.visitRepetition = function(n) { + this.checkIsTarget(n, j.REPETITION); + }, e.prototype.visitRepetitionMandatory = function(n) { + this.checkIsTarget(n, j.REPETITION_MANDATORY); + }, e.prototype.visitRepetitionMandatoryWithSeparator = function(n) { + this.checkIsTarget(n, j.REPETITION_MANDATORY_WITH_SEPARATOR); + }, e.prototype.visitRepetitionWithSeparator = function(n) { + this.checkIsTarget(n, j.REPETITION_WITH_SEPARATOR); + }, e.prototype.visitAlternation = function(n) { + this.checkIsTarget(n, j.ALTERNATION); + }, e; + }(xt) +); +function bi(t) { + for (var e = new Array(t), n = 0; n < t; n++) + e[n] = []; + return e; +} +function Er(t) { + for (var e = [""], n = 0; n < t.length; n++) { + for (var r = t[n], i = [], a = 0; a < e.length; a++) { + var c = e[a]; + i.push(c + "_" + r.tokenTypeIdx); + for (var h = 0; h < r.categoryMatches.length; h++) { + var p = "_" + r.categoryMatches[h]; + i.push(c + p); + } + } + e = i; + } + return e; +} +function zl(t, e, n) { + for (var r = 0; r < t.length; r++) + if (r !== n) + for (var i = t[r], a = 0; a < e.length; a++) { + var c = e[a]; + if (i[c] === !0) + return !1; + } + return !0; +} +function fs(t, e) { + for (var n = x(t, function(o) { + return _r([o], 1); + }), r = bi(n.length), i = x(n, function(o) { + var s = {}; + return V(o, function(l) { + var f = Er(l.partialPath); + V(f, function(v) { + s[v] = !0; + }); + }), s; + }), a = n, c = 1; c <= e; c++) { + var h = a; + a = bi(h.length); + for (var p = function(o) { + for (var s = h[o], l = 0; l < s.length; l++) { + var f = s[l].partialPath, v = s[l].suffixDef, d = Er(f), g = zl(i, d, o); + if (g || ee(v) || f.length === e) { + var E = r[o]; + if (Pr(E, f) === !1) { + E.push(f); + for (var A = 0; A < d.length; A++) { + var m = d[A]; + i[o][m] = !0; + } + } + } else { + var N = _r(v, c + 1, f); + a[o] = a[o].concat(N), V(N, function(y) { + var R = Er(y.partialPath); + V(R, function(T) { + i[o][T] = !0; + }); + }); + } + } + }, u = 0; u < h.length; u++) + p(u); + } + return r; +} +function qr(t, e, n, r) { + var i = new us(t, j.ALTERNATION, r); + return e.accept(i), fs(i.result, n); +} +function Yr(t, e, n, r) { + var i = new us(t, n); + e.accept(i); + var a = i.result, c = new Kl(e, t, n), h = c.startWalking(), p = new Te({ definition: a }), u = new Te({ definition: h }); + return fs([p, u], r); +} +function Pr(t, e) { + e: + for (var n = 0; n < t.length; n++) { + var r = t[n]; + if (r.length === e.length) { + for (var i = 0; i < r.length; i++) { + var a = e[i], c = r[i], h = a === c || c.categoryMatchesMap[a.tokenTypeIdx] !== void 0; + if (h === !1) + continue e; + } + return !0; + } + } + return !1; +} +function Xl(t, e) { + return t.length < e.length && He(t, function(n, r) { + var i = e[r]; + return n === i || i.categoryMatchesMap[n.tokenTypeIdx]; + }); +} +function hs(t) { + return He(t, function(e) { + return He(e, function(n) { + return He(n, function(r) { + return ee(r.categoryMatches); + }); + }); + }); +} +var Kr = globalThis && globalThis.__extends || function() { + var t = function(e, n) { + return t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(r, i) { + r.__proto__ = i; + } || function(r, i) { + for (var a in i) + Object.prototype.hasOwnProperty.call(i, a) && (r[a] = i[a]); + }, t(e, n); + }; + return function(e, n) { + t(e, n); + function r() { + this.constructor = e; + } + e.prototype = n === null ? Object.create(n) : (r.prototype = n.prototype, new r()); + }; +}(); +function Ql(t, e, n, r, i) { + var a = x(t, function(f) { + return Zl(f, r); + }), c = x(t, function(f) { + return ds(f, f, r); + }), h = [], p = [], u = []; + He(c, ee) && (h = x(t, function(f) { + return nu(f, r); + }), p = x(t, function(f) { + return ru(f, e, r); + }), u = su(t, e, r)); + var o = lu(t, n, r), s = x(t, function(f) { + return ou(f, r); + }), l = x(t, function(f) { + return eu(f, t, i, r); + }); + return Ve(a.concat(u, c, h, p, o, s, l)); +} +function Zl(t, e) { + var n = new jl(); + t.accept(n); + var r = n.allProductions, i = kc(r, Jl), a = je(i, function(h) { + return h.length > 1; + }), c = x(xe(a), function(h) { + var p = Ze(h), u = e.buildDuplicateFoundError(t, h), o = rt(p), s = { + message: u, + type: Le.DUPLICATE_PRODUCTIONS, + ruleName: t.name, + dslName: o, + occurrence: p.idx + }, l = ps(p); + return l && (s.parameter = l), s; + }); + return c; +} +function Jl(t) { + return rt(t) + "_#_" + t.idx + "_#_" + ps(t); +} +function ps(t) { + return t instanceof ne ? t.terminalType.name : t instanceof Ue ? t.nonTerminalName : ""; +} +var jl = ( + /** @class */ + function(t) { + Kr(e, t); + function e() { + var n = t !== null && t.apply(this, arguments) || this; + return n.allProductions = [], n; + } + return e.prototype.visitNonTerminal = function(n) { + this.allProductions.push(n); + }, e.prototype.visitOption = function(n) { + this.allProductions.push(n); + }, e.prototype.visitRepetitionWithSeparator = function(n) { + this.allProductions.push(n); + }, e.prototype.visitRepetitionMandatory = function(n) { + this.allProductions.push(n); + }, e.prototype.visitRepetitionMandatoryWithSeparator = function(n) { + this.allProductions.push(n); + }, e.prototype.visitRepetition = function(n) { + this.allProductions.push(n); + }, e.prototype.visitAlternation = function(n) { + this.allProductions.push(n); + }, e.prototype.visitTerminal = function(n) { + this.allProductions.push(n); + }, e; + }(xt) +); +function eu(t, e, n, r) { + var i = [], a = Ne(e, function(h, p) { + return p.name === t.name ? h + 1 : h; + }, 0); + if (a > 1) { + var c = r.buildDuplicateRuleNameError({ + topLevelRule: t, + grammarName: n + }); + i.push({ + message: c, + type: Le.DUPLICATE_RULE_NAME, + ruleName: t.name + }); + } + return i; +} +function tu(t, e, n) { + var r = [], i; + return fe(e, t) || (i = "Invalid rule override, rule: ->" + t + "<- cannot be overridden in the grammar: ->" + n + "<-as it is not defined in any of the super grammars ", r.push({ + message: i, + type: Le.INVALID_RULE_OVERRIDE, + ruleName: t + })), r; +} +function ds(t, e, n, r) { + r === void 0 && (r = []); + var i = [], a = Mn(e.definition); + if (ee(a)) + return []; + var c = t.name, h = fe(a, t); + h && i.push({ + message: n.buildLeftRecursionError({ + topLevelRule: t, + leftRecursionPath: r + }), + type: Le.LEFT_RECURSION, + ruleName: c + }); + var p = $n(a, r.concat([t])), u = x(p, function(o) { + var s = Se(r); + return s.push(o), ds(t, o, n, s); + }); + return i.concat(Ve(u)); +} +function Mn(t) { + var e = []; + if (ee(t)) + return e; + var n = Ze(t); + if (n instanceof Ue) + e.push(n.referencedRule); + else if (n instanceof Te || n instanceof ye || n instanceof We || n instanceof qe || n instanceof Ge || n instanceof ce) + e = e.concat(Mn(n.definition)); + else if (n instanceof $e) + e = Ve(x(n.definition, function(c) { + return Mn(c.definition); + })); + else if (!(n instanceof ne)) + throw Error("non exhaustive match"); + var r = Bn(n), i = t.length > 1; + if (r && i) { + var a = Re(t); + return e.concat(Mn(a)); + } else + return e; +} +var zr = ( + /** @class */ + function(t) { + Kr(e, t); + function e() { + var n = t !== null && t.apply(this, arguments) || this; + return n.alternations = [], n; + } + return e.prototype.visitAlternation = function(n) { + this.alternations.push(n); + }, e; + }(xt) +); +function nu(t, e) { + var n = new zr(); + t.accept(n); + var r = n.alternations, i = Ne(r, function(a, c) { + var h = nn(c.definition), p = x(h, function(u, o) { + var s = cs([u], [], null, 1); + return ee(s) ? { + message: e.buildEmptyAlternationError({ + topLevelRule: t, + alternation: c, + emptyChoiceIdx: o + }), + type: Le.NONE_LAST_EMPTY_ALT, + ruleName: t.name, + occurrence: c.idx, + alternative: o + 1 + } : null; + }); + return a.concat(sn(p)); + }, []); + return i; +} +function ru(t, e, n) { + var r = new zr(); + t.accept(r); + var i = r.alternations; + i = Ht(i, function(c) { + return c.ignoreAmbiguities === !0; + }); + var a = Ne(i, function(c, h) { + var p = h.idx, u = h.maxLookahead || e, o = qr(p, t, u, h), s = au(o, h, t, n), l = cu(o, h, t, n); + return c.concat(s, l); + }, []); + return a; +} +var iu = ( + /** @class */ + function(t) { + Kr(e, t); + function e() { + var n = t !== null && t.apply(this, arguments) || this; + return n.allProductions = [], n; + } + return e.prototype.visitRepetitionWithSeparator = function(n) { + this.allProductions.push(n); + }, e.prototype.visitRepetitionMandatory = function(n) { + this.allProductions.push(n); + }, e.prototype.visitRepetitionMandatoryWithSeparator = function(n) { + this.allProductions.push(n); + }, e.prototype.visitRepetition = function(n) { + this.allProductions.push(n); + }, e; + }(xt) +); +function ou(t, e) { + var n = new zr(); + t.accept(n); + var r = n.alternations, i = Ne(r, function(a, c) { + return c.definition.length > 255 && a.push({ + message: e.buildTooManyAlternativesError({ + topLevelRule: t, + alternation: c + }), + type: Le.TOO_MANY_ALTS, + ruleName: t.name, + occurrence: c.idx + }), a; + }, []); + return i; +} +function su(t, e, n) { + var r = []; + return V(t, function(i) { + var a = new iu(); + i.accept(a); + var c = a.allProductions; + V(c, function(h) { + var p = $l(h), u = h.maxLookahead || e, o = h.idx, s = Yr(o, i, p, u), l = s[0]; + if (ee(Ve(l))) { + var f = n.buildEmptyRepetitionError({ + topLevelRule: i, + repetition: h + }); + r.push({ + message: f, + type: Le.NO_NON_EMPTY_LOOKAHEAD, + ruleName: i.name + }); + } + }); + }), r; +} +function au(t, e, n, r) { + var i = [], a = Ne(t, function(h, p, u) { + return e.definition[u].ignoreAmbiguities === !0 || V(p, function(o) { + var s = [u]; + V(t, function(l, f) { + u !== f && Pr(l, o) && // ignore (skip) ambiguities with this "other" alternative + e.definition[f].ignoreAmbiguities !== !0 && s.push(f); + }), s.length > 1 && !Pr(i, o) && (i.push(o), h.push({ + alts: s, + path: o + })); + }), h; + }, []), c = x(a, function(h) { + var p = x(h.alts, function(o) { + return o + 1; + }), u = r.buildAlternationAmbiguityError({ + topLevelRule: n, + alternation: e, + ambiguityIndices: p, + prefixPath: h.path + }); + return { + message: u, + type: Le.AMBIGUOUS_ALTS, + ruleName: n.name, + occurrence: e.idx, + alternatives: [h.alts] + }; + }); + return c; +} +function cu(t, e, n, r) { + var i = [], a = Ne(t, function(c, h, p) { + var u = x(h, function(o) { + return { idx: p, path: o }; + }); + return c.concat(u); + }, []); + return V(a, function(c) { + var h = e.definition[c.idx]; + if (h.ignoreAmbiguities !== !0) { + var p = c.idx, u = c.path, o = Lc(a, function(l) { + return ( + // ignore (skip) ambiguities with this "other" alternative + e.definition[l.idx].ignoreAmbiguities !== !0 && l.idx < p && // checking for strict prefix because identical lookaheads + // will be be detected using a different validation. + Xl(l.path, u) + ); + }), s = x(o, function(l) { + var f = [l.idx + 1, p + 1], v = e.idx === 0 ? "" : e.idx, d = r.buildAlternationPrefixAmbiguityError({ + topLevelRule: n, + alternation: e, + ambiguityIndices: f, + prefixPath: l.path + }); + return { + message: d, + type: Le.AMBIGUOUS_PREFIX_ALTS, + ruleName: n.name, + occurrence: v, + alternatives: f + }; + }); + i = i.concat(s); + } + }), i; +} +function lu(t, e, n) { + var r = [], i = x(e, function(a) { + return a.name; + }); + return V(t, function(a) { + var c = a.name; + if (fe(i, c)) { + var h = n.buildNamespaceConflictError(a); + r.push({ + message: h, + type: Le.CONFLICT_TOKENS_RULES_NAMESPACE, + ruleName: c + }); + } + }), r; +} +function vs(t) { + t = Gr(t, { + errMsgProvider: as + }); + var e = {}; + return V(t.rules, function(n) { + e[n.name] = n; + }), Sl(e, t.errMsgProvider); +} +function gs(t) { + return t = Gr(t, { + errMsgProvider: Kn + }), Ql(t.rules, t.maxLookahead, t.tokenTypes, t.errMsgProvider, t.grammarName); +} +function uu(t) { + V(t.rules, function(e) { + var n = new os(); + e.accept(n), V(n.dslMethods, function(r) { + V(r, function(i, a) { + i.idx = a + 1; + }); + }); + }); +} +var un = globalThis && globalThis.__extends || function() { + var t = function(e, n) { + return t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(r, i) { + r.__proto__ = i; + } || function(r, i) { + for (var a in i) + Object.prototype.hasOwnProperty.call(i, a) && (r[a] = i[a]); + }, t(e, n); + }; + return function(e, n) { + t(e, n); + function r() { + this.constructor = e; + } + e.prototype = n === null ? Object.create(n) : (r.prototype = n.prototype, new r()); + }; +}(), Es = "MismatchedTokenException", ms = "NoViableAltException", Rs = "EarlyExitException", Ns = "NotAllInputParsedException", As = [ + Es, + ms, + Rs, + Ns +]; +Object.freeze(As); +function rn(t) { + return fe(As, t.name); +} +var Xn = ( + /** @class */ + function(t) { + un(e, t); + function e(n, r) { + var i = this.constructor, a = t.call(this, n) || this; + return a.token = r, a.resyncedTokens = [], Object.setPrototypeOf(a, i.prototype), Error.captureStackTrace && Error.captureStackTrace(a, a.constructor), a; + } + return e; + }(Error) +), Xr = ( + /** @class */ + function(t) { + un(e, t); + function e(n, r, i) { + var a = t.call(this, n, r) || this; + return a.previousToken = i, a.name = Es, a; + } + return e; + }(Xn) +), ys = ( + /** @class */ + function(t) { + un(e, t); + function e(n, r, i) { + var a = t.call(this, n, r) || this; + return a.previousToken = i, a.name = ms, a; + } + return e; + }(Xn) +), Ts = ( + /** @class */ + function(t) { + un(e, t); + function e(n, r) { + var i = t.call(this, n, r) || this; + return i.name = Ns, i; + } + return e; + }(Xn) +), ws = ( + /** @class */ + function(t) { + un(e, t); + function e(n, r, i) { + var a = t.call(this, n, r) || this; + return a.previousToken = i, a.name = Rs, a; + } + return e; + }(Xn) +), mr = {}, Cs = "InRuleRecoveryException"; +function Is(t) { + this.name = Cs, this.message = t; +} +Is.prototype = Error.prototype; +var fu = ( + /** @class */ + function() { + function t() { + } + return t.prototype.initRecoverable = function(e) { + this.firstAfterRepMap = {}, this.resyncFollows = {}, this.recoveryEnabled = $(e, "recoveryEnabled") ? e.recoveryEnabled : dt.recoveryEnabled, this.recoveryEnabled && (this.attemptInRepetitionRecovery = hu); + }, t.prototype.getTokenToInsert = function(e) { + var n = qn(e, "", NaN, NaN, NaN, NaN, NaN, NaN); + return n.isInsertedInRecovery = !0, n; + }, t.prototype.canTokenTypeBeInsertedInRecovery = function(e) { + return !0; + }, t.prototype.tryInRepetitionRecovery = function(e, n, r, i) { + for (var a = this, c = this.findReSyncTokenType(), h = this.exportLexerState(), p = [], u = !1, o = this.LA(1), s = this.LA(1), l = function() { + var f = a.LA(0), v = a.errorMessageProvider.buildMismatchTokenMessage({ + expected: i, + actual: o, + previous: f, + ruleName: a.getCurrRuleFullName() + }), d = new Xr(v, o, a.LA(0)); + d.resyncedTokens = nn(p), a.SAVE_ERROR(d); + }; !u; ) + if (this.tokenMatcher(s, i)) { + l(); + return; + } else if (r.call(this)) { + l(), e.apply(this, n); + return; + } else + this.tokenMatcher(s, c) ? u = !0 : (s = this.SKIP_TOKEN(), this.addToResyncTokens(s, p)); + this.importLexerState(h); + }, t.prototype.shouldInRepetitionRecoveryBeTried = function(e, n, r) { + return !(r === !1 || e === void 0 || n === void 0 || this.tokenMatcher(this.LA(1), e) || this.isBackTracking() || this.canPerformInRuleRecovery(e, this.getFollowsForInRuleRecovery(e, n))); + }, t.prototype.getFollowsForInRuleRecovery = function(e, n) { + var r = this.getCurrentGrammarPath(e, n), i = this.getNextPossibleTokenTypes(r); + return i; + }, t.prototype.tryInRuleRecovery = function(e, n) { + if (this.canRecoverWithSingleTokenInsertion(e, n)) { + var r = this.getTokenToInsert(e); + return r; + } + if (this.canRecoverWithSingleTokenDeletion(e)) { + var i = this.SKIP_TOKEN(); + return this.consumeToken(), i; + } + throw new Is("sad sad panda"); + }, t.prototype.canPerformInRuleRecovery = function(e, n) { + return this.canRecoverWithSingleTokenInsertion(e, n) || this.canRecoverWithSingleTokenDeletion(e); + }, t.prototype.canRecoverWithSingleTokenInsertion = function(e, n) { + var r = this; + if (!this.canTokenTypeBeInsertedInRecovery(e) || ee(n)) + return !1; + var i = this.LA(1), a = $t(n, function(c) { + return r.tokenMatcher(i, c); + }) !== void 0; + return a; + }, t.prototype.canRecoverWithSingleTokenDeletion = function(e) { + var n = this.tokenMatcher(this.LA(2), e); + return n; + }, t.prototype.isInCurrentRuleReSyncSet = function(e) { + var n = this.getCurrFollowKey(), r = this.getFollowSetFromFollowKey(n); + return fe(r, e); + }, t.prototype.findReSyncTokenType = function() { + for (var e = this.flattenFollowSet(), n = this.LA(1), r = 2; ; ) { + var i = n.tokenType; + if (fe(e, i)) + return i; + n = this.LA(r), r++; + } + }, t.prototype.getCurrFollowKey = function() { + if (this.RULE_STACK.length === 1) + return mr; + var e = this.getLastExplicitRuleShortName(), n = this.getLastExplicitRuleOccurrenceIndex(), r = this.getPreviousExplicitRuleShortName(); + return { + ruleName: this.shortRuleNameToFullName(e), + idxInCallingRule: n, + inRule: this.shortRuleNameToFullName(r) + }; + }, t.prototype.buildFullFollowKeyStack = function() { + var e = this, n = this.RULE_STACK, r = this.RULE_OCCURRENCE_STACK; + return x(n, function(i, a) { + return a === 0 ? mr : { + ruleName: e.shortRuleNameToFullName(i), + idxInCallingRule: r[a], + inRule: e.shortRuleNameToFullName(n[a - 1]) + }; + }); + }, t.prototype.flattenFollowSet = function() { + var e = this, n = x(this.buildFullFollowKeyStack(), function(r) { + return e.getFollowSetFromFollowKey(r); + }); + return Ve(n); + }, t.prototype.getFollowSetFromFollowKey = function(e) { + if (e === mr) + return [wt]; + var n = e.ruleName + e.idxInCallingRule + ss + e.inRule; + return this.resyncFollows[n]; + }, t.prototype.addToResyncTokens = function(e, n) { + return this.tokenMatcher(e, wt) || n.push(e), n; + }, t.prototype.reSyncTo = function(e) { + for (var n = [], r = this.LA(1); this.tokenMatcher(r, e) === !1; ) + r = this.SKIP_TOKEN(), this.addToResyncTokens(r, n); + return nn(n); + }, t.prototype.attemptInRepetitionRecovery = function(e, n, r, i, a, c, h) { + }, t.prototype.getCurrentGrammarPath = function(e, n) { + var r = this.getHumanReadableRuleStack(), i = Se(this.RULE_OCCURRENCE_STACK), a = { + ruleStack: r, + occurrenceStack: i, + lastTok: e, + lastTokOccurrence: n + }; + return a; + }, t.prototype.getHumanReadableRuleStack = function() { + var e = this; + return x(this.RULE_STACK, function(n) { + return e.shortRuleNameToFullName(n); + }); + }, t; + }() +); +function hu(t, e, n, r, i, a, c) { + var h = this.getKeyForAutomaticLookahead(r, i), p = this.firstAfterRepMap[h]; + if (p === void 0) { + var u = this.getCurrRuleFullName(), o = this.getGAstProductions()[u], s = new a(o, i); + p = s.startWalking(), this.firstAfterRepMap[h] = p; + } + var l = p.token, f = p.occurrence, v = p.isEndOfRule; + this.RULE_STACK.length === 1 && v && l === void 0 && (l = wt, f = 1), this.shouldInRepetitionRecoveryBeTried(l, f, c) && this.tryInRepetitionRecovery(t, e, n, l); +} +var pu = 4, It = 8, Os = 1 << It, Ms = 2 << It, kr = 3 << It, xr = 4 << It, Sr = 5 << It, Un = 6 << It; +function Rr(t, e, n) { + return n | e | t; +} +var du = ( + /** @class */ + function() { + function t() { + } + return t.prototype.initLooksAhead = function(e) { + this.dynamicTokensEnabled = $(e, "dynamicTokensEnabled") ? e.dynamicTokensEnabled : dt.dynamicTokensEnabled, this.maxLookahead = $(e, "maxLookahead") ? e.maxLookahead : dt.maxLookahead, this.lookAheadFuncsCache = Ai() ? /* @__PURE__ */ new Map() : [], Ai() ? (this.getLaFuncFromCache = this.getLaFuncFromMap, this.setLaFuncCache = this.setLaFuncCacheUsingMap) : (this.getLaFuncFromCache = this.getLaFuncFromObj, this.setLaFuncCache = this.setLaFuncUsingObj); + }, t.prototype.preComputeLookaheadFunctions = function(e) { + var n = this; + V(e, function(r) { + n.TRACE_INIT(r.name + " Rule Lookahead", function() { + var i = Il(r), a = i.alternation, c = i.repetition, h = i.option, p = i.repetitionMandatory, u = i.repetitionMandatoryWithSeparator, o = i.repetitionWithSeparator; + V(a, function(s) { + var l = s.idx === 0 ? "" : s.idx; + n.TRACE_INIT("" + rt(s) + l, function() { + var f = Hl(s.idx, r, s.maxLookahead || n.maxLookahead, s.hasPredicates, n.dynamicTokensEnabled, n.lookAheadBuilderForAlternatives), v = Rr(n.fullRuleNameToShort[r.name], Os, s.idx); + n.setLaFuncCache(v, f); + }); + }), V(c, function(s) { + n.computeLookaheadFunc(r, s.idx, kr, j.REPETITION, s.maxLookahead, rt(s)); + }), V(h, function(s) { + n.computeLookaheadFunc(r, s.idx, Ms, j.OPTION, s.maxLookahead, rt(s)); + }), V(p, function(s) { + n.computeLookaheadFunc(r, s.idx, xr, j.REPETITION_MANDATORY, s.maxLookahead, rt(s)); + }), V(u, function(s) { + n.computeLookaheadFunc(r, s.idx, Un, j.REPETITION_MANDATORY_WITH_SEPARATOR, s.maxLookahead, rt(s)); + }), V(o, function(s) { + n.computeLookaheadFunc(r, s.idx, Sr, j.REPETITION_WITH_SEPARATOR, s.maxLookahead, rt(s)); + }); + }); + }); + }, t.prototype.computeLookaheadFunc = function(e, n, r, i, a, c) { + var h = this; + this.TRACE_INIT("" + c + (n === 0 ? "" : n), function() { + var p = Wl(n, e, a || h.maxLookahead, h.dynamicTokensEnabled, i, h.lookAheadBuilderForOptional), u = Rr(h.fullRuleNameToShort[e.name], r, n); + h.setLaFuncCache(u, p); + }); + }, t.prototype.lookAheadBuilderForOptional = function(e, n, r) { + return Yl(e, n, r); + }, t.prototype.lookAheadBuilderForAlternatives = function(e, n, r, i) { + return ql(e, n, r, i); + }, t.prototype.getKeyForAutomaticLookahead = function(e, n) { + var r = this.getLastExplicitRuleShortName(); + return Rr(r, e, n); + }, t.prototype.getLaFuncFromCache = function(e) { + }, t.prototype.getLaFuncFromMap = function(e) { + return this.lookAheadFuncsCache.get(e); + }, t.prototype.getLaFuncFromObj = function(e) { + return this.lookAheadFuncsCache[e]; + }, t.prototype.setLaFuncCache = function(e, n) { + }, t.prototype.setLaFuncCacheUsingMap = function(e, n) { + this.lookAheadFuncsCache.set(e, n); + }, t.prototype.setLaFuncUsingObj = function(e, n) { + this.lookAheadFuncsCache[e] = n; + }, t; + }() +); +function Di(t, e) { + isNaN(t.startOffset) === !0 ? (t.startOffset = e.startOffset, t.endOffset = e.endOffset) : t.endOffset < e.endOffset && (t.endOffset = e.endOffset); +} +function Vi(t, e) { + isNaN(t.startOffset) === !0 ? (t.startOffset = e.startOffset, t.startColumn = e.startColumn, t.startLine = e.startLine, t.endOffset = e.endOffset, t.endColumn = e.endColumn, t.endLine = e.endLine) : t.endOffset < e.endOffset && (t.endOffset = e.endOffset, t.endColumn = e.endColumn, t.endLine = e.endLine); +} +function vu(t, e, n) { + t.children[n] === void 0 ? t.children[n] = [e] : t.children[n].push(e); +} +function gu(t, e, n) { + t.children[e] === void 0 ? t.children[e] = [n] : t.children[e].push(n); +} +function Eu(t) { + return Qn(t.constructor); +} +var Gi = "name"; +function Qn(t) { + var e = t.name; + return e || "anonymous"; +} +function Us(t, e) { + var n = Object.getOwnPropertyDescriptor(t, Gi); + return ht(n) || n.configurable ? (Object.defineProperty(t, Gi, { + enumerable: !1, + configurable: !0, + writable: !1, + value: e + }), !0) : !1; +} +function mu(t, e) { + for (var n = Qe(t), r = n.length, i = 0; i < r; i++) + for (var a = n[i], c = t[a], h = c.length, p = 0; p < h; p++) { + var u = c[p]; + u.tokenTypeIdx === void 0 && this[u.name](u.children, e); + } +} +function Ru(t, e) { + var n = function() { + }; + Us(n, t + "BaseSemantics"); + var r = { + visit: function(i, a) { + if (it(i) && (i = i[0]), !ht(i)) + return this[i.name](i.children, a); + }, + validateVisitor: function() { + var i = Au(this, e); + if (!ee(i)) { + var a = x(i, function(c) { + return c.msg; + }); + throw Error("Errors Detected in CST Visitor <" + Qn(this.constructor) + `>: + ` + ("" + a.join(` + +`).replace(/\n/g, ` + `))); + } + } + }; + return n.prototype = r, n.prototype.constructor = n, n._RULE_NAMES = e, n; +} +function Nu(t, e, n) { + var r = function() { + }; + Us(r, t + "BaseSemanticsWithDefaults"); + var i = Object.create(n.prototype); + return V(e, function(a) { + i[a] = mu; + }), r.prototype = i, r.prototype.constructor = r, r; +} +var Fn; +(function(t) { + t[t.REDUNDANT_METHOD = 0] = "REDUNDANT_METHOD", t[t.MISSING_METHOD = 1] = "MISSING_METHOD"; +})(Fn || (Fn = {})); +function Au(t, e) { + var n = yu(t, e), r = wu(t, e); + return n.concat(r); +} +function yu(t, e) { + var n = x(e, function(r) { + if (!Ct(t[r])) + return { + msg: "Missing visitor method: <" + r + "> on " + Qn(t.constructor) + " CST Visitor.", + type: Fn.MISSING_METHOD, + methodName: r + }; + }); + return sn(n); +} +var Tu = ["constructor", "visit", "validateVisitor"]; +function wu(t, e) { + var n = []; + for (var r in t) + Ct(t[r]) && !fe(Tu, r) && !fe(e, r) && n.push({ + msg: "Redundant visitor method: <" + r + "> on " + Qn(t.constructor) + ` CST Visitor +There is no Grammar Rule corresponding to this method's name. +`, + type: Fn.REDUNDANT_METHOD, + methodName: r + }); + return n; +} +var Cu = ( + /** @class */ + function() { + function t() { + } + return t.prototype.initTreeBuilder = function(e) { + if (this.CST_STACK = [], this.outputCst = e.outputCst, this.nodeLocationTracking = $(e, "nodeLocationTracking") ? e.nodeLocationTracking : dt.nodeLocationTracking, !this.outputCst) + this.cstInvocationStateUpdate = de, this.cstFinallyStateUpdate = de, this.cstPostTerminal = de, this.cstPostNonTerminal = de, this.cstPostRule = de; + else if (/full/i.test(this.nodeLocationTracking)) + this.recoveryEnabled ? (this.setNodeLocationFromToken = Vi, this.setNodeLocationFromNode = Vi, this.cstPostRule = de, this.setInitialNodeLocation = this.setInitialNodeLocationFullRecovery) : (this.setNodeLocationFromToken = de, this.setNodeLocationFromNode = de, this.cstPostRule = this.cstPostRuleFull, this.setInitialNodeLocation = this.setInitialNodeLocationFullRegular); + else if (/onlyOffset/i.test(this.nodeLocationTracking)) + this.recoveryEnabled ? (this.setNodeLocationFromToken = Di, this.setNodeLocationFromNode = Di, this.cstPostRule = de, this.setInitialNodeLocation = this.setInitialNodeLocationOnlyOffsetRecovery) : (this.setNodeLocationFromToken = de, this.setNodeLocationFromNode = de, this.cstPostRule = this.cstPostRuleOnlyOffset, this.setInitialNodeLocation = this.setInitialNodeLocationOnlyOffsetRegular); + else if (/none/i.test(this.nodeLocationTracking)) + this.setNodeLocationFromToken = de, this.setNodeLocationFromNode = de, this.cstPostRule = de, this.setInitialNodeLocation = de; + else + throw Error('Invalid config option: "' + e.nodeLocationTracking + '"'); + }, t.prototype.setInitialNodeLocationOnlyOffsetRecovery = function(e) { + e.location = { + startOffset: NaN, + endOffset: NaN + }; + }, t.prototype.setInitialNodeLocationOnlyOffsetRegular = function(e) { + e.location = { + // without error recovery the starting Location of a new CstNode is guaranteed + // To be the next Token's startOffset (for valid inputs). + // For invalid inputs there won't be any CSTOutput so this potential + // inaccuracy does not matter + startOffset: this.LA(1).startOffset, + endOffset: NaN + }; + }, t.prototype.setInitialNodeLocationFullRecovery = function(e) { + e.location = { + startOffset: NaN, + startLine: NaN, + startColumn: NaN, + endOffset: NaN, + endLine: NaN, + endColumn: NaN + }; + }, t.prototype.setInitialNodeLocationFullRegular = function(e) { + var n = this.LA(1); + e.location = { + startOffset: n.startOffset, + startLine: n.startLine, + startColumn: n.startColumn, + endOffset: NaN, + endLine: NaN, + endColumn: NaN + }; + }, t.prototype.cstInvocationStateUpdate = function(e, n) { + var r = { + name: e, + children: {} + }; + this.setInitialNodeLocation(r), this.CST_STACK.push(r); + }, t.prototype.cstFinallyStateUpdate = function() { + this.CST_STACK.pop(); + }, t.prototype.cstPostRuleFull = function(e) { + var n = this.LA(0), r = e.location; + r.startOffset <= n.startOffset ? (r.endOffset = n.endOffset, r.endLine = n.endLine, r.endColumn = n.endColumn) : (r.startOffset = NaN, r.startLine = NaN, r.startColumn = NaN); + }, t.prototype.cstPostRuleOnlyOffset = function(e) { + var n = this.LA(0), r = e.location; + r.startOffset <= n.startOffset ? r.endOffset = n.endOffset : r.startOffset = NaN; + }, t.prototype.cstPostTerminal = function(e, n) { + var r = this.CST_STACK[this.CST_STACK.length - 1]; + vu(r, n, e), this.setNodeLocationFromToken(r.location, n); + }, t.prototype.cstPostNonTerminal = function(e, n) { + var r = this.CST_STACK[this.CST_STACK.length - 1]; + gu(r, n, e), this.setNodeLocationFromNode(r.location, e.location); + }, t.prototype.getBaseCstVisitorConstructor = function() { + if (ht(this.baseCstVisitorConstructor)) { + var e = Ru(this.className, Qe(this.gastProductionsCache)); + return this.baseCstVisitorConstructor = e, e; + } + return this.baseCstVisitorConstructor; + }, t.prototype.getBaseCstVisitorConstructorWithDefaults = function() { + if (ht(this.baseCstVisitorWithDefaultsConstructor)) { + var e = Nu(this.className, Qe(this.gastProductionsCache), this.getBaseCstVisitorConstructor()); + return this.baseCstVisitorWithDefaultsConstructor = e, e; + } + return this.baseCstVisitorWithDefaultsConstructor; + }, t.prototype.getLastExplicitRuleShortName = function() { + var e = this.RULE_STACK; + return e[e.length - 1]; + }, t.prototype.getPreviousExplicitRuleShortName = function() { + var e = this.RULE_STACK; + return e[e.length - 2]; + }, t.prototype.getLastExplicitRuleOccurrenceIndex = function() { + var e = this.RULE_OCCURRENCE_STACK; + return e[e.length - 1]; + }, t; + }() +), Iu = ( + /** @class */ + function() { + function t() { + } + return t.prototype.initLexerAdapter = function() { + this.tokVector = [], this.tokVectorLength = 0, this.currIdx = -1; + }, Object.defineProperty(t.prototype, "input", { + get: function() { + return this.tokVector; + }, + set: function(e) { + if (this.selfAnalysisDone !== !0) + throw Error("Missing invocation at the end of the Parser's constructor."); + this.reset(), this.tokVector = e, this.tokVectorLength = e.length; + }, + enumerable: !1, + configurable: !0 + }), t.prototype.SKIP_TOKEN = function() { + return this.currIdx <= this.tokVector.length - 2 ? (this.consumeToken(), this.LA(1)) : Dn; + }, t.prototype.LA = function(e) { + var n = this.currIdx + e; + return n < 0 || this.tokVectorLength <= n ? Dn : this.tokVector[n]; + }, t.prototype.consumeToken = function() { + this.currIdx++; + }, t.prototype.exportLexerState = function() { + return this.currIdx; + }, t.prototype.importLexerState = function(e) { + this.currIdx = e; + }, t.prototype.resetLexerState = function() { + this.currIdx = -1; + }, t.prototype.moveToTerminatedState = function() { + this.currIdx = this.tokVector.length - 1; + }, t.prototype.getLexerPosition = function() { + return this.exportLexerState(); + }, t; + }() +), Ou = ( + /** @class */ + function() { + function t() { + } + return t.prototype.ACTION = function(e) { + return e.call(this); + }, t.prototype.consume = function(e, n, r) { + return this.consumeInternal(n, e, r); + }, t.prototype.subrule = function(e, n, r) { + return this.subruleInternal(n, e, r); + }, t.prototype.option = function(e, n) { + return this.optionInternal(n, e); + }, t.prototype.or = function(e, n) { + return this.orInternal(n, e); + }, t.prototype.many = function(e, n) { + return this.manyInternal(e, n); + }, t.prototype.atLeastOne = function(e, n) { + return this.atLeastOneInternal(e, n); + }, t.prototype.CONSUME = function(e, n) { + return this.consumeInternal(e, 0, n); + }, t.prototype.CONSUME1 = function(e, n) { + return this.consumeInternal(e, 1, n); + }, t.prototype.CONSUME2 = function(e, n) { + return this.consumeInternal(e, 2, n); + }, t.prototype.CONSUME3 = function(e, n) { + return this.consumeInternal(e, 3, n); + }, t.prototype.CONSUME4 = function(e, n) { + return this.consumeInternal(e, 4, n); + }, t.prototype.CONSUME5 = function(e, n) { + return this.consumeInternal(e, 5, n); + }, t.prototype.CONSUME6 = function(e, n) { + return this.consumeInternal(e, 6, n); + }, t.prototype.CONSUME7 = function(e, n) { + return this.consumeInternal(e, 7, n); + }, t.prototype.CONSUME8 = function(e, n) { + return this.consumeInternal(e, 8, n); + }, t.prototype.CONSUME9 = function(e, n) { + return this.consumeInternal(e, 9, n); + }, t.prototype.SUBRULE = function(e, n) { + return this.subruleInternal(e, 0, n); + }, t.prototype.SUBRULE1 = function(e, n) { + return this.subruleInternal(e, 1, n); + }, t.prototype.SUBRULE2 = function(e, n) { + return this.subruleInternal(e, 2, n); + }, t.prototype.SUBRULE3 = function(e, n) { + return this.subruleInternal(e, 3, n); + }, t.prototype.SUBRULE4 = function(e, n) { + return this.subruleInternal(e, 4, n); + }, t.prototype.SUBRULE5 = function(e, n) { + return this.subruleInternal(e, 5, n); + }, t.prototype.SUBRULE6 = function(e, n) { + return this.subruleInternal(e, 6, n); + }, t.prototype.SUBRULE7 = function(e, n) { + return this.subruleInternal(e, 7, n); + }, t.prototype.SUBRULE8 = function(e, n) { + return this.subruleInternal(e, 8, n); + }, t.prototype.SUBRULE9 = function(e, n) { + return this.subruleInternal(e, 9, n); + }, t.prototype.OPTION = function(e) { + return this.optionInternal(e, 0); + }, t.prototype.OPTION1 = function(e) { + return this.optionInternal(e, 1); + }, t.prototype.OPTION2 = function(e) { + return this.optionInternal(e, 2); + }, t.prototype.OPTION3 = function(e) { + return this.optionInternal(e, 3); + }, t.prototype.OPTION4 = function(e) { + return this.optionInternal(e, 4); + }, t.prototype.OPTION5 = function(e) { + return this.optionInternal(e, 5); + }, t.prototype.OPTION6 = function(e) { + return this.optionInternal(e, 6); + }, t.prototype.OPTION7 = function(e) { + return this.optionInternal(e, 7); + }, t.prototype.OPTION8 = function(e) { + return this.optionInternal(e, 8); + }, t.prototype.OPTION9 = function(e) { + return this.optionInternal(e, 9); + }, t.prototype.OR = function(e) { + return this.orInternal(e, 0); + }, t.prototype.OR1 = function(e) { + return this.orInternal(e, 1); + }, t.prototype.OR2 = function(e) { + return this.orInternal(e, 2); + }, t.prototype.OR3 = function(e) { + return this.orInternal(e, 3); + }, t.prototype.OR4 = function(e) { + return this.orInternal(e, 4); + }, t.prototype.OR5 = function(e) { + return this.orInternal(e, 5); + }, t.prototype.OR6 = function(e) { + return this.orInternal(e, 6); + }, t.prototype.OR7 = function(e) { + return this.orInternal(e, 7); + }, t.prototype.OR8 = function(e) { + return this.orInternal(e, 8); + }, t.prototype.OR9 = function(e) { + return this.orInternal(e, 9); + }, t.prototype.MANY = function(e) { + this.manyInternal(0, e); + }, t.prototype.MANY1 = function(e) { + this.manyInternal(1, e); + }, t.prototype.MANY2 = function(e) { + this.manyInternal(2, e); + }, t.prototype.MANY3 = function(e) { + this.manyInternal(3, e); + }, t.prototype.MANY4 = function(e) { + this.manyInternal(4, e); + }, t.prototype.MANY5 = function(e) { + this.manyInternal(5, e); + }, t.prototype.MANY6 = function(e) { + this.manyInternal(6, e); + }, t.prototype.MANY7 = function(e) { + this.manyInternal(7, e); + }, t.prototype.MANY8 = function(e) { + this.manyInternal(8, e); + }, t.prototype.MANY9 = function(e) { + this.manyInternal(9, e); + }, t.prototype.MANY_SEP = function(e) { + this.manySepFirstInternal(0, e); + }, t.prototype.MANY_SEP1 = function(e) { + this.manySepFirstInternal(1, e); + }, t.prototype.MANY_SEP2 = function(e) { + this.manySepFirstInternal(2, e); + }, t.prototype.MANY_SEP3 = function(e) { + this.manySepFirstInternal(3, e); + }, t.prototype.MANY_SEP4 = function(e) { + this.manySepFirstInternal(4, e); + }, t.prototype.MANY_SEP5 = function(e) { + this.manySepFirstInternal(5, e); + }, t.prototype.MANY_SEP6 = function(e) { + this.manySepFirstInternal(6, e); + }, t.prototype.MANY_SEP7 = function(e) { + this.manySepFirstInternal(7, e); + }, t.prototype.MANY_SEP8 = function(e) { + this.manySepFirstInternal(8, e); + }, t.prototype.MANY_SEP9 = function(e) { + this.manySepFirstInternal(9, e); + }, t.prototype.AT_LEAST_ONE = function(e) { + this.atLeastOneInternal(0, e); + }, t.prototype.AT_LEAST_ONE1 = function(e) { + return this.atLeastOneInternal(1, e); + }, t.prototype.AT_LEAST_ONE2 = function(e) { + this.atLeastOneInternal(2, e); + }, t.prototype.AT_LEAST_ONE3 = function(e) { + this.atLeastOneInternal(3, e); + }, t.prototype.AT_LEAST_ONE4 = function(e) { + this.atLeastOneInternal(4, e); + }, t.prototype.AT_LEAST_ONE5 = function(e) { + this.atLeastOneInternal(5, e); + }, t.prototype.AT_LEAST_ONE6 = function(e) { + this.atLeastOneInternal(6, e); + }, t.prototype.AT_LEAST_ONE7 = function(e) { + this.atLeastOneInternal(7, e); + }, t.prototype.AT_LEAST_ONE8 = function(e) { + this.atLeastOneInternal(8, e); + }, t.prototype.AT_LEAST_ONE9 = function(e) { + this.atLeastOneInternal(9, e); + }, t.prototype.AT_LEAST_ONE_SEP = function(e) { + this.atLeastOneSepFirstInternal(0, e); + }, t.prototype.AT_LEAST_ONE_SEP1 = function(e) { + this.atLeastOneSepFirstInternal(1, e); + }, t.prototype.AT_LEAST_ONE_SEP2 = function(e) { + this.atLeastOneSepFirstInternal(2, e); + }, t.prototype.AT_LEAST_ONE_SEP3 = function(e) { + this.atLeastOneSepFirstInternal(3, e); + }, t.prototype.AT_LEAST_ONE_SEP4 = function(e) { + this.atLeastOneSepFirstInternal(4, e); + }, t.prototype.AT_LEAST_ONE_SEP5 = function(e) { + this.atLeastOneSepFirstInternal(5, e); + }, t.prototype.AT_LEAST_ONE_SEP6 = function(e) { + this.atLeastOneSepFirstInternal(6, e); + }, t.prototype.AT_LEAST_ONE_SEP7 = function(e) { + this.atLeastOneSepFirstInternal(7, e); + }, t.prototype.AT_LEAST_ONE_SEP8 = function(e) { + this.atLeastOneSepFirstInternal(8, e); + }, t.prototype.AT_LEAST_ONE_SEP9 = function(e) { + this.atLeastOneSepFirstInternal(9, e); + }, t.prototype.RULE = function(e, n, r) { + if (r === void 0 && (r = Vn), fe(this.definedRulesNames, e)) { + var i = Kn.buildDuplicateRuleNameError({ + topLevelRule: e, + grammarName: this.className + }), a = { + message: i, + type: Le.DUPLICATE_RULE_NAME, + ruleName: e + }; + this.definitionErrors.push(a); + } + this.definedRulesNames.push(e); + var c = this.defineRule(e, n, r); + return this[e] = c, c; + }, t.prototype.OVERRIDE_RULE = function(e, n, r) { + r === void 0 && (r = Vn); + var i = []; + i = i.concat(tu(e, this.definedRulesNames, this.className)), this.definitionErrors.push.apply(this.definitionErrors, i); + var a = this.defineRule(e, n, r); + return this[e] = a, a; + }, t.prototype.BACKTRACK = function(e, n) { + return function() { + this.isBackTrackingStack.push(1); + var r = this.saveRecogState(); + try { + return e.apply(this, n), !0; + } catch (i) { + if (rn(i)) + return !1; + throw i; + } finally { + this.reloadRecogState(r), this.isBackTrackingStack.pop(); + } + }; + }, t.prototype.getGAstProductions = function() { + return this.gastProductionsCache; + }, t.prototype.getSerializedGastProductions = function() { + return is(xe(this.gastProductionsCache)); + }, t; + }() +), Mu = ( + /** @class */ + function() { + function t() { + } + return t.prototype.initRecognizerEngine = function(e, n) { + if (this.className = Eu(this), this.shortRuleNameToFull = {}, this.fullRuleNameToShort = {}, this.ruleShortNameIdx = 256, this.tokenMatcher = Sn, this.definedRulesNames = [], this.tokensMap = {}, this.isBackTrackingStack = [], this.RULE_STACK = [], this.RULE_OCCURRENCE_STACK = [], this.gastProductionsCache = {}, $(n, "serializedGrammar")) + throw Error(`The Parser's configuration can no longer contain a property. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 + For Further details.`); + if (it(e)) { + if (ee(e)) + throw Error(`A Token Vocabulary cannot be empty. + Note that the first argument for the parser constructor + is no longer a Token vector (since v4.0).`); + if (typeof e[0].startOffset == "number") + throw Error(`The Parser constructor no longer accepts a token vector as the first argument. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 + For Further details.`); + } + if (it(e)) + this.tokensMap = Ne(e, function(c, h) { + return c[h.name] = h, c; + }, {}); + else if ($(e, "modes") && He(Ve(xe(e.modes)), ml)) { + var r = Ve(xe(e.modes)), i = Dr(r); + this.tokensMap = Ne(i, function(c, h) { + return c[h.name] = h, c; + }, {}); + } else if (Vr(e)) + this.tokensMap = on(e); + else + throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition"); + this.tokensMap.EOF = wt; + var a = He(xe(e), function(c) { + return ee(c.categoryMatches); + }); + this.tokenMatcher = a ? Sn : Wn, cn(xe(this.tokensMap)); + }, t.prototype.defineRule = function(e, n, r) { + if (this.selfAnalysisDone) + throw Error("Grammar rule <" + e + `> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`); + var i = $(r, "resyncEnabled") ? r.resyncEnabled : Vn.resyncEnabled, a = $(r, "recoveryValueFunc") ? r.recoveryValueFunc : Vn.recoveryValueFunc, c = this.ruleShortNameIdx << pu + It; + this.ruleShortNameIdx++, this.shortRuleNameToFull[c] = e, this.fullRuleNameToShort[e] = c; + function h(o) { + try { + if (this.outputCst === !0) { + n.apply(this, o); + var s = this.CST_STACK[this.CST_STACK.length - 1]; + return this.cstPostRule(s), s; + } else + return n.apply(this, o); + } catch (l) { + return this.invokeRuleCatch(l, i, a); + } finally { + this.ruleFinallyStateUpdate(); + } + } + var p; + p = function(o, s) { + return o === void 0 && (o = 0), this.ruleInvocationStateUpdate(c, e, o), h.call(this, s); + }; + var u = "ruleName"; + return p[u] = e, p.originalGrammarAction = n, p; + }, t.prototype.invokeRuleCatch = function(e, n, r) { + var i = this.RULE_STACK.length === 1, a = n && !this.isBackTracking() && this.recoveryEnabled; + if (rn(e)) { + var c = e; + if (a) { + var h = this.findReSyncTokenType(); + if (this.isInCurrentRuleReSyncSet(h)) + if (c.resyncedTokens = this.reSyncTo(h), this.outputCst) { + var p = this.CST_STACK[this.CST_STACK.length - 1]; + return p.recoveredNode = !0, p; + } else + return r(); + else { + if (this.outputCst) { + var p = this.CST_STACK[this.CST_STACK.length - 1]; + p.recoveredNode = !0, c.partialCstResult = p; + } + throw c; + } + } else { + if (i) + return this.moveToTerminatedState(), r(); + throw c; + } + } else + throw e; + }, t.prototype.optionInternal = function(e, n) { + var r = this.getKeyForAutomaticLookahead(Ms, n); + return this.optionInternalLogic(e, n, r); + }, t.prototype.optionInternalLogic = function(e, n, r) { + var i = this, a = this.getLaFuncFromCache(r), c, h; + if (e.DEF !== void 0) { + if (c = e.DEF, h = e.GATE, h !== void 0) { + var p = a; + a = function() { + return h.call(i) && p.call(i); + }; + } + } else + c = e; + if (a.call(this) === !0) + return c.call(this); + }, t.prototype.atLeastOneInternal = function(e, n) { + var r = this.getKeyForAutomaticLookahead(xr, e); + return this.atLeastOneInternalLogic(e, n, r); + }, t.prototype.atLeastOneInternalLogic = function(e, n, r) { + var i = this, a = this.getLaFuncFromCache(r), c, h; + if (n.DEF !== void 0) { + if (c = n.DEF, h = n.GATE, h !== void 0) { + var p = a; + a = function() { + return h.call(i) && p.call(i); + }; + } + } else + c = n; + if (a.call(this) === !0) + for (var u = this.doSingleRepetition(c); a.call(this) === !0 && u === !0; ) + u = this.doSingleRepetition(c); + else + throw this.raiseEarlyExitException(e, j.REPETITION_MANDATORY, n.ERR_MSG); + this.attemptInRepetitionRecovery(this.atLeastOneInternal, [e, n], a, xr, e, Vl); + }, t.prototype.atLeastOneSepFirstInternal = function(e, n) { + var r = this.getKeyForAutomaticLookahead(Un, e); + this.atLeastOneSepFirstInternalLogic(e, n, r); + }, t.prototype.atLeastOneSepFirstInternalLogic = function(e, n, r) { + var i = this, a = n.DEF, c = n.SEP, h = this.getLaFuncFromCache(r); + if (h.call(this) === !0) { + a.call(this); + for (var p = function() { + return i.tokenMatcher(i.LA(1), c); + }; this.tokenMatcher(this.LA(1), c) === !0; ) + this.CONSUME(c), a.call(this); + this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal, [ + e, + c, + p, + a, + Fi + ], p, Un, e, Fi); + } else + throw this.raiseEarlyExitException(e, j.REPETITION_MANDATORY_WITH_SEPARATOR, n.ERR_MSG); + }, t.prototype.manyInternal = function(e, n) { + var r = this.getKeyForAutomaticLookahead(kr, e); + return this.manyInternalLogic(e, n, r); + }, t.prototype.manyInternalLogic = function(e, n, r) { + var i = this, a = this.getLaFuncFromCache(r), c, h; + if (n.DEF !== void 0) { + if (c = n.DEF, h = n.GATE, h !== void 0) { + var p = a; + a = function() { + return h.call(i) && p.call(i); + }; + } + } else + c = n; + for (var u = !0; a.call(this) === !0 && u === !0; ) + u = this.doSingleRepetition(c); + this.attemptInRepetitionRecovery( + this.manyInternal, + [e, n], + a, + kr, + e, + Dl, + // The notStuck parameter is only relevant when "attemptInRepetitionRecovery" + // is invoked from manyInternal, in the MANY_SEP case and AT_LEAST_ONE[_SEP] + // An infinite loop cannot occur as: + // - Either the lookahead is guaranteed to consume something (Single Token Separator) + // - AT_LEAST_ONE by definition is guaranteed to consume something (or error out). + u + ); + }, t.prototype.manySepFirstInternal = function(e, n) { + var r = this.getKeyForAutomaticLookahead(Sr, e); + this.manySepFirstInternalLogic(e, n, r); + }, t.prototype.manySepFirstInternalLogic = function(e, n, r) { + var i = this, a = n.DEF, c = n.SEP, h = this.getLaFuncFromCache(r); + if (h.call(this) === !0) { + a.call(this); + for (var p = function() { + return i.tokenMatcher(i.LA(1), c); + }; this.tokenMatcher(this.LA(1), c) === !0; ) + this.CONSUME(c), a.call(this); + this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal, [ + e, + c, + p, + a, + Bi + ], p, Sr, e, Bi); + } + }, t.prototype.repetitionSepSecondInternal = function(e, n, r, i, a) { + for (; r(); ) + this.CONSUME(n), i.call(this); + this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal, [ + e, + n, + r, + i, + a + ], r, Un, e, a); + }, t.prototype.doSingleRepetition = function(e) { + var n = this.getLexerPosition(); + e.call(this); + var r = this.getLexerPosition(); + return r > n; + }, t.prototype.orInternal = function(e, n) { + var r = this.getKeyForAutomaticLookahead(Os, n), i = it(e) ? e : e.DEF, a = this.getLaFuncFromCache(r), c = a.call(this, i); + if (c !== void 0) { + var h = i[c]; + return h.ALT.call(this); + } + this.raiseNoAltException(n, e.ERR_MSG); + }, t.prototype.ruleFinallyStateUpdate = function() { + if (this.RULE_STACK.pop(), this.RULE_OCCURRENCE_STACK.pop(), this.cstFinallyStateUpdate(), this.RULE_STACK.length === 0 && this.isAtEndOfInput() === !1) { + var e = this.LA(1), n = this.errorMessageProvider.buildNotAllInputParsedMessage({ + firstRedundant: e, + ruleName: this.getCurrRuleFullName() + }); + this.SAVE_ERROR(new Ts(n, e)); + } + }, t.prototype.subruleInternal = function(e, n, r) { + var i; + try { + var a = r !== void 0 ? r.ARGS : void 0; + return i = e.call(this, n, a), this.cstPostNonTerminal(i, r !== void 0 && r.LABEL !== void 0 ? r.LABEL : e.ruleName), i; + } catch (c) { + this.subruleInternalError(c, r, e.ruleName); + } + }, t.prototype.subruleInternalError = function(e, n, r) { + throw rn(e) && e.partialCstResult !== void 0 && (this.cstPostNonTerminal(e.partialCstResult, n !== void 0 && n.LABEL !== void 0 ? n.LABEL : r), delete e.partialCstResult), e; + }, t.prototype.consumeInternal = function(e, n, r) { + var i; + try { + var a = this.LA(1); + this.tokenMatcher(a, e) === !0 ? (this.consumeToken(), i = a) : this.consumeInternalError(e, a, r); + } catch (c) { + i = this.consumeInternalRecovery(e, n, c); + } + return this.cstPostTerminal(r !== void 0 && r.LABEL !== void 0 ? r.LABEL : e.name, i), i; + }, t.prototype.consumeInternalError = function(e, n, r) { + var i, a = this.LA(0); + throw r !== void 0 && r.ERR_MSG ? i = r.ERR_MSG : i = this.errorMessageProvider.buildMismatchTokenMessage({ + expected: e, + actual: n, + previous: a, + ruleName: this.getCurrRuleFullName() + }), this.SAVE_ERROR(new Xr(i, n, a)); + }, t.prototype.consumeInternalRecovery = function(e, n, r) { + if (this.recoveryEnabled && // TODO: more robust checking of the exception type. Perhaps Typescript extending expressions? + r.name === "MismatchedTokenException" && !this.isBackTracking()) { + var i = this.getFollowsForInRuleRecovery(e, n); + try { + return this.tryInRuleRecovery(e, i); + } catch (a) { + throw a.name === Cs ? r : a; + } + } else + throw r; + }, t.prototype.saveRecogState = function() { + var e = this.errors, n = Se(this.RULE_STACK); + return { + errors: e, + lexerState: this.exportLexerState(), + RULE_STACK: n, + CST_STACK: this.CST_STACK + }; + }, t.prototype.reloadRecogState = function(e) { + this.errors = e.errors, this.importLexerState(e.lexerState), this.RULE_STACK = e.RULE_STACK; + }, t.prototype.ruleInvocationStateUpdate = function(e, n, r) { + this.RULE_OCCURRENCE_STACK.push(r), this.RULE_STACK.push(e), this.cstInvocationStateUpdate(n, e); + }, t.prototype.isBackTracking = function() { + return this.isBackTrackingStack.length !== 0; + }, t.prototype.getCurrRuleFullName = function() { + var e = this.getLastExplicitRuleShortName(); + return this.shortRuleNameToFull[e]; + }, t.prototype.shortRuleNameToFullName = function(e) { + return this.shortRuleNameToFull[e]; + }, t.prototype.isAtEndOfInput = function() { + return this.tokenMatcher(this.LA(1), wt); + }, t.prototype.reset = function() { + this.resetLexerState(), this.isBackTrackingStack = [], this.errors = [], this.RULE_STACK = [], this.CST_STACK = [], this.RULE_OCCURRENCE_STACK = []; + }, t; + }() +), Uu = ( + /** @class */ + function() { + function t() { + } + return t.prototype.initErrorHandler = function(e) { + this._errors = [], this.errorMessageProvider = $(e, "errorMessageProvider") ? e.errorMessageProvider : dt.errorMessageProvider; + }, t.prototype.SAVE_ERROR = function(e) { + if (rn(e)) + return e.context = { + ruleStack: this.getHumanReadableRuleStack(), + ruleOccurrenceStack: Se(this.RULE_OCCURRENCE_STACK) + }, this._errors.push(e), e; + throw Error("Trying to save an Error which is not a RecognitionException"); + }, Object.defineProperty(t.prototype, "errors", { + get: function() { + return Se(this._errors); + }, + set: function(e) { + this._errors = e; + }, + enumerable: !1, + configurable: !0 + }), t.prototype.raiseEarlyExitException = function(e, n, r) { + for (var i = this.getCurrRuleFullName(), a = this.getGAstProductions()[i], c = Yr(e, a, n, this.maxLookahead), h = c[0], p = [], u = 1; u <= this.maxLookahead; u++) + p.push(this.LA(u)); + var o = this.errorMessageProvider.buildEarlyExitMessage({ + expectedIterationPaths: h, + actual: p, + previous: this.LA(0), + customUserDescription: r, + ruleName: i + }); + throw this.SAVE_ERROR(new ws(o, this.LA(1), this.LA(0))); + }, t.prototype.raiseNoAltException = function(e, n) { + for (var r = this.getCurrRuleFullName(), i = this.getGAstProductions()[r], a = qr(e, i, this.maxLookahead), c = [], h = 1; h <= this.maxLookahead; h++) + c.push(this.LA(h)); + var p = this.LA(0), u = this.errorMessageProvider.buildNoViableAltMessage({ + expectedPathsPerAlt: a, + actual: c, + previous: p, + customUserDescription: n, + ruleName: this.getCurrRuleFullName() + }); + throw this.SAVE_ERROR(new ys(u, this.LA(1), p)); + }, t; + }() +), Lu = ( + /** @class */ + function() { + function t() { + } + return t.prototype.initContentAssist = function() { + }, t.prototype.computeContentAssist = function(e, n) { + var r = this.gastProductionsCache[e]; + if (ht(r)) + throw Error("Rule ->" + e + "<- does not exist in this grammar."); + return cs([r], n, this.tokenMatcher, this.maxLookahead); + }, t.prototype.getNextPossibleTokenTypes = function(e) { + var n = Ze(e.ruleStack), r = this.getGAstProductions(), i = r[n], a = new bl(i, e).startWalking(); + return a; + }, t; + }() +), Zn = { + description: "This Object indicates the Parser is during Recording Phase" +}; +Object.freeze(Zn); +var $i = !0, Hi = Math.pow(2, It) - 1, Ls = Hr({ name: "RECORDING_PHASE_TOKEN", pattern: Xe.NA }); +cn([Ls]); +var _s = qn( + Ls, + `This IToken indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`, + // Using "-1" instead of NaN (as in EOF) because an actual number is less likely to + // cause errors if the output of LA or CONSUME would be (incorrectly) used during the recording phase. + -1, + -1, + -1, + -1, + -1, + -1 +); +Object.freeze(_s); +var _u = { + name: `This CSTNode indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`, + children: {} +}, Pu = ( + /** @class */ + function() { + function t() { + } + return t.prototype.initGastRecorder = function(e) { + this.recordingProdStack = [], this.RECORDING_PHASE = !1; + }, t.prototype.enableRecording = function() { + var e = this; + this.RECORDING_PHASE = !0, this.TRACE_INIT("Enable Recording", function() { + for (var n = function(i) { + var a = i > 0 ? i : ""; + e["CONSUME" + a] = function(c, h) { + return this.consumeInternalRecord(c, i, h); + }, e["SUBRULE" + a] = function(c, h) { + return this.subruleInternalRecord(c, i, h); + }, e["OPTION" + a] = function(c) { + return this.optionInternalRecord(c, i); + }, e["OR" + a] = function(c) { + return this.orInternalRecord(c, i); + }, e["MANY" + a] = function(c) { + this.manyInternalRecord(i, c); + }, e["MANY_SEP" + a] = function(c) { + this.manySepFirstInternalRecord(i, c); + }, e["AT_LEAST_ONE" + a] = function(c) { + this.atLeastOneInternalRecord(i, c); + }, e["AT_LEAST_ONE_SEP" + a] = function(c) { + this.atLeastOneSepFirstInternalRecord(i, c); + }; + }, r = 0; r < 10; r++) + n(r); + e.consume = function(i, a, c) { + return this.consumeInternalRecord(a, i, c); + }, e.subrule = function(i, a, c) { + return this.subruleInternalRecord(a, i, c); + }, e.option = function(i, a) { + return this.optionInternalRecord(a, i); + }, e.or = function(i, a) { + return this.orInternalRecord(a, i); + }, e.many = function(i, a) { + this.manyInternalRecord(i, a); + }, e.atLeastOne = function(i, a) { + this.atLeastOneInternalRecord(i, a); + }, e.ACTION = e.ACTION_RECORD, e.BACKTRACK = e.BACKTRACK_RECORD, e.LA = e.LA_RECORD; + }); + }, t.prototype.disableRecording = function() { + var e = this; + this.RECORDING_PHASE = !1, this.TRACE_INIT("Deleting Recording methods", function() { + for (var n = 0; n < 10; n++) { + var r = n > 0 ? n : ""; + delete e["CONSUME" + r], delete e["SUBRULE" + r], delete e["OPTION" + r], delete e["OR" + r], delete e["MANY" + r], delete e["MANY_SEP" + r], delete e["AT_LEAST_ONE" + r], delete e["AT_LEAST_ONE_SEP" + r]; + } + delete e.consume, delete e.subrule, delete e.option, delete e.or, delete e.many, delete e.atLeastOne, delete e.ACTION, delete e.BACKTRACK, delete e.LA; + }); + }, t.prototype.ACTION_RECORD = function(e) { + }, t.prototype.BACKTRACK_RECORD = function(e, n) { + return function() { + return !0; + }; + }, t.prototype.LA_RECORD = function(e) { + return Dn; + }, t.prototype.topLevelRuleRecord = function(e, n) { + try { + var r = new kt({ definition: [], name: e }); + return r.name = e, this.recordingProdStack.push(r), n.call(this), this.recordingProdStack.pop(), r; + } catch (i) { + if (i.KNOWN_RECORDER_ERROR !== !0) + try { + i.message = i.message + ` + This error was thrown during the "grammar recording phase" For more info see: + https://chevrotain.io/docs/guide/internals.html#grammar-recording`; + } catch { + throw i; + } + throw i; + } + }, t.prototype.optionInternalRecord = function(e, n) { + return zt.call(this, ye, e, n); + }, t.prototype.atLeastOneInternalRecord = function(e, n) { + zt.call(this, We, n, e); + }, t.prototype.atLeastOneSepFirstInternalRecord = function(e, n) { + zt.call(this, qe, n, e, $i); + }, t.prototype.manyInternalRecord = function(e, n) { + zt.call(this, ce, n, e); + }, t.prototype.manySepFirstInternalRecord = function(e, n) { + zt.call(this, Ge, n, e, $i); + }, t.prototype.orInternalRecord = function(e, n) { + return ku.call(this, e, n); + }, t.prototype.subruleInternalRecord = function(e, n, r) { + if (bn(n), !e || $(e, "ruleName") === !1) { + var i = new Error(" argument is invalid" + (" expecting a Parser method reference but got: <" + JSON.stringify(e) + ">") + (` + inside top level rule: <` + this.recordingProdStack[0].name + ">")); + throw i.KNOWN_RECORDER_ERROR = !0, i; + } + var a = kn(this.recordingProdStack), c = e.ruleName, h = new Ue({ + idx: n, + nonTerminalName: c, + // The resolving of the `referencedRule` property will be done once all the Rule's GASTs have been created + referencedRule: void 0 + }); + return a.definition.push(h), this.outputCst ? _u : Zn; + }, t.prototype.consumeInternalRecord = function(e, n, r) { + if (bn(n), !ts(e)) { + var i = new Error(" argument is invalid" + (" expecting a TokenType reference but got: <" + JSON.stringify(e) + ">") + (` + inside top level rule: <` + this.recordingProdStack[0].name + ">")); + throw i.KNOWN_RECORDER_ERROR = !0, i; + } + var a = kn(this.recordingProdStack), c = new ne({ + idx: n, + terminalType: e + }); + return a.definition.push(c), _s; + }, t; + }() +); +function zt(t, e, n, r) { + r === void 0 && (r = !1), bn(n); + var i = kn(this.recordingProdStack), a = Ct(e) ? e : e.DEF, c = new t({ definition: [], idx: n }); + return r && (c.separator = e.SEP), $(e, "MAX_LOOKAHEAD") && (c.maxLookahead = e.MAX_LOOKAHEAD), this.recordingProdStack.push(c), a.call(this), i.definition.push(c), this.recordingProdStack.pop(), Zn; +} +function ku(t, e) { + var n = this; + bn(e); + var r = kn(this.recordingProdStack), i = it(t) === !1, a = i === !1 ? t : t.DEF, c = new $e({ + definition: [], + idx: e, + ignoreAmbiguities: i && t.IGNORE_AMBIGUITIES === !0 + }); + $(t, "MAX_LOOKAHEAD") && (c.maxLookahead = t.MAX_LOOKAHEAD); + var h = $o(a, function(p) { + return Ct(p.GATE); + }); + return c.hasPredicates = h, r.definition.push(c), V(a, function(p) { + var u = new Te({ definition: [] }); + c.definition.push(u), $(p, "IGNORE_AMBIGUITIES") ? u.ignoreAmbiguities = p.IGNORE_AMBIGUITIES : $(p, "GATE") && (u.ignoreAmbiguities = !0), n.recordingProdStack.push(u), p.ALT.call(n), n.recordingProdStack.pop(); + }), Zn; +} +function Wi(t) { + return t === 0 ? "" : "" + t; +} +function bn(t) { + if (t < 0 || t > Hi) { + var e = new Error( + // The stack trace will contain all the needed details + "Invalid DSL Method idx value: <" + t + `> + ` + ("Idx value must be a none negative value smaller than " + (Hi + 1)) + ); + throw e.KNOWN_RECORDER_ERROR = !0, e; + } +} +var xu = ( + /** @class */ + function() { + function t() { + } + return t.prototype.initPerformanceTracer = function(e) { + if ($(e, "traceInitPerf")) { + var n = e.traceInitPerf, r = typeof n == "number"; + this.traceInitMaxIdent = r ? n : 1 / 0, this.traceInitPerf = r ? n > 0 : n; + } else + this.traceInitMaxIdent = 0, this.traceInitPerf = dt.traceInitPerf; + this.traceInitIndent = -1; + }, t.prototype.TRACE_INIT = function(e, n) { + if (this.traceInitPerf === !0) { + this.traceInitIndent++; + var r = new Array(this.traceInitIndent + 1).join(" "); + this.traceInitIndent < this.traceInitMaxIdent && console.log(r + "--> <" + e + ">"); + var i = qo(n), a = i.time, c = i.value, h = a > 10 ? console.warn : console.log; + return this.traceInitIndent < this.traceInitMaxIdent && h(r + "<-- <" + e + "> time: " + a + "ms"), this.traceInitIndent--, c; + } else + return n(); + }, t; + }() +), Ps = globalThis && globalThis.__extends || function() { + var t = function(e, n) { + return t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(r, i) { + r.__proto__ = i; + } || function(r, i) { + for (var a in i) + Object.prototype.hasOwnProperty.call(i, a) && (r[a] = i[a]); + }, t(e, n); + }; + return function(e, n) { + t(e, n); + function r() { + this.constructor = e; + } + e.prototype = n === null ? Object.create(n) : (r.prototype = n.prototype, new r()); + }; +}(), Dn = qn(wt, "", NaN, NaN, NaN, NaN, NaN, NaN); +Object.freeze(Dn); +var dt = Object.freeze({ + recoveryEnabled: !1, + maxLookahead: 3, + dynamicTokensEnabled: !1, + outputCst: !0, + errorMessageProvider: Wr, + nodeLocationTracking: "none", + traceInitPerf: !1, + skipValidations: !1 +}), Vn = Object.freeze({ + recoveryValueFunc: function() { + }, + resyncEnabled: !0 +}), Le; +(function(t) { + t[t.INVALID_RULE_NAME = 0] = "INVALID_RULE_NAME", t[t.DUPLICATE_RULE_NAME = 1] = "DUPLICATE_RULE_NAME", t[t.INVALID_RULE_OVERRIDE = 2] = "INVALID_RULE_OVERRIDE", t[t.DUPLICATE_PRODUCTIONS = 3] = "DUPLICATE_PRODUCTIONS", t[t.UNRESOLVED_SUBRULE_REF = 4] = "UNRESOLVED_SUBRULE_REF", t[t.LEFT_RECURSION = 5] = "LEFT_RECURSION", t[t.NONE_LAST_EMPTY_ALT = 6] = "NONE_LAST_EMPTY_ALT", t[t.AMBIGUOUS_ALTS = 7] = "AMBIGUOUS_ALTS", t[t.CONFLICT_TOKENS_RULES_NAMESPACE = 8] = "CONFLICT_TOKENS_RULES_NAMESPACE", t[t.INVALID_TOKEN_NAME = 9] = "INVALID_TOKEN_NAME", t[t.NO_NON_EMPTY_LOOKAHEAD = 10] = "NO_NON_EMPTY_LOOKAHEAD", t[t.AMBIGUOUS_PREFIX_ALTS = 11] = "AMBIGUOUS_PREFIX_ALTS", t[t.TOO_MANY_ALTS = 12] = "TOO_MANY_ALTS"; +})(Le || (Le = {})); +function Su(t) { + return t === void 0 && (t = void 0), function() { + return t; + }; +} +var Qr = ( + /** @class */ + function() { + function t(e, n) { + this.definitionErrors = [], this.selfAnalysisDone = !1; + var r = this; + if (r.initErrorHandler(n), r.initLexerAdapter(), r.initLooksAhead(n), r.initRecognizerEngine(e, n), r.initRecoverable(n), r.initTreeBuilder(n), r.initContentAssist(), r.initGastRecorder(n), r.initPerformanceTracer(n), $(n, "ignoredIssues")) + throw new Error(`The IParserConfig property has been deprecated. + Please use the flag on the relevant DSL method instead. + See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES + For further details.`); + this.skipValidations = $(n, "skipValidations") ? n.skipValidations : dt.skipValidations; + } + return t.performSelfAnalysis = function(e) { + throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead."); + }, t.prototype.performSelfAnalysis = function() { + var e = this; + this.TRACE_INIT("performSelfAnalysis", function() { + var n; + e.selfAnalysisDone = !0; + var r = e.className; + e.TRACE_INIT("toFastProps", function() { + Wo(e); + }), e.TRACE_INIT("Grammar Recording", function() { + try { + e.enableRecording(), V(e.definedRulesNames, function(a) { + var c = e[a], h = c.originalGrammarAction, p = void 0; + e.TRACE_INIT(a + " Rule", function() { + p = e.topLevelRuleRecord(a, h); + }), e.gastProductionsCache[a] = p; + }); + } finally { + e.disableRecording(); + } + }); + var i = []; + if (e.TRACE_INIT("Grammar Resolving", function() { + i = vs({ + rules: xe(e.gastProductionsCache) + }), e.definitionErrors.push.apply(e.definitionErrors, i); + }), e.TRACE_INIT("Grammar Validations", function() { + if (ee(i) && e.skipValidations === !1) { + var a = gs({ + rules: xe(e.gastProductionsCache), + maxLookahead: e.maxLookahead, + tokenTypes: xe(e.tokensMap), + errMsgProvider: Kn, + grammarName: r + }); + e.definitionErrors.push.apply(e.definitionErrors, a); + } + }), ee(e.definitionErrors) && (e.recoveryEnabled && e.TRACE_INIT("computeAllProdsFollows", function() { + var a = Pl(xe(e.gastProductionsCache)); + e.resyncFollows = a; + }), e.TRACE_INIT("ComputeLookaheadFunctions", function() { + e.preComputeLookaheadFunctions(xe(e.gastProductionsCache)); + })), !t.DEFER_DEFINITION_ERRORS_HANDLING && !ee(e.definitionErrors)) + throw n = x(e.definitionErrors, function(a) { + return a.message; + }), new Error(`Parser Definition Errors detected: + ` + n.join(` +------------------------------- +`)); + }); + }, t.DEFER_DEFINITION_ERRORS_HANDLING = !1, t; + }() +); +Sc(Qr, [ + fu, + du, + Cu, + Iu, + Mu, + Ou, + Uu, + Lu, + Pu, + xu +]); +var Bu = ( + /** @class */ + function(t) { + Ps(e, t); + function e(n, r) { + r === void 0 && (r = dt); + var i = this, a = on(r); + return a.outputCst = !0, i = t.call(this, n, a) || this, i; + } + return e; + }(Qr) +), Fu = ( + /** @class */ + function(t) { + Ps(e, t); + function e(n, r) { + r === void 0 && (r = dt); + var i = this, a = on(r); + return a.outputCst = !1, i = t.call(this, n, a) || this, i; + } + return e; + }(Qr) +); +function bu(t, e) { + var n = e === void 0 ? {} : e, r = n.resourceBase, i = r === void 0 ? "https://unpkg.com/chevrotain@" + Or + "/diagrams/" : r, a = n.css, c = a === void 0 ? "https://unpkg.com/chevrotain@" + Or + "/diagrams/diagrams.css" : a, h = ` + + + + + +`, p = ` + +`, u = ` +\\n\\n\\n\\n\";\n var diagramsDiv = \"\\n
\\n\";\n var serializedGrammar = \"\\n\\n\";\n var initLogic = \"\\n\\n\";\n return (header + cssHtml + scripts + diagramsDiv + serializedGrammar + initLogic);\n}\n//# sourceMappingURL=render_public.js.map","import { forEach, map } from \"../utils/utils\";\nimport { RepetitionMandatory, Option, RepetitionMandatoryWithSeparator, RepetitionWithSeparator, Terminal, NonTerminal, Alternation, Alternative, Repetition } from \"../parse/grammar/gast/gast_public\";\n/**\n * Missing features\n * 1. Rule arguments\n * 2. Gates\n * 3. embedded actions\n */\nvar NL = \"\\n\";\nexport function genUmdModule(options) {\n return \"\\n(function (root, factory) {\\n if (typeof define === 'function' && define.amd) {\\n // AMD. Register as an anonymous module.\\n define(['chevrotain'], factory);\\n } else if (typeof module === 'object' && module.exports) {\\n // Node. Does not work with strict CommonJS, but\\n // only CommonJS-like environments that support module.exports,\\n // like Node.\\n module.exports = factory(require('chevrotain'));\\n } else {\\n // Browser globals (root is window)\\n root.returnExports = factory(root.b);\\n }\\n}(typeof self !== 'undefined' ? self : this, function (chevrotain) {\\n\\n\" + genClass(options) + \"\\n \\nreturn {\\n \" + options.name + \": \" + options.name + \" \\n}\\n}));\\n\";\n}\nexport function genWrapperFunction(options) {\n return \" \\n\" + genClass(options) + \"\\nreturn new \" + options.name + \"(tokenVocabulary, config) \\n\";\n}\nexport function genClass(options) {\n // TODO: how to pass the token vocabulary? Constructor? other?\n var result = \"\\nfunction \" + options.name + \"(tokenVocabulary, config) {\\n // invoke super constructor\\n // No support for embedded actions currently, so we can 'hardcode'\\n // The use of CstParser.\\n chevrotain.CstParser.call(this, tokenVocabulary, config)\\n\\n const $ = this\\n\\n \" + genAllRules(options.rules) + \"\\n\\n // very important to call this after all the rules have been defined.\\n // otherwise the parser may not work correctly as it will lack information\\n // derived during the self analysis phase.\\n this.performSelfAnalysis(this)\\n}\\n\\n// inheritance as implemented in javascript in the previous decade... :(\\n\" + options.name + \".prototype = Object.create(chevrotain.CstParser.prototype)\\n\" + options.name + \".prototype.constructor = \" + options.name + \" \\n \";\n return result;\n}\nexport function genAllRules(rules) {\n var rulesText = map(rules, function (currRule) {\n return genRule(currRule, 1);\n });\n return rulesText.join(\"\\n\");\n}\nexport function genRule(prod, n) {\n var result = indent(n, \"$.RULE(\\\"\" + prod.name + \"\\\", function() {\") + NL;\n result += genDefinition(prod.definition, n + 1);\n result += indent(n + 1, \"})\") + NL;\n return result;\n}\nexport function genTerminal(prod, n) {\n var name = prod.terminalType.name;\n // TODO: potential performance optimization, avoid tokenMap Dictionary access\n return indent(n, \"$.CONSUME\" + prod.idx + \"(this.tokensMap.\" + name + \")\" + NL);\n}\nexport function genNonTerminal(prod, n) {\n return indent(n, \"$.SUBRULE\" + prod.idx + \"($.\" + prod.nonTerminalName + \")\" + NL);\n}\nexport function genAlternation(prod, n) {\n var result = indent(n, \"$.OR\" + prod.idx + \"([\") + NL;\n var alts = map(prod.definition, function (altDef) { return genSingleAlt(altDef, n + 1); });\n result += alts.join(\",\" + NL);\n result += NL + indent(n, \"])\" + NL);\n return result;\n}\nexport function genSingleAlt(prod, n) {\n var result = indent(n, \"{\") + NL;\n result += indent(n + 1, \"ALT: function() {\") + NL;\n result += genDefinition(prod.definition, n + 1);\n result += indent(n + 1, \"}\") + NL;\n result += indent(n, \"}\");\n return result;\n}\nfunction genProd(prod, n) {\n /* istanbul ignore else */\n if (prod instanceof NonTerminal) {\n return genNonTerminal(prod, n);\n }\n else if (prod instanceof Option) {\n return genDSLRule(\"OPTION\", prod, n);\n }\n else if (prod instanceof RepetitionMandatory) {\n return genDSLRule(\"AT_LEAST_ONE\", prod, n);\n }\n else if (prod instanceof RepetitionMandatoryWithSeparator) {\n return genDSLRule(\"AT_LEAST_ONE_SEP\", prod, n);\n }\n else if (prod instanceof RepetitionWithSeparator) {\n return genDSLRule(\"MANY_SEP\", prod, n);\n }\n else if (prod instanceof Repetition) {\n return genDSLRule(\"MANY\", prod, n);\n }\n else if (prod instanceof Alternation) {\n return genAlternation(prod, n);\n }\n else if (prod instanceof Terminal) {\n return genTerminal(prod, n);\n }\n else if (prod instanceof Alternative) {\n return genDefinition(prod.definition, n);\n }\n else {\n throw Error(\"non exhaustive match\");\n }\n}\nfunction genDSLRule(dslName, prod, n) {\n var result = indent(n, \"$.\" + (dslName + prod.idx) + \"(\");\n if (prod.separator) {\n result += \"{\" + NL;\n result +=\n indent(n + 1, \"SEP: this.tokensMap.\" + prod.separator.name) + \",\" + NL;\n result += \"DEF: \" + genDefFunction(prod.definition, n + 2) + NL;\n result += indent(n, \"}\") + NL;\n }\n else {\n result += genDefFunction(prod.definition, n + 1);\n }\n result += indent(n, \")\") + NL;\n return result;\n}\nfunction genDefFunction(definition, n) {\n var def = \"function() {\" + NL;\n def += genDefinition(definition, n);\n def += indent(n, \"}\") + NL;\n return def;\n}\nfunction genDefinition(def, n) {\n var result = \"\";\n forEach(def, function (prod) {\n result += genProd(prod, n + 1);\n });\n return result;\n}\nfunction indent(howMuch, text) {\n var spaces = Array(howMuch * 4 + 1).join(\" \");\n return spaces + text;\n}\n//# sourceMappingURL=generate.js.map","import { genUmdModule, genWrapperFunction } from \"./generate\";\nexport function generateParserFactory(options) {\n var wrapperText = genWrapperFunction({\n name: options.name,\n rules: options.rules\n });\n var constructorWrapper = new Function(\"tokenVocabulary\", \"config\", \"chevrotain\", wrapperText);\n return function (config) {\n return constructorWrapper(options.tokenVocabulary, config, \n // TODO: check how the require is transpiled/webpacked\n require(\"../api\"));\n };\n}\nexport function generateParserModule(options) {\n return genUmdModule({ name: options.name, rules: options.rules });\n}\n//# sourceMappingURL=generate_public.js.map","/* istanbul ignore file - tricky to import some things from this module during testing */\n// semantic version\nexport { VERSION } from \"./version\";\nexport { CstParser, EmbeddedActionsParser, ParserDefinitionErrorType, EMPTY_ALT } from \"./parse/parser/parser\";\nexport { Lexer, LexerDefinitionErrorType } from \"./scan/lexer_public\";\n// Tokens utilities\nexport { createToken, createTokenInstance, EOF, tokenLabel, tokenMatcher, tokenName } from \"./scan/tokens_public\";\n// Other Utilities\nexport { defaultGrammarResolverErrorProvider, defaultGrammarValidatorErrorProvider, defaultParserErrorProvider } from \"./parse/errors_public\";\nexport { EarlyExitException, isRecognitionException, MismatchedTokenException, NotAllInputParsedException, NoViableAltException } from \"./parse/exceptions_public\";\nexport { defaultLexerErrorProvider } from \"./scan/lexer_errors_public\";\n// grammar reflection API\nexport { Alternation, Alternative, NonTerminal, Option, Repetition, RepetitionMandatory, RepetitionMandatoryWithSeparator, RepetitionWithSeparator, Rule, Terminal } from \"./parse/grammar/gast/gast_public\";\n// GAST Utilities\nexport { serializeGrammar, serializeProduction } from \"./parse/grammar/gast/gast_public\";\nexport { GAstVisitor } from \"./parse/grammar/gast/gast_visitor_public\";\nexport { assignOccurrenceIndices, resolveGrammar, validateGrammar } from \"./parse/grammar/gast/gast_resolver_public\";\n/* istanbul ignore next */\nexport function clearCache() {\n console.warn(\"The clearCache function was 'soft' removed from the Chevrotain API.\" +\n \"\\n\\t It performs no action other than printing this message.\" +\n \"\\n\\t Please avoid using it as it will be completely removed in the future\");\n}\nexport { createSyntaxDiagramsCode } from \"./diagrams/render_public\";\nexport { generateParserFactory, generateParserModule } from \"./generate/generate_public\";\nvar Parser = /** @class */ (function () {\n function Parser() {\n throw new Error(\"The Parser class has been deprecated, use CstParser or EmbeddedActionsParser instead.\\t\\n\" +\n \"See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0\");\n }\n return Parser;\n}());\nexport { Parser };\n//# sourceMappingURL=api.js.map","const {createToken, Lexer} = require('chevrotain');\r\nconst FormulaError = require('../formulas/error')\r\n\r\n// the vocabulary will be exported and used in the Parser definition.\r\nconst tokenVocabulary = {};\r\n\r\nconst WhiteSpace = createToken({\r\n name: 'WhiteSpace',\r\n pattern: /\\s+/,\r\n group: Lexer.SKIPPED,\r\n});\r\n\r\nconst String = createToken({\r\n name: 'String',\r\n pattern: /\"(\"\"|[^\"])*\"/\r\n});\r\n\r\nconst SingleQuotedString = createToken({\r\n name: 'SingleQuotedString',\r\n pattern: /'(''|[^'])*'/\r\n});\r\n\r\nconst SheetQuoted = createToken({\r\n name: 'SheetQuoted',\r\n pattern: /'((?![\\\\\\/\\[\\]*?:]).)+?'!/\r\n});\r\n\r\nconst Function = createToken({\r\n name: 'Function',\r\n pattern: /[A-Za-z_]+[A-Za-z_0-9.]*\\(/\r\n});\r\n\r\nconst FormulaErrorT = createToken({\r\n name: 'FormulaErrorT',\r\n pattern: /#NULL!|#DIV\\/0!|#VALUE!|#NAME\\?|#NUM!|#N\\/A/\r\n});\r\n\r\nconst RefError = createToken({\r\n name: 'RefError',\r\n pattern: /#REF!/\r\n});\r\n\r\nconst Name = createToken({\r\n name: 'Name',\r\n pattern: /[a-zA-Z_][a-zA-Z0-9_.?]*/,\r\n // longer_alt: RangeColumn // e.g. A:AA\r\n});\r\n\r\nconst Sheet = createToken({\r\n name: 'Sheet',\r\n pattern: /[A-Za-z_.\\d\\u007F-\\uFFFF]+!/\r\n});\r\n\r\nconst Cell = createToken({\r\n name: 'Cell',\r\n pattern: /[$]?[A-Za-z]{1,3}[$]?[1-9][0-9]*/,\r\n longer_alt: Name\r\n});\r\n\r\nconst Number = createToken({\r\n name: 'Number',\r\n pattern: /[0-9]+[.]?[0-9]*([eE][+\\-][0-9]+)?/\r\n});\r\n\r\nconst Boolean = createToken({\r\n name: 'Boolean',\r\n pattern: /TRUE|FALSE/i\r\n});\r\n\r\nconst Column = createToken({\r\n name: 'Column',\r\n pattern: /[$]?[A-Za-z]{1,3}/,\r\n longer_alt: Name\r\n});\r\n\r\n\r\n/**\r\n * Symbols and operators\r\n */\r\nconst At = createToken({\r\n name: 'At',\r\n pattern: /@/\r\n});\r\n\r\nconst Comma = createToken({\r\n name: 'Comma',\r\n pattern: /,/\r\n});\r\n\r\nconst Colon = createToken({\r\n name: 'Colon',\r\n pattern: /:/\r\n});\r\n\r\nconst Semicolon = createToken({\r\n name: 'Semicolon',\r\n pattern: /;/\r\n});\r\n\r\nconst OpenParen = createToken({\r\n name: 'OpenParen',\r\n pattern: /\\(/\r\n});\r\n\r\nconst CloseParen = createToken({\r\n name: 'CloseParen',\r\n pattern: /\\)/\r\n});\r\n\r\nconst OpenSquareParen = createToken({\r\n name: 'OpenSquareParen',\r\n pattern: /\\[/\r\n});\r\n\r\nconst CloseSquareParen = createToken({\r\n name: 'CloseSquareParen',\r\n pattern: /]/\r\n});\r\n\r\nconst ExclamationMark = createToken({\r\n name: 'exclamationMark',\r\n pattern: /!/\r\n});\r\n\r\nconst OpenCurlyParen = createToken({\r\n name: 'OpenCurlyParen',\r\n pattern: /{/\r\n});\r\n\r\nconst CloseCurlyParen = createToken({\r\n name: 'CloseCurlyParen',\r\n pattern: /}/\r\n});\r\n\r\nconst QuoteS = createToken({\r\n name: 'QuoteS',\r\n pattern: /'/\r\n});\r\n\r\n\r\nconst MulOp = createToken({\r\n name: 'MulOp',\r\n pattern: /\\*/\r\n});\r\n\r\nconst PlusOp = createToken({\r\n name: 'PlusOp',\r\n pattern: /\\+/\r\n});\r\n\r\nconst DivOp = createToken({\r\n name: 'DivOp',\r\n pattern: /\\//\r\n});\r\n\r\nconst MinOp = createToken({\r\n name: 'MinOp',\r\n pattern: /-/\r\n});\r\n\r\nconst ConcatOp = createToken({\r\n name: 'ConcatOp',\r\n pattern: /&/\r\n});\r\n\r\nconst ExOp = createToken({\r\n name: 'ExOp',\r\n pattern: /\\^/\r\n});\r\n\r\nconst PercentOp = createToken({\r\n name: 'PercentOp',\r\n pattern: /%/\r\n});\r\n\r\nconst GtOp = createToken({\r\n name: 'GtOp',\r\n pattern: />/\r\n});\r\n\r\nconst EqOp = createToken({\r\n name: 'EqOp',\r\n pattern: /=/\r\n});\r\n\r\nconst LtOp = createToken({\r\n name: 'LtOp',\r\n pattern: //\r\n});\r\n\r\nconst GteOp = createToken({\r\n name: 'GteOp',\r\n pattern: />=/\r\n});\r\n\r\nconst LteOp = createToken({\r\n name: 'LteOp',\r\n pattern: /<=/\r\n});\r\n\r\n// The order of tokens is important\r\nconst allTokens = [\r\n\r\n WhiteSpace,\r\n String,\r\n SheetQuoted,\r\n SingleQuotedString,\r\n Function,\r\n FormulaErrorT,\r\n RefError,\r\n Sheet,\r\n Cell,\r\n Boolean,\r\n Column,\r\n Name,\r\n Number,\r\n\r\n At,\r\n Comma,\r\n Colon,\r\n Semicolon,\r\n OpenParen,\r\n CloseParen,\r\n OpenSquareParen,\r\n CloseSquareParen,\r\n // ExclamationMark,\r\n OpenCurlyParen,\r\n CloseCurlyParen,\r\n QuoteS,\r\n MulOp,\r\n PlusOp,\r\n DivOp,\r\n MinOp,\r\n ConcatOp,\r\n ExOp,\r\n MulOp,\r\n PercentOp,\r\n NeqOp,\r\n GteOp,\r\n LteOp,\r\n GtOp,\r\n EqOp,\r\n LtOp,\r\n];\r\n\r\nconst SelectLexer = new Lexer(allTokens, {ensureOptimizations: true});\r\n\r\nallTokens.forEach(tokenType => {\r\n tokenVocabulary[tokenType.name] = tokenType\r\n});\r\n\r\nmodule.exports = {\r\n tokenVocabulary: tokenVocabulary,\r\n\r\n lex: function (inputText) {\r\n const lexingResult = SelectLexer.tokenize(inputText)\r\n\r\n if (lexingResult.errors.length > 0) {\r\n const error = lexingResult.errors[0];\r\n const line = error.line, column = error.column;\r\n let msg = '\\n' + inputText.split('\\n')[line - 1] + '\\n';\r\n msg += Array(column - 1).fill(' ').join('') + '^\\n';\r\n error.message = msg + `Error at position ${line}:${column}\\n` + error.message;\r\n error.errorLocation = {line, column};\r\n throw FormulaError.ERROR(error.message, error);\r\n }\r\n\r\n return lexingResult\r\n }\r\n};\r\n","const lexer = require('./lexing');\r\nconst {EmbeddedActionsParser} = require(\"chevrotain\");\r\nconst tokenVocabulary = lexer.tokenVocabulary;\r\nconst {\r\n String,\r\n SheetQuoted,\r\n ExcelRefFunction,\r\n ExcelConditionalRefFunction,\r\n Function,\r\n FormulaErrorT,\r\n RefError,\r\n Cell,\r\n Sheet,\r\n Name,\r\n Number,\r\n Boolean,\r\n Column,\r\n\r\n // At,\r\n Comma,\r\n Colon,\r\n Semicolon,\r\n OpenParen,\r\n CloseParen,\r\n // OpenSquareParen,\r\n // CloseSquareParen,\r\n // ExclamationMark,\r\n OpenCurlyParen,\r\n CloseCurlyParen,\r\n MulOp,\r\n PlusOp,\r\n DivOp,\r\n MinOp,\r\n ConcatOp,\r\n ExOp,\r\n PercentOp,\r\n NeqOp,\r\n GteOp,\r\n LteOp,\r\n GtOp,\r\n EqOp,\r\n LtOp\r\n} = lexer.tokenVocabulary;\r\n\r\nclass Parsing extends EmbeddedActionsParser {\r\n /**\r\n *\r\n * @param {FormulaParser|DepParser} context\r\n * @param {Utils} utils\r\n */\r\n constructor(context, utils) {\r\n super(tokenVocabulary, {\r\n outputCst: false,\r\n maxLookahead: 1,\r\n skipValidations: true,\r\n // traceInitPerf: true,\r\n });\r\n this.utils = utils;\r\n this.binaryOperatorsPrecedence = [\r\n ['^'],\r\n ['*', '/'],\r\n ['+', '-'],\r\n ['&'],\r\n ['<', '>', '=', '<>', '<=', '>='],\r\n ];\r\n const $ = this;\r\n\r\n // Adopted from https://github.com/spreadsheetlab/XLParser/blob/master/src/XLParser/ExcelFormulaGrammar.cs\r\n\r\n $.RULE('formulaWithBinaryOp', () => {\r\n const infixes = [];\r\n const values = [$.SUBRULE($.formulaWithPercentOp)];\r\n $.MANY(() => {\r\n // Caching Arrays of Alternatives\r\n // https://sap.github.io/chevrotain/docs/guide/performance.html#caching-arrays-of-alternatives\r\n infixes.push($.OR($.c1 ||\r\n (\r\n $.c1 = [\r\n {ALT: () => $.CONSUME(GtOp).image},\r\n {ALT: () => $.CONSUME(EqOp).image},\r\n {ALT: () => $.CONSUME(LtOp).image},\r\n {ALT: () => $.CONSUME(NeqOp).image},\r\n {ALT: () => $.CONSUME(GteOp).image},\r\n {ALT: () => $.CONSUME(LteOp).image},\r\n {ALT: () => $.CONSUME(ConcatOp).image},\r\n {ALT: () => $.CONSUME(PlusOp).image},\r\n {ALT: () => $.CONSUME(MinOp).image},\r\n {ALT: () => $.CONSUME(MulOp).image},\r\n {ALT: () => $.CONSUME(DivOp).image},\r\n {ALT: () => $.CONSUME(ExOp).image}\r\n ]\r\n )));\r\n values.push($.SUBRULE2($.formulaWithPercentOp));\r\n });\r\n $.ACTION(() => {\r\n // evaluate\r\n for (const ops of this.binaryOperatorsPrecedence) {\r\n for (let index = 0, length = infixes.length; index < length; index++) {\r\n const infix = infixes[index];\r\n if (!ops.includes(infix)) continue;\r\n infixes.splice(index, 1);\r\n values.splice(index, 2, this.utils.applyInfix(values[index], infix, values[index + 1]));\r\n index--;\r\n length--;\r\n }\r\n }\r\n });\r\n\r\n return values[0];\r\n });\r\n\r\n $.RULE('plusMinusOp', () => $.OR([\r\n {ALT: () => $.CONSUME(PlusOp).image},\r\n {ALT: () => $.CONSUME(MinOp).image}\r\n ]));\r\n\r\n $.RULE('formulaWithPercentOp', () => {\r\n let value = $.SUBRULE($.formulaWithUnaryOp);\r\n $.OPTION(() => {\r\n const postfix = $.CONSUME(PercentOp).image;\r\n value = $.ACTION(() => this.utils.applyPostfix(value, postfix));\r\n });\r\n return value;\r\n });\r\n\r\n $.RULE('formulaWithUnaryOp', () => {\r\n // support ++---3 => -3\r\n const prefixes = [];\r\n $.MANY(() => {\r\n const op = $.OR([\r\n {ALT: () => $.CONSUME(PlusOp).image},\r\n {ALT: () => $.CONSUME(MinOp).image}\r\n ]);\r\n prefixes.push(op);\r\n });\r\n const formula = $.SUBRULE($.formulaWithIntersect);\r\n if (prefixes.length > 0) return $.ACTION(() => this.utils.applyPrefix(prefixes, formula));\r\n return formula;\r\n });\r\n\r\n\r\n $.RULE('formulaWithIntersect', () => {\r\n // e.g. 'A1 A2 A3'\r\n let ref1 = $.SUBRULE($.formulaWithRange);\r\n const refs = [ref1];\r\n // console.log('check intersect')\r\n $.MANY({\r\n GATE: () => {\r\n // see https://github.com/SAP/chevrotain/blob/master/examples/grammars/css/css.js#L436-L441\r\n const prevToken = $.LA(0);\r\n const nextToken = $.LA(1);\r\n // This is the only place where the grammar is whitespace sensitive.\r\n return nextToken.startOffset > prevToken.endOffset + 1;\r\n },\r\n DEF: () => {\r\n refs.push($.SUBRULE3($.formulaWithRange));\r\n }\r\n });\r\n if (refs.length > 1) {\r\n return $.ACTION(() => $.ACTION(() => this.utils.applyIntersect(refs)))\r\n }\r\n return ref1;\r\n });\r\n\r\n $.RULE('formulaWithRange', () => {\r\n // e.g. 'A1:C3' or 'A1:A3:C4', can be any number of references, at lease 2\r\n const ref1 = $.SUBRULE($.formula);\r\n const refs = [ref1];\r\n $.MANY(() => {\r\n $.CONSUME(Colon);\r\n refs.push($.SUBRULE2($.formula));\r\n });\r\n if (refs.length > 1)\r\n return $.ACTION(() => $.ACTION(() => this.utils.applyRange(refs)));\r\n return ref1;\r\n });\r\n\r\n $.RULE('formula', () => $.OR9([\r\n {ALT: () => $.SUBRULE($.referenceWithoutInfix)},\r\n {ALT: () => $.SUBRULE($.paren)},\r\n {ALT: () => $.SUBRULE($.constant)},\r\n {ALT: () => $.SUBRULE($.functionCall)},\r\n {ALT: () => $.SUBRULE($.constantArray)},\r\n ]));\r\n\r\n $.RULE('paren', () => {\r\n // formula paren or union paren\r\n $.CONSUME(OpenParen);\r\n let result;\r\n const refs = [];\r\n refs.push($.SUBRULE($.formulaWithBinaryOp));\r\n $.MANY(() => {\r\n $.CONSUME(Comma);\r\n refs.push($.SUBRULE2($.formulaWithBinaryOp));\r\n });\r\n if (refs.length > 1)\r\n result = $.ACTION(() => this.utils.applyUnion(refs));\r\n else\r\n result = refs[0];\r\n\r\n $.CONSUME(CloseParen);\r\n return result;\r\n });\r\n\r\n $.RULE('constantArray', () => {\r\n // console.log('constantArray');\r\n const arr = [[]];\r\n let currentRow = 0;\r\n $.CONSUME(OpenCurlyParen);\r\n\r\n // array must contain at least one item\r\n arr[currentRow].push($.SUBRULE($.constantForArray));\r\n $.MANY(() => {\r\n const sep = $.OR([\r\n {ALT: () => $.CONSUME(Comma).image},\r\n {ALT: () => $.CONSUME(Semicolon).image}\r\n ]);\r\n const constant = $.SUBRULE2($.constantForArray);\r\n if (sep === ',') {\r\n arr[currentRow].push(constant)\r\n } else {\r\n currentRow++;\r\n arr[currentRow] = [];\r\n arr[currentRow].push(constant)\r\n }\r\n });\r\n\r\n $.CONSUME(CloseCurlyParen);\r\n\r\n return $.ACTION(() => this.utils.toArray(arr));\r\n });\r\n\r\n /**\r\n * Used in array\r\n */\r\n $.RULE('constantForArray', () => $.OR([\r\n {\r\n ALT: () => {\r\n const prefix = $.OPTION(() => $.SUBRULE($.plusMinusOp));\r\n const image = $.CONSUME(Number).image;\r\n const number = $.ACTION(() => this.utils.toNumber(image));\r\n if (prefix)\r\n return $.ACTION(() => this.utils.applyPrefix([prefix], number));\r\n return number;\r\n }\r\n }, {\r\n ALT: () => {\r\n const str = $.CONSUME(String).image;\r\n return $.ACTION(() => this.utils.toString(str));\r\n }\r\n }, {\r\n ALT: () => {\r\n const bool = $.CONSUME(Boolean).image;\r\n return $.ACTION(() => this.utils.toBoolean(bool));\r\n }\r\n }, {\r\n ALT: () => {\r\n const err = $.CONSUME(FormulaErrorT).image;\r\n return $.ACTION(() => this.utils.toError(err));\r\n }\r\n }, {\r\n ALT: () => {\r\n const err = $.CONSUME(RefError).image;\r\n return $.ACTION(() => this.utils.toError(err));\r\n }\r\n },\r\n ]));\r\n\r\n $.RULE('constant', () => $.OR([\r\n {\r\n ALT: () => {\r\n const number = $.CONSUME(Number).image;\r\n return $.ACTION(() => this.utils.toNumber(number));\r\n }\r\n }, {\r\n ALT: () => {\r\n const str = $.CONSUME(String).image;\r\n return $.ACTION(() => this.utils.toString(str));\r\n }\r\n }, {\r\n ALT: () => {\r\n const bool = $.CONSUME(Boolean).image;\r\n return $.ACTION(() => this.utils.toBoolean(bool));\r\n }\r\n }, {\r\n ALT: () => {\r\n const err = $.CONSUME(FormulaErrorT).image;\r\n return $.ACTION(() => this.utils.toError(err));\r\n }\r\n },\r\n ]));\r\n\r\n $.RULE('functionCall', () => {\r\n const functionName = $.CONSUME(Function).image.slice(0, -1);\r\n // console.log('functionName', functionName);\r\n const args = $.SUBRULE($.arguments);\r\n $.CONSUME(CloseParen);\r\n // dependency parser won't call function.\r\n return $.ACTION(() => context.callFunction(functionName, args));\r\n\r\n });\r\n\r\n $.RULE('arguments', () => {\r\n // console.log('try arguments')\r\n\r\n // allows ',' in the front\r\n $.MANY2(() => {\r\n $.CONSUME2(Comma);\r\n });\r\n const args = [];\r\n // allows empty arguments\r\n $.OPTION(() => {\r\n args.push($.SUBRULE($.formulaWithBinaryOp));\r\n $.MANY(() => {\r\n $.CONSUME1(Comma);\r\n args.push(null); // e.g. ROUND(1.5,)\r\n $.OPTION3(() => {\r\n args.pop();\r\n args.push($.SUBRULE2($.formulaWithBinaryOp))\r\n });\r\n });\r\n });\r\n return args;\r\n });\r\n\r\n $.RULE('referenceWithoutInfix', () => $.OR([\r\n\r\n {ALT: () => $.SUBRULE($.referenceItem)},\r\n\r\n {\r\n // sheet name prefix\r\n ALT: () => {\r\n // console.log('try sheetName');\r\n const sheetName = $.SUBRULE($.prefixName);\r\n // console.log('sheetName', sheetName);\r\n const referenceItem = $.SUBRULE2($.formulaWithRange);\r\n\r\n $.ACTION(() => {\r\n if (this.utils.isFormulaError(referenceItem))\r\n return referenceItem;\r\n referenceItem.ref.sheet = sheetName\r\n });\r\n return referenceItem;\r\n }\r\n },\r\n\r\n // {ALT: () => $.SUBRULE('dynamicDataExchange')},\r\n ]));\r\n\r\n $.RULE('referenceItem', () => $.OR([\r\n {\r\n ALT: () => {\r\n const address = $.CONSUME(Cell).image;\r\n return $.ACTION(() => this.utils.parseCellAddress(address));\r\n }\r\n },\r\n {\r\n ALT: () => {\r\n const name = $.CONSUME(Name).image;\r\n return $.ACTION(() => context.getVariable(name))\r\n }\r\n },\r\n {\r\n ALT: () => {\r\n const column = $.CONSUME(Column).image;\r\n return $.ACTION(() => this.utils.parseCol(column))\r\n }\r\n },\r\n // A row check should be here, but the token is same with Number,\r\n // In other to resolve ambiguities, I leave this empty, and\r\n // parse the number to row number when needed.\r\n {\r\n ALT: () => {\r\n const err = $.CONSUME(RefError).image;\r\n return $.ACTION(() => this.utils.toError(err))\r\n }\r\n },\r\n // {ALT: () => $.SUBRULE($.udfFunctionCall)},\r\n // {ALT: () => $.SUBRULE($.structuredReference)},\r\n ]));\r\n\r\n $.RULE('prefixName', () => $.OR([\r\n {ALT: () => $.CONSUME(Sheet).image.slice(0, -1)},\r\n {ALT: () => $.CONSUME(SheetQuoted).image.slice(1, -2).replace(/''/g, \"'\")},\r\n ]));\r\n\r\n this.performSelfAnalysis();\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n Parser: Parsing,\r\n};\r\n","const FormulaError = require('../formulas/error');\r\nconst {Address} = require('../formulas/helpers');\r\nconst {Prefix, Postfix, Infix, Operators} = require('../formulas/operators');\r\nconst Collection = require('./type/collection');\r\nconst MAX_ROW = 1048576, MAX_COLUMN = 16384;\r\nconst {NotAllInputParsedException} = require('chevrotain');\r\n\r\nclass Utils {\r\n\r\n constructor(context) {\r\n this.context = context;\r\n }\r\n\r\n columnNameToNumber(columnName) {\r\n return Address.columnNameToNumber(columnName);\r\n }\r\n\r\n /**\r\n * Parse the cell address only.\r\n * @param {string} cellAddress\r\n * @return {{ref: {col: number, address: string, row: number}}}\r\n */\r\n parseCellAddress(cellAddress) {\r\n const res = cellAddress.match(/([$]?)([A-Za-z]{1,3})([$]?)([1-9][0-9]*)/);\r\n // console.log('parseCellAddress', cellAddress);\r\n return {\r\n ref: {\r\n address: res[0],\r\n col: this.columnNameToNumber(res[2]),\r\n row: +res[4]\r\n },\r\n };\r\n }\r\n\r\n parseRow(row) {\r\n const rowNum = +row;\r\n if (!Number.isInteger(rowNum))\r\n throw Error('Row number must be integer.');\r\n return {\r\n ref: {\r\n col: undefined,\r\n row: +row\r\n },\r\n };\r\n }\r\n\r\n parseCol(col) {\r\n return {\r\n ref: {\r\n col: this.columnNameToNumber(col),\r\n row: undefined,\r\n },\r\n };\r\n }\r\n\r\n parseColRange(col1, col2) {\r\n // const res = colRange.match(/([$]?)([A-Za-z]{1,3}):([$]?)([A-Za-z]{1,4})/);\r\n col1 = this.columnNameToNumber(col1);\r\n col2 = this.columnNameToNumber(col2);\r\n return {\r\n ref: {\r\n from: {\r\n col: Math.min(col1, col2),\r\n row: null\r\n },\r\n to: {\r\n col: Math.max(col1, col2),\r\n row: null\r\n }\r\n }\r\n }\r\n }\r\n\r\n parseRowRange(row1, row2) {\r\n // const res = rowRange.match(/([$]?)([1-9][0-9]*):([$]?)([1-9][0-9]*)/);\r\n return {\r\n ref: {\r\n from: {\r\n col: null,\r\n row: Math.min(row1, row2),\r\n },\r\n to: {\r\n col: null,\r\n row: Math.max(row1, row2),\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n _applyPrefix(prefixes, val, isArray) {\r\n if (this.isFormulaError(val))\r\n return val;\r\n return Prefix.unaryOp(prefixes, val, isArray);\r\n }\r\n\r\n async applyPrefixAsync(prefixes, value) {\r\n const {val, isArray} = this.extractRefValue(await value);\r\n return this._applyPrefix(prefixes, val, isArray);\r\n }\r\n\r\n /**\r\n * Apply + or - unary prefix.\r\n * @param {Array.} prefixes\r\n * @param {*} value\r\n * @return {*}\r\n */\r\n applyPrefix(prefixes, value) {\r\n // console.log('applyPrefix', prefixes, value);\r\n if (this.context.async) {\r\n return this.applyPrefixAsync(prefixes, value);\r\n } else {\r\n const {val, isArray} = this.extractRefValue(value);\r\n return this._applyPrefix(prefixes, val, isArray);\r\n }\r\n }\r\n\r\n _applyPostfix(val, isArray, postfix) {\r\n if (this.isFormulaError(val))\r\n return val;\r\n return Postfix.percentOp(val, postfix, isArray);\r\n }\r\n\r\n async applyPostfixAsync(value, postfix) {\r\n const {val, isArray} = this.extractRefValue(await value);\r\n return this._applyPostfix(val, isArray, postfix);\r\n }\r\n\r\n applyPostfix(value, postfix) {\r\n // console.log('applyPostfix', value, postfix);\r\n if (this.context.async) {\r\n return this.applyPostfixAsync(value, postfix);\r\n } else {\r\n const {val, isArray} = this.extractRefValue(value);\r\n return this._applyPostfix(val, isArray, postfix)\r\n }\r\n }\r\n\r\n _applyInfix(res1, infix, res2) {\r\n const val1 = res1.val, isArray1 = res1.isArray;\r\n const val2 = res2.val, isArray2 = res2.isArray;\r\n if (this.isFormulaError(val1))\r\n return val1;\r\n if (this.isFormulaError(val2))\r\n return val2;\r\n if (Operators.compareOp.includes(infix))\r\n return Infix.compareOp(val1, infix, val2, isArray1, isArray2);\r\n else if (Operators.concatOp.includes(infix))\r\n return Infix.concatOp(val1, infix, val2, isArray1, isArray2);\r\n else if (Operators.mathOp.includes(infix))\r\n return Infix.mathOp(val1, infix, val2, isArray1, isArray2);\r\n else\r\n throw new Error(`Unrecognized infix: ${infix}`);\r\n }\r\n\r\n async applyInfixAsync(value1, infix, value2) {\r\n const res1 = this.extractRefValue(await value1);\r\n const res2 = this.extractRefValue(await value2);\r\n return this._applyInfix(res1, infix, res2)\r\n }\r\n\r\n applyInfix(value1, infix, value2) {\r\n if (this.context.async) {\r\n return this.applyInfixAsync(value1, infix, value2)\r\n } else {\r\n const res1 = this.extractRefValue(value1);\r\n const res2 = this.extractRefValue(value2);\r\n return this._applyInfix(res1, infix, res2)\r\n }\r\n }\r\n\r\n applyIntersect(refs) {\r\n // console.log('applyIntersect', refs);\r\n if (this.isFormulaError(refs[0]))\r\n return refs[0];\r\n if (!refs[0].ref)\r\n throw Error(`Expecting a reference, but got ${refs[0]}.`);\r\n // a intersection will keep track of references, value won't be retrieved here.\r\n let maxRow, maxCol, minRow, minCol, sheet, res; // index start from 1\r\n // first time setup\r\n const ref = refs.shift().ref;\r\n sheet = ref.sheet;\r\n if (!ref.from) {\r\n // check whole row/col reference\r\n if (ref.row === undefined || ref.col === undefined) {\r\n throw Error('Cannot intersect the whole row or column.')\r\n }\r\n\r\n // cell ref\r\n maxRow = minRow = ref.row;\r\n maxCol = minCol = ref.col;\r\n } else {\r\n // range ref\r\n // update\r\n maxRow = Math.max(ref.from.row, ref.to.row);\r\n minRow = Math.min(ref.from.row, ref.to.row);\r\n maxCol = Math.max(ref.from.col, ref.to.col);\r\n minCol = Math.min(ref.from.col, ref.to.col);\r\n }\r\n\r\n let err;\r\n refs.forEach(ref => {\r\n if (this.isFormulaError(ref))\r\n return ref;\r\n ref = ref.ref;\r\n if (!ref) throw Error(`Expecting a reference, but got ${ref}.`);\r\n if (!ref.from) {\r\n if (ref.row === undefined || ref.col === undefined) {\r\n throw Error('Cannot intersect the whole row or column.')\r\n }\r\n // cell ref\r\n if (ref.row > maxRow || ref.row < minRow || ref.col > maxCol || ref.col < minCol\r\n || sheet !== ref.sheet) {\r\n err = FormulaError.NULL;\r\n }\r\n maxRow = minRow = ref.row;\r\n maxCol = minCol = ref.col;\r\n } else {\r\n // range ref\r\n const refMaxRow = Math.max(ref.from.row, ref.to.row);\r\n const refMinRow = Math.min(ref.from.row, ref.to.row);\r\n const refMaxCol = Math.max(ref.from.col, ref.to.col);\r\n const refMinCol = Math.min(ref.from.col, ref.to.col);\r\n if (refMinRow > maxRow || refMaxRow < minRow || refMinCol > maxCol || refMaxCol < minCol\r\n || sheet !== ref.sheet) {\r\n err = FormulaError.NULL;\r\n }\r\n // update\r\n maxRow = Math.min(maxRow, refMaxRow);\r\n minRow = Math.max(minRow, refMinRow);\r\n maxCol = Math.min(maxCol, refMaxCol);\r\n minCol = Math.max(minCol, refMinCol);\r\n }\r\n });\r\n if (err) return err;\r\n // check if the ref can be reduced to cell reference\r\n if (maxRow === minRow && maxCol === minCol) {\r\n res = {\r\n ref: {\r\n sheet,\r\n row: maxRow,\r\n col: maxCol\r\n }\r\n }\r\n } else {\r\n res = {\r\n ref: {\r\n sheet,\r\n from: {row: minRow, col: minCol},\r\n to: {row: maxRow, col: maxCol}\r\n }\r\n };\r\n }\r\n\r\n if (!res.ref.sheet)\r\n delete res.ref.sheet;\r\n return res;\r\n }\r\n\r\n applyUnion(refs) {\r\n const collection = new Collection();\r\n for (let i = 0; i < refs.length; i++) {\r\n if (this.isFormulaError(refs[i]))\r\n return refs[i];\r\n collection.add(this.extractRefValue(refs[i]).val, refs[i]);\r\n }\r\n\r\n // console.log('applyUnion', unions);\r\n return collection;\r\n }\r\n\r\n /**\r\n * Apply multiple references, e.g. A1:B3:C8:A:1:.....\r\n * @param refs\r\n // * @return {{ref: {from: {col: number, row: number}, to: {col: number, row: number}}}}\r\n */\r\n applyRange(refs) {\r\n let res, maxRow = -1, maxCol = -1, minRow = MAX_ROW + 1, minCol = MAX_COLUMN + 1;\r\n refs.forEach(ref => {\r\n if (this.isFormulaError(ref))\r\n return ref;\r\n // row ref is saved as number, parse the number to row ref here\r\n if (typeof ref === 'number') {\r\n ref = this.parseRow(ref);\r\n }\r\n ref = ref.ref;\r\n // check whole row/col reference\r\n if (ref.row === undefined) {\r\n minRow = 1;\r\n maxRow = MAX_ROW\r\n }\r\n if (ref.col === undefined) {\r\n minCol = 1;\r\n maxCol = MAX_COLUMN;\r\n }\r\n\r\n if (ref.row > maxRow)\r\n maxRow = ref.row;\r\n if (ref.row < minRow)\r\n minRow = ref.row;\r\n if (ref.col > maxCol)\r\n maxCol = ref.col;\r\n if (ref.col < minCol)\r\n minCol = ref.col;\r\n });\r\n if (maxRow === minRow && maxCol === minCol) {\r\n res = {\r\n ref: {\r\n row: maxRow,\r\n col: maxCol\r\n }\r\n }\r\n } else {\r\n res = {\r\n ref: {\r\n from: {row: minRow, col: minCol},\r\n to: {row: maxRow, col: maxCol}\r\n }\r\n };\r\n }\r\n return res;\r\n }\r\n\r\n /**\r\n * Throw away the refs, and retrieve the value.\r\n * @return {{val: *, isArray: boolean}}\r\n */\r\n extractRefValue(obj) {\r\n let res = obj, isArray = false;\r\n if (Array.isArray(res))\r\n isArray = true;\r\n if (obj.ref) {\r\n // can be number or array\r\n return {val: this.context.retrieveRef(obj), isArray};\r\n\r\n }\r\n return {val: res, isArray};\r\n }\r\n\r\n /**\r\n *\r\n * @param array\r\n * @return {Array}\r\n */\r\n toArray(array) {\r\n // TODO: check if array is valid\r\n // console.log('toArray', array);\r\n return array;\r\n }\r\n\r\n /**\r\n * @param {string} number\r\n * @return {number}\r\n */\r\n toNumber(number) {\r\n return Number(number);\r\n }\r\n\r\n /**\r\n * @param {string} string\r\n * @return {string}\r\n */\r\n toString(string) {\r\n return string.substring(1, string.length - 1) .replace(/\"\"/g, '\"');\r\n }\r\n\r\n /**\r\n * @param {string} bool\r\n * @return {boolean}\r\n */\r\n toBoolean(bool) {\r\n return bool === 'TRUE';\r\n }\r\n\r\n /**\r\n * Parse an error.\r\n * @param {string} error\r\n * @return {string}\r\n */\r\n toError(error) {\r\n return new FormulaError(error.toUpperCase());\r\n }\r\n\r\n isFormulaError(obj) {\r\n return obj instanceof FormulaError;\r\n }\r\n\r\n static formatChevrotainError(error, inputText) {\r\n let line, column, msg = '';\r\n // e.g. SUM(1))\r\n if (error instanceof NotAllInputParsedException) {\r\n line = error.token.startLine;\r\n column = error.token.startColumn;\r\n } else {\r\n line = error.previousToken.startLine;\r\n column = error.previousToken.startColumn + 1;\r\n }\r\n\r\n msg += '\\n' + inputText.split('\\n')[line - 1] + '\\n';\r\n msg += Array(column - 1).fill(' ').join('') + '^\\n';\r\n msg += `Error at position ${line}:${column}\\n` + error.message;\r\n error.errorLocation = {line, column};\r\n return FormulaError.ERROR(msg, error);\r\n }\r\n\r\n}\r\n\r\nmodule.exports = Utils;\r\n","const TextFunctions = require('../formulas/functions/text');\r\nconst MathFunctions = require('../formulas/functions/math');\r\nconst TrigFunctions = require('../formulas/functions/trigonometry');\r\nconst LogicalFunctions = require('../formulas/functions/logical');\r\nconst EngFunctions = require('../formulas/functions/engineering');\r\nconst ReferenceFunctions = require('../formulas/functions/reference');\r\nconst InformationFunctions = require('../formulas/functions/information');\r\nconst StatisticalFunctions = require('../formulas/functions/statistical');\r\nconst DateFunctions = require('../formulas/functions/date');\r\nconst WebFunctions = require('../formulas/functions/web');\r\nconst FormulaError = require('../formulas/error');\r\nconst {FormulaHelpers} = require('../formulas/helpers');\r\nconst {Parser, allTokens} = require('./parsing');\r\nconst lexer = require('./lexing');\r\nconst Utils = require('./utils');\r\n\r\n/**\r\n * A Excel Formula Parser & Evaluator\r\n */\r\nclass FormulaParser {\r\n\r\n /**\r\n * @param {{functions: {}, functionsNeedContext: {}, onVariable: function, onCell: function, onRange: function}} [config]\r\n * @param isTest - is in testing environment\r\n */\r\n constructor(config, isTest = false) {\r\n this.logs = [];\r\n this.isTest = isTest;\r\n this.utils = new Utils(this);\r\n config = Object.assign({\r\n functions: {},\r\n functionsNeedContext: {},\r\n onVariable: () => null,\r\n onCell: () => 0,\r\n onRange: () => [[0]],\r\n }, config);\r\n\r\n this.onVariable = config.onVariable;\r\n this.functions = Object.assign({}, DateFunctions, StatisticalFunctions, InformationFunctions, ReferenceFunctions,\r\n EngFunctions, LogicalFunctions, TextFunctions, MathFunctions, TrigFunctions, WebFunctions,\r\n config.functions, config.functionsNeedContext);\r\n this.onRange = config.onRange;\r\n this.onCell = config.onCell;\r\n\r\n // functions treat null as 0, other functions treats null as \"\"\r\n this.funsNullAs0 = Object.keys(MathFunctions)\r\n .concat(Object.keys(TrigFunctions))\r\n .concat(Object.keys(LogicalFunctions))\r\n .concat(Object.keys(EngFunctions))\r\n .concat(Object.keys(ReferenceFunctions))\r\n .concat(Object.keys(StatisticalFunctions))\r\n .concat(Object.keys(DateFunctions));\r\n\r\n // functions need context and don't need to retrieve references\r\n this.funsNeedContextAndNoDataRetrieve = ['ROW', 'ROWS', 'COLUMN', 'COLUMNS', 'SUMIF', 'INDEX', 'AVERAGEIF', 'IF'];\r\n\r\n // functions need parser context\r\n this.funsNeedContext = [...Object.keys(config.functionsNeedContext), ...this.funsNeedContextAndNoDataRetrieve,\r\n 'INDEX', 'OFFSET', 'INDIRECT', 'IF', 'CHOOSE', 'WEBSERVICE'];\r\n\r\n // functions preserve reference in arguments\r\n this.funsPreserveRef = Object.keys(InformationFunctions);\r\n\r\n this.parser = new Parser(this, this.utils);\r\n }\r\n\r\n /**\r\n * Get all lexing token names. Webpack needs this.\r\n * @return {Array.} - All token names that should not be minimized.\r\n */\r\n static get allTokens() {\r\n return allTokens;\r\n }\r\n\r\n /**\r\n * Get value from the cell reference\r\n * @param ref\r\n * @return {*}\r\n */\r\n getCell(ref) {\r\n // console.log('get cell', JSON.stringify(ref));\r\n if (ref.sheet == null)\r\n ref.sheet = this.position ? this.position.sheet : undefined;\r\n return this.onCell(ref);\r\n }\r\n\r\n /**\r\n * Get values from the range reference.\r\n * @param ref\r\n * @return {*}\r\n */\r\n getRange(ref) {\r\n // console.log('get range', JSON.stringify(ref));\r\n if (ref.sheet == null)\r\n ref.sheet = this.position ? this.position.sheet : undefined;\r\n return this.onRange(ref)\r\n }\r\n\r\n /**\r\n * TODO:\r\n * Get references or values from a user defined variable.\r\n * @param name\r\n * @return {*}\r\n */\r\n getVariable(name) {\r\n // console.log('get variable', name);\r\n const res = {ref: this.onVariable(name, this.position.sheet, this.position)};\r\n if (res.ref == null)\r\n return FormulaError.NAME;\r\n return res;\r\n }\r\n\r\n /**\r\n * Retrieve values from the given reference.\r\n * @param valueOrRef\r\n * @return {*}\r\n */\r\n retrieveRef(valueOrRef) {\r\n if (FormulaHelpers.isRangeRef(valueOrRef)) {\r\n return this.getRange(valueOrRef.ref);\r\n }\r\n if (FormulaHelpers.isCellRef(valueOrRef)) {\r\n return this.getCell(valueOrRef.ref)\r\n }\r\n return valueOrRef;\r\n }\r\n\r\n /**\r\n * Call an excel function.\r\n * @param name - Function name.\r\n * @param args - Arguments that pass to the function.\r\n * @return {*}\r\n */\r\n _callFunction(name, args) {\r\n if (name.indexOf('_xlfn.') === 0)\r\n name = name.slice(6);\r\n name = name.toUpperCase();\r\n // if one arg is null, it means 0 or \"\" depends on the function it calls\r\n const nullValue = this.funsNullAs0.includes(name) ? 0 : '';\r\n\r\n if (!this.funsNeedContextAndNoDataRetrieve.includes(name)) {\r\n // retrieve reference\r\n args = args.map(arg => {\r\n if (arg === null)\r\n return {value: nullValue, isArray: false, omitted: true};\r\n const res = this.utils.extractRefValue(arg);\r\n\r\n if (this.funsPreserveRef.includes(name)) {\r\n return {value: res.val, isArray: res.isArray, ref: arg.ref};\r\n }\r\n return {\r\n value: res.val,\r\n isArray: res.isArray,\r\n isRangeRef: !!FormulaHelpers.isRangeRef(arg),\r\n isCellRef: !!FormulaHelpers.isCellRef(arg)\r\n };\r\n });\r\n }\r\n // console.log('callFunction', name, args)\r\n\r\n if (this.functions[name]) {\r\n let res;\r\n try {\r\n if (!this.funsNeedContextAndNoDataRetrieve.includes(name) && !this.funsNeedContext.includes(name))\r\n res = (this.functions[name](...args));\r\n else\r\n res = (this.functions[name](this, ...args));\r\n } catch (e) {\r\n // allow functions throw FormulaError, this make functions easier to implement!\r\n if (e instanceof FormulaError) {\r\n return e;\r\n } else {\r\n throw e;\r\n }\r\n }\r\n if (res === undefined) {\r\n // console.log(`Function ${name} may be not implemented.`);\r\n if (this.isTest) {\r\n if (!this.logs.includes(name)) this.logs.push(name);\r\n return {value: 0, ref: {}};\r\n }\r\n throw FormulaError.NOT_IMPLEMENTED(name);\r\n }\r\n return res;\r\n } else {\r\n // console.log(`Function ${name} is not implemented`);\r\n if (this.isTest) {\r\n if (!this.logs.includes(name)) this.logs.push(name);\r\n return {value: 0, ref: {}};\r\n }\r\n throw FormulaError.NOT_IMPLEMENTED(name);\r\n }\r\n }\r\n\r\n async callFunctionAsync(name, args) {\r\n const awaitedArgs = [];\r\n for (const arg of args) {\r\n awaitedArgs.push(await arg);\r\n }\r\n const res = await this._callFunction(name, awaitedArgs);\r\n return FormulaHelpers.checkFunctionResult(res)\r\n }\r\n\r\n callFunction(name, args) {\r\n if (this.async) {\r\n return this.callFunctionAsync(name, args);\r\n } else {\r\n const res = this._callFunction(name, args);\r\n return FormulaHelpers.checkFunctionResult(res);\r\n }\r\n }\r\n\r\n /**\r\n * Return currently supported functions.\r\n * @return {this}\r\n */\r\n supportedFunctions() {\r\n const supported = [];\r\n const functions = Object.keys(this.functions);\r\n functions.forEach(fun => {\r\n try {\r\n const res = this.functions[fun](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\r\n if (res === undefined) return;\r\n supported.push(fun);\r\n } catch (e) {\r\n if (e instanceof Error)\r\n supported.push(fun);\r\n }\r\n });\r\n return supported.sort();\r\n }\r\n\r\n /**\r\n * Check and return the appropriate formula result.\r\n * @param result\r\n * @param {boolean} [allowReturnArray] - If the formula can return an array\r\n * @return {*}\r\n */\r\n checkFormulaResult(result, allowReturnArray = false) {\r\n const type = typeof result;\r\n // number\r\n if (type === 'number') {\r\n if (isNaN(result)) {\r\n return FormulaError.VALUE;\r\n } else if (!isFinite(result)) {\r\n return FormulaError.NUM;\r\n }\r\n result += 0; // make -0 to 0\r\n } else if (type === 'object') {\r\n if (result instanceof FormulaError)\r\n return result;\r\n if (allowReturnArray) {\r\n if (result.ref) {\r\n result = this.retrieveRef(result);\r\n }\r\n // Disallow union, and other unknown data types.\r\n // e.g. `=(A1:C1, A2:E9)` -> #VALUE!\r\n if (typeof result === 'object' && !Array.isArray(result) && result != null) {\r\n return FormulaError.VALUE;\r\n }\r\n\r\n } else {\r\n if (result.ref && result.ref.row && !result.ref.from) {\r\n // single cell reference\r\n result = this.retrieveRef(result);\r\n } else if (result.ref && result.ref.from && result.ref.from.col === result.ref.to.col) {\r\n // single Column reference\r\n result = this.retrieveRef({\r\n ref: {\r\n row: result.ref.from.row, col: result.ref.from.col\r\n }\r\n });\r\n } else if (Array.isArray(result)) {\r\n result = result[0][0]\r\n } else {\r\n // array, range reference, union collections\r\n return FormulaError.VALUE;\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Parse an excel formula.\r\n * @param {string} inputText\r\n * @param {{row: number, col: number}} [position] - The position of the parsed formula\r\n * e.g. {row: 1, col: 1}\r\n * @param {boolean} [allowReturnArray] - If the formula can return an array. Useful when parsing array formulas,\r\n * or data validation formulas.\r\n * @returns {*}\r\n */\r\n parse(inputText, position, allowReturnArray = false) {\r\n if (inputText.length === 0) throw Error('Input must not be empty.');\r\n this.position = position;\r\n this.async = false;\r\n const lexResult = lexer.lex(inputText);\r\n this.parser.input = lexResult.tokens;\r\n let res;\r\n try {\r\n res = this.parser.formulaWithBinaryOp();\r\n res = this.checkFormulaResult(res, allowReturnArray);\r\n if (res instanceof FormulaError) {\r\n return res;\r\n }\r\n } catch (e) {\r\n throw FormulaError.ERROR(e.message, e);\r\n }\r\n if (this.parser.errors.length > 0) {\r\n const error = this.parser.errors[0];\r\n throw Utils.formatChevrotainError(error, inputText);\r\n }\r\n return res;\r\n }\r\n\r\n /**\r\n * Parse an excel formula asynchronously.\r\n * Use when providing custom async functions.\r\n * @param {string} inputText\r\n * @param {{row: number, col: number}} [position] - The position of the parsed formula\r\n * e.g. {row: 1, col: 1}\r\n * @param {boolean} [allowReturnArray] - If the formula can return an array. Useful when parsing array formulas,\r\n * or data validation formulas.\r\n * @returns {*}\r\n */\r\n async parseAsync(inputText, position, allowReturnArray = false) {\r\n if (inputText.length === 0) throw Error('Input must not be empty.');\r\n this.position = position;\r\n this.async = true;\r\n const lexResult = lexer.lex(inputText);\r\n this.parser.input = lexResult.tokens;\r\n let res;\r\n try {\r\n res = await this.parser.formulaWithBinaryOp();\r\n res = this.checkFormulaResult(res, allowReturnArray);\r\n if (res instanceof FormulaError) {\r\n return res;\r\n }\r\n } catch (e) {\r\n throw FormulaError.ERROR(e.message, e);\r\n }\r\n if (this.parser.errors.length > 0) {\r\n const error = this.parser.errors[0];\r\n throw Utils.formatChevrotainError(error, inputText);\r\n }\r\n return res;\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n FormulaParser,\r\n FormulaHelpers,\r\n};\r\n","const FormulaError = require('../../formulas/error');\r\nconst {FormulaHelpers, Types, Address} = require('../../formulas/helpers');\r\nconst {Prefix, Postfix, Infix, Operators} = require('../../formulas/operators');\r\nconst Collection = require('../type/collection');\r\nconst MAX_ROW = 1048576, MAX_COLUMN = 16384;\r\n\r\nclass Utils {\r\n\r\n constructor(context) {\r\n this.context = context;\r\n }\r\n\r\n columnNameToNumber(columnName) {\r\n return Address.columnNameToNumber(columnName);\r\n }\r\n\r\n /**\r\n * Parse the cell address only.\r\n * @param {string} cellAddress\r\n * @return {{ref: {col: number, address: string, row: number}}}\r\n */\r\n parseCellAddress(cellAddress) {\r\n const res = cellAddress.match(/([$]?)([A-Za-z]{1,3})([$]?)([1-9][0-9]*)/);\r\n // console.log('parseCellAddress', cellAddress);\r\n return {\r\n ref: {\r\n col: this.columnNameToNumber(res[2]),\r\n row: +res[4]\r\n },\r\n };\r\n }\r\n\r\n parseRow(row) {\r\n const rowNum = +row;\r\n if (!Number.isInteger(rowNum))\r\n throw Error('Row number must be integer.');\r\n return {\r\n ref: {\r\n col: undefined,\r\n row: +row\r\n },\r\n };\r\n }\r\n\r\n parseCol(col) {\r\n return {\r\n ref: {\r\n col: this.columnNameToNumber(col),\r\n row: undefined,\r\n },\r\n };\r\n }\r\n\r\n /**\r\n * Apply + or - unary prefix.\r\n * @param {Array.} prefixes\r\n * @param {*} value\r\n * @return {*}\r\n */\r\n applyPrefix(prefixes, value) {\r\n this.extractRefValue(value);\r\n return 0;\r\n }\r\n\r\n applyPostfix(value, postfix) {\r\n this.extractRefValue(value);\r\n return 0\r\n }\r\n\r\n applyInfix(value1, infix, value2) {\r\n this.extractRefValue(value1);\r\n this.extractRefValue(value2);\r\n return 0;\r\n }\r\n\r\n applyIntersect(refs) {\r\n // console.log('applyIntersect', refs);\r\n if (this.isFormulaError(refs[0]))\r\n return refs[0];\r\n if (!refs[0].ref)\r\n throw Error(`Expecting a reference, but got ${refs[0]}.`);\r\n // a intersection will keep track of references, value won't be retrieved here.\r\n let maxRow, maxCol, minRow, minCol, sheet, res; // index start from 1\r\n // first time setup\r\n const ref = refs.shift().ref;\r\n sheet = ref.sheet;\r\n if (!ref.from) {\r\n // check whole row/col reference\r\n if (ref.row === undefined || ref.col === undefined) {\r\n throw Error('Cannot intersect the whole row or column.')\r\n }\r\n\r\n // cell ref\r\n maxRow = minRow = ref.row;\r\n maxCol = minCol = ref.col;\r\n } else {\r\n // range ref\r\n // update\r\n maxRow = Math.max(ref.from.row, ref.to.row);\r\n minRow = Math.min(ref.from.row, ref.to.row);\r\n maxCol = Math.max(ref.from.col, ref.to.col);\r\n minCol = Math.min(ref.from.col, ref.to.col);\r\n }\r\n\r\n let err;\r\n refs.forEach(ref => {\r\n if (this.isFormulaError(ref))\r\n return ref;\r\n ref = ref.ref;\r\n if (!ref) throw Error(`Expecting a reference, but got ${ref}.`);\r\n if (!ref.from) {\r\n if (ref.row === undefined || ref.col === undefined) {\r\n throw Error('Cannot intersect the whole row or column.')\r\n }\r\n // cell ref\r\n if (ref.row > maxRow || ref.row < minRow || ref.col > maxCol || ref.col < minCol\r\n || sheet !== ref.sheet) {\r\n err = FormulaError.NULL;\r\n }\r\n maxRow = minRow = ref.row;\r\n maxCol = minCol = ref.col;\r\n } else {\r\n // range ref\r\n const refMaxRow = Math.max(ref.from.row, ref.to.row);\r\n const refMinRow = Math.min(ref.from.row, ref.to.row);\r\n const refMaxCol = Math.max(ref.from.col, ref.to.col);\r\n const refMinCol = Math.min(ref.from.col, ref.to.col);\r\n if (refMinRow > maxRow || refMaxRow < minRow || refMinCol > maxCol || refMaxCol < minCol\r\n || sheet !== ref.sheet) {\r\n err = FormulaError.NULL;\r\n }\r\n // update\r\n maxRow = Math.min(maxRow, refMaxRow);\r\n minRow = Math.max(minRow, refMinRow);\r\n maxCol = Math.min(maxCol, refMaxCol);\r\n minCol = Math.max(minCol, refMinCol);\r\n }\r\n });\r\n if (err) return err;\r\n // check if the ref can be reduced to cell reference\r\n if (maxRow === minRow && maxCol === minCol) {\r\n res = {\r\n ref: {\r\n sheet,\r\n row: maxRow,\r\n col: maxCol\r\n }\r\n }\r\n } else {\r\n res = {\r\n ref: {\r\n sheet,\r\n from: {row: minRow, col: minCol},\r\n to: {row: maxRow, col: maxCol}\r\n }\r\n };\r\n }\r\n\r\n if (!res.ref.sheet)\r\n delete res.ref.sheet;\r\n return res;\r\n }\r\n\r\n applyUnion(refs) {\r\n const collection = new Collection();\r\n for (let i = 0; i < refs.length; i++) {\r\n if (this.isFormulaError(refs[i]))\r\n return refs[i];\r\n collection.add(this.extractRefValue(refs[i]).val, refs[i]);\r\n }\r\n\r\n // console.log('applyUnion', unions);\r\n return collection;\r\n }\r\n\r\n /**\r\n * Apply multiple references, e.g. A1:B3:C8:A:1:.....\r\n * @param refs\r\n // * @return {{ref: {from: {col: number, row: number}, to: {col: number, row: number}}}}\r\n */\r\n applyRange(refs) {\r\n let res, maxRow = -1, maxCol = -1, minRow = MAX_ROW + 1, minCol = MAX_COLUMN + 1;\r\n refs.forEach(ref => {\r\n if (this.isFormulaError(ref))\r\n return ref;\r\n // row ref is saved as number, parse the number to row ref here\r\n if (typeof ref === 'number') {\r\n ref = this.parseRow(ref);\r\n }\r\n ref = ref.ref;\r\n // check whole row/col reference\r\n if (ref.row === undefined) {\r\n minRow = 1;\r\n maxRow = MAX_ROW\r\n }\r\n if (ref.col === undefined) {\r\n minCol = 1;\r\n maxCol = MAX_COLUMN;\r\n }\r\n\r\n if (ref.row > maxRow)\r\n maxRow = ref.row;\r\n if (ref.row < minRow)\r\n minRow = ref.row;\r\n if (ref.col > maxCol)\r\n maxCol = ref.col;\r\n if (ref.col < minCol)\r\n minCol = ref.col;\r\n });\r\n if (maxRow === minRow && maxCol === minCol) {\r\n res = {\r\n ref: {\r\n row: maxRow,\r\n col: maxCol\r\n }\r\n }\r\n } else {\r\n res = {\r\n ref: {\r\n from: {row: minRow, col: minCol},\r\n to: {row: maxRow, col: maxCol}\r\n }\r\n };\r\n }\r\n return res;\r\n }\r\n\r\n /**\r\n * Throw away the refs, and retrieve the value.\r\n * @return {{val: *, isArray: boolean}}\r\n */\r\n extractRefValue(obj) {\r\n const isArray = Array.isArray(obj);\r\n if (obj.ref) {\r\n // can be number or array\r\n return {val: this.context.retrieveRef(obj), isArray};\r\n\r\n }\r\n return {val: obj, isArray};\r\n }\r\n\r\n /**\r\n *\r\n * @param array\r\n * @return {Array}\r\n */\r\n toArray(array) {\r\n // TODO: check if array is valid\r\n // console.log('toArray', array);\r\n return array;\r\n }\r\n\r\n /**\r\n * @param {string} number\r\n * @return {number}\r\n */\r\n toNumber(number) {\r\n return Number(number);\r\n }\r\n\r\n /**\r\n * @param {string} string\r\n * @return {string}\r\n */\r\n toString(string) {\r\n return string.substring(1, string.length - 1) .replace(/\"\"/g, '\"');\r\n }\r\n\r\n /**\r\n * @param {string} bool\r\n * @return {boolean}\r\n */\r\n toBoolean(bool) {\r\n return bool === 'TRUE';\r\n }\r\n\r\n /**\r\n * Parse an error.\r\n * @param {string} error\r\n * @return {FormulaError}\r\n */\r\n toError(error) {\r\n return new FormulaError(error.toUpperCase());\r\n }\r\n\r\n isFormulaError(obj) {\r\n return obj instanceof FormulaError;\r\n }\r\n}\r\n\r\nmodule.exports = Utils;\r\n","const FormulaError = require('../../formulas/error');\r\nconst {FormulaHelpers} = require('../../formulas/helpers');\r\nconst {Parser} = require('../parsing');\r\nconst lexer = require('../lexing');\r\nconst Utils = require('./utils');\r\nconst {formatChevrotainError} = require('../utils');\r\n\r\nclass DepParser {\r\n\r\n /**\r\n *\r\n * @param {{onVariable: Function}} [config]\r\n */\r\n constructor(config) {\r\n this.data = [];\r\n this.utils = new Utils(this);\r\n config = Object.assign({\r\n onVariable: () => null,\r\n }, config);\r\n this.utils = new Utils(this);\r\n\r\n this.onVariable = config.onVariable;\r\n this.functions = {}\r\n\r\n this.parser = new Parser(this, this.utils);\r\n }\r\n\r\n /**\r\n * Get value from the cell reference\r\n * @param ref\r\n * @return {*}\r\n */\r\n getCell(ref) {\r\n // console.log('get cell', JSON.stringify(ref));\r\n if (ref.row != null) {\r\n if (ref.sheet == null)\r\n ref.sheet = this.position ? this.position.sheet : undefined;\r\n const idx = this.data.findIndex(element => {\r\n return (element.from && element.from.row <= ref.row && element.to.row >= ref.row\r\n && element.from.col <= ref.col && element.to.col >= ref.col)\r\n || (element.row === ref.row && element.col === ref.col && element.sheet === ref.sheet)\r\n });\r\n if (idx === -1)\r\n this.data.push(ref);\r\n }\r\n return 0;\r\n }\r\n\r\n /**\r\n * Get values from the range reference.\r\n * @param ref\r\n * @return {*}\r\n */\r\n getRange(ref) {\r\n // console.log('get range', JSON.stringify(ref));\r\n if (ref.from.row != null) {\r\n if (ref.sheet == null)\r\n ref.sheet = this.position ? this.position.sheet : undefined;\r\n\r\n const idx = this.data.findIndex(element => {\r\n return element.from && element.from.row === ref.from.row && element.from.col === ref.from.col\r\n && element.to.row === ref.to.row && element.to.col === ref.to.col;\r\n });\r\n if (idx === -1)\r\n this.data.push(ref);\r\n }\r\n return [[0]]\r\n }\r\n\r\n /**\r\n * TODO:\r\n * Get references or values from a user defined variable.\r\n * @param name\r\n * @return {*}\r\n */\r\n getVariable(name) {\r\n // console.log('get variable', name);\r\n const res = {ref: this.onVariable(name, this.position.sheet)};\r\n if (res.ref == null)\r\n return FormulaError.NAME;\r\n if (FormulaHelpers.isCellRef(res))\r\n this.getCell(res.ref);\r\n else {\r\n this.getRange(res.ref);\r\n }\r\n return 0;\r\n }\r\n\r\n /**\r\n * Retrieve values from the given reference.\r\n * @param valueOrRef\r\n * @return {*}\r\n */\r\n retrieveRef(valueOrRef) {\r\n if (FormulaHelpers.isRangeRef(valueOrRef)) {\r\n return this.getRange(valueOrRef.ref);\r\n }\r\n if (FormulaHelpers.isCellRef(valueOrRef)) {\r\n return this.getCell(valueOrRef.ref)\r\n }\r\n return valueOrRef;\r\n }\r\n\r\n /**\r\n * Call an excel function.\r\n * @param name - Function name.\r\n * @param args - Arguments that pass to the function.\r\n * @return {*}\r\n */\r\n callFunction(name, args) {\r\n args.forEach(arg => {\r\n if (arg == null)\r\n return;\r\n this.retrieveRef(arg);\r\n });\r\n return {value: 0, ref: {}};\r\n }\r\n\r\n /**\r\n * Check and return the appropriate formula result.\r\n * @param result\r\n * @return {*}\r\n */\r\n checkFormulaResult(result) {\r\n this.retrieveRef(result);\r\n }\r\n\r\n /**\r\n * Parse an excel formula and return the dependencies\r\n * @param {string} inputText\r\n * @param {{row: number, col: number, sheet: string}} position\r\n * @param {boolean} [ignoreError=false] if true, throw FormulaError when error occurred.\r\n * if false, the parser will return partial dependencies.\r\n * @returns {Array.<{}>}\r\n */\r\n parse(inputText, position, ignoreError = false) {\r\n if (inputText.length === 0) throw Error('Input must not be empty.');\r\n this.data = [];\r\n this.position = position;\r\n const lexResult = lexer.lex(inputText);\r\n this.parser.input = lexResult.tokens;\r\n try {\r\n const res = this.parser.formulaWithBinaryOp();\r\n this.checkFormulaResult(res);\r\n } catch (e) {\r\n if (!ignoreError) {\r\n throw FormulaError.ERROR(e.message, e);\r\n }\r\n }\r\n if (this.parser.errors.length > 0 && !ignoreError) {\r\n const error = this.parser.errors[0];\r\n throw formatChevrotainError(error, inputText);\r\n }\r\n\r\n return this.data;\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n DepParser,\r\n};\r\n","const {FormulaParser} = require('./grammar/hooks');\r\nconst {DepParser} = require('./grammar/dependency/hooks');\r\nconst SSF = require('./ssf/ssf');\r\nconst FormulaError = require('./formulas/error');\r\n\r\n// const funs = new FormulaParser().supportedFunctions();\r\n// console.log('Supported:', funs.join(', '),\r\n// `\\nTotal: ${funs.length}/477, ${funs.length/477*100}% implemented.`);\r\n\r\n\r\nObject.assign(FormulaParser, {\r\n MAX_ROW: 1048576,\r\n MAX_COLUMN: 16384,\r\n SSF,\r\n DepParser,\r\n FormulaError, ...require('./formulas/helpers')\r\n});\r\nmodule.exports = FormulaParser;\r\n","import Parser, { DepParser } from 'fast-formula-parser'\r\nimport Spreadsheet from '../main'\r\n\r\nexport class FormulaParser {\r\n parser: Parser\r\n depParser: DepParser\r\n root: Spreadsheet\r\n constructor(root: Spreadsheet) {\r\n this.root = root\r\n\r\n this.parser = new Parser({\r\n onCell: ({col, row}) => {\r\n const cell = this.root.data[row - 1][col - 1]\r\n const cellValue = cell.resultValue.length > 0 ? cell.resultValue : cell.value\r\n if( cellValue && isNaN(Number(cellValue)) === false) return Number(cellValue)\r\n return this.root.data[row - 1][col - 1].resultValue ?? ''\r\n },\r\n })\r\n\r\n this.depParser = new DepParser({})\r\n this.depParser\r\n }\r\n}","import { Editor } from \"./components/editor\";\r\nimport { Scroller } from \"./components/scroller\";\r\nimport { Sheet } from \"./components/sheet\";\r\nimport { Table } from \"./components/table\";\r\nimport { Toolbar } from \"./components/toolbar\";\r\nimport {\r\n Cell,\r\n CellConstructorProps,\r\n CellStyles,\r\n Position,\r\n SerializableCell,\r\n} from \"./modules/cell\";\r\nimport {\r\n CellChangeEvent,\r\n CellClickEvent,\r\n Config,\r\n CopyEvent,\r\n SelectionChangeEvent,\r\n ViewProperties,\r\n} from \"./modules/config\";\r\nimport { RangeSelectionType, Selection } from \"./modules/selection\";\r\nimport { Styles } from \"./modules/styles\";\r\nimport { Viewport } from \"./modules/viewport\";\r\nimport \"./scss/main.scss\";\r\nimport { createSampleData } from \"./utils/createData\";\r\nimport { Cache, CachedColumn, CachedRow } from \"./modules/cache\";\r\nimport { Row } from \"./modules/row\";\r\nimport { Column } from \"./modules/column\";\r\nimport { ColumnsBar } from \"./components/columnsBar\";\r\nimport { RowsBar } from \"./components/rowsBar\";\r\nimport { EventTypes, Events } from \"./modules/events\";\r\nimport { Clipboard } from \"./modules/clipboard\";\r\nimport { FormulaParser } from \"./modules/formulaParser\";\r\n\r\n/*\r\n ! Component structure\r\n \r\n \r\n //* Abstract\r\n
\r\n \r\n \r\n \r\n
\r\n*/\r\n\r\nexport interface SpreadsheetConstructorProperties {\r\n view?: ViewProperties;\r\n onCellClick?: CellClickEvent | null;\r\n onSelectionChange?: SelectionChangeEvent | null;\r\n onCellChange?: CellChangeEvent | null;\r\n onCopy?: CopyEvent | null\r\n}\r\n\r\nexport const CSS_PREFIX = \"modern_sc_\";\r\n\r\nexport default class Spreadsheet {\r\n private table: Table;\r\n private scroller: Scroller;\r\n private toolbar: Toolbar;\r\n private rowsBar: RowsBar;\r\n private columnsBar: ColumnsBar;\r\n private sheet: Sheet;\r\n private editor: Editor;\r\n public styles: Styles;\r\n public config: Config;\r\n public data: Cell[][];\r\n public viewport: Viewport;\r\n public selection: Selection;\r\n public cache: Cache;\r\n public events: Events;\r\n public clipboard: Clipboard;\r\n public formulaParser: FormulaParser\r\n\r\n constructor(\r\n target: string | HTMLElement,\r\n props?: SpreadsheetConstructorProperties,\r\n ) {\r\n const data = createSampleData(40, 40);\r\n const config = this.makeConfigFromData(\r\n data,\r\n props?.view ?? { height: 600, width: 800 },\r\n );\r\n if (props?.view) {\r\n config.view = props.view;\r\n }\r\n\r\n this.config = new Config(config);\r\n\r\n this.config.onCellClick = props?.onCellClick ?? null;\r\n this.config.onSelectonChange = props?.onSelectionChange ?? null;\r\n this.config.onCellChange = props?.onCellChange ?? null;\r\n this.config.onCopy = props?.onCopy ?? null\r\n\r\n this.rowsBar = new RowsBar(this);\r\n this.columnsBar = new ColumnsBar(this);\r\n this.sheet = new Sheet(this);\r\n this.table = new Table(this);\r\n this.scroller = new Scroller(this);\r\n this.toolbar = new Toolbar(this);\r\n this.editor = new Editor(this);\r\n this.cache = this.getInitialCache();\r\n this.viewport = new Viewport(\r\n this,\r\n this.scroller.getViewportBoundlingRect(),\r\n );\r\n this.selection = new Selection();\r\n this.events = new Events(this);\r\n this.clipboard = new Clipboard(this);\r\n this.formulaParser = new FormulaParser(this)\r\n\r\n this.data = data;\r\n this.styles = new Styles();\r\n this.buildComponent();\r\n this.setElementsPositions();\r\n this.appendTableToTarget(target);\r\n this.renderSheet();\r\n this.renderColumnsBar();\r\n this.renderRowsBar();\r\n }\r\n\r\n private setRowsBarPosition() {\r\n const top = this.columnsBar.height + this.toolbar.height;\r\n const left = 0;\r\n this.rowsBar.setElementPosition(top, left);\r\n }\r\n private setColumnsBarPosition() {\r\n const top = this.toolbar.height;\r\n const left = this.rowsBar.width;\r\n this.columnsBar.setElementPosition(top, left);\r\n }\r\n\r\n private setElementsPositions() {\r\n this.setRowsBarPosition();\r\n this.setColumnsBarPosition();\r\n }\r\n\r\n private getInitialCache(): Cache {\r\n const cachedCols: CachedColumn[] = [];\r\n let currentWidth = 0;\r\n for (let i = 0; i <= this.config.columns.length - 1; i++) {\r\n const col = this.config.columns[i];\r\n currentWidth += col.width;\r\n const cacheCol = new CachedColumn({\r\n xPos: currentWidth,\r\n colIdx: i,\r\n });\r\n cachedCols.push(cacheCol);\r\n }\r\n\r\n const cachedRows: CachedRow[] = [];\r\n let currentHeight = 0;\r\n for (let i = 0; i <= this.config.rows.length - 1; i++) {\r\n const row = this.config.rows[i];\r\n currentHeight += row.height;\r\n const cacheRow = new CachedRow({\r\n yPos: currentHeight,\r\n rowIdx: i,\r\n });\r\n cachedRows.push(cacheRow);\r\n }\r\n\r\n const cache = new Cache({\r\n columns: cachedCols,\r\n rows: cachedRows,\r\n });\r\n\r\n return cache;\r\n }\r\n\r\n private buildComponent(): void {\r\n const content = document.createElement(\"div\"); //* Abstract\r\n content.style.top = this.columnsBarHeight + \"px\";\r\n content.style.left = this.rowsBarWidth + \"px\";\r\n\r\n content.appendChild(this.sheet.element);\r\n\r\n content.classList.add(CSS_PREFIX + \"content\");\r\n\r\n this.table.element.appendChild(this.toolbar.element);\r\n this.table.element.appendChild(this.rowsBar.element);\r\n this.table.element.appendChild(this.columnsBar.element);\r\n this.table.element.appendChild(content);\r\n this.table.element.appendChild(this.scroller.element);\r\n this.table.element.append(this.editor.element);\r\n }\r\n\r\n /**Destroy spreadsheet DOM element.\r\n *\r\n * May be usefull when need to rerender component.\r\n */\r\n public destroy() {\r\n this.table.element.remove();\r\n }\r\n\r\n private appendTableToTarget(target: string | HTMLElement) {\r\n if (typeof target === \"string\") {\r\n const element = document.querySelector(target);\r\n if (!element)\r\n throw new Error(\r\n `Element with selector ${target} is not finded in DOM.\\n Make sure it exists.`,\r\n );\r\n element?.appendChild(this.table.element);\r\n }\r\n if (target instanceof HTMLElement) {\r\n target.append(this.table.element);\r\n }\r\n }\r\n\r\n /** Canvas rendering context 2D.\r\n *\r\n * Abble to draw on canvas with default CanvasAPI methods\r\n */\r\n get ctx() {\r\n return this.sheet.ctx;\r\n }\r\n\r\n get viewProps() {\r\n return this.config.view;\r\n }\r\n\r\n get columnsBarHeight() {\r\n return this.columnsBar.height;\r\n }\r\n\r\n get rowsBarWidth() {\r\n return this.rowsBar.width;\r\n }\r\n\r\n get toolbarHeight() {\r\n return this.toolbar.height;\r\n }\r\n\r\n /** Focusing on interactive part of spreadsheet */\r\n focusTable() {\r\n this.scroller.element.focus();\r\n }\r\n\r\n getCellByCoords(x: number, y: number) {\r\n return this.sheet.getCellByCoords(x, y);\r\n }\r\n\r\n getCell(position: Position): Cell {\r\n const { column, row } = position;\r\n return this.data[row][column];\r\n }\r\n\r\n changeCellValues(\r\n position: Position,\r\n values: Partial>,\r\n enableCallback: boolean = true\r\n ) {\r\n const { column, row } = position;\r\n\r\n\r\n this.data[row][column].changeValues(values);\r\n\r\n this.events.dispatch({\r\n type: EventTypes.CELL_CHANGE,\r\n cell: this.data[row][column],\r\n enableCallback: enableCallback\r\n })\r\n\r\n this.renderCell(row, column);\r\n }\r\n\r\n changeCellStyles(position: Position, styles: CellStyles) {\r\n const { column, row } = position;\r\n this.data[row][column].changeStyles(styles);\r\n this.renderCell(row, column);\r\n }\r\n\r\n applyActionToRange(\r\n range: RangeSelectionType,\r\n callback: (cell: Cell) => void,\r\n ): void {\r\n const fromRow = Math.min(range.from.row, range.to.row);\r\n const toRow = Math.max(range.from.row, range.to.row);\r\n\r\n const fromCol = Math.min(range.from.column, range.to.column);\r\n const toCol = Math.max(range.from.column, range.to.column);\r\n\r\n for (let row = fromRow; row <= toRow; row++) {\r\n for (let col = fromCol; col <= toCol; col++) {\r\n const cell = this.data[row][col];\r\n callback(cell);\r\n }\r\n }\r\n }\r\n\r\n deleteSelectedCellsValues() {\r\n if (this.selection.selectedRange !== null) {\r\n this.applyActionToRange(this.selection.selectedRange, (cell) => {\r\n this.changeCellValues(cell.position, {\r\n displayValue: \"\",\r\n resultValue: \"\",\r\n value: \"\",\r\n });\r\n });\r\n } else {\r\n if (!this.selection.selectedCell) return;\r\n this.changeCellValues(this.selection.selectedCell, {\r\n displayValue: \"\",\r\n resultValue: \"\",\r\n value: \"\",\r\n });\r\n }\r\n }\r\n\r\n showEditor(position: Position, initialString?: string) {\r\n this.editor.show(position, initialString);\r\n }\r\n\r\n renderSheet() {\r\n this.sheet.renderSheet();\r\n }\r\n\r\n renderSelection() {\r\n this.sheet.renderSelection();\r\n }\r\n\r\n renderColumnsBar() {\r\n this.columnsBar.renderBar();\r\n }\r\n\r\n renderRowsBar() {\r\n this.rowsBar.renderBar();\r\n }\r\n\r\n renderCell(row: number, col: number) {\r\n this.data[row][col].render(this);\r\n }\r\n\r\n public loadData(data: Cell[][] | SerializableCell[][]): Spreadsheet {\r\n const rowsLength = data.length;\r\n const colsLength = data[0] ? data[0].length : 0;\r\n this.data = [];\r\n\r\n const formattedData: Cell[][] = [];\r\n // Transform serialized objects to Cells\r\n for (let row = 0; row < rowsLength; row++) {\r\n const innerRow: Cell[] = [];\r\n for (let col = 0; col < colsLength; col++) {\r\n const cell = data[row][col];\r\n innerRow.push(\r\n new Cell({\r\n displayValue: cell.displayValue,\r\n position: cell.position,\r\n resultValue: cell.resultValue,\r\n value: cell.value,\r\n style: cell.style,\r\n }),\r\n );\r\n }\r\n formattedData.push(innerRow);\r\n }\r\n\r\n const config = this.makeConfigFromData(formattedData, this.config.view);\r\n config.onCellChange = this.config.onCellChange\r\n config.onCellClick = this.config.onCellClick\r\n config.onCopy = this.config.onCopy\r\n config.onSelectonChange = this.config.onSelectonChange\r\n\r\n\r\n this.data = formattedData;\r\n this.selection.selectedCell = null;\r\n this.selection.selectedRange = null;\r\n this.config = config\r\n this.cache = this.getInitialCache();\r\n this.scroller.updateScrollerSize();\r\n this.viewport = new Viewport(\r\n this,\r\n this.scroller.getViewportBoundlingRect(),\r\n );\r\n this.renderSheet();\r\n\r\n return this;\r\n }\r\n\r\n private makeConfigFromData(data: Cell[][], view: ViewProperties): Config {\r\n const lastRowIdx = data.length - 1;\r\n const lastColIdx = data[0] ? data[0].length : 0;\r\n\r\n const rows: Row[] = [];\r\n for (let row = 0; row < lastRowIdx; row++) {\r\n rows.push(\r\n new Row({\r\n height: 40,\r\n title: String(row),\r\n }),\r\n );\r\n }\r\n\r\n const columns: Column[] = [];\r\n\r\n for (let col = 0; col < lastColIdx; col++) {\r\n columns.push(\r\n new Column({\r\n width: 150,\r\n title: String(col),\r\n }),\r\n );\r\n }\r\n\r\n const config = new Config({\r\n view,\r\n rows,\r\n columns,\r\n onCellClick: null,\r\n });\r\n\r\n return config;\r\n }\r\n\r\n public serializeData(): SerializableCell[][] {\r\n const rowsLength = this.data.length;\r\n const colsLength = this.data[0] ? this.data[0].length : 0;\r\n\r\n const cellsArray: SerializableCell[][] = [];\r\n\r\n for (let row = 0; row < rowsLength; row++) {\r\n const innerRow: SerializableCell[] = [];\r\n for (let col = 0; col < colsLength; col++) {\r\n innerRow.push(this.data[row][col].getSerializableCell());\r\n }\r\n cellsArray.push(innerRow);\r\n }\r\n\r\n return cellsArray;\r\n }\r\n}\r\n\r\nexport * from \"./modules/cache\";\r\nexport * from \"./modules/cell\";\r\nexport * from \"./modules/column\";\r\nexport * from \"./modules/config\";\r\nexport * from \"./modules/renderBox\";\r\nexport * from \"./modules/row\";\r\nexport * from \"./modules/selection\";\r\nexport * from \"./modules/styles\";\r\nexport * from \"./modules/viewport\";\r\n\r\nexport * from \"./utils/createData\";\r\n","import Spreadsheet, { SpreadsheetConstructorProperties } from \"./main\";\r\n\r\nconst options: SpreadsheetConstructorProperties = {\r\n onCellClick: (event, cell) => {\r\n console.log(\"Cell click\", event, cell);\r\n },\r\n onSelectionChange: (selection) => {\r\n console.log(\"Changed selection: \", selection);\r\n },\r\n onCellChange(cell) {\r\n console.log(\"Cell changed: \", cell);\r\n },\r\n onCopy: (range, data, dataAsString) => {\r\n console.log(\"Copy event: \", range, data, dataAsString)\r\n }\r\n};\r\n\r\nconst sheet = new Spreadsheet(\"#spreadsheet\", options);\r\n\r\nfunction saveDataToLS() {\r\n const serializableData = sheet.serializeData();\r\n localStorage.setItem(\"sheet\", JSON.stringify(serializableData));\r\n}\r\n\r\nfunction loadDataFromLS() {\r\n const data = localStorage.getItem(\"sheet\");\r\n if (!data) return;\r\n const json = JSON.parse(data);\r\n sheet.loadData(json);\r\n}\r\n\r\nconst saveButton = document.querySelector(\"#save_button\");\r\nconst loadButton = document.querySelector(\"#load_button\");\r\n\r\nif (!saveButton || !loadButton) throw new Error(\"LOST\");\r\n\r\nsaveButton.addEventListener(\"click\", saveDataToLS);\r\nloadButton.addEventListener(\"click\", loadDataFromLS);\r\n"],"names":["EventTypes","Events","root","__publicField","event","scroller","offsetX","offsetY","clickedCell","cell","selection","Selection","_b","_a","enableCallback","range","data","dataAsString","action","err","RenderBox","config","cellPosition","column","x","row","y","Editor","key","target","element","CSS_PREFIX","position","initialString","height","width","checkEqualCellSelections","selection1","selection2","Scroller","lastSelectedCell","isRangeChanged","newSelection","keysRegex","isPressedLetterKey","cells","from","to","rect","horizontalScroller","verticalScroller","mode","scrollTop","scrollLeft","bottom","right","groupScrollers","stack","acc","curr","totalHeight","totalWidth","CellStyles","props","Position","SerializableCell","Cell$2","styles","values","parser","renderBox","ctx","Sheet$2","canvas","col","selectedCell","selectedRange","startRow","startCol","lastRow","lastCol","startCellBox","box","firstRowIdx","lastColIdx","lastRowIdx","firstColIdx","Table","container","sizes","Toolbar","toolbarElement","Config","Styles","Viewport","Column$2","Row","createSampleData","rows","columns","fillCellsByCoords","innerRow","value","Cell","CachedColumn","CachedRow","Cache","initial","rowIdx","i","colIdx","ColumnsBar","top","left","isColSelected","specialX","RowsBar","isRowSeleted","specialY","Clipboard","mapedData","item","arrayOfCells","cellProps","rowsLength","colsLength","j","savedCell","Collection$3","refs","obj","ref","collection","Collection","FormulaError","require$$0","require$$1","Types","Factorials","ReversedTypes","FormulaHelpers","result","arr1","val","isArray","allowBoolean","number","params","valueType","allowUnion","hook","defValue","minSize","param","isCellRef","isRangeRef","isUnion","isLiteral","info","type","flat","allowSingleValue","paramType","variable","context","range1","range2","Address","H","arg","res","WildCard","lookupText","flags","Criteria","criteria","upper","op","dividend","name","modulo","columnName","len","code","rowOffset","colOffset","helpers","error","msg","details","functionName","args","SSF$1","SSF","_strrev","o","fill","c","l","pad0","v","d","t","pad_","rpad_","pad0r1","pad0r2","p2_32","pad0r","isgeneral","s","days","months","init_table","table_fmt","frac","D","mixed","sgn","B","P_2","P_1","P","Q_2","Q_1","Q","A","q","parse_date_code","opts","b2","date","time","dow","dout","out","fix_hijri","basedate","dnthresh","base1904","datenum_local","date1904","epoch","general_fmt_int","general_fmt_num","gnr1","gnr2","gnr4","gnr5","gnr6","gfn2","w","gfn5","gfn3","gfn4","V","general_fmt","format","write_date","fmt","ss0","ss","tt","outl","commaify","write_num","pct1","write_num_pct","sfmt","mul","write_num_cm","idx","write_num_exp","period","ee","fakee","$$","$1","$2","$3","frac1","write_num_f1","r","aval","sign","den","rr","base","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","str","cc","rnd","dd","dec","carry","flr","write_num_flt","ffmt","ri","ff","oa","lres","rres","write_num_cm2","write_num_pct2","write_num_exp2","write_num_int","split_fmt","in_str","abstime","fmt_is_date","eval_fmt","flen","lst","dt","hr","bt","ssm","nstr","jj","vv","myv","ostr","decpt","lasti","retval","cfregex","cfregex2","chkcond","thresh","choose_fmt","f","lat","m1","m2","load_entry","tbl","ssf","defaultResult","singleUnitStrs","placeNameStrs","num2Word","nums","maxLen","overflowIndex","overflowNums","remainingNumbs","digit","grammarFix","neungLen","combine","baht","satang","bahttext","num","bahtStr","satangStr","bahtArr","satangArr","module","require$$2","require$$3","charsets","toFull","set","toHalf","re","way","sets","toFullWidth","str0","toHalfWidth","TextFunctions","text","decimals","decimalString","text1","text2","findText","withinText","startNum","noCommas","comma","numChars","decimalSeparator","groupSeparator","leftParenOrMinus","rightParen","percent","letter","old_text","start_num","num_chars","new_text","arr","number_times","findTextRegex","formatText","e","Prefix","prefixes","prefix","Postfix","postfix","type2Number","Infix","value1","infix","value2","isArray1","isArray2","type1","type2","operators","fd","factorial","n","factorialDouble","MathFunctions","functionNum","options","ref1","radix","minLength","significance","absSignificance","times","offset","numberChosen","nFactorial","kFactorial","radians","a","b","array","numRow","numCol","det","diagLeft","diagRight","array1","array2","aNumRows","aNumCols","bNumRows","bNumCols","m","v1","v2","divisor","multiple","numbers","numerator","denominator","dimension","matrix","rowArr","temp","power","product","parsedNumber","degrees","form","digits","roman","multiplier","coefficients","coefficient","sumRange","ranges","isCriteriaArray","sum","rowNum","colNum","valueToAdd","arrays","arrayX","arrayY","math","MAX_NUMBER","TrigFunctions","trigonometry","getNumLogicalValue","numTrue","numFalse","LogicalFunctions","logicalTest","valueIfTrue","valueIfFalse","valueIfError","valueIfNa","logical","factory","exports","BESSEL","M","_horner","z","_bessel_iter","f0","f1","tdx","f2","_bessel_wrap","bessel0","bessel1","nonzero","b0","b1","besselj","W","b0_a1a","b0_a2a","b0_a1b","b0_a2b","a1","a2","xx","b1_a1a","b1_a2a","b1_a1b","b1_a2b","ret","jsum","bjp","bj","bjm","tox","bessely","besseli","b0_a","b0_b","b1_a","b1_b","bip","bi","bim","besselk","window","this","jStat","Math","undefined","concat","slice","toString","calcRdx","isFunction","isNumber","toVector","fn","index","submat","ind","nrow","objArr","cols","func","toAlter","ncol","retZero","retOne","retIdent","size","min","max","length","hival","step","current","cnt","start","end","rl","_slice","list","rcSlice","colSlice","rowSlice","nl","ml","diagArray","mat","jProto","funcs","passfunc","self","results","ascNum","clip","mean","tmp","prod","low","high","hash","_arr","logs","meanOfLogs","arrlen","diffs","arrLen","distinctNumbers","numberCounts","sortedDistinctNumbers","numberRanks","currentRank","count","first","last","rank","maxCount","numMaxCount","mode_arr","flag","sumsqerr","samples","dev","median","quantilesArray","alphap","betap","sortedArray","quantileVals","p","aleph","k","gamma","exclusive","realIndex","score","kind","counter","strict","binCnt","binWidth","bins","arr2","u","arr1Len","sq_dev","mu","sigma","skewSum","fullbool","tmpthis","callbackFunction","argsToPass","curriedFunction","vector","cof","ser","x0","x2","xp","gl","gl0","fact","xden","xnum","yi","aln","ap","del","h","ITMAX","an","fpmin","qab","qap","qam","aa","EPS","gln","pp","lna1","afac","isneg","ty","lna","lnb","al","shape","oalph","newthis","vals","fnfunc","alpha","beta","df1","df2","x1","local","scale","dof","rate","ncp","tol","min_iterations","flip","prob","lastvalue","std","dof2","betinc","eps","a0","m9","c9","betacdf","N","scaledPDF","samplesDone","scaledCDF","factor","sumarr","L","lam","U","slam","loglam","invalpha","vr","us","laplaceSign","tukeyWprob","nleg","ihalf","C1","C2","C3","bb","wlar","wincr1","wincr2","xleg","aleg","qsqz","pr_w","wincr","blb","binc","bub","einsum","cc1","wi","elsum","ac","qexpo","pplus","pminus","rinsum","tukeyQinv","p0","q0","p1","q1","p2","q2","p3","q3","p4","q4","c1","c2","c3","c4","c5","vmax","ps","nmeans","df","nlegq","ihalfq","eps1","eps2","dhaf","dquar","deigh","dlarg","ulen1","ulen2","ulen3","ulen4","xlegq","alegq","f2lf","f21","ff4","ulen","ans","otsum","twa1","t1","wprb","rotsum","maxiter","valx0","valx1","iter","xabs","push","isUsable","nrescols","rescols","nnorm","newarr","determinant","submatrix","maug","pivot","y2","maxrow","parts","matrix_mode","R","T","xv","xk","qr2","R_I","I","Aj","cAi","Ij","cIi","qr_solve","array_mode","QR","attrs","Q1","R1","RI","Q2","condition","ev","maxim","theta","t_j","u_j","order","k1","k2","u_j1","k3","k4","h1","g","X","pos","h_min","y1","F","dF","dl","temp1","temp2","Y","Bt","C","Vt","sides","zscore","tscore","expVar","sample","sampMean","sampSampMean","tmpargs","unexpVar","anovafscore","fscore","mean1","mean2","n1","n2","sd","qscore","means","change","pvalue","differenceOfProportions","pooled","se","sub_regress","exog","var_count","modelList","endog_index","exog_index","ols","endog","nobs","df_model","df_resid","coef","predict","resid","ybar","SSE","SSR","SST","R2","t_test","model","subModelList","sigmaHat","seBetaHat","mod","tStatistic","pValue","leftppf","interval95","F_test","F_statistic","fcdf","ols_wrap","ttest","ftest","adjust_R2","matrixRows","jMat","pass","jMatX","jMatY","innerinv","xtransp","next","compile","jMatYBar","yAverage","covar","sds","ts","inner","yBar","ssr","sse","sst","bessel","require$$4","MAX_OCT","MIN_OCT","MAX_BIN","MIN_BIN","numberRegex","IMWithoutRealRegex","IMRegex","parseIM","textOrNumber","real","im","unit","match","EngineeringFunctions","numberStr","places","number1","number2","shiftAmount","realNum","iNum","suffix","lowerLimit","upperLimit","ifNegative","toDecimal","toBinary","iNumber","realInput","imaginaryInput","imaginary","iNumber1","iNumber2","res1","unit1","res2","unit2","argument","realSum","imSum","prevUnit","isNegative","toHex","engineering","ReferenceFunctions","rowNumber","columnNumber","absNum","sheetText","indexNum","lookupValue","tableArray","rowIndexNum","rangeLookup","lookupType","prevValue","currValue","areaNum","colIndexNum","currRow","reference","error2Number","InfoFunctions","infoType","information","SQRT2PI","DistributionFunctions","cumulative","probability","numberS","trials","probabilityS","numberS2","degFreedom","actualRange","expectedRange","actual","expected","xsqr","filterArr1","filterArr2","lambda","d1","d2","x1Mean","x2Mean","s1","s2","e2y","knownYs","knownXs","filteredY","filteredX","xAllEqual","yMean","xMean","dataArray","binsArray","binsArrayFiltered","filterArr","knownY","knownX","newX","useConst","isKnownXOmitted","avg_x","avg_y","avg_xy","avg_xx","new_y","sample_s","number_sample","population_s","number_pop","pdf","cdf","standard_dev","number_f","number_s","probability_s","deg_freedom","distribution","StatisticalFunctions","avg","averageRange","statistical","MS_PER_DAY","d1900","WEEK_STARTS","WEEK_TYPES","WEEKEND_TYPES","timeRegex","dateRegex1","dateRegex2","dateRegex3","parseSimplifiedDate","fmt1","fmt2","fmt3","parseTime","minutes","seconds","ampm","now","toSerial","addOn","toDate","serial","parseDateWithExtra","serialOrString","isDateGiven","parseDate","compareDateIgnoreTime","date1","date2","isLeapYear","year","DateFunctions","month","day","startDate","endDate","yearDiff","monthDiff","dayDiff","dateText","method","dayNum","yearStart","holidays","holidaysArr","numWorkDays","found","weekend","weekendArr","skip","hour","minute","second","timeText","returnType","weekTypes","weekStart","basis","sm","sy","ed","em","ey","yLength","years","average","WebFunctions","url","web","VERSION","isEmpty","keys","mapValues","callback","objKeys","currKey","map","flatten","currItem","forEach","iteratorCallback","isObject","colKeys","isString","isUndefined","drop","howMuch","dropRight","filter","predicate","reject","pick","has","prop","contains","find","cloneArr","newArr","cloneObj","clonedObj","findAll","reduce","arrOrObj","iterator","isArr","accumulator","compact","uniq","identity","identities","currIdentity","isRegExp","every","difference","some","indexOf","assign","sources","_i","curSource","currSourceKeys","assignNoOverwrite","defaults","groupBy","groupKeyFunc","currGroupKey","currGroupArr","merge","obj1","obj2","keys2","NOOP","IDENTITY","packArray","holeyArr","orgValue","PRINT_ERROR","PRINT_WARNING","isES2015MapSupported","applyMixins","derivedCtor","baseCtors","baseCtor","baseProto","propName","basePropDescriptor","toFastProperties","toBecomeFast","FakeConstructor","fakeInstance","fakeAccess","peek","timer","total","RegExpParser","newState","input","addFlag","alts","begin","terms","ASSERT_EXISTS","disjunction","ASSERT_NEVER_REACH_HERE","isBacktracking","atLeast","atMost","atom","complement","digitsCharCodes","whitespaceCodes","wordCharCodes","escapeCode","letterCode","escapedChar","nextChar","isFromSingleChar","isToSingleChar","insertToSet","capturing","groupAst","decimalPatternNoZero","decimalPattern","prevState","howMany","hexString","hexChar","hexDigitPattern","charCode","char","subItem","flagObj","flagKey","BaseRegExpVisitor","node","child","subChild","regExpAstCache","regExpParser","getRegExpAst","regExp","regExpStr","regExpAst","clearRegExpParserCache","__extends","extendStatics","__","complementErrorMessage","failedOptimizationPrefixMsg","getOptimizedStartCodesIndices","ensureOptimizations","ast","firstChars","firstCharOptimizedIndices","msgSuffix","ignoreCase","term","addOptimizedIdxToResult","rangeCode","minOptimizationVal","minUnOptVal","maxUnOptVal","minOptIdx","charCodeToOptimizedIndex","maxOptIdx","currOptIdx","isOptionalQuantifier","isWholeOptional","optimizedCharIdx","handleIgnoreCase","upperChar","lowerChar","findCode","setNode","targetCharCodes","codeOrRange","range_1","targetCode","CharCodeFinder","_super","_this","canMatchCharCode","charCodes","pattern","charCodeFinder","PATTERN","DEFAULT_MODE","MODES","SUPPORT_STICKY","analyzeTokenTypes","tokenTypes","tracer","initCharCodeToOptimizedIndexMap","onlyRelevantTypes","currType","Lexer","hasCustom","allTransformedPatterns","currPattern","regExpSource","addStickyFlag","addStartOfInput","escapedRegExpString","wrappedRegExp","patternIdxToType","patternIdxToGroup","patternIdxToLongerAltIdx","patternIdxToPushMode","patternIdxToPopMode","clazz","groupName","longerAltType","longerAltIdx","patternIdxToCanLineTerminator","lineTerminatorCharCodes","getCharCodes","tokType","checkLineBreaksIssues","patternIdxToIsCustom","patternIdxToShort","emptyGroups","patternIdxToConfig","isCustomPattern","isShortPattern","canBeOptimized","charCodeToPatternIdxToConfig","currTokType","optimizedIdx","addToMapOfArrays","lastOptimizedIdx_1","charOrInt","currOptimizedIdx","optimizedCodes","validatePatterns","validModesNames","errors","missingResult","findMissingPatterns","invalidResult","findInvalidPatterns","validTokenTypes","validateRegExpPattern","findInvalidGroupType","findModesThatDoNotExist","findUnreachablePatterns","withRegExpPatterns","findEndOfInputAnchor","findStartOfInputAnchor","findUnsupportedFlags","findDuplicatePatterns","findEmptyMatchRegExps","tokenTypesWithMissingPattern","LexerDefinitionErrorType","valid","tokenTypesWithInvalidPattern","end_of_input","EndAnchorFinder","invalidRegex","regexpAst","endAnchorVisitor","matchesEmptyString","start_of_input","StartAnchorFinder","startAnchorVisitor","invalidFlags","identicalPatterns","outerType","innerType","duplicatePatterns","currIdenticalSet","setOfIdentical","tokenTypeNames","dupPatternSrc","invalidTypes","group","validModes","invalidModes","canBeTested","noMetaChar","testIdx","tokenType","testTokenType","regExpArray","metaChars","performRuntimeChecks","lexerDefinition","trackLines","lineTerminatorCharacters","currModeValue","currModeName","currIdx","performWarningRuntimeChecks","warnings","hasAnyLineBreak","allTokenTypes","tokTypes","concreteTokenTypes","terminatorCharCodes","currIssue","message","buildLineBreakIssueMessage","warningDescriptor","cloneEmptyGroups","clonedResult","groupKeys","currGroupValue","LineTerminatorOptimizedTester","charsOrCodes","numOrString","charCodeToOptimizedIdxMap","tokenStructuredMatcher","tokInstance","tokConstructor","instanceType","tokenStructuredMatcherNoCategories","token","tokenShortNameIdx","tokenIdxToClass","augmentTokenTypes","tokenTypesAndParents","expandCategories","assignTokenDefaultProps","assignCategoriesMapProp","assignCategoriesTokensProp","categories","searching","newCategories","hasShortKeyProperty","hasCategoriesProperty","hasExtendingTokensTypesProperty","hasExtendingTokensTypesMapProperty","singleAssignCategoriesToksMap","path","nextNode","pathNode","nextCategory","newPath","isTokenType","defaultLexerErrorProvider","fullText","startOffset","line","DEFAULT_LEXER_CONFIG","traceInitVal","actualDefinition","hasOnlySingleMode","allModeNames","currModDef","currModName","currAnalyzeResult_1","allErrMessages","allErrMessagesString","unOptimizedModes","cannotBeOptimized","modeName","initialMode","lexResult","matchAltImage","matchedImage","payload","altPayload","imageLength","newToken","errLength","orgText","orgLength","matchedTokensIndex","guessedNumberOfTokens","matchedTokens","groups","lineTerminatorPattern","currModePatternsLength","currCharCodeToPatternIdxToConfig","modeStack","emptyArray","getPossiblePatterns","getPossiblePatternsSlow","getPossiblePatternsOptimized","possiblePatterns","pop_mode","popToken","msg_1","newMode","modeCanBeOptimized","push_mode","currConfig","nextCharCode","chosenPatternIdxToConfig","chosenPatternsLength","singleCharCode","longerAltConfig","longerAltPattern","numOfLTsInMatch","foundTerminator","lastLTEndOffset","errorStartOffset","errorLine","errorColumn","foundResyncPoint","currConfig_1","pushMode","newLastIndex","lastLTIdx","lastCharIsLT","fixForEndingInLT","oldColumn","image","tokenTypeIdx","startLine","startColumn","tokenVector","tokenToAdd","phaseDesc","phaseImpl","indent","traceMethod","tokenLabel","hasTokenLabel","tokenName","PARENT","CATEGORIES","LABEL","GROUP","PUSH_MODE","POP_MODE","LONGER_ALT","LINE_BREAKS","START_CHARS_HINT","createToken","createTokenInternal","EOF","createTokenInstance","endOffset","endLine","endColumn","tokenMatcher","AbstractProduction","_definition","visitor","NonTerminal","definition","Rule","Alternative","Option","RepetitionMandatory","RepetitionMandatoryWithSeparator","Repetition","RepetitionWithSeparator","Alternation","Terminal","serializeGrammar","topRules","serializeProduction","convertDefinition","serializedTerminal","RestWalker","prevRest","subProd","currRest","terminal","refProd","flatProd","fullOrRest","optionProd","atLeastOneProd","fullAtLeastOneRest","atLeastOneSepProd","fullAtLeastOneSepRest","restForRepetitionWithSeparator","manyProd","fullManyRest","manySepProd","fullManySepRest","orProd","alt","prodWrapper","repSepProd","repSepRest","fullRepSepRest","GAstVisitor","nodeAny","isSequenceProd","isOptionalProd","alreadyVisited","isDirectlyOptional","isBranchingProd","getProductionDslName","DslMethodsCollectorVisitor","subrule","option","manySep","atLeastOne","atLeastOneSep","many","or","collectorVisitor","collectMethods","rule","dslMethods","firstForTerminal","firstForSequence","firstForBranching","firstSet","seq","nextSubProdIdx","hasInnerProdsRemaining","currSubProd","isLastInnerProdOptional","allAlternativesFirsts","innerProd","IN","ResyncFollowsWalker","topProd","followName","buildBetweenProdsFollowPrefix","fullRest","restProd","t_in_topProd_follows","computeAllProdsFollows","topProductions","reSyncFollows","currRefsFollow","occurenceInParent","defaultParserErrorProvider","hasLabel","expectedMsg","firstRedundant","expectedPathsPerAlt","customUserDescription","errPrefix","actualText","errSuffix","allLookAheadPaths","currAltPaths","nextValidTokenSequences","currPath","currTokenType","nextValidSequenceItems","itemMsg","calculatedDescription","expectedIterationPaths","defaultGrammarResolverErrorProvider","topLevelRule","undefinedRule","defaultGrammarValidatorErrorProvider","duplicateProds","getExtraProductionArgument","topLevelName","duplicateProd","dslName","extraArgument","hasExplicitIndex","errMsg","pathMsg","currTok","occurrence","currtok","currMessage","ruleName","pathNames","utils.map","currRule","leftRecursivePath","resolveGrammar","topLevels","errMsgProvider","refResolver","GastRefResolverVisitor","nameToTopRule","ParserDefinitionErrorType","AbstractNextPossibleTokensWalker","NextAfterTokenWalker","AbstractNextTerminalAfterProductionWalker","topRule","NextTerminalAfterManyWalker","firstAfterMany","_first","NextTerminalAfterManySepWalker","firstAfterManySep","NextTerminalAfterAtLeastOneWalker","firstAfterAtLeastOne","NextTerminalAfterAtLeastOneSepWalker","atleastOneSepProd","firstAfterfirstAfterAtLeastOneSep","possiblePathsFrom","targetDef","maxLength","remainingPathWith","nextDef","getAlternativesForProd","alternatives","newDef","currAlt","nextPossibleTokensAfter","initialDef","tokMatcher","maxLookAhead","EXIT_NON_TERMINAL","EXIT_NON_TERMINAL_ARR","EXIT_ALTERNATIVE","foundCompletePath","tokenVectorLength","minimalAlternativesIndex","possiblePaths","currDef","currRuleStack","currOccurrenceStack","nextPath","nextIdx","actualToken","newRuleStack","newOccurrenceStack","nextPathWithout","nextPathWith","secondIteration","separatorGast","nthRepetition","currAltPath","expandTopLevelRule","newCurrOccurrenceStack","PROD_TYPE","getProdType","buildLookaheadFuncForOr","ruleGrammar","maxLookahead","hasPredicates","dynamicTokensEnabled","laFuncBuilder","lookAheadPaths","getLookaheadPathsForOr","areTokenCategoriesNotUsed","buildLookaheadFuncForOptionalProd","prodType","lookaheadBuilder","getLookaheadPathsForOptionalProd","buildAlternativesLookAheadFunc","numOfAlts","areAllOneTokenLookahead","orAlts","predicates","currNumOfPaths","currPredicate","currPathLength","nextToken","singleTokenAlts","choiceToAlt_1","currExtendingType","buildSingleAlternativeLookaheadFunction","numOfPaths","singleTokensTypes","expectedTokenType","expectedTokenUniqueKey_1","choiceToAlt_2","RestDefinitionFinderWalker","targetOccurrence","targetProdType","expectedProdType","InsideDefinitionFinderVisitor","targetRef","expectedProdName","initializeArrayOfArrays","pathToHashKeys","longerKeys","currShorterKey","categoriesKeySuffix","isUniquePrefixHash","altKnownPathsKeys","searchPathKeys","currAltIdx","otherAltKnownPathsKeys","searchIdx","searchKey","lookAheadSequenceFromAlternatives","altsDefs","partialAlts","finalResult","altsHashes","dict","newData","pathLength","currDataset","_loop_1","altIdx","currAltPathsAndSuffixes","currPathIdx","currPathPrefix","suffixDef","prefixKeys","isUnique","currAltResult","containsPath","newPartialPathsAndSuffixes","insideDefVisitor","insideDef","afterDefWalker","afterDef","insideFlat","AlternativeGAST","afterFlat","alternative","searchPath","compareOtherPath","otherPath","searchTok","otherTok","matchingTokens","isStrictPrefixOfPath","other","otherTokType","singleAltPaths","singlePath","validateGrammar","globalMaxLookahead","grammarName","duplicateErrors","currTopLevel","validateDuplicateProductions","leftRecursionErrors","currTopRule","validateNoLeftRecursion","emptyAltErrors","ambiguousAltsErrors","emptyRepetitionErrors","validateEmptyOrAlternative","validateAmbiguousAlternationAlternatives","validateSomeNonEmptyLookaheadPath","termsNamespaceConflictErrors","checkTerminalAndNoneTerminalsNameSpace","tooManyAltsErrors","curRule","validateTooManyAlts","duplicateRulesError","validateRuleDoesNotAlreadyExist","utils.flatten","OccurrenceValidationCollector","allRuleProductions","productionGroups","utils.groupBy","identifyProductionForDuplicates","duplicates","utils.pick","currGroup","utils.values","currDuplicates","firstProd","utils.first","defError","allRules","className","occurrences","validateRuleIsOverridden","definedRulesNames","utils.contains","nextNonTerminals","getFirstNoneTerminal","utils.isEmpty","foundLeftRecursion","validNextSteps","utils.difference","errorsFromNextSteps","currRefRule","utils.cloneArr","currSubDef","isFirstOptional","hasMore","rest","utils.drop","OrCollector","orCollector","ors","utils.reduce","currOr","exceptLast","utils.dropRight","currErrors","currAlternative","possibleFirstInAlt","utils.compact","currOccurrence","actualMaxLookahead","altsAmbiguityErrors","checkAlternativesAmbiguities","altsPrefixAmbiguityErrors","checkPrefixAlternativesAmbiguities","RepetionCollector","topLevelRules","currProd","paths","pathsInsideProduction","alternation","foundAmbiguousPaths","identicalAmbiguities","altsCurrPathAppearsIn","currOtherAlt","currOtherAltIdx","currAmbDescriptor","ambgIndices","pathsAndIndices","currPathsAndIdx","currPathAndIdx","alternativeGast","targetIdx","targetPath","prefixAmbiguitiesPathsAndIndices","searchPathAndIdx","currPathPrefixErrors","currAmbPathAndIdx","tokenNames","currToken","currRuleName","topRulesTable","orgResolveGrammar","orgValidateGrammar","assignOccurrenceIndices","methodsCollector","methods","currMethod","arrIdx","MISMATCHED_TOKEN_EXCEPTION","NO_VIABLE_ALT_EXCEPTION","EARLY_EXIT_EXCEPTION","NOT_ALL_INPUT_PARSED_EXCEPTION","RECOGNITION_EXCEPTION_NAMES","isRecognitionException","RecognitionException","_newTarget","MismatchedTokenException","previousToken","NoViableAltException","NotAllInputParsedException","EarlyExitException","EOF_FOLLOW_KEY","IN_RULE_RECOVERY_EXCEPTION","InRuleRecoveryException","Recoverable","DEFAULT_PARSER_CONFIG","attemptInRepetitionRecovery","tokToInsert","grammarRule","grammarRuleArgs","lookAheadFunc","expectedTokType","reSyncTokType","savedLexerState","resyncedTokens","passedResyncPoint","nextTokenWithoutResync","generateErrorMessage","expectTokAfterLastMatch","nextTokIdx","notStuck","tokIdxInRule","grammarPath","follows","nextTok","expectedToken","mismatchedTok","isMisMatchedTokInFollows","possibleFollowsTokType","isNextTokenWhatIsExpected","followKey","currentRuleReSyncSet","allPossibleReSyncTokTypes","nextTokenType","currRuleShortName","currRuleIdx","prevRuleShortName","explicitRuleStack","explicitOccurrenceStack","followStack","resyncTokens","prodFunc","lookaheadFunc","dslMethodIdx","prodOccurrence","nextToksWalker","pathRuleStack","pathOccurrenceStack","currShortName","firstAfterRepInfo","walker","isEndOfRule","BITS_FOR_METHOD_TYPE","BITS_FOR_OCCURRENCE_IDX","OR_IDX","OPTION_IDX","MANY_IDX","AT_LEAST_ONE_IDX","MANY_SEP_IDX","AT_LEAST_ONE_SEP_IDX","getKeyForAutomaticLookahead","ruleIdx","LooksAhead","rules","repetition","repetitionMandatory","repetitionMandatoryWithSeparator","repetitionWithSeparator","prodIdx","laFunc","prodKey","prodMaxLookahead","dslMethodName","setNodeLocationOnlyOffset","currNodeLocation","newLocationInfo","setNodeLocationFull","addTerminalToCst","tokenTypeName","addNoneTerminalToCst","ruleResult","classNameFromInstance","instance","NAME","existingNameProp","defineNameProp","nameValue","namePropDescriptor","defaultVisit","childrenNames","childrenNamesLength","currChildName","currChildArray","currChildArrayLength","currChild","createBaseSemanticVisitorConstructor","ruleNames","derivedConstructor","semanticProto","cstNode","semanticDefinitionErrors","validateVisitor","errorMessages","currDefError","createBaseVisitorConstructorWithDefaults","baseConstructor","withDefaultsProto","CstVisitorDefinitionError","visitorInstance","missingErrors","validateMissingCstMethods","redundantErrors","validateRedundantMethods","VALID_PROP_NAMES","TreeBuilder","fullRuleName","shortName","ruleCstNode","prevToken","loc","consumedToken","rootCst","ruleCstResult","preCstNode","newBaseCstVisitorConstructor","newConstructor","ruleStack","occurrenceStack","LexerAdapter","newInput","END_OF_FILE","soughtIdx","RecognizerApi","impl","ruleToCall","actionORMethodDef","altsOrOpts","implementation","DEFAULT_RULE_CONFIG","ruleImplementation","ruleErrors","orgState","RecognizerEngine","tokenVocabulary","uniqueTokens","noTokenCategoriesUsed","tokenConstructor","resyncEnabled","recoveryValueFunc","invokeRuleWithTry","cst","wrappedGrammarRule","idxInCallingRule","ruleNamePropName","resyncEnabledConfig","isFirstInvokedRule","reSyncEnabled","recogError","partialCstResult","orgLookaheadFunction_1","laKey","orgLookaheadFunction_2","separator","firstIterationLookaheadFunc","separatorLookAheadFunc","lookaheadFunction","orgLookaheadFunction_3","firstIterationLaFunc","nextTerminalAfterWalker","beforeIteration","afterIteration","altIdxToTake","chosenAlternative","firstRedundantTok","eFromConsumption","eFromInRuleRecovery","savedErrors","savedRuleStack","fullName","ErrorHandler","newErrors","userDefinedErrMsg","lookAheadPathsPerAlternative","insideProdPaths","actualTokens","errMsgTypes","ContentAssist","startRuleName","precedingInput","startRuleGast","topRuleName","gastProductions","topProduction","nextPossibleTokenTypes","RECORDING_NULL_OBJECT","HANDLE_SEPARATOR","MAX_METHOD_IDX","RFT","RECORDING_PHASE_TOKEN","RECORDING_PHASE_CSTNODE","GastRecorder","arg1","arg2","def","newTopLevelRule","originalError","recordProd","recordOrProd","assertMethodIdxIsValid","getIdxSuffix","prevProd","newNoneTerminal","prodConstructor","mainProdArg","handleSep","grammarAction","newProd","hasOptions","newOrProd","currAltFlat","PerformanceTracer","userTraceInitPerf","traceIsNumber","EMPTY_ALT","Parser","that","parserInstance","defErrorsMsgs","wrappedRule","originalGrammarAction","recordedRuleGast","resolverErrors","validationErrors","allFollows","CstParser","configClone","EmbeddedActionsParser","createSyntaxDiagramsCode","grammar","_c","resourceBase","_d","css","header","cssHtml","scripts","diagramsDiv","serializedGrammar","initLogic","NL","genUmdModule","genClass","genWrapperFunction","genAllRules","rulesText","genRule","genDefinition","genTerminal","genNonTerminal","genAlternation","altDef","genSingleAlt","genProd","genDSLRule","genDefFunction","spaces","generateParserFactory","wrapperText","constructorWrapper","generateParserModule","clearCache","WhiteSpace","String","SingleQuotedString","SheetQuoted","Function","FormulaErrorT","RefError","Name","Sheet","Number","Boolean","Column","At","Comma","Colon","Semicolon","OpenParen","CloseParen","OpenSquareParen","CloseSquareParen","OpenCurlyParen","CloseCurlyParen","QuoteS","MulOp","PlusOp","DivOp","MinOp","ConcatOp","ExOp","PercentOp","GtOp","EqOp","LtOp","NeqOp","GteOp","LteOp","allTokens","SelectLexer","lexing","inputText","lexingResult","lexer","ExcelRefFunction","ExcelConditionalRefFunction","Parsing","utils","$","infixes","ops","formula","currentRow","sep","constant","bool","sheetName","referenceItem","address","parsing","Operators","MAX_ROW","MAX_COLUMN","Utils$3","cellAddress","col1","col2","row1","row2","val1","val2","maxRow","maxCol","minRow","minCol","sheet","refMaxRow","refMinRow","refMaxCol","refMinCol","string","Utils","EngFunctions","require$$5","InformationFunctions","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","FormulaParser$2","isTest","valueOrRef","nullValue","awaitedArgs","supported","fun","allowReturnArray","hooks","FormulaParser","Utils$1","formatChevrotainError","DepParser$1","ignoreError","DepParser","fastFormulaParser","cellValue","Spreadsheet","cachedCols","currentWidth","cacheCol","cachedRows","currentHeight","cacheRow","content","fromRow","toRow","fromCol","toCol","formattedData","view","cellsArray","saveDataToLS","serializableData","loadDataFromLS","json","saveButton","loadButton"],"mappings":"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","x_google_ignoreList":[20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88]} \ No newline at end of file diff --git a/index.d.ts b/index.d.ts deleted file mode 100644 index cb0ff5c..0000000 --- a/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/index.html b/index.html index 23928f9..05b7442 100644 --- a/index.html +++ b/index.html @@ -6,7 +6,7 @@ Spreadsheet example - +
diff --git a/main.d.ts b/main.d.ts deleted file mode 100644 index 7f090fe..0000000 --- a/main.d.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { Cell, CellConstructorProps, CellStyles, Position, SerializableCell } from "./modules/cell"; -import { CellChangeEvent, CellClickEvent, Config, CopyEvent, SelectionChangeEvent, ViewProperties } from "./modules/config"; -import { RangeSelectionType, Selection } from "./modules/selection"; -import { Styles } from "./modules/styles"; -import { Viewport } from "./modules/viewport"; -import "./scss/main.scss"; -import { Cache } from "./modules/cache"; -import { Events } from "./modules/events"; -import { Clipboard } from "./modules/clipboard"; -import { FormulaParser } from "./modules/formulaParser"; -export interface SpreadsheetConstructorProperties { - view?: ViewProperties; - onCellClick?: CellClickEvent | null; - onSelectionChange?: SelectionChangeEvent | null; - onCellChange?: CellChangeEvent | null; - onCopy?: CopyEvent | null; -} -export declare const CSS_PREFIX = "modern_sc_"; -export default class Spreadsheet { - private table; - private scroller; - private toolbar; - private rowsBar; - private columnsBar; - private sheet; - private editor; - styles: Styles; - config: Config; - data: Cell[][]; - viewport: Viewport; - selection: Selection; - cache: Cache; - events: Events; - clipboard: Clipboard; - formulaParser: FormulaParser; - constructor(target: string | HTMLElement, props?: SpreadsheetConstructorProperties); - private setRowsBarPosition; - private setColumnsBarPosition; - private setElementsPositions; - private getInitialCache; - private buildComponent; - /**Destroy spreadsheet DOM element. - * - * May be usefull when need to rerender component. - */ - destroy(): void; - private appendTableToTarget; - /** Canvas rendering context 2D. - * - * Abble to draw on canvas with default CanvasAPI methods - */ - get ctx(): CanvasRenderingContext2D; - get viewProps(): ViewProperties; - get columnsBarHeight(): number; - get rowsBarWidth(): number; - get toolbarHeight(): number; - /** Focusing on interactive part of spreadsheet */ - focusTable(): void; - getCellByCoords(x: number, y: number): Position; - getCell(position: Position): Cell; - changeCellValues(position: Position, values: Partial>, enableCallback?: boolean): void; - changeCellStyles(position: Position, styles: CellStyles): void; - applyActionToRange(range: RangeSelectionType, callback: (cell: Cell) => void): void; - deleteSelectedCellsValues(): void; - showEditor(position: Position, initialString?: string): void; - renderSheet(): void; - renderSelection(): void; - renderColumnsBar(): void; - renderRowsBar(): void; - renderCell(row: number, col: number): void; - loadData(data: Cell[][] | SerializableCell[][]): Spreadsheet; - private makeConfigFromData; - serializeData(): SerializableCell[][]; -} -export * from "./modules/cache"; -export * from "./modules/cell"; -export * from "./modules/column"; -export * from "./modules/config"; -export * from "./modules/renderBox"; -export * from "./modules/row"; -export * from "./modules/selection"; -export * from "./modules/styles"; -export * from "./modules/viewport"; -export * from "./utils/createData"; diff --git a/main.js b/main.js deleted file mode 100644 index 7ab9750..0000000 --- a/main.js +++ /dev/null @@ -1,204 +0,0 @@ -"use strict";var js=Object.defineProperty;var ea=(t,e,n)=>e in t?js(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var U=(t,e,n)=>(ea(t,typeof e!="symbol"?e+"":e,n),n);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var Ve;(function(t){t.CELL_CLICK="CELL_CLICK",t.SELECTION_CHANGE="CHANGE_SELECTION",t.CELL_CHANGE="CELL_CHANGE",t.COPY_CELLS="COPY_CELLS"})(Ve||(Ve={}));class ta{constructor(e){U(this,"root");U(this,"cellClick",(e,n)=>{var p,u;if(e.button!==0)return;const{offsetX:r,offsetY:i}=e,a=this.root.getCellByCoords(r,i),c=this.root.getCell(a),h=new Hn;h.selectedCell=a,h.selectedRange={from:a,to:a},n.setSelectingMode(!0),this.changeSelection(h,!0),(u=(p=this.root.config).onCellClick)==null||u.call(p,e,c)});U(this,"changeSelection",(e,n=!1)=>{var r,i;this.root.selection=e,n&&((i=(r=this.root.config).onSelectonChange)==null||i.call(r,e)),this.root.renderSheet(),this.root.renderColumnsBar(),this.root.renderRowsBar()});U(this,"copy",(e,n,r)=>{var i,a;(a=(i=this.root.config).onCopy)==null||a.call(i,e,n,r)});this.root=e}async dispatch(e){switch(e.type){case Ve.CELL_CLICK:{const{event:n,scroller:r}=e;this.cellClick(n,r);break}case Ve.SELECTION_CHANGE:{const{selection:n,enableCallback:r}=e;this.changeSelection(n,r);break}case Ve.CELL_CHANGE:{const{cell:n,enableCallback:r}=e;if(n.value.substring(0,1).startsWith("="))try{await n.evalFormula(this.root.formulaParser),n.displayValue=n.resultValue,this.root.renderCell(n.position.row,n.position.column),this.changeCellValues(n,r);return}catch(i){console.error(i)}this.root.renderCell(n.position.row,n.position.column),this.changeCellValues(n,r);break}case Ve.COPY_CELLS:{const{data:n,dataAsString:r,range:i}=e;this.copy(i,n,r);break}}}changeCellValues(e,n=!0){var r,i;n&&((i=(r=this.root.config).onCellChange)==null||i.call(r,e))}}class kt{constructor(e,n){U(this,"x");U(this,"y");U(this,"width");U(this,"height");this.x=this.getXCoord(n.column,e),this.y=this.getYCoord(n.row,e),this.width=e.columns[n.column].width,this.height=e.rows[n.row].height}getXCoord(e,n){let r=0;for(let i=0;i{const{key:n}=e;switch(n){case"Escape":{this.hide();break}case"Enter":{if(!this.root.selection.selectedCell)return;this.root.changeCellValues(this.root.selection.selectedCell,{value:this.element.value,displayValue:this.element.value}),this.root.events.dispatch({type:Ve.CELL_CHANGE,cell:this.root.getCell(this.root.selection.selectedCell)}),this.hide(),this.root.renderSelection()}}});U(this,"handleClickOutside",e=>{const n=e.target;this.element.contains(n)||this.hide()});this.root=e;const n=document.createElement("input");n.classList.add(Ft+"editor"),this.element=n,this.hide()}hide(){this.element.style.display="none",this.element.classList.add("hide"),this.element.blur(),window.removeEventListener("click",this.handleClickOutside),this.element.removeEventListener("keydown",this.handleKeydown),this.root.focusTable()}show(e,n){const{height:r,width:i,x:a,y:c}=new kt(this.root.config,e),h=this.root.getCell(e);this.element.classList.remove("hide"),this.element.style.top=c-this.root.viewport.top+this.root.columnsBarHeight+"px",this.element.style.left=a-this.root.viewport.left+this.root.rowsBarWidth+"px",this.element.style.width=i+"px",this.element.style.height=r+"px",this.element.style.display="block",window.addEventListener("click",this.handleClickOutside),this.element.addEventListener("keydown",this.handleKeydown),this.element.value=n||h.value,this.element.focus(),n||this.element.select()}}function ci(t,e){return t.column===e.column&&t.row===e.row}class ra{constructor(e){U(this,"element");U(this,"verticalScroller");U(this,"horizontalScroller");U(this,"root");U(this,"isSelecting",!1);U(this,"handleMouseMove",e=>{if(!this.isSelecting)return;const{offsetX:n,offsetY:r}=e,i=this.root.getCellByCoords(n,r);let a=!1;this.root.selection.selectedRange&&(a=!ci(this.root.selection.selectedRange.to,i),a&&(this.root.selection.selectedRange.to=i,this.root.events.dispatch({type:Ve.SELECTION_CHANGE,selection:this.root.selection,enableCallback:!0})))});U(this,"handleMouseUp",()=>{this.isSelecting=!1;const e={...this.root.selection};this.root.selection.selectedRange&&ci(this.root.selection.selectedRange.from,this.root.selection.selectedRange.to)&&(e.selectedRange=null,this.root.events.dispatch({type:Ve.SELECTION_CHANGE,selection:e,enableCallback:!1})),this.root.renderSheet(),this.root.renderColumnsBar(),this.root.renderRowsBar()});U(this,"handleDoubleClick",e=>{e.preventDefault();const n=this.root.getCellByCoords(e.offsetX,e.offsetY);this.root.showEditor(n)});U(this,"handleKeydown",e=>{if(["ArrowLeft","ArrowRight","ArrowUp","ArrowDown"].includes(e.key)){switch(e.preventDefault(),this.root.selection.selectedRange=null,e.key){case"ArrowLeft":{this.root.selection.selectedCell&&this.root.selection.selectedCell.column>0&&(this.root.selection.selectedCell.column-=1);break}case"ArrowRight":{this.root.selection.selectedCell&&this.root.selection.selectedCell.column0&&(this.root.selection.selectedCell.row-=1);break}case"ArrowDown":{this.root.selection.selectedCell&&this.root.selection.selectedCell.rowu.slice(a.column,c.column+1))]}else if(this.root.selection.selectedCell){const{column:a,row:c}=this.root.selection.selectedCell;r=[[this.root.data[c][a]]],i.selectedRange={from:this.root.selection.selectedCell,to:this.root.selection.selectedCell}}else return;this.root.clipboard.copy(r,i.selectedRange);return}e.code}});U(this,"handleClick",e=>{this.root.events.dispatch({type:Ve.CELL_CLICK,event:e,scroller:this})});U(this,"handleScroll",()=>{const e=this.getViewportBoundlingRect();this.root.viewport.updateValues(e),this.root.renderSheet(),this.root.renderColumnsBar(),this.root.renderRowsBar()});this.root=e;const{horizontalScroller:n,scroller:r,verticalScroller:i}=this.buildComponent();this.element=r,this.verticalScroller=i,this.horizontalScroller=n,this.element.style.height=this.root.config.view.height+"px",this.element.style.width=this.root.config.view.width+"px",this.element.style.top=this.root.columnsBarHeight+"px",this.element.style.left=this.root.rowsBarWidth+"px",this.element.tabIndex=-1,this.updateScrollerSize(),this.element.addEventListener("scroll",this.handleScroll),this.element.addEventListener("mousedown",this.handleClick),this.element.addEventListener("mousemove",this.handleMouseMove),this.element.addEventListener("mouseup",this.handleMouseUp),this.element.addEventListener("dblclick",this.handleDoubleClick),this.element.addEventListener("keydown",this.handleKeydown),this.element.addEventListener("paste",a=>{this.root.selection.selectedCell&&this.root.clipboard.paste(this.root,this.root.selection.selectedCell,a)})}setSelectingMode(e){this.isSelecting=e}getViewportBoundlingRect(){const{scrollTop:e,scrollLeft:n}=this.element,{height:r,width:i}=this.element.getBoundingClientRect(),a=e+r,c=n+i;return{top:e,left:n,bottom:a,right:c}}buildComponent(){const e=document.createElement("div"),n=document.createElement("div"),r=document.createElement("div"),i=document.createElement("div"),a=document.createElement("div");return n.style.width="0px",n.style.pointerEvents="none",r.style.pointerEvents="none",i.style.display="flex",a.appendChild(n),a.appendChild(r),i.appendChild(a),this.verticalScroller=n,this.horizontalScroller=r,e.appendChild(i),e.contentEditable="false",e.classList.add(Ft+"scroller"),{scroller:e,verticalScroller:n,horizontalScroller:r}}getActualHeight(){return this.root.config.rows.reduce((e,n)=>(e+=n.height,e),0)}getActualWidth(){return this.root.config.columns.reduce((e,n)=>(e+=n.width,e),0)}updateScrollerSize(){const e=this.getActualHeight(),n=this.getActualWidth();this.setScrollerHeight(e),this.setScrollerWidth(n)}setScrollerHeight(e){this.verticalScroller.style.height=e+"px"}setScrollerWidth(e){this.horizontalScroller.style.width=e+"px"}}class Vr{constructor(e){U(this,"fontSize",16);U(this,"fontColor","black");U(this,"background","white");U(this,"borderColor","black");U(this,"selectedBackground","#4287f5");U(this,"selectedFontColor","#ffffff");e&&Object.assign(this,e)}}class Ro{constructor(e,n){U(this,"row");U(this,"column");this.row=e,this.column=n}}class No{constructor(e){U(this,"value");U(this,"displayValue");U(this,"resultValue");U(this,"position");U(this,"style");this.value=e.value,this.displayValue=e.displayValue,this.resultValue=e.resultValue,this.position=e.position,this.style=e.style}}let $n=class{constructor(e){U(this,"value");U(this,"displayValue");U(this,"resultValue");U(this,"position");U(this,"style",null);U(this,"cellsDependsOnThisCell",[]);U(this,"dependedFromCells",[]);this.value=e.value,this.displayValue=e.displayValue,this.resultValue=e.resultValue,this.position=e.position,this.style=e.style}getSerializableCell(){return new No({displayValue:this.displayValue,position:this.position,resultValue:this.resultValue,style:this.style,value:this.value})}changeStyles(e){this.style=e}changeValues(e){Object.assign(this,e)}evalFormula(e){this.value.substring(0,1)==="="&&(this.resultValue=e.parser.parse(this.value.slice(1),{col:this.position.column,row:this.position.row}))}render(e){const n=new kt(e.config,this.position);let{x:r,y:i}=n;const{height:a,width:c}=n,{ctx:h}=e;i-=e.viewport.top,r-=e.viewport.left;const p=this.style??e.styles.cells;h.clearRect(r,i,c,a),h.fillStyle=p.background,h.strokeStyle="black",h.fillRect(r,i,c-1,a-1),h.strokeRect(r,i,c,a),h.fillStyle=p.fontColor,h.textAlign="left",h.font=`${p.fontSize}px Arial`,h.textBaseline="middle",h.fillText(this.displayValue,r+2,i+a/2)}},ia=class{constructor(e){U(this,"element");U(this,"ctx");U(this,"root");this.root=e;const n=document.createElement("canvas");n.classList.add(Ft+"sheet"),n.height=this.root.config.view.height,n.width=this.root.config.view.width,n.style.width=this.root.config.view.width+"px",n.style.height=this.root.config.view.height+"px",n.style.left="0px",this.element=n;const r=this.element.getContext("2d");if(!r)throw new Error("Enable hardware acceleration");this.ctx=r}getCellByCoords(e,n){let r=0,i=0;for(;i<=n&&(i+=this.root.config.rows[r].height,!(i>=n));)r++;let a=0,c=0;for(;c<=e&&(c+=this.root.config.columns[a].width,!(c>=e));)a++;return new Ro(r,a)}renderCell(e){const{column:n,row:r}=e;this.root.data[r][n].render(this.root)}getSelectionRange(){const{selectedCell:e,selectedRange:n}=this.root.selection;if(!(!e&&!n)){if(n){const r=Math.min(n.from.row,n.to.row),i=Math.min(n.from.column,n.to.column),a=Math.max(n.from.row,n.to.row),c=Math.max(n.from.column,n.to.column),h=new kt(this.root.config,{row:r,column:i});let p=0;for(let l=i;l<=c;l++)p+=this.root.config.columns[l].width;let u=0;for(let l=r;l<=a;l++)u+=this.root.config.rows[l].height;const o=h.x-this.root.viewport.left,s=h.y-this.root.viewport.top;return{x:o,y:s,height:u,width:p}}if(!n&&e){const r=new kt(this.root.config,e);return r.x-=this.root.viewport.left,r.y-=this.root.viewport.top,r}}}renderSelectionRange(e,n,r,i){this.ctx.save(),this.ctx.strokeStyle="#7da8ff",this.ctx.lineWidth=3,this.ctx.strokeRect(e,n,r,i),this.ctx.fillStyle="#7da8ff35",this.ctx.fillRect(e,n,r,i),this.ctx.restore()}renderSelection(){const e=this.getSelectionRange();if(!e)return;const{height:n,width:r,x:i,y:a}=e;this.renderSelectionRange(i,a,r,n)}renderSheet(){const e=this.root.viewport.firstRow,n=this.root.viewport.lastCol+3,r=this.root.viewport.lastRow+3,i=this.root.viewport.firstCol;for(let a=e;a<=r;a++)for(let c=i;c<=n&&!(!this.root.config.columns[c]||!this.root.config.rows[a]);c++)this.renderCell({column:c,row:a});this.renderSelection()}};class oa{constructor(e){U(this,"element");U(this,"root");this.root=e;const n=document.createElement("div");n.classList.add(Ft+"spreadsheet_container"),this.element=n,this.changeElementSizes(this.root.viewProps)}changeElementSizes(e){const{height:n,width:r}=e;this.element.style.width=r+this.root.rowsBarWidth+"px",this.element.style.height=n+this.root.columnsBarHeight+"px"}}class sa{constructor(e){U(this,"element");U(this,"root");U(this,"height",0);this.root=e;const n=document.createElement("div");n.classList.add(Ft+"toolbar"),this.element=n}}class Ln{constructor(e){U(this,"rows");U(this,"columns");U(this,"view",{width:800,height:600});U(this,"onCellClick",null);U(this,"onSelectonChange",null);U(this,"onCellChange",null);U(this,"onCopy");this.columns=e.columns,this.rows=e.rows,this.view=e.view,this.onCellClick=e.onCellClick??null,this.onSelectonChange=e.onSelectionChange??null,this.onCellChange=e.onCellChange??null,this.onCopy=e.onCopy??null}}class Hn{constructor(){U(this,"selectedCell",null);U(this,"selectedRange",null)}}class Ao{constructor(){U(this,"cells");this.cells=new Vr}}class Ur{constructor(e,n){U(this,"root");U(this,"top");U(this,"left");U(this,"right");U(this,"bottom");U(this,"firstRow");U(this,"lastRow");U(this,"firstCol");U(this,"lastCol");this.root=e,this.top=n.top,this.left=n.left,this.right=n.right,this.bottom=n.bottom,this.firstRow=this.getFirstRow(),this.lastCol=this.getFirstRow();//!Temp -this.firstCol=this.getFirstRow();//!Temp -this.lastRow=this.getLastRow(),this.updateValues({top:0,left:0,right:this.root.viewProps.width,bottom:this.root.viewProps.height})}updateValues(e){this.top=e.top,this.left=e.left,this.right=e.right,this.bottom=e.bottom,this.firstRow=this.getFirstRow(),this.lastRow=this.getLastRow(),this.firstCol=this.getFirstCol(),this.lastCol=this.getLastCol()}getFirstRow(){return this.root.cache.getRowByYCoord(this.top)}getLastRow(){return this.root.cache.getRowByYCoord(this.bottom)}getFirstCol(){return this.root.cache.getColumnByXCoord(this.left)}getLastCol(){return this.root.cache.getColumnByXCoord(this.right)}}let Gr=class{constructor(e){U(this,"width");U(this,"title");this.width=e.width,this.title=e.title}};class $r{constructor(e){U(this,"height");U(this,"title");this.height=e.height,this.title=e.title}}function Hr(t,e,n=!1){const r=[];for(let i=0;i<=t;i++){const a=[];for(let c=0;c<=e;c++){const h=n?`${i}:${c}`:"",p=new $n({displayValue:h,resultValue:h,value:h,position:{column:c,row:i},style:null});a.push(p)}r.push(a)}return r}function yo(t,e){const n=[];for(let a=0;a<=t;a++){const c=new $r({height:40,title:String(a)});n.push(c)}const r=[];for(let a=0;a<=e;a++){const c=new Gr({title:String(a),width:150});r.push(c)}return new Ln({columns:r,rows:n,view:{height:600,width:800}})}function aa(t,e){const n=Hr(t,e),r=yo(t,e);return{data:n,config:r}}class To{constructor(e){U(this,"xPos");U(this,"colIdx");this.xPos=e.xPos,this.colIdx=e.colIdx}}class wo{constructor(e){U(this,"yPos");U(this,"rowIdx");this.yPos=e.yPos,this.rowIdx=e.rowIdx}}class Co{constructor(e){U(this,"columns");U(this,"rows");this.columns=e.columns,this.rows=e.rows}getRowByYCoord(e){let n=0;for(let r=0;r=Math.min(r.from.column,r.to.column)&&e<=Math.max(r.from.column,r.to.column):!1}renderText(e,n){const{width:r,x:i}=n;this.ctx.fillStyle="black",this.ctx.textAlign="center",this.ctx.textBaseline="middle",this.ctx.font="12px Arial",this.ctx.fillText(this.root.config.columns[e].title,i+r/2-this.root.viewport.left,0+this.height/2)}renderRect(e,n){const{width:r,x:i}=n,a=this.isColumnSelected(e);this.ctx.fillStyle=a?"#c7ebff":"white",this.ctx.strokeStyle="black",this.ctx.lineWidth=1;const c=i-this.root.viewport.left;this.ctx.fillRect(c-1,0,r,this.height),this.ctx.strokeRect(c-1,0,r,this.height)}renderSingleColumn(e){const n=new kt(this.root.config,{row:0,column:e});this.renderRect(e,n),this.renderText(e,n)}renderBar(){const e=this.root.viewport.lastCol+3,n=this.root.viewport.firstCol;this.ctx.beginPath(),this.ctx.strokeStyle="black",this.ctx.lineWidth=1,this.ctx.moveTo(0,0),this.ctx.lineTo(0,this.height),this.ctx.closePath(),this.ctx.stroke();for(let r=n;r<=e&&this.root.config.columns[r];r++)this.renderSingleColumn(r)}}class la{constructor(e){U(this,"element");U(this,"ctx");U(this,"root");U(this,"width",35);U(this,"height");U(this,"resizerHeight",1);this.root=e,this.element=this.createElement();const n=this.element.getContext("2d");if(!n)throw new Error("Enable hardware acceleration");this.ctx=n,this.height=this.root.viewProps.height}createElement(){const e=document.createElement("canvas");return e.style.position="absolute",e.style.height=this.root.viewProps.height+"px",e.style.width=this.width+"px",e.style.display="block",e.style.borderTop="1px solid black",e.width=this.width,e.height=this.root.viewProps.height,e}setElementPosition(e,n){this.element.style.top=e+"px",this.element.style.left=n+"px"}isRowSelected(e){const{selectedCell:n,selectedRange:r}=this.root.selection;return n&&n.row===e?!0:r?e>=Math.min(r.from.row,r.to.row)&&e<=Math.max(r.from.row,r.to.row):!1}renderText(e,n){const{y:r,height:i}=n;this.ctx.fillStyle="black",this.ctx.textAlign="center",this.ctx.textBaseline="middle",this.ctx.font="12px Arial",this.ctx.fillText(this.root.config.rows[e].title,this.width/2,r-this.root.viewport.top+i/2)}renderRect(e,n){const{y:r,height:i}=n,a=this.isRowSelected(e);this.ctx.fillStyle=a?"#c7ebff":"white",this.ctx.strokeStyle="black",this.ctx.lineWidth=this.resizerHeight;const c=r-this.root.viewport.top;this.ctx.fillRect(0,c-1,this.width,i),this.ctx.strokeRect(0,c-1,this.width,i)}renderSingleRow(e){const n=new kt(this.root.config,{column:0,row:e});this.renderRect(e,n),this.renderText(e,n)}renderBar(){const e=this.root.viewport.lastRow+3,n=this.root.viewport.firstRow;this.ctx.beginPath(),this.ctx.moveTo(0,0),this.ctx.strokeStyle="black",this.ctx.lineWidth=16,this.ctx.lineTo(35,0),this.ctx.closePath(),this.ctx.stroke();for(let r=n;r<=e&&this.root.config.rows[r];r++)this.renderSingleRow(r)}}class ua{constructor(e){U(this,"saved",null);U(this,"root");this.root=e}copy(e,n){const r=e.map(i=>i.map(a=>a.displayValue).join(" ")).join(` -`);this.saved=e,navigator.clipboard.writeText(r),this.root.events.dispatch({type:Ve.COPY_CELLS,data:e,dataAsString:r,range:n})}paste(e,{column:n,row:r},i){if(!this.saved){if(!i.clipboardData)return;const h=i.clipboardData.getData("text");try{const u=h.split(` -`).map(l=>l.split(" ")).map(l=>l.map(f=>{const v={displayValue:f,position:{column:n,row:r},resultValue:f,style:new Vr,value:f};return new $n(v)})),o=u.length,s=u[0]?u[0].length:0;for(let l=0;l{i[n[o]]=o});class a{constructor(){this.Types=n,this.type2Number={number:n.NUMBER,boolean:n.BOOLEAN,string:n.STRING,object:-1}}checkFunctionResult(s){if(typeof s==="number"){if(isNaN(s))return t.VALUE;if(!isFinite(s))return t.NUM}return s??t.NULL}flattenDeep(s){return s.reduce((l,f)=>Array.isArray(f)?l.concat(this.flattenDeep(f)):l.concat(f),[])}acceptNumber(s,l=!0,f=!0){if(s instanceof t)return s;let v;if(typeof s=="number")v=s;else if(typeof s=="boolean")if(f)v=Number(s);else throw t.VALUE;else if(typeof s=="string"){if(s.length===0||(v=Number(s),v!==v))throw t.VALUE}else if(Array.isArray(s))if(l)v=this.acceptNumber(s[0][0]);else if(s[0].length===1)v=this.acceptNumber(s[0][0]);else throw t.VALUE;else throw Error("Unknown type in FormulaHelpers.acceptNumber");return v}flattenParams(s,l,f,v,d=null,g=1){if(s.length{const{isCellRef:A,isRangeRef:m,isArray:N}=E,y=E.value instanceof e,R=!A&&!m&&!N&&!y,T={isLiteral:R,isCellRef:A,isRangeRef:m,isArray:N,isUnion:y};if(R)E.omitted?E=d:E=this.accept(E,l,d),v(E,T);else if(A)v(E.value,T);else if(y){if(!f)throw t.VALUE;E=E.value.data,E=this.flattenDeep(E),E.forEach(w=>{v(w,T)})}else(m||N)&&(E=this.flattenDeep(E.value),E.forEach(w=>{v(w,T)}))})}accept(s,l=null,f,v=!0,d=!1){if(Array.isArray(l)&&(l=l[0]),s==null&&f===void 0)throw t.ARG_MISSING([l]);if(s==null)return f;if(typeof s!="object"||Array.isArray(s))return s;const g=s.isArray;if(s.value!=null&&(s=s.value),l==null)return s;if(s instanceof t)throw s;if(l===n.ARRAY){if(Array.isArray(s))return v?this.flattenDeep(s):s;if(s instanceof e)throw t.VALUE;if(d)return v?[s]:[[s]];throw t.VALUE}else if(l===n.COLLECTIONS)return s;g&&(s=s[0][0]);const E=this.type(s);if(l===n.STRING)E===n.BOOLEAN?s=s?"TRUE":"FALSE":s=`${s}`;else if(l===n.BOOLEAN){if(E===n.STRING)throw t.VALUE;E===n.NUMBER&&(s=!!s)}else if(l===n.NUMBER)s=this.acceptNumber(s,!1);else if(l===n.NUMBER_NO_BOOLEAN)s=this.acceptNumber(s,!1,!1);else throw t.VALUE;return s}type(s){let l=this.type2Number[typeof s];return l===-1&&(Array.isArray(s)?l=n.ARRAY:s.ref?s.ref.from?l=n.RANGE_REF:l=n.CELL_REF:s instanceof e&&(l=n.COLLECTIONS)),l}isRangeRef(s){return s.ref&&s.ref.from}isCellRef(s){return s.ref&&!s.ref.from}retrieveRanges(s,l,f){return f=u.extend(l,f),l=this.retrieveArg(s,l),l=c.accept(l,n.ARRAY,void 0,!1,!0),f!==l?(f=this.retrieveArg(s,f),f=c.accept(f,n.ARRAY,void 0,!1,!0)):f=l,[l,f]}retrieveArg(s,l){if(l===null)return{value:0,isArray:!1,omitted:!0};const f=s.utils.extractRefValue(l);return{value:f.val,isArray:f.isArray,ref:l.ref}}}const c=new a,h={isWildCard:o=>typeof o=="string"?/[*?]/.test(o):!1,toRegex:(o,s)=>RegExp(o.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/([^~]??)[?]/g,"$1.").replace(/([^~]??)[*]/g,"$1.*").replace(/~([?*])/g,"$1"),s)},p={parse:o=>{const s=typeof o;if(s==="string"){const l=o.toUpperCase();if(l==="TRUE"||l==="FALSE")return{op:"=",value:l==="TRUE"};const f=o.match(/(<>|>=|<=|>|<|=)(.*)/);if(f){let v=f[1],d;if(isNaN(f[2])){const g=f[2].toUpperCase();if(g==="TRUE"||g==="FALSE")d=g==="TRUE";else if(/#NULL!|#DIV\/0!|#VALUE!|#NAME\?|#NUM!|#N\/A|#REF!/.test(f[2]))d=new t(f[2]);else if(d=f[2],h.isWildCard(d))return{op:"wc",value:h.toRegex(d),match:v==="="}}else d=Number(f[2]);return{op:v,value:d}}else return h.isWildCard(o)?{op:"wc",value:h.toRegex(o),match:!0}:{op:"=",value:o}}else{if(s==="boolean"||s==="number"||Array.isArray(o)||o instanceof t)return{op:"=",value:o};throw Error(`Criteria.parse: type ${typeof o} not support`)}}},u={columnNumberToName:o=>{let s=o,l="",f=0;for(;s>0;)f=(s-1)%26,l=String.fromCharCode("A".charCodeAt(0)+f)+l,s=Math.floor((s-f)/26);return l},columnNameToNumber:o=>{o=o.toUpperCase();const s=o.length;let l=0;for(let f=0;f{if(s==null)return o;let l,f;if(c.isCellRef(o))l=0,f=0;else if(c.isRangeRef(o))l=o.ref.to.row-o.ref.from.row,f=o.ref.to.col-o.ref.from.col;else throw Error("Address.extend should not reach here.");return c.isCellRef(s)?(l>0||f>0)&&(s={ref:{from:{col:s.ref.col,row:s.ref.row},to:{row:s.ref.row+l,col:s.ref.col+f}}}):(s.ref.to.row=s.ref.from.row+l,s.ref.to.col=s.ref.from.col+f),s}};return cr={FormulaHelpers:c,Types:n,ReversedTypes:i,Factorials:r,WildCard:h,Criteria:p,Address:u},cr}var lr,ui;function he(){if(ui)return lr;ui=1;class t extends Error{constructor(n,r,i){if(super(r),r==null&&i==null&&t.errorMap.has(n))return t.errorMap.get(n);r==null&&i==null?(this._error=n,t.errorMap.set(n,this)):this._error=n,this.details=i}get error(){return this._error}get name(){return this._error}equals(n){return n instanceof t&&n._error===this._error}toString(){return this._error}}return t.errorMap=new Map,t.DIV0=new t("#DIV/0!"),t.NA=new t("#N/A"),t.NAME=new t("#NAME?"),t.NULL=new t("#NULL!"),t.NUM=new t("#NUM!"),t.REF=new t("#REF!"),t.VALUE=new t("#VALUE!"),t.NOT_IMPLEMENTED=e=>new t("#NAME?",`Function ${e} is not implemented.`),t.TOO_MANY_ARGS=e=>new t("#N/A",`Function ${e} has too many arguments.`),t.ARG_MISSING=e=>{const{Types:n}=ge();return new t("#N/A",`Argument type ${e.map(r=>n[r]).join(", ")} is missing.`)},t.ERROR=(e,n)=>new t("#ERROR!",e,n),lr=t,lr}let _e=class{};_e.version="0.10.3";function Vt(t){let e="",n=t.length-1;for(;n>=0;)e+=t.charAt(n--);return e}function ke(t,e){let n="";for(;n.length=e?n:ke("0",e-n.length)+n}function ur(t,e){let n=""+t;return n.length>=e?n:ke(" ",e-n.length)+n}function hn(t,e){let n=""+t;return n.length>=e?n:n+ke(" ",e-n.length)}function da(t,e){let n=""+Math.round(t);return n.length>=e?n:ke("0",e-n.length)+n}function va(t,e){let n=""+t;return n.length>=e?n:ke("0",e-n.length)+n}const fi=Math.pow(2,32);function Gt(t,e){if(t>fi||t<-fi)return da(t,e);const n=Math.round(t);return va(n,e)}function _n(t,e){return e=e||0,t.length>=7+e&&(t.charCodeAt(e)|32)===103&&(t.charCodeAt(e+1)|32)===101&&(t.charCodeAt(e+2)|32)===110&&(t.charCodeAt(e+3)|32)===101&&(t.charCodeAt(e+4)|32)===114&&(t.charCodeAt(e+5)|32)===97&&(t.charCodeAt(e+6)|32)===108}const hi=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]],fr=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function Oo(t){t[0]="General",t[1]="0",t[2]="0.00",t[3]="#,##0",t[4]="#,##0.00",t[9]="0%",t[10]="0.00%",t[11]="0.00E+00",t[12]="# ?/?",t[13]="# ??/??",t[14]="m/d/yy",t[15]="d-mmm-yy",t[16]="d-mmm",t[17]="mmm-yy",t[18]="h:mm AM/PM",t[19]="h:mm:ss AM/PM",t[20]="h:mm",t[21]="h:mm:ss",t[22]="m/d/yy h:mm",t[37]="#,##0 ;(#,##0)",t[38]="#,##0 ;[Red](#,##0)",t[39]="#,##0.00;(#,##0.00)",t[40]="#,##0.00;[Red](#,##0.00)",t[45]="mm:ss",t[46]="[h]:mm:ss",t[47]="mmss.0",t[48]="##0.0E+0",t[49]="@",t[56]='"上午/下午 "hh"時"mm"分"ss"秒 "',t[65535]="General"}const _t={};Oo(_t);function pn(t,e,n){const r=t<0?-1:1;let i=t*r,a=0,c=1,h=0,p=1,u=0,o=0,s=Math.floor(i);for(;ue&&(u>e?(o=p,h=a):(o=u,h=c)),!n)return[0,r*h,o];const l=Math.floor(r*h/o);return[l,r*h-l*o,o]}function Zt(t,e,n){if(t>2958465||t<0)return null;let r=t|0,i=Math.floor(86400*(t-r)),a=0,c=[];const h={D:r,T:i,u:86400*(t-r)-i,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(h.u)<1e-6&&(h.u=0),e&&e.date1904&&(r+=1462),h.u>.9999&&(h.u=0,++i===86400&&(h.T=i=0,++r,++h.D)),r===60)c=n?[1317,10,29]:[1900,2,29],a=3;else if(r===0)c=n?[1317,8,29]:[1900,1,0],a=6;else{r>60&&--r;const p=new Date(1900,0,1);p.setDate(p.getDate()+r-1),c=[p.getFullYear(),p.getMonth()+1,p.getDate()],a=p.getDay(),r<60&&(a=(a+6)%7),n&&(a=ma())}return h.y=c[0],h.m=c[1],h.d=c[2],h.S=i%60,i=Math.floor(i/60),h.M=i%60,i=Math.floor(i/60),h.H=i,h.q=a,h}_e.parse_date_code=Zt;const Mo=new Date(1899,11,31,0,0,0),ga=Mo.getTime(),Ea=new Date(1900,2,1,0,0,0);function Uo(t,e){let n=t.getTime();return e?n-=1461*24*60*60*1e3:t>=Ea&&(n+=24*60*60*1e3),(n-(ga+(t.getTimezoneOffset()-Mo.getTimezoneOffset())*6e4))/(24*60*60*1e3)}function Lo(t){return t.toString(10)}_e._general_int=Lo;const _o=function(){const e=/\.(\d*[1-9])0+$/,n=/\.0*$/,r=/\.(\d*[1-9])0+/,i=/\.0*[Ee]/,a=/(E[+-])(\d)$/;function c(o){const s=o<0?12:11;let l=u(o.toFixed(12));return l.length<=s||(l=o.toPrecision(10),l.length<=s)?l:o.toExponential(5)}function h(o){let s=o.toFixed(11).replace(e,".$1");return s.length>(o<0?12:11)&&(s=o.toPrecision(6)),s}function p(o){for(let s=0;s!==o.length;++s)if((o.charCodeAt(s)|32)===101)return o.replace(r,".$1").replace(i,"E").replace("e","E").replace(a,"$10$2");return o}function u(o){return o.indexOf(".")>-1?o.replace(n,"").replace(e,".$1"):o}return function(s){let l=Math.floor(Math.log(Math.abs(s))*Math.LOG10E),f;return l>=-4&&l<=-1?f=s.toPrecision(10+l):Math.abs(l)<=9?f=c(s):l===10?f=s.toFixed(10).substr(0,12):f=h(s),u(p(f))}}();_e._general_num=_o;function Pn(t,e){switch(typeof t){case"string":return t;case"boolean":return t?"TRUE":"FALSE";case"number":return(t|0)===t?Lo(t):_o(t);case"undefined":return"";case"object":if(t==null)return"";if(t instanceof Date)return Bo(14,Uo(t,e&&e.date1904),e)}throw new Error("unsupported value in General format: "+t)}_e._general=Pn;function ma(){return 0}function Ra(t,e,n,r){let i="",a=0,c=0,h=n.y,p,u=0;switch(t){case 98:h=n.y+543;case 121:switch(e.length){case 1:case 2:p=h%100,u=2;break;default:p=h%1e4,u=4;break}break;case 109:switch(e.length){case 1:case 2:p=n.m,u=e.length;break;case 3:return fr[n.m-1][1];case 5:return fr[n.m-1][0];default:return fr[n.m-1][2]}break;case 100:switch(e.length){case 1:case 2:p=n.d,u=e.length;break;case 3:return hi[n.q][0];default:return hi[n.q][1]}break;case 104:switch(e.length){case 1:case 2:p=1+(n.H+11)%12,u=e.length;break;default:throw"bad hour format: "+e}break;case 72:switch(e.length){case 1:case 2:p=n.H,u=e.length;break;default:throw"bad hour format: "+e}break;case 77:switch(e.length){case 1:case 2:p=n.M,u=e.length;break;default:throw"bad minute format: "+e}break;case 115:if(e!=="s"&&e!=="ss"&&e!==".0"&&e!==".00"&&e!==".000")throw"bad second format: "+e;return n.u===0&&(e==="s"||e==="ss")?Xe(n.S,e.length):(r>=2?c=r===3?1e3:100:c=r===1?10:1,a=Math.round(c*(n.S+n.u)),a>=60*c&&(a=0),e==="s"?a===0?"0":""+a/c:(i=Xe(a,2+r),e==="ss"?i.substr(0,2):"."+i.substr(2,e.length-1)));case 90:switch(e){case"[h]":case"[hh]":p=n.D*24+n.H;break;case"[m]":case"[mm]":p=(n.D*24+n.H)*60+n.M;break;case"[s]":case"[ss]":p=((n.D*24+n.H)*60+n.M)*60+Math.round(n.S+n.u);break;default:throw"bad abstime format: "+e}u=e.length===3?1:2;break;case 101:p=h,u=1}return u>0?Xe(p,u):""}function Nt(t){if(t.length<=3)return t;let n=t.length%3,r=t.substr(0,n);for(;n!==t.length;n+=3)r+=(r.length>0?",":"")+t.substr(n,3);return r}const ht=function(){const e=/%/g;function n(y,R,T){const w=R.replace(e,""),C=R.length-w.length;return ht(y,w,T*Math.pow(10,2*C))+ke("%",C)}function r(y,R,T){let w=R.length-1;for(;R.charCodeAt(w-1)===44;)--w;return ht(y,R.substr(0,w),T/Math.pow(10,3*(R.length-w)))}function i(y,R){let T,w=y.indexOf("E")-y.indexOf(".")-1;if(y.match(/^#+0.0E\+0$/)){if(R===0)return"0.0E+0";if(R<0)return"-"+i(y,-R);let C=y.indexOf(".");C===-1&&(C=y.indexOf("E"));let M=Math.floor(Math.log(R)*Math.LOG10E)%C;if(M<0&&(M+=C),T=(R/Math.pow(10,M)).toPrecision(w+1+(C+M)%C),T.indexOf("e")===-1){const _=Math.floor(Math.log(R)*Math.LOG10E);for(T.indexOf(".")===-1?T=T.charAt(0)+"."+T.substr(1)+"E+"+(_-T.length+M):T+="E+"+(_-M);T.substr(0,2)==="0.";)T=T.charAt(0)+T.substr(2,C)+"."+T.substr(2+C),T=T.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.");T=T.replace(/\+-/,"-")}T=T.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(_,W,F,S){return W+F+S.substr(0,(C+M)%C)+"."+S.substr(M)+"E"})}else T=R.toExponential(w);return y.match(/E\+00$/)&&T.match(/e[+-]\d$/)&&(T=T.substr(0,T.length-1)+"0"+T.charAt(T.length-1)),y.match(/E\-/)&&T.match(/e\+/)&&(T=T.replace(/e\+/,"e")),T.replace("e","E")}const a=/# (\?+)( ?)\/( ?)(\d+)/;function c(y,R,T){const w=parseInt(y[4],10),C=Math.round(R*w),M=Math.floor(C/w);let _=C-M*w,W=w;return T+(M===0?"":""+M)+" "+(_===0?ke(" ",y[1].length+1+y[4].length):ur(_,y[1].length)+y[2]+"/"+y[3]+Xe(W,y[4].length))}function h(y,R,T){return T+(R===0?"":""+R)+ke(" ",y[1].length+2+y[4].length)}const p=/^#*0*\.([0#]+)/,u=/\).*[0#]/,o=/\(###\) ###\\?-####/;function s(y){let R="",T;for(let w=0;w!==y.length;++w)switch(T=y.charCodeAt(w)){case 35:break;case 63:R+=" ";break;case 48:R+="0";break;default:R+=String.fromCharCode(T)}return R}function l(y,R){const T=Math.pow(10,R);return""+Math.round(y*T)/T}function f(y,R){return R<(""+Math.round((y-Math.floor(y))*Math.pow(10,R))).length?0:Math.round((y-Math.floor(y))*Math.pow(10,R))}function v(y,R){return R<(""+Math.round((y-Math.floor(y))*Math.pow(10,R))).length?1:0}function d(y){return y<2147483647&&y>-2147483648?""+(y>=0?y|0:y-1|0):""+Math.floor(y)}function g(y,R,T){if(y.charCodeAt(0)===40&&!R.match(u)){const G=R.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return T>=0?g("n",G,T):"("+g("n",G,-T)+")"}if(R.charCodeAt(R.length-1)===44)return r(y,R,T);if(R.indexOf("%")!==-1)return n(y,R,T);if(R.indexOf("E")!==-1)return i(R,T);if(R.charCodeAt(0)===36)return"$"+g(y,R.substr(R.charAt(1)==" "?2:1),T);let w,C,M,_,W=Math.abs(T),F=T<0?"-":"";if(R.match(/^00+$/))return F+Gt(W,R.length);if(R.match(/^[#?]+$/))return w=Gt(T,0),w==="0"&&(w=""),w.length>R.length?w:s(R.substr(0,R.length-w.length))+w;if(C=R.match(a))return c(C,W,F);if(R.match(/^#+0+$/))return F+Gt(W,R.length-R.indexOf("0"));if(C=R.match(p))return w=l(T,C[1].length).replace(/^([^\.]+)$/,"$1."+s(C[1])).replace(/\.$/,"."+s(C[1])).replace(/\.(\d*)$/,function(G,J){return"."+J+ke("0",s(C[1]).length-J.length)}),R.indexOf("0.")!==-1?w:w.replace(/^0\./,".");if(R=R.replace(/^#+([0.])/,"$1"),C=R.match(/^(0*)\.(#*)$/))return F+l(W,C[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,C[1].length?"0.":".");if(C=R.match(/^#{1,3},##0(\.?)$/))return F+Nt(Gt(W,0));if(C=R.match(/^#,##0\.([#0]*0)$/))return T<0?"-"+g(y,R,-T):Nt(""+(Math.floor(T)+v(T,C[1].length)))+"."+Xe(f(T,C[1].length),C[1].length);if(C=R.match(/^#,#*,#0/))return g(y,R.replace(/^#,#*,/,""),T);if(C=R.match(/^([0#]+)(\\?-([0#]+))+$/))return w=Vt(g(y,R.replace(/[\\-]/g,""),T)),M=0,Vt(Vt(R.replace(/\\/g,"")).replace(/[0#]/g,function(G){return M=0?N("n",G,T):"("+N("n",G,-T)+")"}if(R.charCodeAt(R.length-1)===44)return E(y,R,T);if(R.indexOf("%")!==-1)return A(y,R,T);if(R.indexOf("E")!==-1)return m(R,T);if(R.charCodeAt(0)===36)return"$"+N(y,R.substr(R.charAt(1)==" "?2:1),T);let w,C,M,_,W=Math.abs(T),F=T<0?"-":"";if(R.match(/^00+$/))return F+Xe(W,R.length);if(R.match(/^[#?]+$/))return w=""+T,T===0&&(w=""),w.length>R.length?w:s(R.substr(0,R.length-w.length))+w;if(C=R.match(a))return h(C,W,F);if(R.match(/^#+0+$/))return F+Xe(W,R.length-R.indexOf("0"));if(C=R.match(p))return w=(""+T).replace(/^([^\.]+)$/,"$1."+s(C[1])).replace(/\.$/,"."+s(C[1])),w=w.replace(/\.(\d*)$/,function(G,J){return"."+J+ke("0",s(C[1]).length-J.length)}),R.indexOf("0.")!==-1?w:w.replace(/^0\./,".");if(R=R.replace(/^#+([0.])/,"$1"),C=R.match(/^(0*)\.(#*)$/))return F+(""+W).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,C[1].length?"0.":".");if(C=R.match(/^#{1,3},##0(\.?)$/))return F+Nt(""+W);if(C=R.match(/^#,##0\.([#0]*0)$/))return T<0?"-"+N(y,R,-T):Nt(""+T)+"."+ke("0",C[1].length);if(C=R.match(/^#,#*,#0/))return N(y,R.replace(/^#,#*,/,""),T);if(C=R.match(/^([0#]+)(\\?-([0#]+))+$/))return w=Vt(N(y,R.replace(/[\\-]/g,""),T)),M=0,Vt(Vt(R.replace(/\\/g,"")).replace(/[0#]/g,function(G){return M-1||n=="\\"&&t.charAt(e+1)=="-"&&"0#".indexOf(t.charAt(e+2))>-1););break;case"?":for(;t.charAt(++e)===n;);break;case"*":++e,(t.charAt(e)===" "||t.charAt(e)==="*")&&++e;break;case"(":case")":++e;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(;e-1;);break;case" ":++e;break;default:++e;break}return!1}_e.is_date=xo;function So(t,e,n,r){let i=[],a="",c=0,h="",p="t",u,o,s,l="H";for(;c=12?"P":"A"),w.t="T",l="h",c+=3):t.substr(c,5).toUpperCase()==="AM/PM"?(u!=null&&(w.v=u.H>=12?"PM":"AM"),w.t="T",c+=5,l="h"):(w.t="t",++c),u==null&&w.t==="T")return"";i[i.length]=w,p=h;break;case"[":for(a=h;t.charAt(c++)!=="]"&&c-1&&(a=(a.match(/\$([^-\[\]]*)/)||[])[1]||"$",xo(t)||(i[i.length]={t:"t",v:a}));break;case".":if(u!=null){for(a=h;++c-1||h=="\\"&&t.charAt(c+1)=="-"&&c-1;)a+=h;i[i.length]={t:"n",v:a};break;case"?":for(a=h;t.charAt(++c)===h;)a+=h;i[i.length]={t:h,v:a},p=h;break;case"*":++c,(t.charAt(c)===" "||t.charAt(c)==="*")&&++c;break;case"(":case")":i[i.length]={t:r===1||typeof e=="number"&&e<0?"t":h,v:h},++c;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(a=h;c-1;)a+=t.charAt(c);i[i.length]={t:"D",v:a};break;case" ":i[i.length]={t:h,v:h},++c;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(h)===-1)throw new Error("unrecognized character "+h+" in "+t);i[i.length]={t:"t",v:h},++c;break}let f=0,v=0,d;for(c=i.length-1,p="t";c>=0;--c)switch(i[c].t){case"h":case"H":i[c].t=l,p="h",f<1&&(f=1);break;case"s":(d=i[c].v.match(/\.0+$/))&&(v=Math.max(v,d[0].length-1)),f<3&&(f=3);case"d":case"y":case"M":case"e":p=i[c].t;break;case"m":p==="s"&&(i[c].t="M",f<2&&(f=2));break;case"X":break;case"Z":f<1&&i[c].v.match(/[Hh]/)&&(f=1),f<2&&i[c].v.match(/[Mm]/)&&(f=2),f<3&&i[c].v.match(/[Ss]/)&&(f=3)}switch(f){case 0:break;case 1:u.u>=.5&&(u.u=0,++u.S),u.S>=60&&(u.S=0,++u.M),u.M>=60&&(u.M=0,++u.H);break;case 2:u.u>=.5&&(u.u=0,++u.S),u.S>=60&&(u.S=0,++u.M);break}let g="",E;for(c=0;c0){g.charCodeAt(0)===40?(m=e<0&&g.charCodeAt(0)===45?-e:e,N=ht("(",g,m)):(m=e<0&&r>1?-e:e,N=ht("n",g,m),m<0&&i[0]&&i[0].t==="t"&&(N=N.substr(1),i[0].v="-"+i[0].v)),E=N.length-1;let R=i.length;for(c=0;c-1){R=c;break}let T=i.length;if(R===i.length&&N.indexOf("E")===-1){for(c=i.length-1;c>=0;--c)i[c]==null||"n?(".indexOf(i[c].t)===-1||(E>=i[c].v.length-1?(E-=i[c].v.length,i[c].v=N.substr(E+1,i[c].v.length)):E<0?i[c].v="":(i[c].v=N.substr(0,E+1),E=-1),i[c].t="t",T=c);E>=0&&T=0;--c)if(!(i[c]==null||"n?(".indexOf(i[c].t)===-1)){for(o=i[c].v.indexOf(".")>-1&&c===R?i[c].v.indexOf(".")-1:i[c].v.length-1,A=i[c].v.substr(o+1);o>=0;--o)E>=0&&(i[c].v.charAt(o)==="0"||i[c].v.charAt(o)==="#")&&(A=N.charAt(E--)+A);i[c].v=A,i[c].t="t",T=c}for(E>=0&&T-1&&c===R?i[c].v.indexOf(".")+1:0,A=i[c].v.substr(0,o);o-1&&(m=r>1&&e<0&&c>0&&i[c-1].v==="-"?-e:e,i[c].v=ht(i[c].t,i[c].v,m),i[c].t="t");let y="";for(c=0;c!==i.length;++c)i[c]!=null&&(y+=i[c].v);return y}_e._eval=So;const pi=/\[[=<>]/,di=/\[([=<>]*)(-?\d+\.?\d*)\]/;function vi(t,e){if(e==null)return!1;const n=parseFloat(e[2]);switch(e[1]){case"=":if(t===n)return!0;break;case">":if(t>n)return!0;break;case"<":if(t":if(t!==n)return!0;break;case">=":if(t>=n)return!0;break;case"<=":if(t<=n)return!0;break}return!1}function Na(t,e){let n=Po(t),r=n.length,i=n[r-1].indexOf("@");if(r<4&&i>-1&&--r,n.length>4)throw new Error("cannot find right format for |"+n.join("|")+"|");if(typeof e!="number")return[4,n.length===4||i>-1?n[n.length-1]:"@"];switch(n.length){case 1:n=i>-1?["General","General","General",n[0]]:[n[0],n[0],n[0],"@"];break;case 2:n=i>-1?[n[0],n[0],n[0],n[1]]:[n[0],n[1],n[0],"@"];break;case 3:n=i>-1?[n[0],n[1],n[0],n[2]]:[n[0],n[1],n[2],"@"];break}const a=e>0?n[0]:e<0?n[1]:n[2];if(n[0].indexOf("[")===-1&&n[1].indexOf("[")===-1)return[r,a];if(n[0].match(pi)!=null||n[1].match(pi)!=null){const c=n[0].match(di),h=n[1].match(di);return vi(e,c)?[r,n[0]]:vi(e,h)?[r,n[1]]:[r,n[c!=null&&h!=null?2:1]]}return[r,a]}function Bo(t,e,n){n==null&&(n={});let r="";switch(typeof t){case"string":t==="m/d/yy"&&n.dateNF?r=n.dateNF:r=t;break;case"number":t===14&&n.dateNF?r=n.dateNF:r=(n.table!=null?n.table:_t)[t];break}if(_n(r,0))return Pn(e,n);e instanceof Date&&(e=Uo(e,n.date1904));const i=Na(r,e);if(_n(i[1]))return Pn(e,n);if(e===!0)e="TRUE";else if(e===!1)e="FALSE";else if(e===""||e==null)return"";return So(i[1],e,n,i[0])}function Fo(t,e){if(typeof e!="number"){e=+e||-1;for(let n=0;n<392;++n){if(_t[n]===void 0){e<0&&(e=n);continue}if(_t[n]===t){e=n;break}}e<0&&(e=391)}return _t[e]=t,e}_e.load=Fo;_e._table=_t;_e.get_table=function(){return _t};_e.load_table=function(e){for(let n=0;n!==392;++n)e[n]!==void 0&&Fo(e[n],n)};_e.init_table=Oo;_e.format=Bo;var bo=_e,Do={exports:{}};(function(t){const e="ศูนย์บาทถ้วน",n=["","หนึ่ง","สอง","สาม","สี่","ห้า","หก","เจ็ด","แปด","เก้า"],r=["","สิบ","ร้อย","พัน","หมื่น","แสน","ล้าน"];function i(p){let u="";const o=p.length,s=7;if(o>s){const l=o-s+1,f=p.slice(0,l),v=p.slice(l);return i(f)+"ล้าน"+i(v)}else for(let l=0;l0&&(u+=n[f]+r[o-l-1])}return u}function a(p){let u=p;u=u.replace("หนึ่งสิบ","สิบ"),u=u.replace("สองสิบ","ยี่สิบ");const o=5;return u.length>o&&u.length-u.lastIndexOf("หนึ่ง")===o&&(u=u.substr(0,u.length-o)+"เอ็ด"),u}function c(p,u){let o="";return p===""&&u===""?o=e:p!==""&&u===""?o=p+"บาทถ้วน":p===""&&u!==""?o=u+"สตางค์":o=p+"บาท"+u+"สตางค์",o}function h(p){let u=e;if(isNaN(p)||p>=Number.MAX_SAFE_INTEGER)return u;const o=Math.floor(p).toString(),s=Math.round(p%1*100).toString(),l=Array.from(o).map(Number),f=Array.from(s).map(Number);let v=i(l),d=i(f);return v=a(v),d=a(d),u=c(v,d),u}t.exports!=null&&(t.exports=h)})(Do);var Aa=Do.exports;const Ce=he(),{FormulaHelpers:ya,Types:Y,WildCard:gi}=ge(),q=ya,hr=bo,Ta=Aa,Ei={latin:{halfRE:/[!-~]/g,fullRE:/[!-~]/g,delta:65248},hangul1:{halfRE:/[ᄀ-ᄒ]/g,fullRE:/[ᆨ-ᇂ]/g,delta:-60921},hangul2:{halfRE:/[ᅡ-ᅵ]/g,fullRE:/[ᅡ-ᅵ]/g,delta:-61025},kana:{delta:0,half:"。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚",full:"。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゛゜"},extras:{delta:0,half:"¢£¬¯¦¥₩ |←↑→↓■°",full:"¢£¬ ̄¦¥₩ │←↑→↓■○"}},wa=t=>e=>t.delta?String.fromCharCode(e.charCodeAt(0)+t.delta):[...t.full][[...t.half].indexOf(e)],Ca=t=>e=>t.delta?String.fromCharCode(e.charCodeAt(0)-t.delta):[...t.half][[...t.full].indexOf(e)],Vo=(t,e)=>t[e+"RE"]||new RegExp("["+t[e]+"]","g"),Go=Object.keys(Ei).map(t=>Ei[t]),Ia=t=>Go.reduce((e,n)=>e.replace(Vo(n,"half"),wa(n)),t),Oa=t=>Go.reduce((e,n)=>e.replace(Vo(n,"full"),Ca(n)),t),ft={ASC:t=>(t=q.accept(t,Y.STRING),Oa(t)),BAHTTEXT:t=>{t=q.accept(t,Y.NUMBER);try{return Ta(t)}catch(e){throw Error(`Error in https://github.com/jojoee/bahttext -${e.toString()}`)}},CHAR:t=>{if(t=q.accept(t,Y.NUMBER),t>255||t<1)throw Ce.VALUE;return String.fromCharCode(t)},CLEAN:t=>(t=q.accept(t,Y.STRING),t.replace(/[\x00-\x1F]/g,"")),CODE:t=>{if(t=q.accept(t,Y.STRING),t.length===0)throw Ce.VALUE;return t.charCodeAt(0)},CONCAT:(...t)=>{let e="";return q.flattenParams(t,Y.STRING,!1,n=>{n=q.accept(n,Y.STRING),e+=n}),e},CONCATENATE:(...t)=>{let e="";if(t.length===0)throw Error("CONCATENATE need at least one argument.");return t.forEach(n=>{n=q.accept(n,Y.STRING),e+=n}),e},DBCS:t=>(t=q.accept(t,Y.STRING),Ia(t)),DOLLAR:(t,e)=>{t=q.accept(t,Y.NUMBER),e=q.accept(e,Y.NUMBER,2);const n=Array(e).fill("0").join("");return hr.format(`$#,##0.${n}_);($#,##0.${n})`,t).trim()},EXACT:(t,e)=>(t=q.accept(t,[Y.STRING]),e=q.accept(e,[Y.STRING]),t===e),FIND:(t,e,n)=>{if(t=q.accept(t,Y.STRING),e=q.accept(e,Y.STRING),n=q.accept(n,Y.NUMBER,1),n<1||n>e.length)throw Ce.VALUE;const r=e.indexOf(t,n-1);if(r===-1)throw Ce.VALUE;return r+1},FINDB:(...t)=>ft.FIND(...t),FIXED:(t,e,n)=>{t=q.accept(t,Y.NUMBER),e=q.accept(e,Y.NUMBER,2),n=q.accept(n,Y.BOOLEAN,!1);const r=Array(e).fill("0").join(""),i=n?"":"#,";return hr.format(`${i}##0.${r}_);(${i}##0.${r})`,t).trim()},LEFT:(t,e)=>{if(t=q.accept(t,Y.STRING),e=q.accept(e,Y.NUMBER,1),e<0)throw Ce.VALUE;return e>t.length?t:t.slice(0,e)},LEFTB:(...t)=>ft.LEFT(...t),LEN:t=>(t=q.accept(t,Y.STRING),t.length),LENB:(...t)=>ft.LEN(...t),LOWER:t=>(t=q.accept(t,Y.STRING),t.toLowerCase()),MID:(t,e,n)=>{if(t=q.accept(t,Y.STRING),e=q.accept(e,Y.NUMBER),n=q.accept(n,Y.NUMBER),e>t.length)return"";if(e<1||n<1)throw Ce.VALUE;return t.slice(e-1,e+n-1)},MIDB:(...t)=>ft.MID(...t),NUMBERVALUE:(t,e,n)=>{if(t=q.accept(t,Y.STRING),e=q.accept(e,Y.STRING,"."),n=q.accept(n,Y.STRING,","),t.length===0)return 0;if(e.length===0||n.length===0||(e=e[0],n=n[0],e===n||t.indexOf(e)1||i&&!a||!i&&a||isNaN(h))throw Ce.VALUE;return h=h/100**c,i?-h:h},PHONETIC:()=>{},PROPER:t=>(t=q.accept(t,[Y.STRING]),t=t.toLowerCase(),t=t.charAt(0).toUpperCase()+t.slice(1),t.replace(/(?:[^a-zA-Z])([a-zA-Z])/g,e=>e.toUpperCase())),REPLACE:(t,e,n,r)=>{t=q.accept(t,[Y.STRING]),e=q.accept(e,[Y.NUMBER]),n=q.accept(n,[Y.NUMBER]),r=q.accept(r,[Y.STRING]);let i=t.split("");return i.splice(e-1,n,r),i.join("")},REPLACEB:(...t)=>ft.REPLACE(...t),REPT:(t,e)=>{t=q.accept(t,Y.STRING),e=q.accept(e,Y.NUMBER);let n="";for(let r=0;r{if(t=q.accept(t,Y.STRING),e=q.accept(e,Y.NUMBER,1),e<0)throw Ce.VALUE;const n=t.length;return e>n?t:t.slice(n-e)},RIGHTB:(...t)=>ft.RIGHT(...t),SEARCH:(t,e,n)=>{if(t=q.accept(t,Y.STRING),e=q.accept(e,Y.STRING),n=q.accept(n,Y.NUMBER,1),n<1||n>e.length)throw Ce.VALUE;let r=gi.isWildCard(t)?gi.toRegex(t,"i"):t;const i=e.slice(n-1).search(r);if(i===-1)throw Ce.VALUE;return i+n},SEARCHB:(...t)=>ft.SEARCH(...t),SUBSTITUTE:(...t)=>{},T:t=>(t=q.accept(t),typeof t=="string"?t:""),TEXT:(t,e)=>{t=q.accept(t,Y.NUMBER),e=q.accept(e,Y.STRING);try{return hr.format(e,t)}catch(n){throw console.error(n),Ce.VALUE}},TEXTJOIN:(...t)=>{},TRIM:t=>(t=q.accept(t,[Y.STRING]),t.replace(/^\s+|\s+$/g,"")),UNICHAR:t=>{if(t=q.accept(t,[Y.NUMBER]),t<=0)throw Ce.VALUE;return String.fromCharCode(t)},UNICODE:t=>ft.CODE(t)};var $o=ft;const tn=he(),{FormulaHelpers:kn}=ge(),Ma={unaryOp:(t,e,n)=>{let r=1;if(t.forEach(i=>{if(i!=="+")if(i==="-")r=-r;else throw new Error(`Unrecognized prefix: ${i}`)}),e==null&&(e=0),r===1)return e;try{e=kn.acceptNumber(e,n)}catch(i){if(i instanceof tn)Array.isArray(e)&&(e=e[0][0]);else throw i}return typeof e=="number"&&isNaN(e)?tn.VALUE:-e}},Ua={percentOp:(t,e,n)=>{try{t=kn.acceptNumber(t,n)}catch(r){if(r instanceof tn)return r;throw r}if(e==="%")return t/100;throw new Error(`Unrecognized postfix: ${e}`)}},At={boolean:3,string:2,number:1},La={compareOp:(t,e,n,r,i)=>{t==null&&(t=0),n==null&&(n=0),r&&(t=t[0][0]),i&&(n=n[0][0]);const a=typeof t,c=typeof n;if(a===c)switch(e){case"=":return t===n;case">":return t>n;case"<":return t":return t!==n;case"<=":return t<=n;case">=":return t>=n}else switch(e){case"=":return!1;case">":return At[a]>At[c];case"<":return At[a]":return!0;case"<=":return At[a]<=At[c];case">=":return At[a]>=At[c]}throw Error("Infix.compareOp: Should not reach here.")},concatOp:(t,e,n,r,i)=>{t==null&&(t=""),n==null&&(n=""),r&&(t=t[0][0]),i&&(n=n[0][0]);const a=typeof t,c=typeof n;return a==="boolean"&&(t=t?"TRUE":"FALSE"),c==="boolean"&&(n=n?"TRUE":"FALSE"),""+t+n},mathOp:(t,e,n,r,i)=>{t==null&&(t=0),n==null&&(n=0);try{t=kn.acceptNumber(t,r),n=kn.acceptNumber(n,i)}catch(a){if(a instanceof tn)return a;throw a}switch(e){case"+":return t+n;case"-":return t-n;case"*":return t*n;case"/":return n===0?tn.DIV0:t/n;case"^":return t**n}throw Error("Infix.mathOp: Should not reach here.")}};var Wr={Prefix:Ma,Postfix:Ua,Infix:La,Operators:{compareOp:["<",">","=","<>","<=",">="],concatOp:["&"],mathOp:["+","-","*","/","^"]}};const Q=he(),{FormulaHelpers:_a,Types:P,Factorials:Ho,Criteria:Pa}=ge(),{Infix:ka}=Wr,L=_a,pr=[],dr=[];function Cn(t){return t<=100?Ho[t]:pr[t]>0?pr[t]:pr[t]=Cn(t-1)*t}function Wo(t){return t===1||t===0?1:t===2?2:dr[t]>0?dr[t]:dr[t]=Wo(t-2)*t}const Pe={ABS:t=>(t=L.accept(t,P.NUMBER),Math.abs(t)),AGGREGATE:(t,e,n,...r)=>{},ARABIC:t=>{if(t=L.accept(t,P.STRING).toUpperCase(),!/^M*(?:D?C{0,3}|C[MD])(?:L?X{0,3}|X[CL])(?:V?I{0,3}|I[XV])$/.test(t))throw new Q("#VALUE!","Invalid roman numeral in ARABIC evaluation.");let e=0;return t.replace(/[MDLV]|C[MD]?|X[CL]?|I[XV]?/g,function(n){e+={M:1e3,CM:900,D:500,CD:400,C:100,XC:90,L:50,XL:40,X:10,IX:9,V:5,IV:4,I:1}[n]}),e},BASE:(t,e,n)=>{if(t=L.accept(t,P.NUMBER),t<0||t>=2**53||(e=L.accept(e,P.NUMBER),e<2||e>36)||(n=L.accept(n,P.NUMBER,0),n<0))throw Q.NUM;const r=t.toString(e).toUpperCase();return new Array(Math.max(n+1-r.length,0)).join("0")+r},CEILING:(t,e)=>{if(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER),e===0)return 0;if(t/e%1===0)return t;const n=Math.abs(e),r=Math.floor(Math.abs(t)/n);return t<0?e<0?-n*(r+1):-n*r:(r+1)*n},"CEILING.MATH":(t,e,n)=>{if(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER,t>0?1:-1),n=L.accept(n,P.NUMBER,0),t>=0)return Pe.CEILING(t,e);const r=n?e:0;return Pe.CEILING(t,e)-r},"CEILING.PRECISE":(t,e)=>(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER,1),Pe.CEILING(t,Math.abs(e))),COMBIN:(t,e)=>{if(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER),t<0||e<0||t{if(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER),(t===0||t===1)&&e===0)return 1;if(t<0||e<0)throw Q.NUM;return Pe.COMBIN(t+e-1,t-1)},DECIMAL:(t,e)=>{if(t=L.accept(t,P.STRING),e=L.accept(e,P.NUMBER),e=Math.trunc(e),e<2||e>36)throw Q.NUM;const n=parseInt(t,e);if(isNaN(n))throw Q.NUM;return n},DEGREES:t=>(t=L.accept(t,P.NUMBER),t*(180/Math.PI)),EVEN:t=>Pe.CEILING(t,-2),EXP:t=>(t=L.accept(t,P.NUMBER),Math.exp(t)),FACT:t=>{if(t=L.accept(t,P.NUMBER),t=Math.trunc(t),t>170||t<0)throw Q.NUM;return t<=100?Ho[t]:Cn(t)},FACTDOUBLE:t=>{if(t=L.accept(t,P.NUMBER),t=Math.trunc(t),t<-1)throw Q.NUM;return t===-1?1:Wo(t)},FLOOR:(t,e)=>{if(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER),e===0)return 0;if(t>0&&e<0)throw Q.NUM;if(t/e%1===0)return t;const n=Math.abs(e),r=Math.floor(Math.abs(t)/n);return t<0?e<0?-n*r:-n*(r+1):r*n},"FLOOR.MATH":(t,e,n)=>(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER,t>0?1:-1),n=L.accept(n,P.NUMBER,0),n===0||t>=0?Pe.FLOOR(t,Math.abs(e)):Pe.FLOOR(t,e)+e),"FLOOR.PRECISE":(t,e)=>(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER,1),Pe.FLOOR(t,Math.abs(e))),GCD:(...t)=>{const e=[];L.flattenParams(t,null,!1,c=>{if(c=typeof c=="boolean"?NaN:Number(c),isNaN(c))throw Q.VALUE;if(c<0||c>9007199254740990)throw Q.NUM;e.push(Math.trunc(c))},0);let n,r,i=t.length,a=Math.abs(e[0]);for(n=1;nr?a%=r:r%=a;a+=r}return a},INT:t=>(t=L.accept(t,P.NUMBER),Math.floor(t)),"ISO.CEILING":(...t)=>Pe["CEILING.PRECISE"](...t),LCM:(...t)=>{const e=[];L.flattenParams(t,null,!1,i=>{if(i=typeof i=="boolean"?NaN:Number(i),isNaN(i))throw Q.VALUE;if(i<0||i>9007199254740990)throw Q.NUM;e.push(Math.trunc(i))},1);let n=e.length,r=Math.abs(e[0]);for(let i=1;ia?r%=a:a%=r;r=Math.abs(c*e[i])/(r+a)}return r},LN:t=>(t=L.accept(t,P.NUMBER),Math.log(t)),LOG:(t,e)=>(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER,10),Math.log(t)/Math.log(e)),LOG10:t=>(t=L.accept(t,P.NUMBER),Math.log10(t)),MDETERM:t=>{if(t=L.accept(t,P.ARRAY,void 0,!1,!0),t[0].length!==t.length)throw Q.VALUE;const e=t.length,n=t[0].length;let r=0,i,a;if(e===1)return t[0][0];if(e===2)return t[0][0]*t[1][1]-t[0][1]*t[1][0];for(let c=0;c{},MMULT:(t,e)=>{t=L.accept(t,P.ARRAY,void 0,!1,!0),e=L.accept(e,P.ARRAY,void 0,!1,!0);const n=t.length,r=t[0].length,i=e.length,a=e[0].length,c=new Array(n);if(r!==i)throw Q.VALUE;for(let h=0;h{if(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER),e===0)throw Q.DIV0;return t-e*Pe.INT(t/e)},MROUND:(t,e)=>{if(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER),e===0)return 0;if(t>0&&e<0||t<0&&e>0)throw Q.NUM;return t/e%1===0?t:Math.round(t/e)*e},MULTINOMIAL:(...t)=>{let e=0,n=1;return L.flattenParams(t,P.NUMBER,!1,r=>{if(r<0)throw Q.NUM;e+=r,n*=Cn(r)}),Cn(e)/n},MUNIT:t=>{t=L.accept(t,P.NUMBER);const e=[];for(let n=0;n{if(t=L.accept(t,P.NUMBER),t===0)return 1;let e=Math.ceil(Math.abs(t));return e=e&1?e:e+1,t>0?e:-e},PI:()=>Math.PI,POWER:(t,e)=>(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER),t**e),PRODUCT:(...t)=>{let e=1;return L.flattenParams(t,null,!0,(n,r)=>{const i=Number(n);r.isLiteral&&!isNaN(i)?e*=i:typeof n=="number"&&(e*=n)},1),e},QUOTIENT:(t,e)=>(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER),Math.trunc(t/e)),RADIANS:t=>(t=L.accept(t,P.NUMBER),t/180*Math.PI),RAND:()=>Math.random(),RANDBETWEEN:(t,e)=>(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER),Math.floor(Math.random()*(e-t+1)+t)),ROMAN:(t,e)=>{if(t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER,0),e!==0)throw Error("ROMAN: only allows form=0 (classic form).");const n=String(t).split(""),r=["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM","","X","XX","XXX","XL","L","LX","LXX","LXXX","XC","","I","II","III","IV","V","VI","VII","VIII","IX"];let i="",a=3;for(;a--;)i=(r[+n.pop()+a*10]||"")+i;return new Array(+n.join("")+1).join("M")+i},ROUND:(t,e)=>{t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER);const n=Math.pow(10,Math.abs(e)),r=t>0?1:-1;return e>0?r*Math.round(Math.abs(t)*n)/n:e===0?r*Math.round(Math.abs(t)):r*Math.round(Math.abs(t)/n)*n},ROUNDDOWN:(t,e)=>{t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER);const n=Math.pow(10,Math.abs(e)),r=t>0?1:-1;if(e>0){const i=1/n*.5;return r*Math.round((Math.abs(t)-i)*n)/n}else{if(e===0)return r*Math.round(Math.abs(t)-.5);{const i=n*.5;return r*Math.round((Math.abs(t)-i)/n)*n}}},ROUNDUP:(t,e)=>{t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER);const n=Math.pow(10,Math.abs(e)),r=t>0?1:-1;if(e>0){const i=1/n*.5;return r*Math.round((Math.abs(t)+i)*n)/n}else{if(e===0)return r*Math.round(Math.abs(t)+.5);{const i=n*.5;return r*Math.round((Math.abs(t)+i)/n)*n}}},SERIESSUM:(t,e,n,r)=>{t=L.accept(t,P.NUMBER),e=L.accept(e,P.NUMBER),n=L.accept(n,P.NUMBER);let i=0,a;return L.flattenParams([r],P.NUMBER,!1,c=>{if(typeof c!="number")throw Q.VALUE;i===0?a=c*Math.pow(t,e):a+=c*Math.pow(t,e+i*n),i++}),a},SIGN:t=>(t=L.accept(t,P.NUMBER),t>0?1:t===0?0:-1),SQRT:t=>{if(t=L.accept(t,P.NUMBER),t<0)throw Q.NUM;return Math.sqrt(t)},SQRTPI:t=>{if(t=L.accept(t,P.NUMBER),t<0)throw Q.NUM;return Math.sqrt(t*Math.PI)},SUBTOTAL:()=>{},SUM:(...t)=>{let e=0;return L.flattenParams(t,P.NUMBER,!0,(n,r)=>{(r.isLiteral||typeof n=="number")&&(e+=n)}),e},SUMIF:(t,e,n,r)=>{const i=L.retrieveRanges(t,e,r);e=i[0],r=i[1],n=L.retrieveArg(t,n);const a=n.isArray;n=Pa.parse(L.accept(n));let c=0;return e.forEach((h,p)=>{h.forEach((u,o)=>{const s=r[p][o];typeof s=="number"&&(n.op==="wc"?n.match===n.value.test(u)&&(c+=s):ka.compareOp(u,n.op,n.value,Array.isArray(u),a)&&(c+=s))})}),c},SUMIFS:()=>{},SUMPRODUCT:(t,...e)=>{t=L.accept(t,P.ARRAY,void 0,!1,!0),e.forEach(r=>{if(r=L.accept(r,P.ARRAY,void 0,!1,!0),t[0].length!==r[0].length||t.length!==r.length)throw Q.VALUE;for(let i=0;i{r.forEach(i=>{n+=i})}),n},SUMSQ:(...t)=>{let e=0;return L.flattenParams(t,P.NUMBER,!0,(n,r)=>{(r.isLiteral||typeof n=="number")&&(e+=n**2)}),e},SUMX2MY2:(t,e)=>{const n=[],r=[];let i=0;if(L.flattenParams([t],null,!1,(a,c)=>{n.push(a)}),L.flattenParams([e],null,!1,(a,c)=>{r.push(a)}),n.length!==r.length)throw Q.NA;for(let a=0;a{const n=[],r=[];let i=0;if(L.flattenParams([t],null,!1,(a,c)=>{n.push(a)}),L.flattenParams([e],null,!1,(a,c)=>{r.push(a)}),n.length!==r.length)throw Q.NA;for(let a=0;a{const n=[],r=[];let i=0;if(L.flattenParams([t],null,!1,(a,c)=>{n.push(a)}),L.flattenParams([e],null,!1,(a,c)=>{r.push(a)}),n.length!==r.length)throw Q.NA;for(let a=0;a(t=L.accept(t,P.NUMBER),Math.trunc(t))};var qo=Pe;const Ie=he(),{FormulaHelpers:xa,Types:ie}=ge(),oe=xa,$t=2**27-1,Sa={ACOS:t=>{if(t=oe.accept(t,ie.NUMBER),t>1||t<-1)throw Ie.NUM;return Math.acos(t)},ACOSH:t=>{if(t=oe.accept(t,ie.NUMBER),t<1)throw Ie.NUM;return Math.acosh(t)},ACOT:t=>(t=oe.accept(t,ie.NUMBER),Math.PI/2-Math.atan(t)),ACOTH:t=>{if(t=oe.accept(t,ie.NUMBER),Math.abs(t)<=1)throw Ie.NUM;return Math.atanh(1/t)},ASIN:t=>{if(t=oe.accept(t,ie.NUMBER),t>1||t<-1)throw Ie.NUM;return Math.asin(t)},ASINH:t=>(t=oe.accept(t,ie.NUMBER),Math.asinh(t)),ATAN:t=>(t=oe.accept(t,ie.NUMBER),Math.atan(t)),ATAN2:(t,e)=>{if(t=oe.accept(t,ie.NUMBER),e=oe.accept(e,ie.NUMBER),e===0&&t===0)throw Ie.DIV0;return Math.atan2(e,t)},ATANH:t=>{if(t=oe.accept(t,ie.NUMBER),Math.abs(t)>1)throw Ie.NUM;return Math.atanh(t)},COS:t=>{if(t=oe.accept(t,ie.NUMBER),Math.abs(t)>$t)throw Ie.NUM;return Math.cos(t)},COSH:t=>(t=oe.accept(t,ie.NUMBER),Math.cosh(t)),COT:t=>{if(t=oe.accept(t,ie.NUMBER),Math.abs(t)>$t)throw Ie.NUM;if(t===0)throw Ie.DIV0;return 1/Math.tan(t)},COTH:t=>{if(t=oe.accept(t,ie.NUMBER),t===0)throw Ie.DIV0;return 1/Math.tanh(t)},CSC:t=>{if(t=oe.accept(t,ie.NUMBER),Math.abs(t)>$t)throw Ie.NUM;return 1/Math.sin(t)},CSCH:t=>{if(t=oe.accept(t,ie.NUMBER),t===0)throw Ie.DIV0;return 1/Math.sinh(t)},SEC:t=>{if(t=oe.accept(t,ie.NUMBER),Math.abs(t)>$t)throw Ie.NUM;return 1/Math.cos(t)},SECH:t=>(t=oe.accept(t,ie.NUMBER),1/Math.cosh(t)),SIN:t=>{if(t=oe.accept(t,ie.NUMBER),Math.abs(t)>$t)throw Ie.NUM;return Math.sin(t)},SINH:t=>(t=oe.accept(t,ie.NUMBER),Math.sinh(t)),TAN:t=>{if(t=oe.accept(t,ie.NUMBER),Math.abs(t)>$t)throw Ie.NUM;return Math.tan(t)},TANH:t=>(t=oe.accept(t,ie.NUMBER),Math.tanh(t))};var Ba=Sa;const yt=he(),{FormulaHelpers:Fa,Types:vr}=ge(),ze=Fa;function gr(t){let e=0,n=0;return ze.flattenParams(t,null,!0,r=>{const i=typeof r;i==="string"?r==="TRUE"?r=!0:r==="FALSE"&&(r=!1):i==="number"&&(r=!!r),typeof r=="boolean"&&(r===!0?e++:n++)}),[e,n]}const ba={AND:(...t)=>{const[e,n]=gr(t);return e===0&&n===0?yt.VALUE:e>0&&n===0},FALSE:()=>!1,IF:(t,e,n,r)=>(e=ze.accept(e,vr.BOOLEAN),n=ze.accept(n),r=ze.accept(r,null,!1),e?n:r),IFERROR:(t,e)=>t.value instanceof yt?ze.accept(e):ze.accept(t),IFNA:function(t,e){if(arguments.length>2)throw yt.TOO_MANY_ARGS("IFNA");return yt.NA.equals(t.value)?ze.accept(e):ze.accept(t)},IFS:(...t)=>{if(t.length%2!==0)return new yt("#N/A","IFS expects all arguments after position 0 to be in pairs.");for(let e=0;e(t=ze.accept(t,vr.BOOLEAN),!t),OR:(...t)=>{const[e,n]=gr(t);return e===0&&n===0?yt.VALUE:e>0},SWITCH:(...t)=>{},TRUE:()=>!0,XOR:(...t)=>{const[e,n]=gr(t);return e===0&&n===0?yt.VALUE:e%2===1}};var Da=ba,Yo={};(function(t){(function(e){e(typeof DO_NOT_EXPORT_BESSEL>"u"?t:{})})(function(e){e.version="1.0.2";var n=Math;function r(o,s){for(var l=0,f=0;lT)w=i(R,T,d(R),N(R),-1);else{for(var C=2*n.floor((T+n.floor(n.sqrt(40*T)))/2),M=!1,_=0,W=0,F=1,S=0,G=2/R,J=C;J>0;J--)S=J*G*F-_,_=F,F=S,n.abs(F)>1e10&&(F*=1e-10,_*=1e-10,w*=1e-10,W*=1e-10),M&&(W+=F),M=!M,J==T&&(w=_);W=2*W-F,w/=W}return w}}(),h=function(){var o=.636619772,s=[-2957821389,7062834065,-5123598036e-1,1087988129e-2,-86327.92757,228.4622733].reverse(),l=[40076544269,7452499648e-1,7189466438e-3,47447.2647,226.1030244,1].reverse(),f=[1,-.001098628627,2734510407e-14,-2073370639e-15,2093887211e-16].reverse(),v=[-.01562499995,.0001430488765,-6911147651e-15,7621095161e-16,-934945152e-16].reverse();function d(y){var R=0,T=0,w=0,C=y*y,M=y-.785398164;return y<8?(T=r(s,C),w=r(l,C),R=T/w+o*c(y,0)*n.log(y)):(C=64/C,T=r(f,C),w=r(v,C),R=n.sqrt(o/y)*(n.sin(M)*T+n.cos(M)*w*8/y)),R}var g=[-4900604943e3,127527439e4,-51534381390,7349264551e-1,-4237922726e-3,8511.937935].reverse(),E=[249958057e5,424441966400,3733650367,2245904002e-2,102042.605,354.9632885,1].reverse(),A=[1,.00183105,-3516396496e-14,2457520174e-15,-240337019e-15].reverse(),m=[.04687499995,-.0002002690873,8449199096e-15,-88228987e-14,105787412e-15].reverse();function N(y){var R=0,T=0,w=0,C=y*y,M=y-2.356194491;return y<8?(T=y*r(g,C),w=r(E,C),R=T/w+o*(c(y,1)*n.log(y)-1/y)):(C=64/C,T=r(A,C),w=r(m,C),R=n.sqrt(o/y)*(n.sin(M)*T+n.cos(M)*w*8/y)),R}return a(d,N,"BESSELY",1,-1)}(),p=function(){var o=[1,3.5156229,3.0899424,1.2067492,.2659732,.0360768,.0045813].reverse(),s=[.39894228,.01328592,.00225319,-.00157565,.00916281,-.02057706,.02635537,-.01647633,.00392377].reverse();function l(g){return g<=3.75?r(o,g*g/(3.75*3.75)):n.exp(n.abs(g))/n.sqrt(n.abs(g))*r(s,3.75/n.abs(g))}var f=[.5,.87890594,.51498869,.15084934,.02658733,.00301532,32411e-8].reverse(),v=[.39894228,-.03988024,-.00362018,.00163801,-.01031555,.02282967,-.02895312,.01787654,-.00420059].reverse();function d(g){return g<3.75?g*r(f,g*g/(3.75*3.75)):(g<0?-1:1)*n.exp(n.abs(g))/n.sqrt(n.abs(g))*r(v,3.75/n.abs(g))}return function g(E,A){if(A=Math.round(A),A===0)return l(E);if(A===1)return d(E);if(A<0)return NaN;if(n.abs(E)===0)return 0;if(E==1/0)return 1/0;var m=0,N,y=2/n.abs(E),R=0,T=1,w=0,C=2*n.round((A+n.round(n.sqrt(40*A)))/2);for(N=C;N>0;N--)w=N*y*T+R,R=T,T=w,n.abs(T)>1e10&&(T*=1e-10,R*=1e-10,m*=1e-10),N==A&&(m=R);return m*=g(E,0)/T,E<0&&A%2?-m:m}}(),u=function(){var o=[-.57721566,.4227842,.23069756,.0348859,.00262698,1075e-7,74e-7].reverse(),s=[1.25331414,-.07832358,.02189568,-.01062446,.00587872,-.0025154,53208e-8].reverse();function l(g){return g<=2?-n.log(g/2)*p(g,0)+r(o,g*g/4):n.exp(-g)/n.sqrt(g)*r(s,2/g)}var f=[1,.15443144,-.67278579,-.18156897,-.01919402,-.00110404,-4686e-8].reverse(),v=[1.25331414,.23498619,-.0365562,.01504268,-.00780353,.00325614,-68245e-8].reverse();function d(g){return g<=2?n.log(g/2)*p(g,1)+1/g*r(f,g*g/4):n.exp(-g)/n.sqrt(g)*r(v,2/g)}return a(l,d,"BESSELK",2,1)}();e.besselj=c,e.bessely=h,e.besseli=p,e.besselk=u})})(Yo);var Ko={exports:{}};(function(t,e){(function(n,r){t.exports=r()})(Io,function(){var n=function(r,i){var a=Array.prototype.concat,c=Array.prototype.slice,h=Object.prototype.toString;function p(A,m){var N=A>m?A:m;return r.pow(10,17-~~(r.log(N>0?N:-N)*r.LOG10E))}var u=Array.isArray||function(m){return h.call(m)==="[object Array]"};function o(A){return h.call(A)==="[object Function]"}function s(A){return typeof A=="number"?A-A===0:!1}function l(A){return a.apply([],A)}function f(){return new f._init(arguments)}f.fn=f.prototype,f._init=function(m){if(u(m[0]))if(u(m[0][0])){o(m[1])&&(m[0]=f.map(m[0],m[1]));for(var N=0;N=0;N--,R++)y[R]=[m[R][N]];return y},f.transpose=function(m){var N=[],y,R,T,w,C;for(u(m[0])||(m=[m]),R=m.length,T=m[0].length,C=0;C0&&(C[R][0]=m[R][0]),M=1;MN&&y>0)return[];if(y>0)for(T=m;TN;T+=y)R.push(T);return R},f.slice=function(){function A(N,y,R,T){var w,C=[],M=N.length;if(y===i&&R===i&&T===i)return f.copy(N);if(y=y||0,R=R||N.length,y=y>=0?y:M+y,R=R>=0?R:M+R,T=T||1,y===R||T===0)return[];if(yR&&T>0)return[];if(T>0)for(w=y;wR;w+=T)C.push(N[w]);return C}function m(N,y){var R,T;if(y=y||{},s(y.row)){if(s(y.col))return N[y.row][y.col];var w=f.rowa(N,y.row);return R=y.col||{},A(w,R.start,R.end,R.step)}if(s(y.col)){var C=f.cola(N,y.col);return T=y.row||{},A(C,T.start,T.end,T.step)}T=y.row||{},R=y.col||{};var M=A(N,T.start,T.end,T.step);return M.map(function(_){return A(_,R.start,R.end,R.step)})}return m}(),f.sliceAssign=function(m,N,y){var R,T;if(s(N.row)){if(s(N.col))return m[N.row][N.col]=y;N.col=N.col||{},N.col.start=N.col.start||0,N.col.end=N.col.end||m[0].length,N.col.step=N.col.step||1,R=f.arange(N.col.start,r.min(m.length,N.col.end),N.col.step);var w=N.row;return R.forEach(function(M,_){m[w][M]=y[_]}),m}if(s(N.col)){N.row=N.row||{},N.row.start=N.row.start||0,N.row.end=N.row.end||m.length,N.row.step=N.row.step||1,T=f.arange(N.row.start,r.min(m[0].length,N.row.end),N.row.step);var C=N.col;return T.forEach(function(M,_){m[M][C]=y[_]}),m}return y[0].length===i&&(y=[y]),N.row.start=N.row.start||0,N.row.end=N.row.end||m.length,N.row.step=N.row.step||1,N.col.start=N.col.start||0,N.col.end=N.col.end||m[0].length,N.col.step=N.col.step||1,T=f.arange(N.row.start,r.min(m.length,N.row.end),N.row.step),R=f.arange(N.col.start,r.min(m[0].length,N.col.end),N.col.step),T.forEach(function(M,_){R.forEach(function(W,F){m[M][W]=y[_][F]})}),m},f.diagonal=function(m){var N=f.zeros(m.length,m.length);return m.forEach(function(y,R){N[R][R]=y}),N},f.copy=function(m){return m.map(function(N){return s(N)?N:N.map(function(y){return y})})};var E=f.prototype;return E.length=0,E.push=Array.prototype.push,E.sort=Array.prototype.sort,E.splice=Array.prototype.splice,E.slice=Array.prototype.slice,E.toArray=function(){return this.length>1?c.call(this):c.call(this)[0]},E.map=function(m,N){return f(f.map(this,m,N))},E.cumreduce=function(m,N){return f(f.cumreduce(this,m,N))},E.alter=function(m){return f.alter(this,m),this},function(A){for(var m=0;m=0;)s+=o[l];return s},r.sumsqrd=function(o){for(var s=0,l=o.length;--l>=0;)s+=o[l]*o[l];return s},r.sumsqerr=function(o){for(var s=r.mean(o),l=0,f=o.length,v;--f>=0;)v=o[f]-s,l+=v*v;return l},r.sumrow=function(o){for(var s=0,l=o.length;--l>=0;)s+=o[l];return s},r.product=function(o){for(var s=1,l=o.length;--l>=0;)s*=o[l];return s},r.min=function(o){for(var s=o[0],l=0;++ls&&(s=o[l]);return s},r.unique=function(o){for(var s={},l=[],f=0;fv?(g=[l[E]],v=f,d=0):f===v&&(g.push(l[E]),d++),f=1);return d===0?g[0]:g},r.range=function(o){return r.max(o)-r.min(o)},r.variance=function(o,s){return r.sumsqerr(o)/(o.length-(s?1:0))},r.pooledvariance=function(o){var s=o.reduce(function(f,v){return f+r.sumsqerr(v)},0),l=o.reduce(function(f,v){return f+v.length},0);return s/(l-o.length)},r.deviation=function(u){for(var o=r.mean(u),s=u.length,l=new Array(s),f=0;f=0;f--)l.push(i.abs(o[f]-s));return r.mean(l)},r.meddev=function(o){for(var s=r.median(o),l=[],f=o.length-1;f>=0;f--)l.push(i.abs(o[f]-s));return r.median(l)},r.coeffvar=function(o){return r.stdev(o)/r.mean(o)},r.quartiles=function(o){var s=o.length,l=o.slice().sort(c);return[l[i.round(s/4)-1],l[i.round(s/2)-1],l[i.round(s*3/4)-1]]},r.quantiles=function(o,s,l,f){var v=o.slice().sort(c),d=[s.length],g=o.length,E,A,m,N,y,R;for(typeof l>"u"&&(l=3/8),typeof f>"u"&&(f=3/8),E=0;E1){for(g=l===!0?this:this.transpose();d1){for(s!=="sumrow"&&(g=l===!0?this:this.transpose());d1){for(v=v.transpose();f=0;l--)s*=p,s+=v[l];if(o=s/h+.5*i.log(u)+(h-.5)*i.log(h)-h,c<=7)for(l=1;l<=f;l++)o-=i.log(h-1),h-=1;return o},r.gammafn=function(c){var h=[-1.716185138865495,24.76565080557592,-379.80425647094563,629.3311553128184,866.9662027904133,-31451.272968848367,-36144.413418691176,66456.14382024054],p=[-30.8402300119739,315.35062697960416,-1015.1563674902192,-3107.771671572311,22538.11842098015,4755.846277527881,-134659.9598649693,-115132.2596755535],u=!1,o=0,s=0,l=0,f=c,v,d,g,E;if(c>171.6243769536076)return 1/0;if(f<=0)if(E=f%1+36e-17,E)u=(f&1?-1:1)*i.PI/i.sin(i.PI*E),f=1-f;else return 1/0;for(g=f,f<1?d=f++:d=(f-=o=(f|0)-1)-1,v=0;v<8;++v)l=(l+h[v])*d,s=s*d+p[v];if(E=l/s+1,gf)for(v=0;v=1?c:1/c)*8.5+c*.4+17),A;if(h<0||c<=0)return NaN;if(h170||h>170?i.exp(r.combinationln(c,h)):r.factorial(c)/r.factorial(h)/r.factorial(c-h)},r.combinationln=function(c,h){return r.factorialln(c)-r.factorialln(h)-r.factorialln(c-h)},r.permutation=function(c,h){return r.factorial(c)/r.factorial(c-h)},r.betafn=function(c,h){if(!(c<=0||h<=0))return c+h>170?i.exp(r.betaln(c,h)):r.gammafn(c)*r.gammafn(h)/r.gammafn(c+h)},r.betaln=function(c,h){return r.gammaln(c)+r.gammaln(h)-r.gammaln(c+h)},r.betacf=function(c,h,p){var u=1e-30,o=1,s=h+p,l=h+1,f=h-1,v=1,d=1-s*c/l,g,E,A,m;for(i.abs(d)=1)return i.max(100,h+100*i.sqrt(h));if(c<=0)return 0;for(h>1?(E=i.log(u),A=i.exp(u*(E-1)-s),g=c<.5?c:1-c,v=i.sqrt(-2*i.log(g)),l=(2.30753+v*.27061)/(1+v*(.99229+v*.04481))-v,c<.5&&(l=-l),l=i.max(.001,h*i.pow(1-1/(9*h)-l/(3*i.sqrt(h)),3))):(v=1-h*(.253+h*.12),c1?v=A*i.exp(-(l-u)+u*(i.log(l)-E)):v=i.exp(-l+u*i.log(l)-s),d=f/v,l-=v=d/(1-.5*i.min(1,d*((h-1)/l-1))),l<=0&&(l=.5*(l+v)),i.abs(v)0;p--)v=o,o=f*o-s+h[p],s=v;return d=l*i.exp(-c*c+.5*(h[0]+f*o)-s),u?d-1:1-d},r.erfc=function(c){return 1-r.erf(c)},r.erfcinv=function(c){var h=0,p,u,o,s;if(c>=2)return-100;if(c<=0)return 100;for(s=c<1?c:2-c,o=i.sqrt(-2*i.log(s/2)),p=-.70711*((2.30753+o*.27061)/(1+o*(.99229+o*.04481))-o);h<2;h++)u=r.erfc(p)-s,p+=u/(1.1283791670955126*i.exp(-p*p)-p*u);return c<1?p:-p},r.ibetainv=function(c,h,p){var u=1e-8,o=h-1,s=p-1,l=0,f,v,d,g,E,A,m,N,y,R,T;if(c<=0)return 0;if(c>=1)return 1;for(h>=1&&p>=1?(d=c<.5?c:1-c,g=i.sqrt(-2*i.log(d)),m=(2.30753+g*.27061)/(1+g*(.99229+g*.04481))-g,c<.5&&(m=-m),N=(m*m-3)/6,y=2/(1/(2*h-1)+1/(2*p-1)),R=m*i.sqrt(N+y)/y-(1/(2*p-1)-1/(2*h-1))*(N+5/6-2/(3*y)),m=h/(h+p*i.exp(2*R))):(f=i.log(h/(h+p)),v=i.log(p/(h+p)),g=i.exp(h*f)/h,E=i.exp(p*v)/p,R=g+E,c=1&&(m=.5*(m+g+1)),i.abs(g)0)break}return m},r.ibeta=function(c,h,p){var u=c===0||c===1?0:i.exp(r.gammaln(h+p)-r.gammaln(h)-r.gammaln(p)+h*i.log(c)+p*i.log(1-c));return c<0||c>1?!1:c<(h+1)/(h+p+2)?u*r.betacf(c,h,p)/h:1-u*r.betacf(1-c,p,h)/p},r.randn=function(c,h){var p,u,o,s,l;if(h||(h=c),c)return r.create(c,h,function(){return r.randn()});do p=r._random_fn(),u=1.7156*(r._random_fn()-.5),o=p-.449871,s=i.abs(u)+.386595,l=o*o+s*(.196*s-.25472*o);while(l>.27597&&(l>.27846||u*u>-4*i.log(p)*p*p));return u/p},r.randg=function(c,h,p){var u=c,o,s,l,f,v,d;if(p||(p=h),c||(c=1),h)return d=r.zeros(h,p),d.alter(function(){return r.randg(c)}),d;c<1&&(c+=1),o=c-1/3,s=1/i.sqrt(9*o);do{do v=r.randn(),f=1+s*v;while(f<=0);f=f*f*f,l=r._random_fn()}while(l>1-.331*i.pow(v,4)&&i.log(l)>.5*v*v+o*(1-f+i.log(f)));if(c==u)return o*f;do l=r._random_fn();while(l===0);return i.pow(l,1/u)*o*f},function(a){for(var c=0;c1||o<0?0:s==1&&l==1?1:s<512&&l<512?i.pow(o,s-1)*i.pow(1-o,l-1)/r.betafn(s,l):i.exp((s-1)*i.log(o)+(l-1)*i.log(1-o)-r.betaln(s,l))},cdf:function(o,s,l){return o>1||o<0?(o>1)*1:r.ibeta(o,s,l)},inv:function(o,s,l){return r.ibetainv(o,s,l)},mean:function(o,s){return o/(o+s)},median:function(o,s){return r.ibetainv(.5,o,s)},mode:function(o,s){return(o-1)/(o+s-2)},sample:function(o,s){var l=r.randg(o);return l/(l+r.randg(s))},variance:function(o,s){return o*s/(i.pow(o+s,2)*(o+s+1))}}),r.extend(r.centralF,{pdf:function(o,s,l){var f,v,d;return o<0?0:s<=2?o===0&&s<2?1/0:o===0&&s===2?1:1/r.betafn(s/2,l/2)*i.pow(s/l,s/2)*i.pow(o,s/2-1)*i.pow(1+s/l*o,-(s+l)/2):(f=s*o/(l+o*s),v=l/(l+o*s),d=s*v/2,d*r.binomial.pdf((s-2)/2,(s+l-2)/2,f))},cdf:function(o,s,l){return o<0?0:r.ibeta(s*o/(s*o+l),s/2,l/2)},inv:function(o,s,l){return l/(s*(1/r.ibetainv(o,s/2,l/2)-1))},mean:function(o,s){return s>2?s/(s-2):void 0},mode:function(o,s){return o>2?s*(o-2)/(o*(s+2)):void 0},sample:function(o,s){var l=r.randg(o/2)*2,f=r.randg(s/2)*2;return l/o/(f/s)},variance:function(o,s){if(!(s<=4))return 2*s*s*(o+s-2)/(o*(s-2)*(s-2)*(s-4))}}),r.extend(r.cauchy,{pdf:function(o,s,l){return l<0?0:l/(i.pow(o-s,2)+i.pow(l,2))/i.PI},cdf:function(o,s,l){return i.atan((o-s)/l)/i.PI+.5},inv:function(u,o,s){return o+s*i.tan(i.PI*(u-.5))},median:function(o){return o},mode:function(o){return o},sample:function(o,s){return r.randn()*i.sqrt(1/(2*r.randg(.5)))*s+o}}),r.extend(r.chisquare,{pdf:function(o,s){return o<0?0:o===0&&s===2?.5:i.exp((s/2-1)*i.log(o)-o/2-s/2*i.log(2)-r.gammaln(s/2))},cdf:function(o,s){return o<0?0:r.lowRegGamma(s/2,o/2)},inv:function(u,o){return 2*r.gammapinv(u,.5*o)},mean:function(u){return u},median:function(o){return o*i.pow(1-2/(9*o),3)},mode:function(o){return o-2>0?o-2:0},sample:function(o){return r.randg(o/2)*2},variance:function(o){return 2*o}}),r.extend(r.exponential,{pdf:function(o,s){return o<0?0:s*i.exp(-s*o)},cdf:function(o,s){return o<0?0:1-i.exp(-s*o)},inv:function(u,o){return-i.log(1-u)/o},mean:function(u){return 1/u},median:function(u){return 1/u*i.log(2)},mode:function(){return 0},sample:function(o){return-1/o*i.log(r._random_fn())},variance:function(u){return i.pow(u,-2)}}),r.extend(r.gamma,{pdf:function(o,s,l){return o<0?0:o===0&&s===1?1/l:i.exp((s-1)*i.log(o)-o/l-r.gammaln(s)-s*i.log(l))},cdf:function(o,s,l){return o<0?0:r.lowRegGamma(s,o/l)},inv:function(u,o,s){return r.gammapinv(u,o)*s},mean:function(u,o){return u*o},mode:function(o,s){if(o>1)return(o-1)*s},sample:function(o,s){return r.randg(o)*s},variance:function(o,s){return o*s*s}}),r.extend(r.invgamma,{pdf:function(o,s,l){return o<=0?0:i.exp(-(s+1)*i.log(o)-l/o-r.gammaln(s)+s*i.log(l))},cdf:function(o,s,l){return o<=0?0:1-r.lowRegGamma(s,l/o)},inv:function(u,o,s){return s/r.gammapinv(1-u,o)},mean:function(u,o){return u>1?o/(u-1):void 0},mode:function(o,s){return s/(o+1)},sample:function(o,s){return s/r.randg(o)},variance:function(o,s){if(!(o<=2))return s*s/((o-1)*(o-1)*(o-2))}}),r.extend(r.kumaraswamy,{pdf:function(o,s,l){return o===0&&s===1?l:o===1&&l===1?s:i.exp(i.log(s)+i.log(l)+(s-1)*i.log(o)+(l-1)*i.log(1-i.pow(o,s)))},cdf:function(o,s,l){return o<0?0:o>1?1:1-i.pow(1-i.pow(o,s),l)},inv:function(o,s,l){return i.pow(1-i.pow(1-o,1/l),1/s)},mean:function(u,o){return o*r.gammafn(1+1/u)*r.gammafn(o)/r.gammafn(1+1/u+o)},median:function(o,s){return i.pow(1-i.pow(2,-1/s),1/o)},mode:function(o,s){if(o>=1&&s>=1&&o!==1&&s!==1)return i.pow((o-1)/(o*s-1),1/o)},variance:function(){throw new Error("variance not yet implemented")}}),r.extend(r.lognormal,{pdf:function(o,s,l){return o<=0?0:i.exp(-i.log(o)-.5*i.log(2*i.PI)-i.log(l)-i.pow(i.log(o)-s,2)/(2*l*l))},cdf:function(o,s,l){return o<0?0:.5+.5*r.erf((i.log(o)-s)/i.sqrt(2*l*l))},inv:function(u,o,s){return i.exp(-1.4142135623730951*s*r.erfcinv(2*u)+o)},mean:function(o,s){return i.exp(o+s*s/2)},median:function(o){return i.exp(o)},mode:function(o,s){return i.exp(o-s*s)},sample:function(o,s){return i.exp(r.randn()*s+o)},variance:function(o,s){return(i.exp(s*s)-1)*i.exp(2*o+s*s)}}),r.extend(r.noncentralt,{pdf:function(o,s,l){var f=1e-14;return i.abs(l)f||E>f;)A=E,N>0&&(y*=l*l/(2*N),R*=l*l/(2*(N+1/2))),E=y*r.beta.cdf(m,N+.5,s/2)+R*r.beta.cdf(m,N+1,s/2),g+=.5*E,N++;return d?1-g:g}}),r.extend(r.normal,{pdf:function(o,s,l){return i.exp(-.5*i.log(2*i.PI)-i.log(l)-i.pow(o-s,2)/(2*l*l))},cdf:function(o,s,l){return .5*(1+r.erf((o-s)/i.sqrt(2*l*l)))},inv:function(u,o,s){return-1.4142135623730951*s*r.erfcinv(2*u)+o},mean:function(u){return u},median:function(o){return o},mode:function(u){return u},sample:function(o,s){return r.randn()*s+o},variance:function(u,o){return o*o}}),r.extend(r.pareto,{pdf:function(o,s,l){return o1e100?1e100:s,1/(i.sqrt(s)*r.betafn(.5,s/2))*i.pow(1+o*o/s,-((s+1)/2))},cdf:function(o,s){var l=s/2;return r.ibeta((o+i.sqrt(o*o+s))/(2*i.sqrt(o*o+s)),l,l)},inv:function(u,o){var s=r.ibetainv(2*i.min(u,1-u),.5*o,.5);return s=i.sqrt(o*(1-s)/s),u>.5?s:-s},mean:function(o){return o>1?0:void 0},median:function(){return 0},mode:function(){return 0},sample:function(o){return r.randn()*i.sqrt(o/(2*r.randg(o/2)))},variance:function(o){return o>2?o/(o-2):o>1?1/0:void 0}}),r.extend(r.weibull,{pdf:function(o,s,l){return o<0||s<0||l<0?0:l/s*i.pow(o/s,l-1)*i.exp(-i.pow(o/s,l))},cdf:function(o,s,l){return o<0?0:1-i.exp(-i.pow(o/s,l))},inv:function(u,o,s){return o*i.pow(-i.log(1-u),1/s)},mean:function(u,o){return u*r.gammafn(1+1/o)},median:function(o,s){return o*i.pow(i.log(2),1/s)},mode:function(o,s){return s<=1?0:o*i.pow((s-1)/s,1/s)},sample:function(o,s){return o*i.pow(-i.log(r._random_fn()),1/s)},variance:function(o,s){return o*o*r.gammafn(1+2/s)-i.pow(r.weibull.mean(o,s),2)}}),r.extend(r.uniform,{pdf:function(o,s,l){return ol?0:1/(l-s)},cdf:function(o,s,l){return ol;)A=d,m=-(o+E)*(o+s+E)*u/(o+2*E)/(o+2*E+1),f=d+m*f,v=g+m*v,E=E+1,m=E*(s-E)*u/(o+2*E-1)/(o+2*E),d=f+m*d,g=v+m*g,f=f/g,v=v/g,d=d/g,g=1;return d/o}r.extend(r.binomial,{pdf:function(o,s,l){return l===0||l===1?s*l===o?1:0:r.combination(s,o)*i.pow(l,o)*i.pow(1-l,s-o)},cdf:function(o,s,l){var f,v=1e-10;if(o<0)return 0;if(o>=s)return 1;if(l<0||l>1||s<=0)return NaN;o=i.floor(o);var d=l,g=o+1,E=s-o,A=g+E,m=i.exp(r.gammaln(A)-r.gammaln(E)-r.gammaln(g)+g*i.log(d)+E*i.log(1-d));return d<(g+1)/(A+2)?f=m*a(d,g,E,v):f=1-m*a(1-d,E,g,v),i.round((1-f)*(1/v))/(1/v)}}),r.extend(r.negbin,{pdf:function(o,s,l){return o!==o>>>0?!1:o<0?0:r.combination(o+s-1,s-1)*i.pow(1-l,o)*i.pow(l,s)},cdf:function(o,s,l){var f=0,v=0;if(o<0)return 0;for(;v<=o;v++)f+=r.negbin.pdf(v,s,l);return f}}),r.extend(r.hypgeom,{pdf:function(o,s,l,f){if(o!==o|0)return!1;if(o<0||of||o>l)return 0;if(l*2>s)return f*2>s?r.hypgeom.pdf(s-l-f+o,s,s-l,s-f):r.hypgeom.pdf(f-o,s,s-l,f);if(f*2>s)return r.hypgeom.pdf(l-o,s,l,s-f);if(l1&&d=f||o>=l)return 1;if(l*2>s)return f*2>s?r.hypgeom.cdf(s-l-f+o,s,s-l,s-f):1-r.hypgeom.cdf(f-o-1,s,s-l,f);if(f*2>s)return 1-r.hypgeom.cdf(l-o-1,s,l,s-f);if(l1&&gf);return l-1},sampleLarge:function(o){var s=o,l,f,v,d,g,E,A,m,N,y;for(d=i.sqrt(s),g=i.log(s),A=.931+2.53*d,E=-.059+.02483*A,m=1.1239+1.1328/(A-3.4),N=.9277-3.6224/(A-2);;){if(f=i.random()-.5,v=i.random(),y=.5-i.abs(f),l=i.floor((2*E/y+A)*f+s+.43),y>=.07&&v<=N)return l;if(!(l<0||y<.013&&v>y)&&i.log(v)+i.log(m)-i.log(E/(y*y)+A)<=-s+l*g-r.loggam(l+1))return l}},sample:function(o){return o<10?this.sampleSmall(o):this.sampleLarge(o)}}),r.extend(r.triangular,{pdf:function(o,s,l,f){return l<=s||fl?NaN:ol?0:ol?NaN:o<=s?0:o>=l?1:o<=f?i.pow(o-s,2)/((l-s)*(f-s)):1-i.pow(l-o,2)/((l-s)*(l-f))},inv:function(o,s,l,f){return l<=s||fl?NaN:o<=(f-s)/(l-s)?s+(l-s)*i.sqrt(o*((f-s)/(l-s))):s+(l-s)*(1-i.sqrt((1-o)*(1-(f-s)/(l-s))))},mean:function(o,s,l){return(o+s+l)/3},median:function(o,s,l){if(l<=(o+s)/2)return s-i.sqrt((s-o)*(s-l))/i.sqrt(2);if(l>(o+s)/2)return o+i.sqrt((s-o)*(l-o))/i.sqrt(2)},mode:function(o,s,l){return l},sample:function(o,s,l){var f=r._random_fn();return f<(l-o)/(s-o)?o+i.sqrt(f*(s-o)*(l-o)):s-i.sqrt((1-f)*(s-o)*(s-l))},variance:function(o,s,l){return(o*o+s*s+l*l-o*s-o*l-s*l)/18}}),r.extend(r.arcsine,{pdf:function(o,s,l){return l<=s?NaN:o<=s||o>=l?0:2/i.PI*i.pow(i.pow(l-s,2)-i.pow(2*o-s-l,2),-.5)},cdf:function(o,s,l){return o=E)return 1;var w=2*r.normal.cdf(T,0,1,1,0)-1;w>=i.exp(d/s)?w=i.pow(w,s):w=0;var C;u>A?C=m:C=N;for(var M=T,_=(E-T)/C,W=M+_,F=0,S=s-1,G=1;G<=C;G++){for(var J=0,le=.5*(W+M),nt=.5*(W-M),Ae=1;Ae<=l;Ae++){var Be,Fe;fg)break;var Et=2*r.normal.cdf(Ee,0,1,1,0),bt=2*r.normal.cdf(Ee,u,1,1,0),mt=Et*.5-bt*.5;mt>=i.exp(v/S)&&(mt=R[Be-1]*i.exp(-(.5*ue))*i.pow(mt,S),J+=mt)}J*=2*nt*s/i.sqrt(2*i.PI),F+=J,M=W,W+=_}return w+=F,w<=i.exp(v/o)?0:(w=i.pow(w,o),w>=1?1:w)}function p(u,o,s){var l=.322232421088,f=.099348462606,v=-1,d=.588581570495,g=-.342242088547,E=.531103462366,A=-.204231210125,m=.10353775285,N=-453642210148e-16,y=.0038560700634,R=.8832,T=.2368,w=1.214,C=1.208,M=1.4142,_=120,W=.5-.5*u,F=i.sqrt(i.log(1/(W*W))),S=F+((((F*N+A)*F+g)*F+v)*F+l)/((((F*y+m)*F+E)*F+d)*F+f);s<_&&(S+=(S*S*S+S)/s/4);var G=R-T*S;return s<_&&(G+=-w/s+C*S/s),S*(G*i.log(o-1)+M)}r.extend(r.tukey,{cdf:function(o,s,l){var f=1,v=s,d=16,g=8,E=-30,A=1e-14,m=100,N=800,y=5e3,R=25e3,T=1,w=.5,C=.25,M=.125,_=[.9894009349916499,.9445750230732326,.8656312023878318,.755404408355003,.6178762444026438,.45801677765722737,.2816035507792589,.09501250983763744],W=[.027152459411754096,.062253523938647894,.09515851168249279,.12462897125553388,.14959598881657674,.16915651939500254,.18260341504492358,.1894506104550685];if(o<=0)return 0;if(l<2||f<1||v<2)return NaN;if(!Number.isFinite(o))return 1;if(l>R)return h(o,f,v);var F=l*.5,S=F*i.log(l)-l*i.log(2)-r.gammaln(F),G=F-1,J=l*.25,le;l<=m?le=T:l<=N?le=w:l<=y?le=C:le=M,S+=i.log(le);for(var nt=0,Ae=1;Ae<=50;Ae++){for(var Be=0,Fe=(2*Ae-1)*le,rt=1;rt<=d;rt++){var Ee,ue;g=E){g=1&&Be<=A)break;nt+=Be}if(Be>A)throw new Error("tukey.cdf failed to converge");return nt>1&&(nt=1),nt},inv:function(u,o,s){var l=1,f=o,v=1e-4,d=50;if(s<2||l<1||f<2)return NaN;if(u<0||u>1)return NaN;if(u===0)return 0;if(u===1)return 1/0;var g=p(u,f,s),E=r.tukey.cdf(g,o,s)-u,A;E>0?A=i.max(0,g-1):A=g+1;for(var m=r.tukey.cdf(A,o,s)-u,N,y=1;ys&&(l[f-1][v-1]=u[f][v])}var d=s%2?-1:1;o+=p(l)*u[0][s]*d}return o},gauss_elimination:function(u,o){var s=0,l=0,f=u.length,v=u[0].length,d=1,g=0,E=[],A,m,N,y;for(u=r.aug(u,o),A=u[0].length,s=0;s=0;s--){for(g=0,l=s+1;l<=f-1;l++)g=g+E[l]*u[s][l];E[s]=(u[s][A-1]-g)/u[s][s]}return E},gauss_jordan:function(u,o){var s=r.aug(u,o),l=s.length,f=s[0].length,v=0,d,g,E;for(g=0;gi.abs(s[A][g])&&(A=E);var m=s[g];for(s[g]=s[A],s[A]=m,E=g+1;E=0;g--){for(v=s[g][g],E=0;Eg-1;d--)s[E][d]-=s[g][d]*s[E][g]/v;for(s[g][g]/=v,d=l;dv?(g[f][v]=u[f][v],E[f][v]=A[f][v]=0):fl;)m=R,R=r.add(r.multiply(y,m),N),f++;return R},gauss_seidel:function(u,o,s,l){for(var f=0,v=u.length,d=[],g=[],E=[],A,m,N,y,R;fA?(d[f][A]=u[f][A],g[f][A]=E[f][A]=0):fl;)m=R,R=r.add(r.multiply(y,m),N),f=f+1;return R},SOR:function(u,o,s,l,f){for(var v=0,d=u.length,g=[],E=[],A=[],m,N,y,R,T;vm?(g[v][m]=u[v][m],E[v][m]=A[v][m]=0):vl;)N=T,T=r.add(r.multiply(R,N),y),v++;return T},householder:function(u){for(var o=u.length,s=u[0].length,l=0,f=[],v=[],d,g,E,A,m;l0?-1:1,d=m*i.sqrt(d),g=i.sqrt((d*d-u[l+1][l]*d)/2),f=r.zeros(o,1),f[l+1][0]=(u[l+1][l]-d)/(2*g),E=l+2;E0?i.PI/4:-i.PI/4:N=i.atan(2*u[E][A]/(u[E][E]-u[A][A]))/2,y=r.identity(s,s),y[E][E]=i.cos(N),y[E][A]=-i.sin(N),y[A][E]=i.sin(N),y[A][A]=i.cos(N),l=r.multiply(l,y),v=r.multiply(r.multiply(r.inv(y),u),y),u=v,o=0,d=1;d.001&&(o=1)}for(d=0;d=v;)A=f(u,s+l),m=f(u,s),g[d]=(o[A]-2*o[m]+o[2*m-A])/(l*l),l/=2,d++;for(y=g.length,N=1;y!=1;){for(R=0;Rs);v++);return v-=1,o[v]+(s-u[v])*N[v]+r.sq(s-u[v])*A[v]+(s-u[v])*r.sq(s-u[v])*y[v]},gauss_quadrature:function(){throw new Error("gauss_quadrature not yet implemented")},PCA:function(u){var o=u.length,s=u[0].length,l=0,f,v,d=[],g=[],E=[],A=[],m=[],N=[],y=[],R=[],T=[],w=[];for(l=0;l2?(s=r.zscore(o[0],o[1],o[2]),o[3]===1?r.normal.cdf(-i.abs(s),0,1):r.normal.cdf(-i.abs(s),0,1)*2):(s=o[0],o[1]===1?r.normal.cdf(-i.abs(s),0,1):r.normal.cdf(-i.abs(s),0,1)*2)}}),r.extend(r.fn,{zscore:function(o,s){return(o-this.mean())/this.stdev(s)},ztest:function(o,s,l){var f=i.abs(this.zscore(o,l));return s===1?r.normal.cdf(-f,0,1):r.normal.cdf(-f,0,1)*2}}),r.extend({tscore:function(){var o=a.call(arguments);return o.length===4?(o[0]-o[1])/(o[2]/i.sqrt(o[3])):(o[0]-r.mean(o[1]))/(r.stdev(o[1],!0)/i.sqrt(o[1].length))},ttest:function(){var o=a.call(arguments),s;return o.length===5?(s=i.abs(r.tscore(o[0],o[1],o[2],o[3])),o[4]===1?r.studentt.cdf(-s,o[3]-1):r.studentt.cdf(-s,o[3]-1)*2):c(o[1])?(s=i.abs(o[0]),o[2]==1?r.studentt.cdf(-s,o[1]-1):r.studentt.cdf(-s,o[1]-1)*2):(s=i.abs(r.tscore(o[0],o[1])),o[2]==1?r.studentt.cdf(-s,o[1].length-1):r.studentt.cdf(-s,o[1].length-1)*2)}}),r.extend(r.fn,{tscore:function(o){return(o-this.mean())/(this.stdev(!0)/i.sqrt(this.cols()))},ttest:function(o,s){return s===1?1-r.studentt.cdf(i.abs(this.tscore(o)),this.cols()-1):r.studentt.cdf(-i.abs(this.tscore(o)),this.cols()-1)*2}}),r.extend({anovafscore:function(){var o=a.call(arguments),s,l,f,v,d,g,E,A;if(o.length===1){for(d=new Array(o[0].length),E=0;E1||s>1||u<=0||s<=0)throw new Error("Proportions should be greater than 0 and less than 1");var f=(u*o+s*l)/(o+l),v=i.sqrt(f*(1-f)*(1/o+1/l));return(u-s)/v}r.extend(r.fn,{oneSidedDifferenceOfProportions:function(o,s,l,f){var v=p(o,s,l,f);return r.ztest(v,1)},twoSidedDifferenceOfProportions:function(o,s,l,f){var v=p(o,s,l,f);return r.ztest(v,2)}})}(n,Math),n.models=function(){function r(p){var u=p[0].length,o=n.arange(u).map(function(s){var l=n.arange(u).filter(function(f){return f!==s});return i(n.col(p,s).map(function(f){return f[0]}),n.col(p,l))});return o}function i(p,u){var o=p.length,s=u[0].length-1,l=o-s-1,f=n.lstsq(u,p),v=n.multiply(u,f.map(function(y){return[y]})).map(function(y){return y[0]}),d=n.subtract(p,v),g=n.mean(p),E=n.sum(v.map(function(y){return Math.pow(y-g,2)})),A=n.sum(p.map(function(y,R){return Math.pow(y-v[R],2)})),m=E+A,N=E/m;return{exog:u,endog:p,nobs:o,df_model:s,df_resid:l,coef:f,predict:v,resid:d,ybar:g,SST:m,SSE:E,SSR:A,R2:N}}function a(p){var u=r(p.exog),o=Math.sqrt(p.SSR/p.df_resid),s=u.map(function(g){var E=g.SST,A=g.R2;return o/Math.sqrt(E*(1-A))}),l=p.coef.map(function(g,E){return(g-0)/s[E]}),f=l.map(function(g){var E=n.studentt.cdf(g,p.df_resid);return(E>.5?1-E:E)*2}),v=n.studentt.inv(.975,p.df_resid),d=p.coef.map(function(g,E){var A=v*s[E];return[g-A,g+A]});return{se:s,t:l,p:f,sigmaHat:o,interval95:d}}function c(p){var u=p.R2/p.df_model/((1-p.R2)/p.df_resid),o=function(l,f,v){return n.beta.cdf(l/(v/f+l),f/2,v/2)},s=1-o(u,p.df_model,p.df_resid);return{F_statistic:u,pvalue:s}}function h(p,u){var o=i(p,u),s=a(o),l=c(o),f=1-(1-o.R2)*((o.nobs-1)/o.df_resid);return o.t=s,o.f=l,o.adjust_R2=f,o}return{ols:h}}(),n.extend({buildxmatrix:function(){for(var i=new Array(arguments.length),a=0;a1){for(u=[],c=0;c{if(t=b.accept(t,H.NUMBER_NO_BOOLEAN),e=b.accept(e,H.NUMBER_NO_BOOLEAN),e=Math.trunc(e),e<0)throw D.NUM;return dn.besseli(t,e)},BESSELJ:(t,e)=>{if(t=b.accept(t,H.NUMBER_NO_BOOLEAN),e=b.accept(e,H.NUMBER_NO_BOOLEAN),e=Math.trunc(e),e<0)throw D.NUM;return dn.besselj(t,e)},BESSELK:(t,e)=>{if(t=b.accept(t,H.NUMBER_NO_BOOLEAN),e=b.accept(e,H.NUMBER_NO_BOOLEAN),e=Math.trunc(e),e<0)throw D.NUM;return dn.besselk(t,e)},BESSELY:(t,e)=>{if(t=b.accept(t,H.NUMBER_NO_BOOLEAN),e=b.accept(e,H.NUMBER_NO_BOOLEAN),e=Math.trunc(e),e<0)throw D.NUM;return dn.bessely(t,e)},BIN2DEC:t=>{t=b.accept(t,H.NUMBER_NO_BOOLEAN);let e=t.toString();if(e.length>10)throw D.NUM;return e.length===10&&e.substring(0,1)==="1"?parseInt(e.substring(1),2)+vn:parseInt(e,2)},BIN2HEX:(t,e)=>{t=b.accept(t,H.NUMBER_NO_BOOLEAN),e=b.accept(e,H.NUMBER_NO_BOOLEAN,null);const n=t.toString();if(n.length>10)throw D.NUM;if(n.length===10&&n.substring(0,1)==="1")return(parseInt(n.substring(1),2)+0xfffffffe00).toString(16).toUpperCase();const r=parseInt(t,2).toString(16);if(e==null)return r.toUpperCase();if(e<0)throw D.NUM;if(e=Math.trunc(e),e>=r.length)return(Ke.REPT("0",e-r.length)+r).toUpperCase();throw D.NUM},BIN2OCT:(t,e)=>{t=b.accept(t,H.NUMBER_NO_BOOLEAN),e=b.accept(e,H.NUMBER,null);let n=t.toString();if(n.length>10)throw D.NUM;if(n.length===10&&n.substr(0,1)==="1")return(parseInt(n.substr(1),2)+1073741312).toString(8);let r=parseInt(t,2).toString(8);if(e==null)return r.toUpperCase();if(e<0)throw D.NUM;if(e=Math.trunc(e),e>=r.length)return Ke.REPT("0",e-r.length)+r;throw D.NUM},BITAND:(t,e)=>{if(t=b.accept(t,H.NUMBER),e=b.accept(e,H.NUMBER),t<0||e<0||Math.floor(t)!==t||Math.floor(e)!==e||t>0xffffffffffff||e>0xffffffffffff)throw D.NUM;return t&e},BITLSHIFT:(t,e)=>{if(t=b.accept(t,H.NUMBER),e=b.accept(e,H.NUMBER),e=Math.trunc(e),Math.abs(e)>53||t<0||Math.floor(t)!==t||t>0xffffffffffff)throw D.NUM;const n=e>=0?t*2**e:Math.trunc(t/2**-e);if(n>0xffffffffffff)throw D.NUM;return n},BITOR:(t,e)=>{if(t=b.accept(t,H.NUMBER),e=b.accept(e,H.NUMBER),t<0||e<0||Math.floor(t)!==t||Math.floor(e)!==e||t>0xffffffffffff||e>0xffffffffffff)throw D.NUM;return t|e},BITRSHIFT:(t,e)=>(t=b.accept(t,H.NUMBER),e=b.accept(e,H.NUMBER),K.BITLSHIFT(t,-e)),BITXOR:(t,e)=>{if(t=b.accept(t,H.NUMBER),e=b.accept(e,H.NUMBER),t<0||t>0xffffffffffff||Math.floor(t)!==t||e<0||e>0xffffffffffff||Math.floor(e)!==e)throw D.NUM;return t^e},COMPLEX:(t,e,n)=>{if(t=b.accept(t,H.NUMBER_NO_BOOLEAN),e=b.accept(e,H.NUMBER_NO_BOOLEAN),n=b.accept(n,H.STRING,"i"),n!=="i"&&n!=="j")throw D.VALUE;if(t===0&&e===0)return 0;if(t===0)return e===1?n:e===-1?"-"+n:e.toString()+n;if(e===0)return t.toString();{let r=e>0?"+":"";return e===1?t.toString()+r+n:e===-1?t.toString()+r+"-"+n:t.toString()+r+e.toString()+n}},DEC2BIN:(t,e)=>{if(t=b.accept(t,H.NUMBER),e=b.accept(e,H.NUMBER,null),tEr)throw D.NUM;if(t<0)return"1"+Ke.REPT("0",9-(512+t).toString(2).length)+(512+t).toString(2);let n=parseInt(t,10).toString(2);if(e==null)return n;if(e=Math.trunc(e),e<=0||e{if(t=b.accept(t,H.NUMBER),e=b.accept(e,H.NUMBER,null),t<-549755813888||t>549755813888)throw D.NUM;if(t<0)return(1099511627776+t).toString(16).toUpperCase();let n=parseInt(t,10).toString(16);if(e==null)return n.toUpperCase();if(e=Math.trunc(e),e<=0||e{if(t=b.accept(t,H.NUMBER),e=b.accept(e,H.NUMBER,null),t<-536870912||t>536870912)throw D.NUM;if(t<0)return(t+1073741824).toString(8);let n=parseInt(t,10).toString(8);if(e==null)return n.toUpperCase();if(e=Math.trunc(e),e<=0||e(t=b.accept(t,H.NUMBER_NO_BOOLEAN),e=b.accept(e,H.NUMBER_NO_BOOLEAN,0),t===e?1:0),ERF:(t,e)=>(t=b.accept(t,H.NUMBER_NO_BOOLEAN),e=b.accept(e,H.NUMBER_NO_BOOLEAN,0),mi.erf(t)),ERFC:t=>(t=b.accept(t,H.NUMBER_NO_BOOLEAN),mi.erfc(t)),GESTEP:(t,e)=>(t=b.accept(t,H.NUMBER_NO_BOOLEAN),e=b.accept(e,H.NUMBER_NO_BOOLEAN,0),t>=e?1:0),HEX2BIN:(t,e)=>{if(t=b.accept(t,H.STRING),e=b.accept(e,H.NUMBER,null),t.length>10||!/^[0-9a-fA-F]*$/.test(t))throw D.NUM;let n=t.length===10&&t.substr(0,1).toLowerCase()==="f",r=n?parseInt(t,16)-1099511627776:parseInt(t,16);if(rEr)throw D.NUM;if(n)return"1"+Ke.REPT("0",9-(r+512).toString(2).length)+(r+512).toString(2);let i=r.toString(2);if(e==null)return i;if(e=Math.trunc(e),e<=0||e{if(t=b.accept(t,H.STRING),t.length>10||!/^[0-9a-fA-F]*$/.test(t))throw D.NUM;let e=parseInt(t,16);return e>=549755813888?e-1099511627776:e},HEX2OCT:(t,e)=>{if(t=b.accept(t,H.STRING),t.length>10||!/^[0-9a-fA-F]*$/.test(t))throw D.NUM;let n=K.HEX2DEC(t);if(n>Ga||n<$a)throw D.NUM;return K.DEC2OCT(n,e)},IMABS:t=>{const{real:e,im:n}=re(t);return Math.sqrt(Math.pow(e,2)+Math.pow(n,2))},IMAGINARY:t=>re(t).im,IMARGUMENT:t=>{const{real:e,im:n}=re(t);if(e===0&&n===0)throw D.DIV0;return e===0&&n>0?Math.PI/2:e===0&&n<0?-Math.PI/2:e<0&&n===0?Math.PI:e>0&&n===0?0:e>0?Math.atan(n/e):e<0&&n>0?Math.atan(n/e)+Math.PI:Math.atan(n/e)-Math.PI},IMCONJUGATE:t=>{const{real:e,im:n,unit:r}=re(t);return n!==0?K.COMPLEX(e,-n,r):""+e},IMCOS:t=>{const{real:e,im:n,unit:r}=re(t);let i=Math.cos(e)*(Math.exp(n)+Math.exp(-n))/2,a=-Math.sin(e)*(Math.exp(n)-Math.exp(-n))/2;return K.COMPLEX(i,a,r)},IMCOSH:t=>{const{real:e,im:n,unit:r}=re(t);let i=Math.cos(n)*(Math.exp(e)+Math.exp(-e))/2,a=-Math.sin(n)*(Math.exp(e)-Math.exp(-e))/2;return K.COMPLEX(i,-a,r)},IMCOT:t=>{t=b.accept(t);let e=K.IMCOS(t),n=K.IMSIN(t);return K.IMDIV(e,n)},IMCSC:t=>(t=b.accept(t),K.IMDIV("1",K.IMSIN(t))),IMCSCH:t=>(t=b.accept(t),K.IMDIV("1",K.IMSINH(t))),IMDIV:(t,e)=>{const n=re(t),r=n.real,i=n.im,a=n.unit,c=re(e),h=c.real,p=c.im,u=c.unit;if(h===0&&p===0||a!==u)throw D.NUM;let o=a,s=Math.pow(h,2)+Math.pow(p,2);return K.COMPLEX((r*h+i*p)/s,(i*h-r*p)/s,o)},IMEXP:t=>{const{real:e,im:n,unit:r}=re(t);let i=Math.exp(e);return K.COMPLEX(i*Math.cos(n),i*Math.sin(n),r)},IMLN:t=>{const{real:e,im:n,unit:r}=re(t);return K.COMPLEX(Math.log(Math.sqrt(Math.pow(e,2)+Math.pow(n,2))),Math.atan(n/e),r)},IMLOG10:t=>{const{real:e,im:n,unit:r}=re(t);let i=Math.log(Math.sqrt(Math.pow(e,2)+Math.pow(n,2)))/Math.log(10),a=Math.atan(n/e)/Math.log(10);return K.COMPLEX(i,a,r)},IMLOG2:t=>{const{real:e,im:n,unit:r}=re(t);let i=Math.log(Math.sqrt(Math.pow(e,2)+Math.pow(n,2)))/Math.log(2),a=Math.atan(n/e)/Math.log(2);return K.COMPLEX(i,a,r)},IMPOWER:(t,e)=>{let{unit:n}=re(t);e=b.accept(e,H.NUMBER_NO_BOOLEAN);let r=Math.pow(K.IMABS(t),e),i=K.IMARGUMENT(t),a=r*Math.cos(e*i),c=r*Math.sin(e*i);return K.COMPLEX(a,c,n)},IMPRODUCT:(...t)=>{let e,n=0;return b.flattenParams(t,null,!1,r=>{if(n===0)e=b.accept(r),re(e);else{const i=re(e),a=i.real,c=i.im,h=i.unit,p=re(r),u=p.real,o=p.im,s=p.unit;if(h!==s)throw D.VALUE;e=K.COMPLEX(a*u-c*o,a*o+c*u)}n++},1),e},IMREAL:t=>re(t).real,IMSEC:t=>K.IMDIV("1",K.IMCOS(t)),IMSECH:t=>K.IMDIV("1",K.IMCOSH(t)),IMSIN:t=>{const{real:e,im:n,unit:r}=re(t);let i=Math.sin(e)*(Math.exp(n)+Math.exp(-n))/2,a=Math.cos(e)*(Math.exp(n)-Math.exp(-n))/2;return K.COMPLEX(i,a,r)},IMSINH:t=>{const{real:e,im:n,unit:r}=re(t);let i=Math.cos(n)*(Math.exp(e)-Math.exp(-e))/2,a=Math.sin(n)*(Math.exp(e)+Math.exp(-e))/2;return K.COMPLEX(i,a,r)},IMSQRT:t=>{const{unit:e}=re(t);let n=Math.sqrt(K.IMABS(t)),r=K.IMARGUMENT(t);return K.COMPLEX(n*Math.cos(r/2),n*Math.sin(r/2),e)},IMSUB:(t,e)=>{const n=re(t),r=n.real,i=n.im,a=n.unit,c=re(e),h=c.real,p=c.im,u=c.unit;if(a!==u)throw D.VALUE;return K.COMPLEX(r-h,i-p,a)},IMSUM:(...t)=>{let e=0,n=0,r;return b.flattenParams(t,null,!1,i=>{const{real:a,im:c,unit:h}=re(i);if(r||(r=h),r!==h)throw D.VALUE;e+=a,n+=c}),K.COMPLEX(e,n,r)},IMTAN:t=>{const{unit:e}=re(t);return K.IMDIV(K.IMSIN(t),K.IMCOS(t),e)},OCT2BIN:(t,e)=>{if(t=b.accept(t,H.STRING),e=b.accept(e,H.NUMBER,null),t.length>10||e>10||e!==null&&e<0)throw D.NUM;e=Math.trunc(e);let n=t.length===10&&t.substring(0,1)==="7",r=K.OCT2DEC(t);if(rEr)return D.NUM;if(n)return"1"+Ke.REPT("0",9-(512+r).toString(2).length)+(512+r).toString(2);let i=r.toString(2);if(e===0)return i;if(e{if(t=b.accept(t,H.STRING),t.length>10)throw D.NUM;for(const n of t)if(n<"0"||n>"7")throw D.NUM;let e=parseInt(t,8);return e>=536870912?e-1073741824:e},OCT2HEX:(t,e)=>{if(t=b.accept(t,H.STRING),e=b.accept(e,H.NUMBER_NO_BOOLEAN,null),t.length>10)throw D.NUM;for(const i of t)if(i<"0"||i>"7")throw D.NUM;if(e=Math.trunc(e),e<0||e>10)throw D.NUM;let n=K.OCT2DEC(t),r=K.DEC2HEX(n);if(e===0)return r;if(e{if(t=X.accept(t,Oe.NUMBER),e=X.accept(e,Oe.NUMBER),n=X.accept(n,Oe.NUMBER,1),r=X.accept(r,Oe.BOOLEAN,!0),i=X.accept(i,Oe.STRING,""),t<1||e<1||n<1||n>4)throw te.VALUE;let a="";return i.length>0&&(/[^A-Za-z_.\d\u007F-\uFFFF]/.test(i)?a+=`'${i}'!`:a+=i+"!"),r?(a+=n===1||n===3?"$":"",a+=za.columnNumberToName(e),a+=n===1||n===2?"$":"",a+=t):(a+="R",a+=n===4||n===3?`[${t}]`:t,a+="C",a+=n===4||n===2?`[${e}]`:e),a},AREAS:t=>(t=X.accept(t),t instanceof Ri?t.length:1),CHOOSE:(t,...e)=>{},COLUMN:(t,e)=>{if(e==null){if(t.position.col!=null)return t.position.col;throw Error("FormulaParser.parse is called without position parameter.")}else{if(typeof e!="object"||Array.isArray(e))throw te.VALUE;if(X.isCellRef(e))return e.ref.col;if(X.isRangeRef(e))return e.ref.from.col;throw Error("ReferenceFunctions.COLUMN should not reach here.")}},COLUMNS:(t,e)=>{if(e==null)throw Error("COLUMNS requires one argument");if(typeof e!="object"||Array.isArray(e))throw te.VALUE;if(X.isCellRef(e))return 1;if(X.isRangeRef(e))return Math.abs(e.ref.from.col-e.ref.to.col)+1;throw Error("ReferenceFunctions.COLUMNS should not reach here.")},HLOOKUP:(t,e,n,r)=>{t=X.accept(t);try{e=X.accept(e,Oe.ARRAY,void 0,!1)}catch(a){throw a instanceof te?te.NA:a}if(n=X.accept(n,Oe.NUMBER),r=X.accept(r,Oe.BOOLEAN,!0),n<1)throw te.VALUE;if(e[n-1]===void 0)throw te.REF;const i=typeof t;if(r){let a=i===typeof e[0][0]?e[0][0]:null;for(let c=1;ct&&h>t)throw te.NA;if(h===t)return e[n-1][c];if(a!=null&&h>t&&a<=t)return e[n-1][c-1];a=h}}if(a==null)throw te.NA;return a}else{let a=-1;if(gn.isWildCard(t)?a=e[0].findIndex(c=>gn.toRegex(t,"i").test(c)):a=e[0].findIndex(c=>c===t),a===-1)throw te.NA;return e[n-1][a]}},INDEX:(t,e,n,r,i)=>{n=t.utils.extractRefValue(n),n={value:n.val,isArray:n.isArray},n=X.accept(n,Oe.NUMBER),n=Math.trunc(n),r==null?r=1:(r=t.utils.extractRefValue(r),r={value:r.val,isArray:r.isArray},r=X.accept(r,Oe.NUMBER,1),r=Math.trunc(r)),i==null?i=1:(i=t.utils.extractRefValue(i),i={value:i.val,isArray:i.isArray},i=X.accept(i,Oe.NUMBER,1),i=Math.trunc(i));let a=e;if(e instanceof Ri)a=e.refs[i-1];else if(i>1)throw te.REF;if(n===0&&r===0)return a;if(n===0){if(X.isRangeRef(a)){if(a.ref.to.col-a.ref.from.colc.push([h[r-1]])),c}}if(r===0){if(X.isRangeRef(a)){if(a.ref.to.row-a.ref.from.row1||r>1)throw te.REF;return{ref:{row:a.row+n-1,col:a.col+r-1}}}else if(Array.isArray(a)){if(a.length{},ROW:(t,e)=>{if(e==null){if(t.position.row!=null)return t.position.row;throw Error("FormulaParser.parse is called without position parameter.")}else{if(typeof e!="object"||Array.isArray(e))throw te.VALUE;if(X.isCellRef(e))return e.ref.row;if(X.isRangeRef(e))return e.ref.from.row;throw Error("ReferenceFunctions.ROW should not reach here.")}},ROWS:(t,e)=>{if(e==null)throw Error("ROWS requires one argument");if(typeof e!="object"||Array.isArray(e))throw te.VALUE;if(X.isCellRef(e))return 1;if(X.isRangeRef(e))return Math.abs(e.ref.from.row-e.ref.to.row)+1;throw Error("ReferenceFunctions.ROWS should not reach here.")},TRANSPOSE:t=>{t=X.accept(t,Oe.ARRAY,void 0,!1);const e=[];for(let n=0;n{t=X.accept(t);try{e=X.accept(e,Oe.ARRAY,void 0,!1)}catch(a){throw a instanceof te?te.NA:a}if(n=X.accept(n,Oe.NUMBER),r=X.accept(r,Oe.BOOLEAN,!0),n<1)throw te.VALUE;if(e[0][n-1]===void 0)throw te.REF;const i=typeof t;if(r){let a=i===typeof e[0][0]?e[0][0]:null;for(let c=1;ct&&p>t)throw te.NA;if(p===t)return h[n-1];if(a!=null&&p>t&&a<=t)return e[c-1][n-1];a=p}}if(a==null)throw te.NA;return a}else{let a=-1;if(gn.isWildCard(t)?a=e.findIndex(c=>gn.toRegex(t,"i").test(c[0])):a=e.findIndex(c=>c[0]===t),a===-1)throw te.NA;return e[a][n-1]}}};var Qa=Xa;const lt=he(),{FormulaHelpers:Za,Types:Ja}=ge(),me=Za,ja={"#NULL!":1,"#DIV/0!":2,"#VALUE!":3,"#REF!":4,"#NAME?":5,"#NUM!":6,"#N/A":7},ec={CELL:(t,e)=>{},"ERROR.TYPE":t=>{if(t=me.accept(t),t instanceof lt)return ja[t.toString()];throw lt.NA},INFO:()=>{},ISBLANK:t=>t.ref?t.value==null||t.value==="":!1,ISERR:t=>(t=me.accept(t),t instanceof lt&&t.toString()!=="#N/A"),ISERROR:t=>(t=me.accept(t),t instanceof lt),ISEVEN:t=>(t=me.accept(t,Ja.NUMBER),t=Math.trunc(t),t%2===0),ISLOGICAL:t=>(t=me.accept(t),typeof t=="boolean"),ISNA:t=>(t=me.accept(t),t instanceof lt&&t.toString()==="#N/A"),ISNONTEXT:t=>(t=me.accept(t),typeof t!="string"),ISNUMBER:t=>(t=me.accept(t),typeof t=="number"),ISREF:t=>!t.ref||me.isCellRef(t)&&(t.ref.row>1048576||t.ref.col>16384)||me.isRangeRef(t)&&(t.ref.from.row>1048576||t.ref.from.col>16384||t.ref.to.row>1048576||t.ref.to.col>16384)?!1:(t=me.accept(t),!(t instanceof lt&&t.toString()==="#REF!")),ISTEXT:t=>(t=me.accept(t),typeof t=="string"),N:t=>{t=me.accept(t);const e=typeof t;if(e==="number")return t;if(e==="boolean")return Number(t);if(t instanceof lt)throw t;return 0},NA:()=>{throw lt.NA},TYPE:t=>{if(t.ref){if(me.isRangeRef(t))return 16;if(me.isCellRef(t)&&(t=me.accept(t),typeof t=="string"&&t.length===0))return 1}t=me.accept(t);const e=typeof t;if(e==="number")return 1;if(e==="string")return 2;if(e==="boolean")return 4;if(t instanceof lt)return 16;if(Array.isArray(t))return 64}};var tc=ec;const k=he(),{FormulaHelpers:nc,Types:I}=ge(),O=nc,B=zo,En=qo,rc=2.5066282746310002,Xo={"BETA.DIST":(t,e,n,r,i,a)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.NUMBER),r=O.accept(r,I.BOOLEAN),i=O.accept(i,I.NUMBER,0),a=O.accept(a,I.NUMBER,1),e<=0||n<=0||ta||i===a)throw k.NUM;return t=(t-i)/(a-i),r?B.beta.cdf(t,e,n):B.beta.pdf(t,e,n)/(a-i)},"BETA.INV":(t,e,n,r,i)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.NUMBER),r=O.accept(r,I.NUMBER,0),i=O.accept(i,I.NUMBER,1),e<=0||n<=0||t<=0||t>1)throw k.NUM;return B.beta.inv(t,e,n)*(i-r)+r},"BINOM.DIST":(t,e,n,r)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.NUMBER),r=O.accept(r,I.BOOLEAN),e<0||n<0||n>1||t<0||t>e)throw k.NUM;return r?B.binomial.cdf(t,e,n):B.binomial.pdf(t,e,n)},"BINOM.DIST.RANGE":(t,e,n,r)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.NUMBER),r=O.accept(r,I.NUMBER,n),t<0||e<0||e>1||n<0||n>t||rt)throw k.NUM;let i=0;for(let a=n;a<=r;a++)i+=En.COMBIN(t,a)*Math.pow(e,a)*Math.pow(1-e,t-a);return i},"BINOM.INV":(t,e,n)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.NUMBER),t<0||e<0||e>1||n<0||n>1)throw k.NUM;let r=0;for(;r<=t;){if(B.binomial.cdf(r,t,e)>=n)return r;r++}},"CHISQ.DIST":(t,e,n)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.NUMBER),e=Math.trunc(e),t<0||e<1||e>10**10)throw k.NUM;return n?B.chisquare.cdf(t,e):B.chisquare.pdf(t,e)},"CHISQ.DIST.RT":(t,e)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),e=Math.trunc(e),t<0||e<1||e>10**10)throw k.NUM;return 1-B.chisquare.cdf(t,e)},"CHISQ.INV":(t,e)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),e=Math.trunc(e),t<0||t>1||e<1||e>10**10)throw k.NUM;return B.chisquare.inv(t,e)},"CHISQ.INV.RT":(t,e)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),e=Math.trunc(e),t<0||t>1||e<1||e>10**10)throw k.NUM;return B.chisquare.inv(1-t,e)},"CHISQ.TEST":(t,e)=>{const n=O.accept(t,I.ARRAY,void 0,!1,!1),r=O.accept(e,I.ARRAY,void 0,!1,!1);if(n.length!==r.length||n[0].length!==r[0].length||n.length===1&&n[0].length===1)throw k.NA;const i=n.length,a=n[0].length;let c=(i-1)*(a-1);i===1?c=a-1:c=i-1;let h=0;for(let l=0;l=2;)p=p*h/u,u=u-2;let o=p,s=c;for(;o>1e-15*p;)s=s+2,o=o*h/s,p=p+o;return 1-p},"CONFIDENCE.NORM":(t,e,n)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.NUMBER),n=Math.trunc(n),t<=0||t>=1||e<=0||n<1)throw k.NUM;return B.normalci(1,t,e,n)[1]-1},"CONFIDENCE.T":(t,e,n)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.NUMBER),n=Math.trunc(n),t<=0||t>=1||e<=0||n<1)throw k.NUM;if(n===1)throw k.DIV0;return B.tci(1,t,e,n)[1]-1},CORREL:(t,e)=>{if(t=O.accept(t,I.ARRAY,void 0,!0,!0),e=O.accept(e,I.ARRAY,void 0,!0,!0),t.length!==e.length)throw k.NA;const n=[],r=[];for(let i=0;i{if(t=O.accept(t,I.ARRAY,void 0,!0,!0),e=O.accept(e,I.ARRAY,void 0,!0,!0),t.length!==e.length)throw k.NA;const n=[],r=[];for(let h=0;h{if(t=O.accept(t,I.ARRAY,void 0,!0,!0),e=O.accept(e,I.ARRAY,void 0,!0,!0),t.length!==e.length)throw k.NA;const n=[],r=[];for(let i=0;i{let e=0,n=[];O.flattenParams(t,I.NUMBER,!0,(i,a)=>{typeof i=="number"&&(e+=i,n.push(i))});const r=e/n.length;e=0;for(let i=0;i{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.BOOLEAN),t<0||e<=0)throw k.NUM;return n?B.exponential.cdf(t,e):B.exponential.pdf(t,e)},"F.DIST":(t,e,n,r)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.NUMBER),r=O.accept(r,I.BOOLEAN),t<0||e<1||n<1)throw k.NUM;return e=Math.trunc(e),n=Math.trunc(n),r?B.centralF.cdf(t,e,n):B.centralF.pdf(t,e,n)},"F.DIST.RT":(t,e,n)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.NUMBER),t<0||e<1||n<1)throw k.NUM;return e=Math.trunc(e),n=Math.trunc(n),1-B.centralF.cdf(t,e,n)},"F.INV":(t,e,n)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.NUMBER),t<0||t>1||e<1||n<1)throw k.NUM;return e=Math.trunc(e),n=Math.trunc(n),B.centralF.inv(t,e,n)},"F.INV.RT":(t,e,n)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.NUMBER),t<0||t>1||e<1||e>=Math.pow(10,10)||n<1||n>=Math.pow(10,10))throw k.NUM;return e=Math.trunc(e),n=Math.trunc(n),B.centralF.inv(1-t,e,n)},"F.TEST":(t,e)=>{t=O.accept(t,I.ARRAY,void 0,!0,!0),e=O.accept(e,I.ARRAY,void 0,!0,!0);const n=[],r=[];let i=0,a=0;for(let p=0;p{if(t=O.accept(t,I.NUMBER),t<=-1||t>=1)throw k.NUM;return Math.log((1+t)/(1-t))/2},FISHERINV:t=>{t=O.accept(t,I.NUMBER);let e=Math.exp(2*t);return(e-1)/(e+1)},FORECAST:(t,e,n)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.ARRAY,void 0,!0,!0),n=O.accept(n,I.ARRAY,void 0,!0,!0),n.length!==e.length)throw k.NA;const r=[],i=[];let a=!0;for(let l=0;l{},"FORECAST.ETS.CONFINT":()=>{},"FORECAST.ETS.SEASONALITY":()=>{},"FORECAST.ETS.STAT":()=>{},"FORECAST.LINEAR":(...t)=>Xo.FORECAST(...t),FREQUENCY:(t,e)=>{t=O.accept(t,I.ARRAY,void 0,!0,!0),e=O.accept(e,I.ARRAY,void 0,!0,!0);const n=[];for(let i=0;i{if(t=O.accept(t,I.NUMBER),t===0||t<0&&t===Math.trunc(t))throw k.NUM;return B.gammafn(t)},"GAMMA.DIST":(t,e,n,r)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.NUMBER),r=O.accept(r,I.BOOLEAN),t<0||e<=0||n<=0)throw k.NUM;return r?B.gamma.cdf(t,e,n,!0):B.gamma.pdf(t,e,n,!1)},"GAMMA.INV":(t,e,n)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.NUMBER),t<0||t>1||e<=0||n<=0)throw k.NUM;return B.gamma.inv(t,e,n)},GAMMALN:t=>{if(t=O.accept(t,I.NUMBER),t<=0)throw k.NUM;return B.gammaln(t)},"GAMMALN.PRECISE":t=>{if(t=O.accept(t,I.NUMBER),t<=0)throw k.NUM;return B.gammaln(t)},GAUSS:t=>(t=O.accept(t,I.NUMBER),B.normal.cdf(t,0,1)-.5),GEOMEAN:(...t)=>{const e=[];return O.flattenParams(t,I.NUMBER,!0,(n,r)=>{typeof n=="number"&&e.push(n)}),B.geomean(e)},GROWTH:(t,e,n,r)=>{t=O.accept(t,I.ARRAY,void 0,!0,!0);for(let f=0;f{let e=0,n=0;return O.flattenParams(t,I.NUMBER,!0,(r,i)=>{typeof r=="number"&&(n+=1/r,e++)}),e/n},"HYPGEOM.DIST":(t,e,n,r,i)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.NUMBER),r=O.accept(r,I.NUMBER),i=O.accept(i,I.BOOLEAN),t=Math.trunc(t),e=Math.trunc(e),n=Math.trunc(n),r=Math.trunc(r),r<=0||t<0||e<=0||n<=0||e>r||n>r||e{if(t=O.accept(t,I.ARRAY,void 0,!0,!0),e=O.accept(e,I.ARRAY,void 0,!0,!0),e.length!==t.length)throw k.NA;const n=[],r=[];for(let u=0;u{let e=0,n=[];O.flattenParams(t,I.NUMBER,!0,(a,c)=>{typeof a=="number"&&(e+=a,n.push(a))});const r=n.length;e/=r;let i=0;for(let a=0;a{},LOGEST:()=>{},"LOGNORM.DIST":(t,e,n,r)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.NUMBER),r=O.accept(r,I.BOOLEAN),t<=0||n<=0)throw k.NUM;return r?B.lognormal.cdf(t,e,n):B.lognormal.pdf(t,e,n)},"LOGNORM.INV":(t,e,n)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.NUMBER),t<=0||t>=1||n<=0)throw k.NUM;return B.lognormal.inv(t,e,n)},"MODE.MULT":()=>{},"MODE.SNGL":()=>{},"NEGBINOM.DIST":(t,e,n,r)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.NUMBER),r=O.accept(r,I.BOOLEAN),t=Math.trunc(t),e=Math.trunc(e),n<0||n>1||t<0||e<1)throw k.NUM;return r?B.negbin.cdf(t,e,n):B.negbin.pdf(t,e,n)},"NORM.DIST":(t,e,n,r)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.NUMBER),r=O.accept(r,I.BOOLEAN),n<=0)throw k.NUM;return r?B.normal.cdf(t,e,n):B.normal.pdf(t,e,n)},"NORM.INV":(t,e,n)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.NUMBER),t<=0||t>=1||n<=0)throw k.NUM;return B.normal.inv(t,e,n)},"NORM.S.DIST":(t,e)=>(t=O.accept(t,I.NUMBER),e=O.accept(e,I.BOOLEAN),e?B.normal.cdf(t,0,1):B.normal.pdf(t,0,1)),"NORM.S.INV":t=>{if(t=O.accept(t,I.NUMBER),t<=0||t>=1)throw k.NUM;return B.normal.inv(t,0,1)},PEARSON:()=>{},"PERCENTILE.EXC":()=>{},"PERCENTILE.INC":()=>{},"PERCENTRANK.EXC":()=>{},"PERCENTRANK.INC":()=>{},PERMUTATIONA:()=>{},PHI:t=>(t=O.accept(t,I.NUMBER),Math.exp(-.5*t*t)/rc),"POISSON.DIST":(t,e,n)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.BOOLEAN),t<0||e<0)throw k.NUM;return t=Math.trunc(t),n?B.poisson.cdf(t,e):B.poisson.pdf(t,e)},PROB:()=>{},"QUARTILE.EXC":()=>{},"QUARTILE.INC":()=>{},"RANK.AVG":()=>{},"RANK.EQ":()=>{},RSQ:()=>{},SKEW:()=>{},"SKEW.P":()=>{},SLOPE:()=>{},STANDARDIZE:(t,e,n)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.NUMBER),n<=0)throw k.NUM;return(t-e)/n},"STDEV.P":()=>{},"STDEV.S":()=>{},STDEVA:()=>{},STDEVPA:()=>{},STEYX:()=>{},"T.DIST":(t,e,n)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.BOOLEAN),e<1)throw k.NUM;return n?B.studentt.cdf(t,e):B.studentt.pdf(t,e)},"T.DIST.2T":(t,e)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),e<1||t<0)throw k.NUM;return(1-B.studentt.cdf(t,e))*2},"T.DIST.RT":(t,e)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),e<1)throw k.NUM;return 1-B.studentt.cdf(t,e)},"T.INV":(t,e)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),t<=0||t>1||e<1)throw k.NUM;return e=e%1===0?e:Math.trunc(e),B.studentt.inv(t,e)},"T.INV.2T":(t,e)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),t<=0||t>1||e<1)throw k.NUM;return e=e%1===0?e:Math.trunc(e),Math.abs(B.studentt.inv(t/2,e))},"T.TEST":()=>{},TREND:()=>{},TRIMMEAN:()=>{},"VAR.P":()=>{},"VAR.S":()=>{},VARA:()=>{},VARPA:()=>{},"WEIBULL.DIST":(t,e,n,r)=>{if(t=O.accept(t,I.NUMBER),e=O.accept(e,I.NUMBER),n=O.accept(n,I.NUMBER),r=O.accept(r,I.BOOLEAN),t<0||e<=0||n<=0)throw k.NUM;return r?1-Math.exp(-Math.pow(t/n,e)):Math.pow(t,e-1)*Math.exp(-Math.pow(t/n,e))*e/Math.pow(n,e)},"Z.TEST":()=>{}};var ic={DistributionFunctions:Xo};const oc=he(),{FormulaHelpers:sc,Types:mn,Criteria:Ni,Address:Vh}=ge(),{Infix:Ai}=Wr,ut=sc,{DistributionFunctions:ac}=ic,cc={AVEDEV:(...t)=>{let e=0;const n=[];ut.flattenParams(t,mn.NUMBER,!0,(i,a)=>{typeof i=="number"&&(e+=i,n.push(i))});const r=e/n.length;e=0;for(let i=0;i{let e=0,n=0;return ut.flattenParams(t,mn.NUMBER,!0,(r,i)=>{typeof r=="number"&&(e+=r,n++)}),e/n},AVERAGEA:(...t)=>{let e=0,n=0;return ut.flattenParams(t,mn.NUMBER,!0,(r,i)=>{const a=typeof r;a==="number"?(e+=r,n++):a==="string"&&n++}),e/n},AVERAGEIF:(t,e,n,r)=>{const i=ut.retrieveRanges(t,e,r);e=i[0],r=i[1],n=ut.retrieveArg(t,n);const a=n.isArray;n=Ni.parse(ut.accept(n));let c=0,h=0;if(e.forEach((p,u)=>{p.forEach((o,s)=>{const l=r[u][s];typeof l=="number"&&(n.op==="wc"?n.match===n.value.test(o)&&(c+=l,h++):Ai.compareOp(o,n.op,n.value,Array.isArray(o),a)&&(c+=l,h++))})}),h===0)throw oc.DIV0;return c/h},AVERAGEIFS:()=>{},COUNT:(...t)=>{let e=0;return ut.flattenParams(t,null,!0,(n,r)=>{(r.isLiteral&&!isNaN(n)||typeof n=="number")&&e++}),e},COUNTIF:(t,e)=>{t=ut.accept(t,mn.ARRAY,void 0,!1,!0);const n=e.isArray;e=ut.accept(e);let r=0;return e=Ni.parse(e),t.forEach(i=>{i.forEach(a=>{e.op==="wc"?e.match===e.value.test(a)&&r++:Ai.compareOp(a,e.op,e.value,Array.isArray(a),n)&&r++})}),r},LARGE:()=>{},MAX:()=>{},MAXA:()=>{},MAXIFS:()=>{},MEDIAN:()=>{},MIN:()=>{},MINA:()=>{},MINIFS:()=>{},PERMUT:()=>{},PERMUTATIONA:()=>{},SMALL:()=>{}};var lc=Object.assign(cc,ac);const De=he(),{FormulaHelpers:uc,Types:pe}=ge(),ae=uc,Rn=1e3*60*60*24,Lr=new Date(Date.UTC(1900,0,1)),fc=[void 0,0,1,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,1,2,3,4,5,6,0],hc=[void 0,[1,2,3,4,5,6,7],[7,1,2,3,4,5,6],[6,0,1,2,3,4,5],void 0,void 0,void 0,void 0,void 0,void 0,void 0,[7,1,2,3,4,5,6],[6,7,1,2,3,4,5],[5,6,7,1,2,3,4],[4,5,6,7,1,2,3],[3,4,5,6,7,1,2],[2,3,4,5,6,7,1],[1,2,3,4,5,6,7]],yi=[void 0,[6,0],[0,1],[1,2],[2,3],[3,4],[4,5],[5,6],void 0,void 0,void 0,[0],[1],[2],[3],[4],[5],[6]],pc=/^\s*(\d\d?)\s*(:\s*\d\d?)?\s*(:\s*\d\d?)?\s*(pm|am)?\s*$/i,dc=/^\s*((\d\d?)\s*([-\/])\s*(\d\d?))([\d:.apm\s]*)$/i,vc=/^\s*((\d\d?)\s*([-/])\s*(jan\w*|feb\w*|mar\w*|apr\w*|may\w*|jun\w*|jul\w*|aug\w*|sep\w*|oct\w*|nov\w*|dec\w*))([\d:.apm\s]*)$/i,gc=/^\s*((jan\w*|feb\w*|mar\w*|apr\w*|may\w*|jun\w*|jul\w*|aug\w*|sep\w*|oct\w*|nov\w*|dec\w*)\s*([-/])\s*(\d\d?))([\d:.apm\s]*)$/i;function Ec(t){const e=t.match(dc),n=t.match(vc),r=t.match(gc);return e?t=e[1]+e[3]+new Date().getFullYear()+e[5]:n?t=n[1]+n[3]+new Date().getFullYear()+n[5]:r&&(t=r[1]+r[3]+new Date().getFullYear()+r[5]),new Date(Date.parse(`${t} UTC`))}function mc(t){const e=t.match(pc);if(!e)return;const n=e[2]?e[2]:":00",r=e[3]?e[3]:":00",i=e[4]?" "+e[4]:"",a=new Date(Date.parse(`1/1/1900 ${e[1]+n+r+i} UTC`));let c=new Date;return c=new Date(Date.UTC(c.getFullYear(),c.getMonth(),c.getDate(),c.getHours(),c.getMinutes(),c.getSeconds(),c.getMilliseconds())),new Date(Date.UTC(c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate(),a.getUTCHours(),a.getUTCMinutes(),a.getUTCSeconds(),a.getUTCMilliseconds()))}function Ot(t){const e=t>-22038912e5?2:1;return Math.floor((t-Lr)/864e5)+e}function Rc(t){if(t<0)throw De.VALUE;return t<=60?new Date(Lr.getTime()+(t-1)*864e5):new Date(Lr.getTime()+(t-2)*864e5)}function Qo(t){if(t instanceof Date)return{date:t};t=ae.accept(t);let e=!0,n;return isNaN(t)?(n=mc(t),n?e=!1:n=Ec(t)):(t=Number(t),n=Rc(t)),{date:n,isDateGiven:e}}function Z(t){return Qo(t).date}function mr(t,e){return t.getUTCFullYear()===e.getUTCFullYear()&&t.getUTCMonth()===e.getUTCMonth()&&t.getUTCDate()===e.getUTCDate()}function Nc(t){return t===1900?!0:new Date(t,1,29).getMonth()===1}const Mt={DATE:(t,e,n)=>{if(t=ae.accept(t,pe.NUMBER),e=ae.accept(e,pe.NUMBER),n=ae.accept(n,pe.NUMBER),t<0||t>=1e4)throw De.NUM;return t<1900&&(t+=1900),Ot(Date.UTC(t,e-1,n))},DATEDIF:(t,e,n)=>{if(t=Z(t),e=Z(e),n=ae.accept(n,pe.STRING).toLowerCase(),t>e)throw De.NUM;const r=e.getUTCFullYear()-t.getUTCFullYear(),i=e.getUTCMonth()-t.getUTCMonth(),a=e.getUTCDate()-t.getUTCDate();let c;switch(n){case"y":return c=i<0||i===0&&a<0?-1:0,c+r;case"m":return c=a<0?-1:0,r*12+i+c;case"d":return Math.floor(e-t)/Rn;case"md":return t.setUTCFullYear(e.getUTCFullYear()),a<0?t.setUTCMonth(e.getUTCMonth()-1):t.setUTCMonth(e.getUTCMonth()),Math.floor(e-t)/Rn;case"ym":return c=a<0?-1:0,(c+r*12+i)%12;case"yd":return i<0||i===0&&a<0?t.setUTCFullYear(e.getUTCFullYear()-1):t.setUTCFullYear(e.getUTCFullYear()),Math.floor(e-t)/Rn}},DATEVALUE:t=>{t=ae.accept(t,pe.STRING);const{date:e,isDateGiven:n}=Qo(t);if(!n)return 0;const r=Ot(e);if(r<0||r>2958465)throw De.VALUE;return r},DAY:t=>Z(t).getUTCDate(),DAYS:(t,e)=>{t=Z(t),e=Z(e);let n=0;return e<-22038912e5&&-22038912e5{t=Z(t),e=Z(e),n=ae.accept(n,pe.BOOLEAN,!1),t.getUTCDate()===31&&t.setUTCDate(30),!n&&t.getUTCDate()<30&&e.getUTCDate()>30?e.setUTCMonth(e.getUTCMonth()+1,1):e.getUTCDate()===31&&e.setUTCDate(30);const r=e.getUTCFullYear()-t.getUTCFullYear(),i=e.getUTCMonth()-t.getUTCMonth(),a=e.getUTCDate()-t.getUTCDate();return i*30+a+r*12*30},EDATE:(t,e)=>(t=Z(t),e=ae.accept(e,pe.NUMBER),t.setUTCMonth(t.getUTCMonth()+e),Ot(t)),EOMONTH:(t,e)=>(t=Z(t),e=ae.accept(e,pe.NUMBER),t.setUTCMonth(t.getUTCMonth()+e+1,0),Ot(t)),HOUR:t=>Z(t).getUTCHours(),ISOWEEKNUM:t=>{const e=Z(t),n=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())),r=n.getUTCDay();n.setUTCDate(n.getUTCDate()+4-r);const i=new Date(Date.UTC(n.getUTCFullYear(),0,1));return Math.ceil(((n-i)/864e5+1)/7)},MINUTE:t=>Z(t).getUTCMinutes(),MONTH:t=>Z(t).getUTCMonth()+1,NETWORKDAYS:(t,e,n)=>{t=Z(t),e=Z(e);let r=1;if(t>e){r=-1;const c=t;t=e,e=c}const i=[];n!=null&&ae.flattenParams([n],pe.NUMBER,!1,c=>{i.push(Z(c))});let a=0;for(;t<=e;){if(t.getUTCDay()!==0&&t.getUTCDay()!==6){let c=!1;for(let h=0;h{t=Z(t),e=Z(e);let i=1;if(t>e){i=-1;const h=t;t=e,e=h}if(n=ae.accept(n,null,1),n==="1111111")return 0;if(typeof n=="string"&&Number(n).toString()!==n){if(n.length!==7)throw De.VALUE;n=n.charAt(6)+n.slice(0,6);const h=[];for(let p=0;p{a.push(Z(h))});let c=0;for(;t<=e;){let h=!1;for(let p=0;p{const t=new Date;return Ot(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()))+(3600*t.getHours()+60*t.getMinutes()+t.getSeconds())/86400},SECOND:t=>Z(t).getUTCSeconds(),TIME:(t,e,n)=>{if(t=ae.accept(t,pe.NUMBER),e=ae.accept(e,pe.NUMBER),n=ae.accept(n,pe.NUMBER),t<0||t>32767||e<0||e>32767||n<0||n>32767)throw De.NUM;return(3600*t+60*e+n)/86400},TIMEVALUE:t=>(t=Z(t),(3600*t.getUTCHours()+60*t.getUTCMinutes()+t.getUTCSeconds())/86400),TODAY:()=>{const t=new Date;return Ot(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate()))},WEEKDAY:(t,e)=>{const n=Z(t);e=ae.accept(e,pe.NUMBER,1);const r=n.getUTCDay(),i=hc[e];if(!i)throw De.NUM;return i[r]},WEEKNUM:(t,e)=>{const n=Z(t);if(e=ae.accept(e,pe.NUMBER,1),e===21)return Mt.ISOWEEKNUM(t);const r=fc[e],i=new Date(Date.UTC(n.getUTCFullYear(),0,1)),a=i.getUTCDay()Mt["WORKDAY.INTL"](t,e,1,n),"WORKDAY.INTL":(t,e,n,r)=>{if(t=Z(t),e=ae.accept(e,pe.NUMBER),n=ae.accept(n,null,1),n==="1111111")throw De.VALUE;if(typeof n=="string"&&Number(n).toString()!==n){if(n.length!==7)throw De.VALUE;n=n.charAt(6)+n.slice(0,6);const c=[];for(let h=0;h{i.push(Z(c))}),t.setUTCDate(t.getUTCDate()+1);let a=0;for(;aZ(t).getUTCFullYear(),YEARFRAC:(t,e,n)=>{if(t=Z(t),e=Z(e),t>e){const u=t;t=e,e=u}if(n=ae.accept(n,pe.NUMBER,0),n=Math.trunc(n),n<0||n>4)throw De.VALUE;let r=t.getUTCDate();const i=t.getUTCMonth()+1,a=t.getUTCFullYear();let c=e.getUTCDate();const h=e.getUTCMonth()+1,p=e.getUTCFullYear();switch(n){case 0:return r===31&&c===31?(r=30,c=30):r===31?r=30:r===30&&c===31&&(c=30),Math.abs(c+h*30+p*360-(r+i*30+a*360))/360;case 1:if(p-a<2){const u=Nc(a)&&a!==1900?366:365;return Mt.DAYS(e,t)/u}else{const u=p-a+1,s=(new Date(p+1,0,1)-new Date(a,0,1))/1e3/60/60/24/u;return Mt.DAYS(e,t)/s}case 2:return Math.abs(Mt.DAYS(e,t)/360);case 3:return Math.abs(Mt.DAYS(e,t)/365);case 4:return Math.abs(c+h*30+p*360-(r+i*30+a*360))/360}}};var Ac=Mt;const yc=he(),{FormulaHelpers:Tc,Types:wc}=ge(),Cc=Tc,Ic={ENCODEURL:t=>encodeURIComponent(Cc.accept(t,wc.STRING)),FILTERXML:()=>{},WEBSERVICE:(t,e)=>{throw yc.ERROR("WEBSERVICE is not supported in sync mode.")}};var Oc=Ic,_r="7.1.2";function ee(t){return t&&t.length===0}function Ze(t){return t==null?[]:Object.keys(t)}function xe(t){for(var e=[],n=Object.keys(t),r=0;r=this.input.length)throw Error("Unexpected end of input");this.idx++},e.prototype.loc=function(d){return{begin:d,end:this.idx}};var n=/[0-9a-fA-F]/,r=/[0-9]/,i=/[1-9]/;function a(d){return d.charCodeAt(0)}function c(d,g){d.length!==void 0?d.forEach(function(E){g.push(E)}):g.push(d)}function h(d,g){if(d[g]===!0)throw"duplicate flag "+g;d[g]=!0}function p(d){if(d===void 0)throw Error("Internal Error - Should never get here!")}function u(){throw Error("Internal Error - Should never get here!")}var o,s=[];for(o=a("0");o<=a("9");o++)s.push(o);var l=[a("_")].concat(s);for(o=a("a");o<=a("z");o++)l.push(o);for(o=a("A");o<=a("Z");o++)l.push(o);var f=[a(" "),a("\f"),a(` -`),a("\r"),a(" "),a("\v"),a(" "),a(" "),a(" "),a(" "),a(" "),a(" "),a(" "),a(" "),a(" "),a(" "),a(" "),a(" "),a(" "),a(" "),a("\u2028"),a("\u2029"),a(" "),a(" "),a(" "),a("\uFEFF")];function v(){}return v.prototype.visitChildren=function(d){for(var g in d){var E=d[g];d.hasOwnProperty(g)&&(E.type!==void 0?this.visit(E):Array.isArray(E)&&E.forEach(function(A){this.visit(A)},this))}},v.prototype.visit=function(d){switch(d.type){case"Pattern":this.visitPattern(d);break;case"Flags":this.visitFlags(d);break;case"Disjunction":this.visitDisjunction(d);break;case"Alternative":this.visitAlternative(d);break;case"StartAnchor":this.visitStartAnchor(d);break;case"EndAnchor":this.visitEndAnchor(d);break;case"WordBoundary":this.visitWordBoundary(d);break;case"NonWordBoundary":this.visitNonWordBoundary(d);break;case"Lookahead":this.visitLookahead(d);break;case"NegativeLookahead":this.visitNegativeLookahead(d);break;case"Character":this.visitCharacter(d);break;case"Set":this.visitSet(d);break;case"Group":this.visitGroup(d);break;case"GroupBackReference":this.visitGroupBackReference(d);break;case"Quantifier":this.visitQuantifier(d);break}this.visitChildren(d)},v.prototype.visitPattern=function(d){},v.prototype.visitFlags=function(d){},v.prototype.visitDisjunction=function(d){},v.prototype.visitAlternative=function(d){},v.prototype.visitStartAnchor=function(d){},v.prototype.visitEndAnchor=function(d){},v.prototype.visitWordBoundary=function(d){},v.prototype.visitNonWordBoundary=function(d){},v.prototype.visitLookahead=function(d){},v.prototype.visitNegativeLookahead=function(d){},v.prototype.visitCharacter=function(d){},v.prototype.visitSet=function(d){},v.prototype.visitGroup=function(d){},v.prototype.visitGroupBackReference=function(d){},v.prototype.visitQuantifier=function(d){},{RegExpParser:e,BaseRegExpVisitor:v,VERSION:"0.5.0"}})})(ns);var an=ns.exports,In={},Sc=new an.RegExpParser;function Yn(t){var e=t.toString();if(In.hasOwnProperty(e))return In[e];var n=Sc.pattern(e);return In[e]=n,n}function Bc(){In={}}var Fc=globalThis&&globalThis.__extends||function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(r[a]=i[a])},t(e,n)};return function(e,n){t(e,n);function r(){this.constructor=e}e.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),rs="Complement Sets are not supported for first char optimization",Sn=`Unable to use "first char" lexer optimizations: -`;function bc(t,e){e===void 0&&(e=!1);try{var n=Yn(t),r=kr(n.value,{},n.flags.ignoreCase);return r}catch(a){if(a.message===rs)e&&jo(""+Sn+(" Unable to optimize: < "+t.toString()+` > -`)+` Complement Sets cannot be automatically optimized. - This will disable the lexer's first char optimizations. - See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var i="";e&&(i=` - This will disable the lexer's first char optimizations. - See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),Pr(Sn+` -`+(" Failed parsing: < "+t.toString()+` > -`)+(" Using the regexp-to-ast library version: "+an.VERSION+` -`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+i)}}return[]}function kr(t,e,n){switch(t.type){case"Disjunction":for(var r=0;r=Jt)for(var l=o.from>=Jt?o.from:Jt,f=o.to,v=Tt(l),d=Tt(f),g=v;g<=d;g++)e[g]=g}}});break;case"Group":kr(c.value,e,n);break;default:throw Error("Non Exhaustive Match")}var h=c.quantifier!==void 0&&c.quantifier.atLeast===0;if(c.type==="Group"&&xr(c)===!1||c.type!=="Group"&&h===!1)break}break;default:throw Error("non exhaustive match!")}return xe(e)}function Nn(t,e,n){var r=Tt(t);e[r]=r,n===!0&&Dc(t,e)}function Dc(t,e){var n=String.fromCharCode(t),r=n.toUpperCase();if(r!==n){var i=Tt(r.charCodeAt(0));e[i]=i}else{var a=n.toLowerCase();if(a!==n){var i=Tt(a.charCodeAt(0));e[i]=i}}}function Ii(t,e){return Ht(t.value,function(n){if(typeof n=="number")return fe(e,n);var r=n;return Ht(e,function(i){return r.from<=i&&i<=r.to})!==void 0})}function xr(t){return t.quantifier&&t.quantifier.atLeast===0?!0:t.value?ot(t.value)?We(t.value,xr):xr(t.value):!1}var Vc=function(t){Fc(e,t);function e(n){var r=t.call(this)||this;return r.targetCharCodes=n,r.found=!1,r}return e.prototype.visitChildren=function(n){if(this.found!==!0){switch(n.type){case"Lookahead":this.visitLookahead(n);return;case"NegativeLookahead":this.visitNegativeLookahead(n);return}t.prototype.visitChildren.call(this,n)}},e.prototype.visitCharacter=function(n){fe(this.targetCharCodes,n.value)&&(this.found=!0)},e.prototype.visitSet=function(n){n.complement?Ii(n,this.targetCharCodes)===void 0&&(this.found=!0):Ii(n,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(an.BaseRegExpVisitor);function zr(t,e){if(e instanceof RegExp){var n=Yn(e),r=new Vc(t);return r.visit(n),r.found}else return Ht(e,function(i){return fe(t,i.charCodeAt(0))})!==void 0}var is=globalThis&&globalThis.__extends||function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(r[a]=i[a])},t(e,n)};return function(e,n){t(e,n);function r(){this.constructor=e}e.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),at="PATTERN",Lt="defaultMode",An="modes",os=typeof new RegExp("(?:)").sticky=="boolean";function Gc(t,e){e=Kr(e,{useSticky:os,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` -`],tracer:function(A,m){return m()}});var n=e.tracer;n("initCharCodeToOptimizedIndexMap",function(){ul()});var r;n("Reject Lexer.NA",function(){r=Wt(t,function(A){return A[at]===Qe.NA})});var i=!1,a;n("Transform Patterns",function(){i=!1,a=x(r,function(A){var m=A[at];if(dt(m)){var N=m.source;return N.length===1&&N!=="^"&&N!=="$"&&N!=="."&&!m.ignoreCase?N:N.length===2&&N[0]==="\\"&&!fe(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],N[1])?N[1]:e.useSticky?Mi(m):Oi(m)}else{if(Ct(m))return i=!0,{exec:m};if($(m,"exec"))return i=!0,m;if(typeof m=="string"){if(m.length===1)return m;var y=m.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),R=new RegExp(y);return e.useSticky?Mi(R):Oi(R)}else throw Error("non exhaustive match")}})});var c,h,p,u,o;n("misc mapping",function(){c=x(r,function(A){return A.tokenTypeIdx}),h=x(r,function(A){var m=A.GROUP;if(m!==Qe.SKIPPED){if(st(m))return m;if(pt(m))return!1;throw Error("non exhaustive match")}}),p=x(r,function(A){var m=A.LONGER_ALT;if(m){var N=Lc(r,m);return N}}),u=x(r,function(A){return A.PUSH_MODE}),o=x(r,function(A){return $(A,"POP_MODE")})});var s;n("Line Terminator Handling",function(){var A=cs(e.lineTerminatorCharacters);s=x(r,function(m){return!1}),e.positionTracking!=="onlyOffset"&&(s=x(r,function(m){if($(m,"LINE_BREAKS"))return m.LINE_BREAKS;if(as(m,A)===!1)return zr(A,m.PATTERN)}))});var l,f,v,d;n("Misc Mapping #2",function(){l=x(r,ss),f=x(a,al),v=Ne(r,function(A,m){var N=m.GROUP;return st(N)&&N!==Qe.SKIPPED&&(A[N]=[]),A},{}),d=x(a,function(A,m){return{pattern:a[m],longerAlt:p[m],canLineTerminator:s[m],isCustom:l[m],short:f[m],group:h[m],push:u[m],pop:o[m],tokenTypeIdx:c[m],tokenType:r[m]}})});var g=!0,E=[];return e.safeMode||n("First Char Optimization",function(){E=Ne(r,function(A,m,N){if(typeof m.PATTERN=="string"){var y=m.PATTERN.charCodeAt(0),R=Tt(y);Rr(A,R,d[N])}else if(ot(m.START_CHARS_HINT)){var T;V(m.START_CHARS_HINT,function(C){var M=typeof C=="string"?C.charCodeAt(0):C,_=Tt(M);T!==_&&(T=_,Rr(A,_,d[N]))})}else if(dt(m.PATTERN))if(m.PATTERN.unicode)g=!1,e.ensureOptimizations&&Pr(""+Sn+(" Unable to analyze < "+m.PATTERN.toString()+` > pattern. -`)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. - This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var w=bc(m.PATTERN,e.ensureOptimizations);ee(w)&&(g=!1),V(w,function(C){Rr(A,C,d[N])})}else e.ensureOptimizations&&Pr(""+Sn+(" TokenType: <"+m.name+`> is using a custom token pattern without providing parameter. -`)+` This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),g=!1;return A},[])}),n("ArrayPacking",function(){E=kc(E)}),{emptyGroups:v,patternIdxToConfig:d,charCodeToPatternIdxToConfig:E,hasCustom:i,canBeOptimized:g}}function $c(t,e){var n=[],r=Wc(t);n=n.concat(r.errors);var i=qc(r.valid),a=i.valid;return n=n.concat(i.errors),n=n.concat(Hc(a)),n=n.concat(jc(a)),n=n.concat(el(a,e)),n=n.concat(tl(a)),n}function Hc(t){var e=[],n=je(t,function(r){return dt(r[at])});return e=e.concat(Kc(n)),e=e.concat(Qc(n)),e=e.concat(Zc(n)),e=e.concat(Jc(n)),e=e.concat(zc(n)),e}function Wc(t){var e=je(t,function(i){return!$(i,at)}),n=x(e,function(i){return{message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:se.MISSING_PATTERN,tokenTypes:[i]}}),r=qn(t,e);return{errors:n,valid:r}}function qc(t){var e=je(t,function(i){var a=i[at];return!dt(a)&&!Ct(a)&&!$(a,"exec")&&!st(a)}),n=x(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:se.INVALID_PATTERN,tokenTypes:[i]}}),r=qn(t,e);return{errors:n,valid:r}}var Yc=/[^\\][\$]/;function Kc(t){var e=function(i){is(a,i);function a(){var c=i!==null&&i.apply(this,arguments)||this;return c.found=!1,c}return a.prototype.visitEndAnchor=function(c){this.found=!0},a}(an.BaseRegExpVisitor),n=je(t,function(i){var a=i[at];try{var c=Yn(a),h=new e;return h.visit(c),h.found}catch{return Yc.test(a.source)}}),r=x(n,function(i){return{message:`Unexpected RegExp Anchor Error: - Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain end of input anchor '$' - See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:se.EOI_ANCHOR_FOUND,tokenTypes:[i]}});return r}function zc(t){var e=je(t,function(r){var i=r[at];return i.test("")}),n=x(e,function(r){return{message:"Token Type: ->"+r.name+"<- static 'PATTERN' must not match an empty string",type:se.EMPTY_MATCH_PATTERN,tokenTypes:[r]}});return n}var Xc=/[^\\[][\^]|^\^/;function Qc(t){var e=function(i){is(a,i);function a(){var c=i!==null&&i.apply(this,arguments)||this;return c.found=!1,c}return a.prototype.visitStartAnchor=function(c){this.found=!0},a}(an.BaseRegExpVisitor),n=je(t,function(i){var a=i[at];try{var c=Yn(a),h=new e;return h.visit(c),h.found}catch{return Xc.test(a.source)}}),r=x(n,function(i){return{message:`Unexpected RegExp Anchor Error: - Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain start of input anchor '^' - See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:se.SOI_ANCHOR_FOUND,tokenTypes:[i]}});return r}function Zc(t){var e=je(t,function(r){var i=r[at];return i instanceof RegExp&&(i.multiline||i.global)}),n=x(e,function(r){return{message:"Token Type: ->"+r.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:se.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[r]}});return n}function Jc(t){var e=[],n=x(t,function(a){return Ne(t,function(c,h){return a.PATTERN.source===h.PATTERN.source&&!fe(e,h)&&h.PATTERN!==Qe.NA&&(e.push(h),c.push(h)),c},[])});n=sn(n);var r=je(n,function(a){return a.length>1}),i=x(r,function(a){var c=x(a,function(p){return p.name}),h=Je(a).PATTERN;return{message:"The same RegExp pattern ->"+h+"<-"+("has been used in all of the following Token Types: "+c.join(", ")+" <-"),type:se.DUPLICATE_PATTERNS_FOUND,tokenTypes:a}});return i}function jc(t){var e=je(t,function(r){if(!$(r,"GROUP"))return!1;var i=r.GROUP;return i!==Qe.SKIPPED&&i!==Qe.NA&&!st(i)}),n=x(e,function(r){return{message:"Token Type: ->"+r.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:se.INVALID_GROUP_TYPE_FOUND,tokenTypes:[r]}});return n}function el(t,e){var n=je(t,function(i){return i.PUSH_MODE!==void 0&&!fe(e,i.PUSH_MODE)}),r=x(n,function(i){var a="Token Type: ->"+i.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+i.PUSH_MODE+"<-which does not exist";return{message:a,type:se.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}});return r}function tl(t){var e=[],n=Ne(t,function(r,i,a){var c=i.PATTERN;return c===Qe.NA||(st(c)?r.push({str:c,idx:a,tokenType:i}):dt(c)&&rl(c)&&r.push({str:c.source,idx:a,tokenType:i})),r},[]);return V(t,function(r,i){V(n,function(a){var c=a.str,h=a.idx,p=a.tokenType;if(i"+r.name+"<-")+`in the lexer's definition. -See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:u,type:se.UNREACHABLE_PATTERN,tokenTypes:[r,p]})}})}),e}function nl(t,e){if(dt(e)){var n=e.exec(t);return n!==null&&n.index===0}else{if(Ct(e))return e(t,0,[],{});if($(e,"exec"))return e.exec(t,0,[],{});if(typeof e=="string")return e===t;throw Error("non exhaustive match")}}function rl(t){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return Ht(e,function(n){return t.source.indexOf(n)!==-1})===void 0}function Oi(t){var e=t.ignoreCase?"i":"";return new RegExp("^(?:"+t.source+")",e)}function Mi(t){var e=t.ignoreCase?"iy":"y";return new RegExp(""+t.source,e)}function il(t,e,n){var r=[];return $(t,Lt)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+Lt+`> property in its definition -`,type:se.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),$(t,An)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+An+`> property in its definition -`,type:se.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),$(t,An)&&$(t,Lt)&&!$(t.modes,t.defaultMode)&&r.push({message:"A MultiMode Lexer cannot be initialized with a "+Lt+": <"+t.defaultMode+`>which does not exist -`,type:se.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),$(t,An)&&V(t.modes,function(i,a){V(i,function(c,h){pt(c)&&r.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+a+"> at index: <"+h+`> -`),type:se.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),r}function ol(t,e,n){var r=[],i=!1,a=sn(Ge(Mc(t.modes,function(p){return p}))),c=Wt(a,function(p){return p[at]===Qe.NA}),h=cs(n);return e&&V(c,function(p){var u=as(p,h);if(u!==!1){var o=ll(p,u),s={message:o,type:u.issue,tokenType:p};r.push(s)}else $(p,"LINE_BREAKS")?p.LINE_BREAKS===!0&&(i=!0):zr(h,p.PATTERN)&&(i=!0)}),e&&!i&&r.push({message:`Warning: No LINE_BREAKS Found. - This Lexer has been defined to track line and column information, - But none of the Token Types can be identified as matching a line terminator. - See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS - for details.`,type:se.NO_LINE_BREAKS_FLAGS}),r}function sl(t){var e={},n=Ze(t);return V(n,function(r){var i=t[r];if(ot(i))e[r]=[];else throw Error("non exhaustive match")}),e}function ss(t){var e=t.PATTERN;if(dt(e))return!1;if(Ct(e))return!0;if($(e,"exec"))return!0;if(st(e))return!1;throw Error("non exhaustive match")}function al(t){return st(t)&&t.length===1?t.charCodeAt(0):!1}var cl={test:function(t){for(var e=t.length,n=this.lastIndex;n Token Type -`)+(" Root cause: "+e.errMsg+`. -`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===se.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. -`+(" The problem is in the <"+t.name+`> Token Type -`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}function cs(t){var e=x(t,function(n){return st(n)&&n.length>0?n.charCodeAt(0):n});return e}function Rr(t,e,n){t[e]===void 0?t[e]=[n]:t[e].push(n)}var Jt=256;function Tt(t){return t255?255+~~(t/255):t}}function Kn(t,e){var n=t.tokenTypeIdx;return n===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[n]===!0}function Bn(t,e){return t.tokenTypeIdx===e.tokenTypeIdx}var Ui=1,ls={};function cn(t){var e=fl(t);hl(e),dl(e),pl(e),V(e,function(n){n.isParent=n.categoryMatches.length>0})}function fl(t){for(var e=Se(t),n=t,r=!0;r;){n=sn(Ge(x(n,function(a){return a.CATEGORIES})));var i=qn(n,e);e=e.concat(i),ee(i)?r=!1:n=i}return e}function hl(t){V(t,function(e){fs(e)||(ls[Ui]=e,e.tokenTypeIdx=Ui++),Li(e)&&!ot(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Li(e)||(e.CATEGORIES=[]),vl(e)||(e.categoryMatches=[]),gl(e)||(e.categoryMatchesMap={})})}function pl(t){V(t,function(e){e.categoryMatches=[],V(e.categoryMatchesMap,function(n,r){e.categoryMatches.push(ls[r].tokenTypeIdx)})})}function dl(t){V(t,function(e){us([],e)})}function us(t,e){V(t,function(n){e.categoryMatchesMap[n.tokenTypeIdx]=!0}),V(e.CATEGORIES,function(n){var r=t.concat(e);fe(r,n)||us(r,n)})}function fs(t){return $(t,"tokenTypeIdx")}function Li(t){return $(t,"CATEGORIES")}function vl(t){return $(t,"categoryMatches")}function gl(t){return $(t,"categoryMatchesMap")}function El(t){return $(t,"tokenTypeIdx")}var hs={buildUnableToPopLexerModeMessage:function(t){return"Unable to pop Lexer Mode after encountering Token ->"+t.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(t,e,n,r,i){return"unexpected character: ->"+t.charAt(e)+"<- at offset: "+e+","+(" skipped "+n+" characters.")}},se;(function(t){t[t.MISSING_PATTERN=0]="MISSING_PATTERN",t[t.INVALID_PATTERN=1]="INVALID_PATTERN",t[t.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",t[t.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",t[t.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",t[t.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",t[t.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",t[t.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",t[t.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",t[t.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",t[t.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",t[t.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",t[t.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",t[t.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",t[t.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",t[t.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",t[t.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(se||(se={}));var jt={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` -`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:hs,traceInitPerf:!1,skipValidations:!1};Object.freeze(jt);var Qe=function(){function t(e,n){var r=this;if(n===void 0&&(n=jt),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof n=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. -a boolean 2nd argument is no longer supported`);this.config=Ti(jt,n);var i=this.config.traceInitPerf;i===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof i=="number"&&(this.traceInitMaxIdent=i,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var a,c=!0;r.TRACE_INIT("Lexer Config handling",function(){if(r.config.lineTerminatorsPattern===jt.lineTerminatorsPattern)r.config.lineTerminatorsPattern=cl;else if(r.config.lineTerminatorCharacters===jt.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(n.safeMode&&n.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');r.trackStartLines=/full|onlyStart/i.test(r.config.positionTracking),r.trackEndLines=/full/i.test(r.config.positionTracking),ot(e)?(a={modes:{}},a.modes[Lt]=Se(e),a[Lt]=Lt):(c=!1,a=on(e))}),r.config.skipValidations===!1&&(r.TRACE_INIT("performRuntimeChecks",function(){r.lexerDefinitionErrors=r.lexerDefinitionErrors.concat(il(a,r.trackStartLines,r.config.lineTerminatorCharacters))}),r.TRACE_INIT("performWarningRuntimeChecks",function(){r.lexerDefinitionWarning=r.lexerDefinitionWarning.concat(ol(a,r.trackStartLines,r.config.lineTerminatorCharacters))})),a.modes=a.modes?a.modes:{},V(a.modes,function(o,s){a.modes[s]=Wt(o,function(l){return pt(l)})});var h=Ze(a.modes);if(V(a.modes,function(o,s){r.TRACE_INIT("Mode: <"+s+"> processing",function(){if(r.modes.push(s),r.config.skipValidations===!1&&r.TRACE_INIT("validatePatterns",function(){r.lexerDefinitionErrors=r.lexerDefinitionErrors.concat($c(o,h))}),ee(r.lexerDefinitionErrors)){cn(o);var l;r.TRACE_INIT("analyzeTokenTypes",function(){l=Gc(o,{lineTerminatorCharacters:r.config.lineTerminatorCharacters,positionTracking:n.positionTracking,ensureOptimizations:n.ensureOptimizations,safeMode:n.safeMode,tracer:r.TRACE_INIT.bind(r)})}),r.patternIdxToConfig[s]=l.patternIdxToConfig,r.charCodeToPatternIdxToConfig[s]=l.charCodeToPatternIdxToConfig,r.emptyGroups=Ti(r.emptyGroups,l.emptyGroups),r.hasCustom=l.hasCustom||r.hasCustom,r.canModeBeOptimized[s]=l.canBeOptimized}})}),r.defaultMode=a.defaultMode,!ee(r.lexerDefinitionErrors)&&!r.config.deferDefinitionErrorsHandling){var p=x(r.lexerDefinitionErrors,function(o){return o.message}),u=p.join(`----------------------- -`);throw new Error(`Errors detected in definition of Lexer: -`+u)}V(r.lexerDefinitionWarning,function(o){jo(o.message)}),r.TRACE_INIT("Choosing sub-methods implementations",function(){if(os?(r.chopInput=wi,r.match=r.matchWithTest):(r.updateLastIndex=de,r.match=r.matchWithExec),c&&(r.handleModes=de),r.trackStartLines===!1&&(r.computeNewColumn=wi),r.trackEndLines===!1&&(r.updateTokenEndLineColumnLocation=de),/full/i.test(r.config.positionTracking))r.createTokenInstance=r.createFullToken;else if(/onlyStart/i.test(r.config.positionTracking))r.createTokenInstance=r.createStartOnlyToken;else if(/onlyOffset/i.test(r.config.positionTracking))r.createTokenInstance=r.createOffsetOnlyToken;else throw Error('Invalid config option: "'+r.config.positionTracking+'"');r.hasCustom?(r.addToken=r.addTokenUsingPush,r.handlePayload=r.handlePayloadWithCustom):(r.addToken=r.addTokenUsingMemberAccess,r.handlePayload=r.handlePayloadNoCustom)}),r.TRACE_INIT("Failed Optimization Warnings",function(){var o=Ne(r.canModeBeOptimized,function(s,l,f){return l===!1&&s.push(f),s},[]);if(n.ensureOptimizations&&!ee(o))throw Error("Lexer Modes: < "+o.join(", ")+` > cannot be optimized. - Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. - Or inspect the console log for details on how to resolve these issues.`)}),r.TRACE_INIT("clearRegExpParserCache",function(){Bc()}),r.TRACE_INIT("toFastProperties",function(){es(r)})})}return t.prototype.tokenize=function(e,n){if(n===void 0&&(n=this.defaultMode),!ee(this.lexerDefinitionErrors)){var r=x(this.lexerDefinitionErrors,function(c){return c.message}),i=r.join(`----------------------- -`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: -`+i)}var a=this.tokenizeInternal(e,n);return a},t.prototype.tokenizeInternal=function(e,n){var r=this,i,a,c,h,p,u,o,s,l,f,v,d,g,E,A=e,m=A.length,N=0,y=0,R=this.hasCustom?0:Math.floor(e.length/10),T=new Array(R),w=[],C=this.trackStartLines?1:void 0,M=this.trackStartLines?1:void 0,_=sl(this.emptyGroups),W=this.trackStartLines,F=this.config.lineTerminatorsPattern,S=0,G=[],J=[],le=[],nt=[];Object.freeze(nt);var Ae=void 0;function Be(){return G}function Fe(we){var Kt=Tt(we),Dt=J[Kt];return Dt===void 0?nt:Dt}var rt=function(we){if(le.length===1&&we.tokenType.PUSH_MODE===void 0){var Kt=r.config.errorMessageProvider.buildUnableToPopLexerModeMessage(we);w.push({offset:we.startOffset,line:we.startLine!==void 0?we.startLine:void 0,column:we.startColumn!==void 0?we.startColumn:void 0,length:we.image.length,message:Kt})}else{le.pop();var Dt=Zo(le);G=r.patternIdxToConfig[Dt],J=r.charCodeToPatternIdxToConfig[Dt],S=G.length;var Js=r.canModeBeOptimized[Dt]&&r.config.safeMode===!1;J&&Js?Ae=Fe:Ae=Be}};function Ee(we){le.push(we),J=this.charCodeToPatternIdxToConfig[we],G=this.patternIdxToConfig[we],S=G.length,S=G.length;var Kt=this.canModeBeOptimized[we]&&this.config.safeMode===!1;J&&Kt?Ae=Fe:Ae=Be}Ee.call(this,n);for(var ue;Np.length&&(p=c,u=o,ue=nr)}break}}if(p!==null){if(s=p.length,l=ue.group,l!==void 0&&(f=ue.tokenTypeIdx,v=this.createTokenInstance(p,N,f,ue.tokenType,C,M,s),this.handlePayload(v,u),l===!1?y=this.addToken(T,y,v):_[l].push(v)),e=this.chopInput(e,s),N=N+s,M=this.computeNewColumn(M,s),W===!0&&ue.canLineTerminator===!0){var fn=0,ir=void 0,or=void 0;F.lastIndex=0;do ir=F.test(p),ir===!0&&(or=F.lastIndex-1,fn++);while(ir===!0);fn!==0&&(C=C+fn,M=s-or,this.updateTokenEndLineColumnLocation(v,l,or,fn,C,M,s))}this.handleModes(ue,rt,Ee,v)}else{for(var sr=N,si=C,ai=M,Yt=!1;!Yt&&N <"+e+">");var i=ts(n),a=i.time,c=i.value,h=a>10?console.warn:console.log;return this.traceInitIndent time: "+a+"ms"),this.traceInitIndent--,c}else return n()},t.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",t.NA=/NOT_APPLICABLE/,t}();function Pt(t){return ps(t)?t.LABEL:t.name}function ml(t){return t.name}function ps(t){return st(t.LABEL)&&t.LABEL!==""}var Rl="parent",_i="categories",Pi="label",ki="group",xi="push_mode",Si="pop_mode",Bi="longer_alt",Fi="line_breaks",bi="start_chars_hint";function Xr(t){return Nl(t)}function Nl(t){var e=t.pattern,n={};if(n.name=t.name,pt(e)||(n.PATTERN=e),$(t,Rl))throw`The parent property is no longer supported. -See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return $(t,_i)&&(n.CATEGORIES=t[_i]),cn([n]),$(t,Pi)&&(n.LABEL=t[Pi]),$(t,ki)&&(n.GROUP=t[ki]),$(t,Si)&&(n.POP_MODE=t[Si]),$(t,xi)&&(n.PUSH_MODE=t[xi]),$(t,Bi)&&(n.LONGER_ALT=t[Bi]),$(t,Fi)&&(n.LINE_BREAKS=t[Fi]),$(t,bi)&&(n.START_CHARS_HINT=t[bi]),n}var wt=Xr({name:"EOF",pattern:Qe.NA});cn([wt]);function zn(t,e,n,r,i,a,c,h){return{image:e,startOffset:n,endOffset:r,startLine:i,endLine:a,startColumn:c,endColumn:h,tokenTypeIdx:t.tokenTypeIdx,tokenType:t}}function Al(t,e){return Kn(t,e)}var gt=globalThis&&globalThis.__extends||function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(r[a]=i[a])},t(e,n)};return function(e,n){t(e,n);function r(){this.constructor=e}e.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),ct=function(){function t(e){this._definition=e}return Object.defineProperty(t.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),t.prototype.accept=function(e){e.visit(this),V(this.definition,function(n){n.accept(e)})},t}(),Ue=function(t){gt(e,t);function e(n){var r=t.call(this,[])||this;return r.idx=1,tt(r,et(n,function(i){return i!==void 0})),r}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(n){},enumerable:!1,configurable:!0}),e.prototype.accept=function(n){n.visit(this)},e}(ct),xt=function(t){gt(e,t);function e(n){var r=t.call(this,n.definition)||this;return r.orgText="",tt(r,et(n,function(i){return i!==void 0})),r}return e}(ct),Te=function(t){gt(e,t);function e(n){var r=t.call(this,n.definition)||this;return r.ignoreAmbiguities=!1,tt(r,et(n,function(i){return i!==void 0})),r}return e}(ct),ye=function(t){gt(e,t);function e(n){var r=t.call(this,n.definition)||this;return r.idx=1,tt(r,et(n,function(i){return i!==void 0})),r}return e}(ct),qe=function(t){gt(e,t);function e(n){var r=t.call(this,n.definition)||this;return r.idx=1,tt(r,et(n,function(i){return i!==void 0})),r}return e}(ct),Ye=function(t){gt(e,t);function e(n){var r=t.call(this,n.definition)||this;return r.idx=1,tt(r,et(n,function(i){return i!==void 0})),r}return e}(ct),ce=function(t){gt(e,t);function e(n){var r=t.call(this,n.definition)||this;return r.idx=1,tt(r,et(n,function(i){return i!==void 0})),r}return e}(ct),$e=function(t){gt(e,t);function e(n){var r=t.call(this,n.definition)||this;return r.idx=1,tt(r,et(n,function(i){return i!==void 0})),r}return e}(ct),He=function(t){gt(e,t);function e(n){var r=t.call(this,n.definition)||this;return r.idx=1,r.ignoreAmbiguities=!1,r.hasPredicates=!1,tt(r,et(n,function(i){return i!==void 0})),r}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(n){this._definition=n},enumerable:!1,configurable:!0}),e}(ct),ne=function(){function t(e){this.idx=1,tt(this,et(e,function(n){return n!==void 0}))}return t.prototype.accept=function(e){e.visit(this)},t}();function ds(t){return x(t,en)}function en(t){function e(i){return x(i,en)}if(t instanceof Ue)return{type:"NonTerminal",name:t.nonTerminalName,idx:t.idx};if(t instanceof Te)return{type:"Alternative",definition:e(t.definition)};if(t instanceof ye)return{type:"Option",idx:t.idx,definition:e(t.definition)};if(t instanceof qe)return{type:"RepetitionMandatory",idx:t.idx,definition:e(t.definition)};if(t instanceof Ye)return{type:"RepetitionMandatoryWithSeparator",idx:t.idx,separator:en(new ne({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof $e)return{type:"RepetitionWithSeparator",idx:t.idx,separator:en(new ne({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof ce)return{type:"Repetition",idx:t.idx,definition:e(t.definition)};if(t instanceof He)return{type:"Alternation",idx:t.idx,definition:e(t.definition)};if(t instanceof ne){var n={type:"Terminal",name:t.terminalType.name,label:Pt(t.terminalType),idx:t.idx},r=t.terminalType.PATTERN;return t.terminalType.PATTERN&&(n.pattern=dt(r)?r.source:r),n}else{if(t instanceof xt)return{type:"Rule",name:t.name,orgText:t.orgText,definition:e(t.definition)};throw Error("non exhaustive match")}}var Xn=function(){function t(){}return t.prototype.walk=function(e,n){var r=this;n===void 0&&(n=[]),V(e.definition,function(i,a){var c=Re(e.definition,a+1);if(i instanceof Ue)r.walkProdRef(i,c,n);else if(i instanceof ne)r.walkTerminal(i,c,n);else if(i instanceof Te)r.walkFlat(i,c,n);else if(i instanceof ye)r.walkOption(i,c,n);else if(i instanceof qe)r.walkAtLeastOne(i,c,n);else if(i instanceof Ye)r.walkAtLeastOneSep(i,c,n);else if(i instanceof $e)r.walkManySep(i,c,n);else if(i instanceof ce)r.walkMany(i,c,n);else if(i instanceof He)r.walkOr(i,c,n);else throw Error("non exhaustive match")})},t.prototype.walkTerminal=function(e,n,r){},t.prototype.walkProdRef=function(e,n,r){},t.prototype.walkFlat=function(e,n,r){var i=n.concat(r);this.walk(e,i)},t.prototype.walkOption=function(e,n,r){var i=n.concat(r);this.walk(e,i)},t.prototype.walkAtLeastOne=function(e,n,r){var i=[new ye({definition:e.definition})].concat(n,r);this.walk(e,i)},t.prototype.walkAtLeastOneSep=function(e,n,r){var i=Di(e,n,r);this.walk(e,i)},t.prototype.walkMany=function(e,n,r){var i=[new ye({definition:e.definition})].concat(n,r);this.walk(e,i)},t.prototype.walkManySep=function(e,n,r){var i=Di(e,n,r);this.walk(e,i)},t.prototype.walkOr=function(e,n,r){var i=this,a=n.concat(r);V(e.definition,function(c){var h=new Te({definition:[c]});i.walk(h,a)})},t}();function Di(t,e,n){var r=[new ye({definition:[new ne({terminalType:t.separator})].concat(t.definition)})],i=r.concat(e,n);return i}var St=function(){function t(){}return t.prototype.visit=function(e){var n=e;switch(n.constructor){case Ue:return this.visitNonTerminal(n);case Te:return this.visitAlternative(n);case ye:return this.visitOption(n);case qe:return this.visitRepetitionMandatory(n);case Ye:return this.visitRepetitionMandatoryWithSeparator(n);case $e:return this.visitRepetitionWithSeparator(n);case ce:return this.visitRepetition(n);case He:return this.visitAlternation(n);case ne:return this.visitTerminal(n);case xt:return this.visitRule(n);default:throw Error("non exhaustive match")}},t.prototype.visitNonTerminal=function(e){},t.prototype.visitAlternative=function(e){},t.prototype.visitOption=function(e){},t.prototype.visitRepetition=function(e){},t.prototype.visitRepetitionMandatory=function(e){},t.prototype.visitRepetitionMandatoryWithSeparator=function(e){},t.prototype.visitRepetitionWithSeparator=function(e){},t.prototype.visitAlternation=function(e){},t.prototype.visitTerminal=function(e){},t.prototype.visitRule=function(e){},t}(),yl=globalThis&&globalThis.__extends||function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(r[a]=i[a])},t(e,n)};return function(e,n){t(e,n);function r(){this.constructor=e}e.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}();function Tl(t){return t instanceof Te||t instanceof ye||t instanceof ce||t instanceof qe||t instanceof Ye||t instanceof $e||t instanceof ne||t instanceof xt}function Fn(t,e){e===void 0&&(e=[]);var n=t instanceof ye||t instanceof ce||t instanceof $e;return n?!0:t instanceof He?Jo(t.definition,function(r){return Fn(r,e)}):t instanceof Ue&&fe(e,t)?!1:t instanceof ct?(t instanceof Ue&&e.push(t),We(t.definition,function(r){return Fn(r,e)})):!1}function wl(t){return t instanceof He}function it(t){if(t instanceof Ue)return"SUBRULE";if(t instanceof ye)return"OPTION";if(t instanceof He)return"OR";if(t instanceof qe)return"AT_LEAST_ONE";if(t instanceof Ye)return"AT_LEAST_ONE_SEP";if(t instanceof $e)return"MANY_SEP";if(t instanceof ce)return"MANY";if(t instanceof ne)return"CONSUME";throw Error("non exhaustive match")}var vs=function(t){yl(e,t);function e(){var n=t!==null&&t.apply(this,arguments)||this;return n.separator="-",n.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},n}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(n){var r=n.terminalType.name+this.separator+"Terminal";$(this.dslMethods,r)||(this.dslMethods[r]=[]),this.dslMethods[r].push(n)},e.prototype.visitNonTerminal=function(n){var r=n.nonTerminalName+this.separator+"Terminal";$(this.dslMethods,r)||(this.dslMethods[r]=[]),this.dslMethods[r].push(n)},e.prototype.visitOption=function(n){this.dslMethods.option.push(n)},e.prototype.visitRepetitionWithSeparator=function(n){this.dslMethods.repetitionWithSeparator.push(n)},e.prototype.visitRepetitionMandatory=function(n){this.dslMethods.repetitionMandatory.push(n)},e.prototype.visitRepetitionMandatoryWithSeparator=function(n){this.dslMethods.repetitionMandatoryWithSeparator.push(n)},e.prototype.visitRepetition=function(n){this.dslMethods.repetition.push(n)},e.prototype.visitAlternation=function(n){this.dslMethods.alternation.push(n)},e}(St),yn=new vs;function Cl(t){yn.reset(),t.accept(yn);var e=yn.dslMethods;return yn.reset(),e}function ln(t){if(t instanceof Ue)return ln(t.referencedRule);if(t instanceof ne)return Ml(t);if(Tl(t))return Il(t);if(wl(t))return Ol(t);throw Error("non exhaustive match")}function Il(t){for(var e=[],n=t.definition,r=0,i=n.length>r,a,c=!0;i&&c;)a=n[r],c=Fn(a),e=e.concat(ln(a)),r=r+1,i=n.length>r;return qr(e)}function Ol(t){var e=x(t.definition,function(n){return ln(n)});return qr(Ge(e))}function Ml(t){return[t.terminalType]}var gs="_~IN~_",Ul=globalThis&&globalThis.__extends||function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(r[a]=i[a])},t(e,n)};return function(e,n){t(e,n);function r(){this.constructor=e}e.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),Ll=function(t){Ul(e,t);function e(n){var r=t.call(this)||this;return r.topProd=n,r.follows={},r}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(n,r,i){},e.prototype.walkProdRef=function(n,r,i){var a=Pl(n.referencedRule,n.idx)+this.topProd.name,c=r.concat(i),h=new Te({definition:c}),p=ln(h);this.follows[a]=p},e}(Xn);function _l(t){var e={};return V(t,function(n){var r=new Ll(n).startWalking();tt(e,r)}),e}function Pl(t,e){return t.name+e+gs}var Qr={buildMismatchTokenMessage:function(t){var e=t.expected,n=t.actual;t.previous,t.ruleName;var r=ps(e),i=r?"--> "+Pt(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+i+" but found --> '"+n.image+"' <--";return a},buildNotAllInputParsedMessage:function(t){var e=t.firstRedundant;return t.ruleName,"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(t){var e=t.expectedPathsPerAlt,n=t.actual;t.previous;var r=t.customUserDescription;t.ruleName;var i="Expecting: ",a=Je(n).image,c=` -but found: '`+a+"'";if(r)return i+r+c;var h=Ne(e,function(s,l){return s.concat(l)},[]),p=x(h,function(s){return"["+x(s,function(l){return Pt(l)}).join(", ")+"]"}),u=x(p,function(s,l){return" "+(l+1)+". "+s}),o=`one of these possible Token sequences: -`+u.join(` -`);return i+o+c},buildEarlyExitMessage:function(t){var e=t.expectedIterationPaths,n=t.actual,r=t.customUserDescription;t.ruleName;var i="Expecting: ",a=Je(n).image,c=` -but found: '`+a+"'";if(r)return i+r+c;var h=x(e,function(u){return"["+x(u,function(o){return Pt(o)}).join(",")+"]"}),p=`expecting at least one iteration which starts with one of these possible Token sequences:: - `+("<"+h.join(" ,")+">");return i+p+c}};Object.freeze(Qr);var Es={buildRuleNotFoundError:function(t,e){var n="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- -inside top level rule: ->`+t.name+"<-";return n}},Qn={buildDuplicateFoundError:function(t,e){function n(o){return o instanceof ne?o.terminalType.name:o instanceof Ue?o.nonTerminalName:""}var r=t.name,i=Je(e),a=i.idx,c=it(i),h=n(i),p=a>0,u="->"+c+(p?a:"")+"<- "+(h?"with argument: ->"+h+"<-":"")+` - appears more than once (`+e.length+" times) in the top level rule: ->"+r+`<-. - For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES - `;return u=u.replace(/[ \t]+/g," "),u=u.replace(/\s\s+/g,` -`),u},buildNamespaceConflictError:function(t){var e=`Namespace conflict found in grammar. -`+("The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <"+t.name+`>. -`)+`To resolve this make sure each Terminal and Non-Terminal names are unique -This is easy to accomplish by using the convention that Terminal names start with an uppercase letter -and Non-Terminal names start with a lower case letter.`;return e},buildAlternationPrefixAmbiguityError:function(t){var e=x(t.prefixPath,function(i){return Pt(i)}).join(", "),n=t.alternation.idx===0?"":t.alternation.idx,r="Ambiguous alternatives: <"+t.ambiguityIndices.join(" ,")+`> due to common lookahead prefix -`+("in inside <"+t.topLevelRule.name+`> Rule, -`)+("<"+e+`> may appears as a prefix path in all these alternatives. -`)+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX -For Further details.`;return r},buildAlternationAmbiguityError:function(t){var e=x(t.prefixPath,function(i){return Pt(i)}).join(", "),n=t.alternation.idx===0?"":t.alternation.idx,r="Ambiguous Alternatives Detected: <"+t.ambiguityIndices.join(" ,")+"> in "+(" inside <"+t.topLevelRule.name+`> Rule, -`)+("<"+e+`> may appears as a prefix path in all these alternatives. -`);return r=r+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES -For Further details.`,r},buildEmptyRepetitionError:function(t){var e=it(t.repetition);t.repetition.idx!==0&&(e+=t.repetition.idx);var n="The repetition <"+e+"> within Rule <"+t.topLevelRule.name+`> can never consume any tokens. -This could lead to an infinite loop.`;return n},buildTokenNameError:function(t){return"deprecated"},buildEmptyAlternationError:function(t){var e="Ambiguous empty alternative: <"+(t.emptyChoiceIdx+1)+">"+(" in inside <"+t.topLevelRule.name+`> Rule. -`)+"Only the last alternative may be an empty alternative.";return e},buildTooManyAlternativesError:function(t){var e=`An Alternation cannot have more than 256 alternatives: -`+(" inside <"+t.topLevelRule.name+`> Rule. - has `+(t.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(t){var e=t.topLevelRule.name,n=x(t.leftRecursionPath,function(a){return a.name}),r=e+" --> "+n.concat([e]).join(" --> "),i=`Left Recursion found in grammar. -`+("rule: <"+e+`> can be invoked from itself (directly or indirectly) -`)+(`without consuming any Tokens. The grammar path that causes this is: - `+r+` -`)+` To fix this refactor your grammar to remove the left recursion. -see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return i},buildInvalidRuleNameError:function(t){return"deprecated"},buildDuplicateRuleNameError:function(t){var e;t.topLevelRule instanceof xt?e=t.topLevelRule.name:e=t.topLevelRule;var n="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+t.grammarName+"<-";return n}},kl=globalThis&&globalThis.__extends||function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(r[a]=i[a])},t(e,n)};return function(e,n){t(e,n);function r(){this.constructor=e}e.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}();function xl(t,e){var n=new Sl(t,e);return n.resolveRefs(),n.errors}var Sl=function(t){kl(e,t);function e(n,r){var i=t.call(this)||this;return i.nameToTopRule=n,i.errMsgProvider=r,i.errors=[],i}return e.prototype.resolveRefs=function(){var n=this;V(xe(this.nameToTopRule),function(r){n.currTopLevel=r,r.accept(n)})},e.prototype.visitNonTerminal=function(n){var r=this.nameToTopRule[n.nonTerminalName];if(r)n.referencedRule=r;else{var i=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,n);this.errors.push({message:i,type:Le.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:n.nonTerminalName})}},e}(St),Bt=globalThis&&globalThis.__extends||function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(r[a]=i[a])},t(e,n)};return function(e,n){t(e,n);function r(){this.constructor=e}e.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),Bl=function(t){Bt(e,t);function e(n,r){var i=t.call(this)||this;return i.topProd=n,i.path=r,i.possibleTokTypes=[],i.nextProductionName="",i.nextProductionOccurrence=0,i.found=!1,i.isAtEndOfPath=!1,i}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=Se(this.path.ruleStack).reverse(),this.occurrenceStack=Se(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(n,r){r===void 0&&(r=[]),this.found||t.prototype.walk.call(this,n,r)},e.prototype.walkProdRef=function(n,r,i){if(n.referencedRule.name===this.nextProductionName&&n.idx===this.nextProductionOccurrence){var a=r.concat(i);this.updateExpectedNext(),this.walk(n.referencedRule,a)}},e.prototype.updateExpectedNext=function(){ee(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}(Xn),Fl=function(t){Bt(e,t);function e(n,r){var i=t.call(this,n,r)||this;return i.path=r,i.nextTerminalName="",i.nextTerminalOccurrence=0,i.nextTerminalName=i.path.lastTok.name,i.nextTerminalOccurrence=i.path.lastTokOccurrence,i}return e.prototype.walkTerminal=function(n,r,i){if(this.isAtEndOfPath&&n.terminalType.name===this.nextTerminalName&&n.idx===this.nextTerminalOccurrence&&!this.found){var a=r.concat(i),c=new Te({definition:a});this.possibleTokTypes=ln(c),this.found=!0}},e}(Bl),Zn=function(t){Bt(e,t);function e(n,r){var i=t.call(this)||this;return i.topRule=n,i.occurrence=r,i.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},i}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}(Xn),bl=function(t){Bt(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.walkMany=function(n,r,i){if(n.idx===this.occurrence){var a=Je(r.concat(i));this.result.isEndOfRule=a===void 0,a instanceof ne&&(this.result.token=a.terminalType,this.result.occurrence=a.idx)}else t.prototype.walkMany.call(this,n,r,i)},e}(Zn),Vi=function(t){Bt(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.walkManySep=function(n,r,i){if(n.idx===this.occurrence){var a=Je(r.concat(i));this.result.isEndOfRule=a===void 0,a instanceof ne&&(this.result.token=a.terminalType,this.result.occurrence=a.idx)}else t.prototype.walkManySep.call(this,n,r,i)},e}(Zn),Dl=function(t){Bt(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(n,r,i){if(n.idx===this.occurrence){var a=Je(r.concat(i));this.result.isEndOfRule=a===void 0,a instanceof ne&&(this.result.token=a.terminalType,this.result.occurrence=a.idx)}else t.prototype.walkAtLeastOne.call(this,n,r,i)},e}(Zn),Gi=function(t){Bt(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(n,r,i){if(n.idx===this.occurrence){var a=Je(r.concat(i));this.result.isEndOfRule=a===void 0,a instanceof ne&&(this.result.token=a.terminalType,this.result.occurrence=a.idx)}else t.prototype.walkAtLeastOneSep.call(this,n,r,i)},e}(Zn);function Sr(t,e,n){n===void 0&&(n=[]),n=Se(n);var r=[],i=0;function a(u){return u.concat(Re(t,i+1))}function c(u){var o=Sr(a(u),e,n);return r.concat(o)}for(;n.length=0;F--){var S=E.definition[F],G={idx:v,def:S.definition.concat(Re(f)),ruleStack:d,occurrenceStack:g};s.push(G),s.push(c)}else if(E instanceof Te)s.push({idx:v,def:E.definition.concat(Re(f)),ruleStack:d,occurrenceStack:g});else if(E instanceof xt)s.push(Vl(E,v,d,g));else throw Error("non exhaustive match")}}return o}function Vl(t,e,n,r){var i=Se(n);i.push(t.name);var a=Se(r);return a.push(1),{idx:e,def:t.definition,ruleStack:i,occurrenceStack:a}}var Rs=globalThis&&globalThis.__extends||function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(r[a]=i[a])},t(e,n)};return function(e,n){t(e,n);function r(){this.constructor=e}e.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),j;(function(t){t[t.OPTION=0]="OPTION",t[t.REPETITION=1]="REPETITION",t[t.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",t[t.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",t[t.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",t[t.ALTERNATION=5]="ALTERNATION"})(j||(j={}));function Gl(t){if(t instanceof ye)return j.OPTION;if(t instanceof ce)return j.REPETITION;if(t instanceof qe)return j.REPETITION_MANDATORY;if(t instanceof Ye)return j.REPETITION_MANDATORY_WITH_SEPARATOR;if(t instanceof $e)return j.REPETITION_WITH_SEPARATOR;if(t instanceof He)return j.ALTERNATION;throw Error("non exhaustive match")}function $l(t,e,n,r,i,a){var c=Zr(t,e,n),h=ys(c)?Bn:Kn;return a(c,r,h,i)}function Hl(t,e,n,r,i,a){var c=Jr(t,e,i,n),h=ys(c)?Bn:Kn;return a(c[0],h,r)}function Wl(t,e,n,r){var i=t.length,a=We(t,function(p){return We(p,function(u){return u.length===1})});if(e)return function(p){for(var u=x(p,function(m){return m.GATE}),o=0;o1}),c=x(xe(a),function(h){var p=Je(h),u=e.buildDuplicateFoundError(t,h),o=it(p),s={message:u,type:Le.DUPLICATE_PRODUCTIONS,ruleName:t.name,dslName:o,occurrence:p.idx},l=Ts(p);return l&&(s.parameter=l),s});return c}function Zl(t){return it(t)+"_#_"+t.idx+"_#_"+Ts(t)}function Ts(t){return t instanceof ne?t.terminalType.name:t instanceof Ue?t.nonTerminalName:""}var Jl=function(t){jr(e,t);function e(){var n=t!==null&&t.apply(this,arguments)||this;return n.allProductions=[],n}return e.prototype.visitNonTerminal=function(n){this.allProductions.push(n)},e.prototype.visitOption=function(n){this.allProductions.push(n)},e.prototype.visitRepetitionWithSeparator=function(n){this.allProductions.push(n)},e.prototype.visitRepetitionMandatory=function(n){this.allProductions.push(n)},e.prototype.visitRepetitionMandatoryWithSeparator=function(n){this.allProductions.push(n)},e.prototype.visitRepetition=function(n){this.allProductions.push(n)},e.prototype.visitAlternation=function(n){this.allProductions.push(n)},e.prototype.visitTerminal=function(n){this.allProductions.push(n)},e}(St);function jl(t,e,n,r){var i=[],a=Ne(e,function(h,p){return p.name===t.name?h+1:h},0);if(a>1){var c=r.buildDuplicateRuleNameError({topLevelRule:t,grammarName:n});i.push({message:c,type:Le.DUPLICATE_RULE_NAME,ruleName:t.name})}return i}function eu(t,e,n){var r=[],i;return fe(e,t)||(i="Invalid rule override, rule: ->"+t+"<- cannot be overridden in the grammar: ->"+n+"<-as it is not defined in any of the super grammars ",r.push({message:i,type:Le.INVALID_RULE_OVERRIDE,ruleName:t})),r}function ws(t,e,n,r){r===void 0&&(r=[]);var i=[],a=Mn(e.definition);if(ee(a))return[];var c=t.name,h=fe(a,t);h&&i.push({message:n.buildLeftRecursionError({topLevelRule:t,leftRecursionPath:r}),type:Le.LEFT_RECURSION,ruleName:c});var p=qn(a,r.concat([t])),u=x(p,function(o){var s=Se(r);return s.push(o),ws(t,o,n,s)});return i.concat(Ge(u))}function Mn(t){var e=[];if(ee(t))return e;var n=Je(t);if(n instanceof Ue)e.push(n.referencedRule);else if(n instanceof Te||n instanceof ye||n instanceof qe||n instanceof Ye||n instanceof $e||n instanceof ce)e=e.concat(Mn(n.definition));else if(n instanceof He)e=Ge(x(n.definition,function(c){return Mn(c.definition)}));else if(!(n instanceof ne))throw Error("non exhaustive match");var r=Fn(n),i=t.length>1;if(r&&i){var a=Re(t);return e.concat(Mn(a))}else return e}var ei=function(t){jr(e,t);function e(){var n=t!==null&&t.apply(this,arguments)||this;return n.alternations=[],n}return e.prototype.visitAlternation=function(n){this.alternations.push(n)},e}(St);function tu(t,e){var n=new ei;t.accept(n);var r=n.alternations,i=Ne(r,function(a,c){var h=nn(c.definition),p=x(h,function(u,o){var s=ms([u],[],null,1);return ee(s)?{message:e.buildEmptyAlternationError({topLevelRule:t,alternation:c,emptyChoiceIdx:o}),type:Le.NONE_LAST_EMPTY_ALT,ruleName:t.name,occurrence:c.idx,alternative:o+1}:null});return a.concat(sn(p))},[]);return i}function nu(t,e,n){var r=new ei;t.accept(r);var i=r.alternations;i=Wt(i,function(c){return c.ignoreAmbiguities===!0});var a=Ne(i,function(c,h){var p=h.idx,u=h.maxLookahead||e,o=Zr(p,t,u,h),s=su(o,h,t,n),l=au(o,h,t,n);return c.concat(s,l)},[]);return a}var ru=function(t){jr(e,t);function e(){var n=t!==null&&t.apply(this,arguments)||this;return n.allProductions=[],n}return e.prototype.visitRepetitionWithSeparator=function(n){this.allProductions.push(n)},e.prototype.visitRepetitionMandatory=function(n){this.allProductions.push(n)},e.prototype.visitRepetitionMandatoryWithSeparator=function(n){this.allProductions.push(n)},e.prototype.visitRepetition=function(n){this.allProductions.push(n)},e}(St);function iu(t,e){var n=new ei;t.accept(n);var r=n.alternations,i=Ne(r,function(a,c){return c.definition.length>255&&a.push({message:e.buildTooManyAlternativesError({topLevelRule:t,alternation:c}),type:Le.TOO_MANY_ALTS,ruleName:t.name,occurrence:c.idx}),a},[]);return i}function ou(t,e,n){var r=[];return V(t,function(i){var a=new ru;i.accept(a);var c=a.allProductions;V(c,function(h){var p=Gl(h),u=h.maxLookahead||e,o=h.idx,s=Jr(o,i,p,u),l=s[0];if(ee(Ge(l))){var f=n.buildEmptyRepetitionError({topLevelRule:i,repetition:h});r.push({message:f,type:Le.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),r}function su(t,e,n,r){var i=[],a=Ne(t,function(h,p,u){return e.definition[u].ignoreAmbiguities===!0||V(p,function(o){var s=[u];V(t,function(l,f){u!==f&&Br(l,o)&&e.definition[f].ignoreAmbiguities!==!0&&s.push(f)}),s.length>1&&!Br(i,o)&&(i.push(o),h.push({alts:s,path:o}))}),h},[]),c=x(a,function(h){var p=x(h.alts,function(o){return o+1}),u=r.buildAlternationAmbiguityError({topLevelRule:n,alternation:e,ambiguityIndices:p,prefixPath:h.path});return{message:u,type:Le.AMBIGUOUS_ALTS,ruleName:n.name,occurrence:e.idx,alternatives:[h.alts]}});return c}function au(t,e,n,r){var i=[],a=Ne(t,function(c,h,p){var u=x(h,function(o){return{idx:p,path:o}});return c.concat(u)},[]);return V(a,function(c){var h=e.definition[c.idx];if(h.ignoreAmbiguities!==!0){var p=c.idx,u=c.path,o=Uc(a,function(l){return e.definition[l.idx].ignoreAmbiguities!==!0&&l.idx: - `+(""+a.join(` - -`).replace(/\n/g,` - `)))}}};return n.prototype=r,n.prototype.constructor=n,n._RULE_NAMES=e,n}function Ru(t,e,n){var r=function(){};Ds(r,t+"BaseSemanticsWithDefaults");var i=Object.create(n.prototype);return V(e,function(a){i[a]=Eu}),r.prototype=i,r.prototype.constructor=r,r}var bn;(function(t){t[t.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",t[t.MISSING_METHOD=1]="MISSING_METHOD"})(bn||(bn={}));function Nu(t,e){var n=Au(t,e),r=Tu(t,e);return n.concat(r)}function Au(t,e){var n=x(e,function(r){if(!Ct(t[r]))return{msg:"Missing visitor method: <"+r+"> on "+jn(t.constructor)+" CST Visitor.",type:bn.MISSING_METHOD,methodName:r}});return sn(n)}var yu=["constructor","visit","validateVisitor"];function Tu(t,e){var n=[];for(var r in t)Ct(t[r])&&!fe(yu,r)&&!fe(e,r)&&n.push({msg:"Redundant visitor method: <"+r+"> on "+jn(t.constructor)+` CST Visitor -There is no Grammar Rule corresponding to this method's name. -`,type:bn.REDUNDANT_METHOD,methodName:r});return n}var wu=function(){function t(){}return t.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=$(e,"nodeLocationTracking")?e.nodeLocationTracking:vt.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=de,this.cstFinallyStateUpdate=de,this.cstPostTerminal=de,this.cstPostNonTerminal=de,this.cstPostRule=de;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Wi,this.setNodeLocationFromNode=Wi,this.cstPostRule=de,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=de,this.setNodeLocationFromNode=de,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Hi,this.setNodeLocationFromNode=Hi,this.cstPostRule=de,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=de,this.setNodeLocationFromNode=de,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=de,this.setNodeLocationFromNode=de,this.cstPostRule=de,this.setInitialNodeLocation=de;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},t.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},t.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},t.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},t.prototype.setInitialNodeLocationFullRegular=function(e){var n=this.LA(1);e.location={startOffset:n.startOffset,startLine:n.startLine,startColumn:n.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},t.prototype.cstInvocationStateUpdate=function(e,n){var r={name:e,children:{}};this.setInitialNodeLocation(r),this.CST_STACK.push(r)},t.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},t.prototype.cstPostRuleFull=function(e){var n=this.LA(0),r=e.location;r.startOffset<=n.startOffset?(r.endOffset=n.endOffset,r.endLine=n.endLine,r.endColumn=n.endColumn):(r.startOffset=NaN,r.startLine=NaN,r.startColumn=NaN)},t.prototype.cstPostRuleOnlyOffset=function(e){var n=this.LA(0),r=e.location;r.startOffset<=n.startOffset?r.endOffset=n.endOffset:r.startOffset=NaN},t.prototype.cstPostTerminal=function(e,n){var r=this.CST_STACK[this.CST_STACK.length-1];du(r,n,e),this.setNodeLocationFromToken(r.location,n)},t.prototype.cstPostNonTerminal=function(e,n){var r=this.CST_STACK[this.CST_STACK.length-1];vu(r,n,e),this.setNodeLocationFromNode(r.location,e.location)},t.prototype.getBaseCstVisitorConstructor=function(){if(pt(this.baseCstVisitorConstructor)){var e=mu(this.className,Ze(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},t.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if(pt(this.baseCstVisitorWithDefaultsConstructor)){var e=Ru(this.className,Ze(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},t.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},t.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},t.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},t}(),Cu=function(){function t(){}return t.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(t.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),t.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Vn},t.prototype.LA=function(e){var n=this.currIdx+e;return n<0||this.tokVectorLength<=n?Vn:this.tokVector[n]},t.prototype.consumeToken=function(){this.currIdx++},t.prototype.exportLexerState=function(){return this.currIdx},t.prototype.importLexerState=function(e){this.currIdx=e},t.prototype.resetLexerState=function(){this.currIdx=-1},t.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},t.prototype.getLexerPosition=function(){return this.exportLexerState()},t}(),Iu=function(){function t(){}return t.prototype.ACTION=function(e){return e.call(this)},t.prototype.consume=function(e,n,r){return this.consumeInternal(n,e,r)},t.prototype.subrule=function(e,n,r){return this.subruleInternal(n,e,r)},t.prototype.option=function(e,n){return this.optionInternal(n,e)},t.prototype.or=function(e,n){return this.orInternal(n,e)},t.prototype.many=function(e,n){return this.manyInternal(e,n)},t.prototype.atLeastOne=function(e,n){return this.atLeastOneInternal(e,n)},t.prototype.CONSUME=function(e,n){return this.consumeInternal(e,0,n)},t.prototype.CONSUME1=function(e,n){return this.consumeInternal(e,1,n)},t.prototype.CONSUME2=function(e,n){return this.consumeInternal(e,2,n)},t.prototype.CONSUME3=function(e,n){return this.consumeInternal(e,3,n)},t.prototype.CONSUME4=function(e,n){return this.consumeInternal(e,4,n)},t.prototype.CONSUME5=function(e,n){return this.consumeInternal(e,5,n)},t.prototype.CONSUME6=function(e,n){return this.consumeInternal(e,6,n)},t.prototype.CONSUME7=function(e,n){return this.consumeInternal(e,7,n)},t.prototype.CONSUME8=function(e,n){return this.consumeInternal(e,8,n)},t.prototype.CONSUME9=function(e,n){return this.consumeInternal(e,9,n)},t.prototype.SUBRULE=function(e,n){return this.subruleInternal(e,0,n)},t.prototype.SUBRULE1=function(e,n){return this.subruleInternal(e,1,n)},t.prototype.SUBRULE2=function(e,n){return this.subruleInternal(e,2,n)},t.prototype.SUBRULE3=function(e,n){return this.subruleInternal(e,3,n)},t.prototype.SUBRULE4=function(e,n){return this.subruleInternal(e,4,n)},t.prototype.SUBRULE5=function(e,n){return this.subruleInternal(e,5,n)},t.prototype.SUBRULE6=function(e,n){return this.subruleInternal(e,6,n)},t.prototype.SUBRULE7=function(e,n){return this.subruleInternal(e,7,n)},t.prototype.SUBRULE8=function(e,n){return this.subruleInternal(e,8,n)},t.prototype.SUBRULE9=function(e,n){return this.subruleInternal(e,9,n)},t.prototype.OPTION=function(e){return this.optionInternal(e,0)},t.prototype.OPTION1=function(e){return this.optionInternal(e,1)},t.prototype.OPTION2=function(e){return this.optionInternal(e,2)},t.prototype.OPTION3=function(e){return this.optionInternal(e,3)},t.prototype.OPTION4=function(e){return this.optionInternal(e,4)},t.prototype.OPTION5=function(e){return this.optionInternal(e,5)},t.prototype.OPTION6=function(e){return this.optionInternal(e,6)},t.prototype.OPTION7=function(e){return this.optionInternal(e,7)},t.prototype.OPTION8=function(e){return this.optionInternal(e,8)},t.prototype.OPTION9=function(e){return this.optionInternal(e,9)},t.prototype.OR=function(e){return this.orInternal(e,0)},t.prototype.OR1=function(e){return this.orInternal(e,1)},t.prototype.OR2=function(e){return this.orInternal(e,2)},t.prototype.OR3=function(e){return this.orInternal(e,3)},t.prototype.OR4=function(e){return this.orInternal(e,4)},t.prototype.OR5=function(e){return this.orInternal(e,5)},t.prototype.OR6=function(e){return this.orInternal(e,6)},t.prototype.OR7=function(e){return this.orInternal(e,7)},t.prototype.OR8=function(e){return this.orInternal(e,8)},t.prototype.OR9=function(e){return this.orInternal(e,9)},t.prototype.MANY=function(e){this.manyInternal(0,e)},t.prototype.MANY1=function(e){this.manyInternal(1,e)},t.prototype.MANY2=function(e){this.manyInternal(2,e)},t.prototype.MANY3=function(e){this.manyInternal(3,e)},t.prototype.MANY4=function(e){this.manyInternal(4,e)},t.prototype.MANY5=function(e){this.manyInternal(5,e)},t.prototype.MANY6=function(e){this.manyInternal(6,e)},t.prototype.MANY7=function(e){this.manyInternal(7,e)},t.prototype.MANY8=function(e){this.manyInternal(8,e)},t.prototype.MANY9=function(e){this.manyInternal(9,e)},t.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},t.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},t.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},t.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},t.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},t.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},t.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},t.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},t.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},t.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},t.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},t.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},t.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},t.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},t.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},t.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},t.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},t.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},t.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},t.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},t.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},t.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},t.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},t.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},t.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},t.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},t.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},t.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},t.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},t.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},t.prototype.RULE=function(e,n,r){if(r===void 0&&(r=Gn),fe(this.definedRulesNames,e)){var i=Qn.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),a={message:i,type:Le.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(a)}this.definedRulesNames.push(e);var c=this.defineRule(e,n,r);return this[e]=c,c},t.prototype.OVERRIDE_RULE=function(e,n,r){r===void 0&&(r=Gn);var i=[];i=i.concat(eu(e,this.definedRulesNames,this.className)),this.definitionErrors.push.apply(this.definitionErrors,i);var a=this.defineRule(e,n,r);return this[e]=a,a},t.prototype.BACKTRACK=function(e,n){return function(){this.isBackTrackingStack.push(1);var r=this.saveRecogState();try{return e.apply(this,n),!0}catch(i){if(rn(i))return!1;throw i}finally{this.reloadRecogState(r),this.isBackTrackingStack.pop()}}},t.prototype.getGAstProductions=function(){return this.gastProductionsCache},t.prototype.getSerializedGastProductions=function(){return ds(xe(this.gastProductionsCache))},t}(),Ou=function(){function t(){}return t.prototype.initRecognizerEngine=function(e,n){if(this.className=gu(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Bn,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},$(n,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. - See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 - For Further details.`);if(ot(e)){if(ee(e))throw Error(`A Token Vocabulary cannot be empty. - Note that the first argument for the parser constructor - is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. - See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 - For Further details.`)}if(ot(e))this.tokensMap=Ne(e,function(c,h){return c[h.name]=h,c},{});else if($(e,"modes")&&We(Ge(xe(e.modes)),El)){var r=Ge(xe(e.modes)),i=qr(r);this.tokensMap=Ne(i,function(c,h){return c[h.name]=h,c},{})}else if(Yr(e))this.tokensMap=on(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=wt;var a=We(xe(e),function(c){return ee(c.categoryMatches)});this.tokenMatcher=a?Bn:Kn,cn(xe(this.tokensMap))},t.prototype.defineRule=function(e,n,r){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' -Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var i=$(r,"resyncEnabled")?r.resyncEnabled:Gn.resyncEnabled,a=$(r,"recoveryValueFunc")?r.recoveryValueFunc:Gn.recoveryValueFunc,c=this.ruleShortNameIdx<n},t.prototype.orInternal=function(e,n){var r=this.getKeyForAutomaticLookahead(Fs,n),i=ot(e)?e:e.DEF,a=this.getLaFuncFromCache(r),c=a.call(this,i);if(c!==void 0){var h=i[c];return h.ALT.call(this)}this.raiseNoAltException(n,e.ERR_MSG)},t.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),n=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new ks(n,e))}},t.prototype.subruleInternal=function(e,n,r){var i;try{var a=r!==void 0?r.ARGS:void 0;return i=e.call(this,n,a),this.cstPostNonTerminal(i,r!==void 0&&r.LABEL!==void 0?r.LABEL:e.ruleName),i}catch(c){this.subruleInternalError(c,r,e.ruleName)}},t.prototype.subruleInternalError=function(e,n,r){throw rn(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,n!==void 0&&n.LABEL!==void 0?n.LABEL:r),delete e.partialCstResult),e},t.prototype.consumeInternal=function(e,n,r){var i;try{var a=this.LA(1);this.tokenMatcher(a,e)===!0?(this.consumeToken(),i=a):this.consumeInternalError(e,a,r)}catch(c){i=this.consumeInternalRecovery(e,n,c)}return this.cstPostTerminal(r!==void 0&&r.LABEL!==void 0?r.LABEL:e.name,i),i},t.prototype.consumeInternalError=function(e,n,r){var i,a=this.LA(0);throw r!==void 0&&r.ERR_MSG?i=r.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:n,previous:a,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new ti(i,n,a))},t.prototype.consumeInternalRecovery=function(e,n,r){if(this.recoveryEnabled&&r.name==="MismatchedTokenException"&&!this.isBackTracking()){var i=this.getFollowsForInRuleRecovery(e,n);try{return this.tryInRuleRecovery(e,i)}catch(a){throw a.name===Ss?r:a}}else throw r},t.prototype.saveRecogState=function(){var e=this.errors,n=Se(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:n,CST_STACK:this.CST_STACK}},t.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},t.prototype.ruleInvocationStateUpdate=function(e,n,r){this.RULE_OCCURRENCE_STACK.push(r),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(n,e)},t.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},t.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},t.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},t.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),wt)},t.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},t}(),Mu=function(){function t(){}return t.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=$(e,"errorMessageProvider")?e.errorMessageProvider:vt.errorMessageProvider},t.prototype.SAVE_ERROR=function(e){if(rn(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:Se(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(t.prototype,"errors",{get:function(){return Se(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),t.prototype.raiseEarlyExitException=function(e,n,r){for(var i=this.getCurrRuleFullName(),a=this.getGAstProductions()[i],c=Jr(e,a,n,this.maxLookahead),h=c[0],p=[],u=1;u<=this.maxLookahead;u++)p.push(this.LA(u));var o=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:h,actual:p,previous:this.LA(0),customUserDescription:r,ruleName:i});throw this.SAVE_ERROR(new xs(o,this.LA(1),this.LA(0)))},t.prototype.raiseNoAltException=function(e,n){for(var r=this.getCurrRuleFullName(),i=this.getGAstProductions()[r],a=Zr(e,i,this.maxLookahead),c=[],h=1;h<=this.maxLookahead;h++)c.push(this.LA(h));var p=this.LA(0),u=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:a,actual:c,previous:p,customUserDescription:n,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new Ps(u,this.LA(1),p))},t}(),Uu=function(){function t(){}return t.prototype.initContentAssist=function(){},t.prototype.computeContentAssist=function(e,n){var r=this.gastProductionsCache[e];if(pt(r))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return ms([r],n,this.tokenMatcher,this.maxLookahead)},t.prototype.getNextPossibleTokenTypes=function(e){var n=Je(e.ruleStack),r=this.getGAstProductions(),i=r[n],a=new Fl(i,e).startWalking();return a},t}(),er={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(er);var Yi=!0,Ki=Math.pow(2,It)-1,Vs=Xr({name:"RECORDING_PHASE_TOKEN",pattern:Qe.NA});cn([Vs]);var Gs=zn(Vs,`This IToken indicates the Parser is in Recording Phase - See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(Gs);var Lu={name:`This CSTNode indicates the Parser is in Recording Phase - See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},_u=function(){function t(){}return t.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},t.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var n=function(i){var a=i>0?i:"";e["CONSUME"+a]=function(c,h){return this.consumeInternalRecord(c,i,h)},e["SUBRULE"+a]=function(c,h){return this.subruleInternalRecord(c,i,h)},e["OPTION"+a]=function(c){return this.optionInternalRecord(c,i)},e["OR"+a]=function(c){return this.orInternalRecord(c,i)},e["MANY"+a]=function(c){this.manyInternalRecord(i,c)},e["MANY_SEP"+a]=function(c){this.manySepFirstInternalRecord(i,c)},e["AT_LEAST_ONE"+a]=function(c){this.atLeastOneInternalRecord(i,c)},e["AT_LEAST_ONE_SEP"+a]=function(c){this.atLeastOneSepFirstInternalRecord(i,c)}},r=0;r<10;r++)n(r);e.consume=function(i,a,c){return this.consumeInternalRecord(a,i,c)},e.subrule=function(i,a,c){return this.subruleInternalRecord(a,i,c)},e.option=function(i,a){return this.optionInternalRecord(a,i)},e.or=function(i,a){return this.orInternalRecord(a,i)},e.many=function(i,a){this.manyInternalRecord(i,a)},e.atLeastOne=function(i,a){this.atLeastOneInternalRecord(i,a)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},t.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var n=0;n<10;n++){var r=n>0?n:"";delete e["CONSUME"+r],delete e["SUBRULE"+r],delete e["OPTION"+r],delete e["OR"+r],delete e["MANY"+r],delete e["MANY_SEP"+r],delete e["AT_LEAST_ONE"+r],delete e["AT_LEAST_ONE_SEP"+r]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},t.prototype.ACTION_RECORD=function(e){},t.prototype.BACKTRACK_RECORD=function(e,n){return function(){return!0}},t.prototype.LA_RECORD=function(e){return Vn},t.prototype.topLevelRuleRecord=function(e,n){try{var r=new xt({definition:[],name:e});return r.name=e,this.recordingProdStack.push(r),n.call(this),this.recordingProdStack.pop(),r}catch(i){if(i.KNOWN_RECORDER_ERROR!==!0)try{i.message=i.message+` - This error was thrown during the "grammar recording phase" For more info see: - https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw i}throw i}},t.prototype.optionInternalRecord=function(e,n){return zt.call(this,ye,e,n)},t.prototype.atLeastOneInternalRecord=function(e,n){zt.call(this,qe,n,e)},t.prototype.atLeastOneSepFirstInternalRecord=function(e,n){zt.call(this,Ye,n,e,Yi)},t.prototype.manyInternalRecord=function(e,n){zt.call(this,ce,n,e)},t.prototype.manySepFirstInternalRecord=function(e,n){zt.call(this,$e,n,e,Yi)},t.prototype.orInternalRecord=function(e,n){return Pu.call(this,e,n)},t.prototype.subruleInternalRecord=function(e,n,r){if(Dn(n),!e||$(e,"ruleName")===!1){var i=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw i.KNOWN_RECORDER_ERROR=!0,i}var a=xn(this.recordingProdStack),c=e.ruleName,h=new Ue({idx:n,nonTerminalName:c,referencedRule:void 0});return a.definition.push(h),this.outputCst?Lu:er},t.prototype.consumeInternalRecord=function(e,n,r){if(Dn(n),!fs(e)){var i=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw i.KNOWN_RECORDER_ERROR=!0,i}var a=xn(this.recordingProdStack),c=new ne({idx:n,terminalType:e});return a.definition.push(c),Gs},t}();function zt(t,e,n,r){r===void 0&&(r=!1),Dn(n);var i=xn(this.recordingProdStack),a=Ct(e)?e:e.DEF,c=new t({definition:[],idx:n});return r&&(c.separator=e.SEP),$(e,"MAX_LOOKAHEAD")&&(c.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(c),a.call(this),i.definition.push(c),this.recordingProdStack.pop(),er}function Pu(t,e){var n=this;Dn(e);var r=xn(this.recordingProdStack),i=ot(t)===!1,a=i===!1?t:t.DEF,c=new He({definition:[],idx:e,ignoreAmbiguities:i&&t.IGNORE_AMBIGUITIES===!0});$(t,"MAX_LOOKAHEAD")&&(c.maxLookahead=t.MAX_LOOKAHEAD);var h=Jo(a,function(p){return Ct(p.GATE)});return c.hasPredicates=h,r.definition.push(c),V(a,function(p){var u=new Te({definition:[]});c.definition.push(u),$(p,"IGNORE_AMBIGUITIES")?u.ignoreAmbiguities=p.IGNORE_AMBIGUITIES:$(p,"GATE")&&(u.ignoreAmbiguities=!0),n.recordingProdStack.push(u),p.ALT.call(n),n.recordingProdStack.pop()}),er}function zi(t){return t===0?"":""+t}function Dn(t){if(t<0||t>Ki){var e=new Error("Invalid DSL Method idx value: <"+t+`> - `+("Idx value must be a none negative value smaller than "+(Ki+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}var ku=function(){function t(){}return t.prototype.initPerformanceTracer=function(e){if($(e,"traceInitPerf")){var n=e.traceInitPerf,r=typeof n=="number";this.traceInitMaxIdent=r?n:1/0,this.traceInitPerf=r?n>0:n}else this.traceInitMaxIdent=0,this.traceInitPerf=vt.traceInitPerf;this.traceInitIndent=-1},t.prototype.TRACE_INIT=function(e,n){if(this.traceInitPerf===!0){this.traceInitIndent++;var r=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var i=ts(n),a=i.time,c=i.value,h=a>10?console.warn:console.log;return this.traceInitIndent time: "+a+"ms"),this.traceInitIndent--,c}else return n()},t}(),$s=globalThis&&globalThis.__extends||function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(r[a]=i[a])},t(e,n)};return function(e,n){t(e,n);function r(){this.constructor=e}e.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),Vn=zn(wt,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Vn);var vt=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Qr,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),Gn=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0}),Le;(function(t){t[t.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",t[t.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",t[t.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",t[t.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",t[t.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",t[t.LEFT_RECURSION=5]="LEFT_RECURSION",t[t.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",t[t.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",t[t.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",t[t.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",t[t.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",t[t.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",t[t.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(Le||(Le={}));function xu(t){return t===void 0&&(t=void 0),function(){return t}}var ni=function(){function t(e,n){this.definitionErrors=[],this.selfAnalysisDone=!1;var r=this;if(r.initErrorHandler(n),r.initLexerAdapter(),r.initLooksAhead(n),r.initRecognizerEngine(e,n),r.initRecoverable(n),r.initTreeBuilder(n),r.initContentAssist(),r.initGastRecorder(n),r.initPerformanceTracer(n),$(n,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. - Please use the flag on the relevant DSL method instead. - See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES - For further details.`);this.skipValidations=$(n,"skipValidations")?n.skipValidations:vt.skipValidations}return t.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},t.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var n;e.selfAnalysisDone=!0;var r=e.className;e.TRACE_INIT("toFastProps",function(){es(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),V(e.definedRulesNames,function(a){var c=e[a],h=c.originalGrammarAction,p=void 0;e.TRACE_INIT(a+" Rule",function(){p=e.topLevelRuleRecord(a,h)}),e.gastProductionsCache[a]=p})}finally{e.disableRecording()}});var i=[];if(e.TRACE_INIT("Grammar Resolving",function(){i=Cs({rules:xe(e.gastProductionsCache)}),e.definitionErrors.push.apply(e.definitionErrors,i)}),e.TRACE_INIT("Grammar Validations",function(){if(ee(i)&&e.skipValidations===!1){var a=Is({rules:xe(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:xe(e.tokensMap),errMsgProvider:Qn,grammarName:r});e.definitionErrors.push.apply(e.definitionErrors,a)}}),ee(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var a=_l(xe(e.gastProductionsCache));e.resyncFollows=a}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions(xe(e.gastProductionsCache))})),!t.DEFER_DEFINITION_ERRORS_HANDLING&&!ee(e.definitionErrors))throw n=x(e.definitionErrors,function(a){return a.message}),new Error(`Parser Definition Errors detected: - `+n.join(` -------------------------------- -`))})},t.DEFER_DEFINITION_ERRORS_HANDLING=!1,t}();xc(ni,[uu,pu,wu,Cu,Ou,Iu,Mu,Uu,_u,ku]);var Su=function(t){$s(e,t);function e(n,r){r===void 0&&(r=vt);var i=this,a=on(r);return a.outputCst=!0,i=t.call(this,n,a)||this,i}return e}(ni),Bu=function(t){$s(e,t);function e(n,r){r===void 0&&(r=vt);var i=this,a=on(r);return a.outputCst=!1,i=t.call(this,n,a)||this,i}return e}(ni);function Fu(t,e){var n=e===void 0?{}:e,r=n.resourceBase,i=r===void 0?"https://unpkg.com/chevrotain@"+_r+"/diagrams/":r,a=n.css,c=a===void 0?"https://unpkg.com/chevrotain@"+_r+"/diagrams/diagrams.css":a,h=` - - - - - -`,p=` - -`,u=` -\\n\\n\\n\\n\";\n var diagramsDiv = \"\\n
\\n\";\n var serializedGrammar = \"\\n\\n\";\n var initLogic = \"\\n\\n\";\n return (header + cssHtml + scripts + diagramsDiv + serializedGrammar + initLogic);\n}\n//# sourceMappingURL=render_public.js.map","import { forEach, map } from \"../utils/utils\";\nimport { RepetitionMandatory, Option, RepetitionMandatoryWithSeparator, RepetitionWithSeparator, Terminal, NonTerminal, Alternation, Alternative, Repetition } from \"../parse/grammar/gast/gast_public\";\n/**\n * Missing features\n * 1. Rule arguments\n * 2. Gates\n * 3. embedded actions\n */\nvar NL = \"\\n\";\nexport function genUmdModule(options) {\n return \"\\n(function (root, factory) {\\n if (typeof define === 'function' && define.amd) {\\n // AMD. Register as an anonymous module.\\n define(['chevrotain'], factory);\\n } else if (typeof module === 'object' && module.exports) {\\n // Node. Does not work with strict CommonJS, but\\n // only CommonJS-like environments that support module.exports,\\n // like Node.\\n module.exports = factory(require('chevrotain'));\\n } else {\\n // Browser globals (root is window)\\n root.returnExports = factory(root.b);\\n }\\n}(typeof self !== 'undefined' ? self : this, function (chevrotain) {\\n\\n\" + genClass(options) + \"\\n \\nreturn {\\n \" + options.name + \": \" + options.name + \" \\n}\\n}));\\n\";\n}\nexport function genWrapperFunction(options) {\n return \" \\n\" + genClass(options) + \"\\nreturn new \" + options.name + \"(tokenVocabulary, config) \\n\";\n}\nexport function genClass(options) {\n // TODO: how to pass the token vocabulary? Constructor? other?\n var result = \"\\nfunction \" + options.name + \"(tokenVocabulary, config) {\\n // invoke super constructor\\n // No support for embedded actions currently, so we can 'hardcode'\\n // The use of CstParser.\\n chevrotain.CstParser.call(this, tokenVocabulary, config)\\n\\n const $ = this\\n\\n \" + genAllRules(options.rules) + \"\\n\\n // very important to call this after all the rules have been defined.\\n // otherwise the parser may not work correctly as it will lack information\\n // derived during the self analysis phase.\\n this.performSelfAnalysis(this)\\n}\\n\\n// inheritance as implemented in javascript in the previous decade... :(\\n\" + options.name + \".prototype = Object.create(chevrotain.CstParser.prototype)\\n\" + options.name + \".prototype.constructor = \" + options.name + \" \\n \";\n return result;\n}\nexport function genAllRules(rules) {\n var rulesText = map(rules, function (currRule) {\n return genRule(currRule, 1);\n });\n return rulesText.join(\"\\n\");\n}\nexport function genRule(prod, n) {\n var result = indent(n, \"$.RULE(\\\"\" + prod.name + \"\\\", function() {\") + NL;\n result += genDefinition(prod.definition, n + 1);\n result += indent(n + 1, \"})\") + NL;\n return result;\n}\nexport function genTerminal(prod, n) {\n var name = prod.terminalType.name;\n // TODO: potential performance optimization, avoid tokenMap Dictionary access\n return indent(n, \"$.CONSUME\" + prod.idx + \"(this.tokensMap.\" + name + \")\" + NL);\n}\nexport function genNonTerminal(prod, n) {\n return indent(n, \"$.SUBRULE\" + prod.idx + \"($.\" + prod.nonTerminalName + \")\" + NL);\n}\nexport function genAlternation(prod, n) {\n var result = indent(n, \"$.OR\" + prod.idx + \"([\") + NL;\n var alts = map(prod.definition, function (altDef) { return genSingleAlt(altDef, n + 1); });\n result += alts.join(\",\" + NL);\n result += NL + indent(n, \"])\" + NL);\n return result;\n}\nexport function genSingleAlt(prod, n) {\n var result = indent(n, \"{\") + NL;\n result += indent(n + 1, \"ALT: function() {\") + NL;\n result += genDefinition(prod.definition, n + 1);\n result += indent(n + 1, \"}\") + NL;\n result += indent(n, \"}\");\n return result;\n}\nfunction genProd(prod, n) {\n /* istanbul ignore else */\n if (prod instanceof NonTerminal) {\n return genNonTerminal(prod, n);\n }\n else if (prod instanceof Option) {\n return genDSLRule(\"OPTION\", prod, n);\n }\n else if (prod instanceof RepetitionMandatory) {\n return genDSLRule(\"AT_LEAST_ONE\", prod, n);\n }\n else if (prod instanceof RepetitionMandatoryWithSeparator) {\n return genDSLRule(\"AT_LEAST_ONE_SEP\", prod, n);\n }\n else if (prod instanceof RepetitionWithSeparator) {\n return genDSLRule(\"MANY_SEP\", prod, n);\n }\n else if (prod instanceof Repetition) {\n return genDSLRule(\"MANY\", prod, n);\n }\n else if (prod instanceof Alternation) {\n return genAlternation(prod, n);\n }\n else if (prod instanceof Terminal) {\n return genTerminal(prod, n);\n }\n else if (prod instanceof Alternative) {\n return genDefinition(prod.definition, n);\n }\n else {\n throw Error(\"non exhaustive match\");\n }\n}\nfunction genDSLRule(dslName, prod, n) {\n var result = indent(n, \"$.\" + (dslName + prod.idx) + \"(\");\n if (prod.separator) {\n result += \"{\" + NL;\n result +=\n indent(n + 1, \"SEP: this.tokensMap.\" + prod.separator.name) + \",\" + NL;\n result += \"DEF: \" + genDefFunction(prod.definition, n + 2) + NL;\n result += indent(n, \"}\") + NL;\n }\n else {\n result += genDefFunction(prod.definition, n + 1);\n }\n result += indent(n, \")\") + NL;\n return result;\n}\nfunction genDefFunction(definition, n) {\n var def = \"function() {\" + NL;\n def += genDefinition(definition, n);\n def += indent(n, \"}\") + NL;\n return def;\n}\nfunction genDefinition(def, n) {\n var result = \"\";\n forEach(def, function (prod) {\n result += genProd(prod, n + 1);\n });\n return result;\n}\nfunction indent(howMuch, text) {\n var spaces = Array(howMuch * 4 + 1).join(\" \");\n return spaces + text;\n}\n//# sourceMappingURL=generate.js.map","import { genUmdModule, genWrapperFunction } from \"./generate\";\nexport function generateParserFactory(options) {\n var wrapperText = genWrapperFunction({\n name: options.name,\n rules: options.rules\n });\n var constructorWrapper = new Function(\"tokenVocabulary\", \"config\", \"chevrotain\", wrapperText);\n return function (config) {\n return constructorWrapper(options.tokenVocabulary, config, \n // TODO: check how the require is transpiled/webpacked\n require(\"../api\"));\n };\n}\nexport function generateParserModule(options) {\n return genUmdModule({ name: options.name, rules: options.rules });\n}\n//# sourceMappingURL=generate_public.js.map","/* istanbul ignore file - tricky to import some things from this module during testing */\n// semantic version\nexport { VERSION } from \"./version\";\nexport { CstParser, EmbeddedActionsParser, ParserDefinitionErrorType, EMPTY_ALT } from \"./parse/parser/parser\";\nexport { Lexer, LexerDefinitionErrorType } from \"./scan/lexer_public\";\n// Tokens utilities\nexport { createToken, createTokenInstance, EOF, tokenLabel, tokenMatcher, tokenName } from \"./scan/tokens_public\";\n// Other Utilities\nexport { defaultGrammarResolverErrorProvider, defaultGrammarValidatorErrorProvider, defaultParserErrorProvider } from \"./parse/errors_public\";\nexport { EarlyExitException, isRecognitionException, MismatchedTokenException, NotAllInputParsedException, NoViableAltException } from \"./parse/exceptions_public\";\nexport { defaultLexerErrorProvider } from \"./scan/lexer_errors_public\";\n// grammar reflection API\nexport { Alternation, Alternative, NonTerminal, Option, Repetition, RepetitionMandatory, RepetitionMandatoryWithSeparator, RepetitionWithSeparator, Rule, Terminal } from \"./parse/grammar/gast/gast_public\";\n// GAST Utilities\nexport { serializeGrammar, serializeProduction } from \"./parse/grammar/gast/gast_public\";\nexport { GAstVisitor } from \"./parse/grammar/gast/gast_visitor_public\";\nexport { assignOccurrenceIndices, resolveGrammar, validateGrammar } from \"./parse/grammar/gast/gast_resolver_public\";\n/* istanbul ignore next */\nexport function clearCache() {\n console.warn(\"The clearCache function was 'soft' removed from the Chevrotain API.\" +\n \"\\n\\t It performs no action other than printing this message.\" +\n \"\\n\\t Please avoid using it as it will be completely removed in the future\");\n}\nexport { createSyntaxDiagramsCode } from \"./diagrams/render_public\";\nexport { generateParserFactory, generateParserModule } from \"./generate/generate_public\";\nvar Parser = /** @class */ (function () {\n function Parser() {\n throw new Error(\"The Parser class has been deprecated, use CstParser or EmbeddedActionsParser instead.\\t\\n\" +\n \"See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0\");\n }\n return Parser;\n}());\nexport { Parser };\n//# sourceMappingURL=api.js.map","const {createToken, Lexer} = require('chevrotain');\r\nconst FormulaError = require('../formulas/error')\r\n\r\n// the vocabulary will be exported and used in the Parser definition.\r\nconst tokenVocabulary = {};\r\n\r\nconst WhiteSpace = createToken({\r\n name: 'WhiteSpace',\r\n pattern: /\\s+/,\r\n group: Lexer.SKIPPED,\r\n});\r\n\r\nconst String = createToken({\r\n name: 'String',\r\n pattern: /\"(\"\"|[^\"])*\"/\r\n});\r\n\r\nconst SingleQuotedString = createToken({\r\n name: 'SingleQuotedString',\r\n pattern: /'(''|[^'])*'/\r\n});\r\n\r\nconst SheetQuoted = createToken({\r\n name: 'SheetQuoted',\r\n pattern: /'((?![\\\\\\/\\[\\]*?:]).)+?'!/\r\n});\r\n\r\nconst Function = createToken({\r\n name: 'Function',\r\n pattern: /[A-Za-z_]+[A-Za-z_0-9.]*\\(/\r\n});\r\n\r\nconst FormulaErrorT = createToken({\r\n name: 'FormulaErrorT',\r\n pattern: /#NULL!|#DIV\\/0!|#VALUE!|#NAME\\?|#NUM!|#N\\/A/\r\n});\r\n\r\nconst RefError = createToken({\r\n name: 'RefError',\r\n pattern: /#REF!/\r\n});\r\n\r\nconst Name = createToken({\r\n name: 'Name',\r\n pattern: /[a-zA-Z_][a-zA-Z0-9_.?]*/,\r\n // longer_alt: RangeColumn // e.g. A:AA\r\n});\r\n\r\nconst Sheet = createToken({\r\n name: 'Sheet',\r\n pattern: /[A-Za-z_.\\d\\u007F-\\uFFFF]+!/\r\n});\r\n\r\nconst Cell = createToken({\r\n name: 'Cell',\r\n pattern: /[$]?[A-Za-z]{1,3}[$]?[1-9][0-9]*/,\r\n longer_alt: Name\r\n});\r\n\r\nconst Number = createToken({\r\n name: 'Number',\r\n pattern: /[0-9]+[.]?[0-9]*([eE][+\\-][0-9]+)?/\r\n});\r\n\r\nconst Boolean = createToken({\r\n name: 'Boolean',\r\n pattern: /TRUE|FALSE/i\r\n});\r\n\r\nconst Column = createToken({\r\n name: 'Column',\r\n pattern: /[$]?[A-Za-z]{1,3}/,\r\n longer_alt: Name\r\n});\r\n\r\n\r\n/**\r\n * Symbols and operators\r\n */\r\nconst At = createToken({\r\n name: 'At',\r\n pattern: /@/\r\n});\r\n\r\nconst Comma = createToken({\r\n name: 'Comma',\r\n pattern: /,/\r\n});\r\n\r\nconst Colon = createToken({\r\n name: 'Colon',\r\n pattern: /:/\r\n});\r\n\r\nconst Semicolon = createToken({\r\n name: 'Semicolon',\r\n pattern: /;/\r\n});\r\n\r\nconst OpenParen = createToken({\r\n name: 'OpenParen',\r\n pattern: /\\(/\r\n});\r\n\r\nconst CloseParen = createToken({\r\n name: 'CloseParen',\r\n pattern: /\\)/\r\n});\r\n\r\nconst OpenSquareParen = createToken({\r\n name: 'OpenSquareParen',\r\n pattern: /\\[/\r\n});\r\n\r\nconst CloseSquareParen = createToken({\r\n name: 'CloseSquareParen',\r\n pattern: /]/\r\n});\r\n\r\nconst ExclamationMark = createToken({\r\n name: 'exclamationMark',\r\n pattern: /!/\r\n});\r\n\r\nconst OpenCurlyParen = createToken({\r\n name: 'OpenCurlyParen',\r\n pattern: /{/\r\n});\r\n\r\nconst CloseCurlyParen = createToken({\r\n name: 'CloseCurlyParen',\r\n pattern: /}/\r\n});\r\n\r\nconst QuoteS = createToken({\r\n name: 'QuoteS',\r\n pattern: /'/\r\n});\r\n\r\n\r\nconst MulOp = createToken({\r\n name: 'MulOp',\r\n pattern: /\\*/\r\n});\r\n\r\nconst PlusOp = createToken({\r\n name: 'PlusOp',\r\n pattern: /\\+/\r\n});\r\n\r\nconst DivOp = createToken({\r\n name: 'DivOp',\r\n pattern: /\\//\r\n});\r\n\r\nconst MinOp = createToken({\r\n name: 'MinOp',\r\n pattern: /-/\r\n});\r\n\r\nconst ConcatOp = createToken({\r\n name: 'ConcatOp',\r\n pattern: /&/\r\n});\r\n\r\nconst ExOp = createToken({\r\n name: 'ExOp',\r\n pattern: /\\^/\r\n});\r\n\r\nconst PercentOp = createToken({\r\n name: 'PercentOp',\r\n pattern: /%/\r\n});\r\n\r\nconst GtOp = createToken({\r\n name: 'GtOp',\r\n pattern: />/\r\n});\r\n\r\nconst EqOp = createToken({\r\n name: 'EqOp',\r\n pattern: /=/\r\n});\r\n\r\nconst LtOp = createToken({\r\n name: 'LtOp',\r\n pattern: //\r\n});\r\n\r\nconst GteOp = createToken({\r\n name: 'GteOp',\r\n pattern: />=/\r\n});\r\n\r\nconst LteOp = createToken({\r\n name: 'LteOp',\r\n pattern: /<=/\r\n});\r\n\r\n// The order of tokens is important\r\nconst allTokens = [\r\n\r\n WhiteSpace,\r\n String,\r\n SheetQuoted,\r\n SingleQuotedString,\r\n Function,\r\n FormulaErrorT,\r\n RefError,\r\n Sheet,\r\n Cell,\r\n Boolean,\r\n Column,\r\n Name,\r\n Number,\r\n\r\n At,\r\n Comma,\r\n Colon,\r\n Semicolon,\r\n OpenParen,\r\n CloseParen,\r\n OpenSquareParen,\r\n CloseSquareParen,\r\n // ExclamationMark,\r\n OpenCurlyParen,\r\n CloseCurlyParen,\r\n QuoteS,\r\n MulOp,\r\n PlusOp,\r\n DivOp,\r\n MinOp,\r\n ConcatOp,\r\n ExOp,\r\n MulOp,\r\n PercentOp,\r\n NeqOp,\r\n GteOp,\r\n LteOp,\r\n GtOp,\r\n EqOp,\r\n LtOp,\r\n];\r\n\r\nconst SelectLexer = new Lexer(allTokens, {ensureOptimizations: true});\r\n\r\nallTokens.forEach(tokenType => {\r\n tokenVocabulary[tokenType.name] = tokenType\r\n});\r\n\r\nmodule.exports = {\r\n tokenVocabulary: tokenVocabulary,\r\n\r\n lex: function (inputText) {\r\n const lexingResult = SelectLexer.tokenize(inputText)\r\n\r\n if (lexingResult.errors.length > 0) {\r\n const error = lexingResult.errors[0];\r\n const line = error.line, column = error.column;\r\n let msg = '\\n' + inputText.split('\\n')[line - 1] + '\\n';\r\n msg += Array(column - 1).fill(' ').join('') + '^\\n';\r\n error.message = msg + `Error at position ${line}:${column}\\n` + error.message;\r\n error.errorLocation = {line, column};\r\n throw FormulaError.ERROR(error.message, error);\r\n }\r\n\r\n return lexingResult\r\n }\r\n};\r\n","const lexer = require('./lexing');\r\nconst {EmbeddedActionsParser} = require(\"chevrotain\");\r\nconst tokenVocabulary = lexer.tokenVocabulary;\r\nconst {\r\n String,\r\n SheetQuoted,\r\n ExcelRefFunction,\r\n ExcelConditionalRefFunction,\r\n Function,\r\n FormulaErrorT,\r\n RefError,\r\n Cell,\r\n Sheet,\r\n Name,\r\n Number,\r\n Boolean,\r\n Column,\r\n\r\n // At,\r\n Comma,\r\n Colon,\r\n Semicolon,\r\n OpenParen,\r\n CloseParen,\r\n // OpenSquareParen,\r\n // CloseSquareParen,\r\n // ExclamationMark,\r\n OpenCurlyParen,\r\n CloseCurlyParen,\r\n MulOp,\r\n PlusOp,\r\n DivOp,\r\n MinOp,\r\n ConcatOp,\r\n ExOp,\r\n PercentOp,\r\n NeqOp,\r\n GteOp,\r\n LteOp,\r\n GtOp,\r\n EqOp,\r\n LtOp\r\n} = lexer.tokenVocabulary;\r\n\r\nclass Parsing extends EmbeddedActionsParser {\r\n /**\r\n *\r\n * @param {FormulaParser|DepParser} context\r\n * @param {Utils} utils\r\n */\r\n constructor(context, utils) {\r\n super(tokenVocabulary, {\r\n outputCst: false,\r\n maxLookahead: 1,\r\n skipValidations: true,\r\n // traceInitPerf: true,\r\n });\r\n this.utils = utils;\r\n this.binaryOperatorsPrecedence = [\r\n ['^'],\r\n ['*', '/'],\r\n ['+', '-'],\r\n ['&'],\r\n ['<', '>', '=', '<>', '<=', '>='],\r\n ];\r\n const $ = this;\r\n\r\n // Adopted from https://github.com/spreadsheetlab/XLParser/blob/master/src/XLParser/ExcelFormulaGrammar.cs\r\n\r\n $.RULE('formulaWithBinaryOp', () => {\r\n const infixes = [];\r\n const values = [$.SUBRULE($.formulaWithPercentOp)];\r\n $.MANY(() => {\r\n // Caching Arrays of Alternatives\r\n // https://sap.github.io/chevrotain/docs/guide/performance.html#caching-arrays-of-alternatives\r\n infixes.push($.OR($.c1 ||\r\n (\r\n $.c1 = [\r\n {ALT: () => $.CONSUME(GtOp).image},\r\n {ALT: () => $.CONSUME(EqOp).image},\r\n {ALT: () => $.CONSUME(LtOp).image},\r\n {ALT: () => $.CONSUME(NeqOp).image},\r\n {ALT: () => $.CONSUME(GteOp).image},\r\n {ALT: () => $.CONSUME(LteOp).image},\r\n {ALT: () => $.CONSUME(ConcatOp).image},\r\n {ALT: () => $.CONSUME(PlusOp).image},\r\n {ALT: () => $.CONSUME(MinOp).image},\r\n {ALT: () => $.CONSUME(MulOp).image},\r\n {ALT: () => $.CONSUME(DivOp).image},\r\n {ALT: () => $.CONSUME(ExOp).image}\r\n ]\r\n )));\r\n values.push($.SUBRULE2($.formulaWithPercentOp));\r\n });\r\n $.ACTION(() => {\r\n // evaluate\r\n for (const ops of this.binaryOperatorsPrecedence) {\r\n for (let index = 0, length = infixes.length; index < length; index++) {\r\n const infix = infixes[index];\r\n if (!ops.includes(infix)) continue;\r\n infixes.splice(index, 1);\r\n values.splice(index, 2, this.utils.applyInfix(values[index], infix, values[index + 1]));\r\n index--;\r\n length--;\r\n }\r\n }\r\n });\r\n\r\n return values[0];\r\n });\r\n\r\n $.RULE('plusMinusOp', () => $.OR([\r\n {ALT: () => $.CONSUME(PlusOp).image},\r\n {ALT: () => $.CONSUME(MinOp).image}\r\n ]));\r\n\r\n $.RULE('formulaWithPercentOp', () => {\r\n let value = $.SUBRULE($.formulaWithUnaryOp);\r\n $.OPTION(() => {\r\n const postfix = $.CONSUME(PercentOp).image;\r\n value = $.ACTION(() => this.utils.applyPostfix(value, postfix));\r\n });\r\n return value;\r\n });\r\n\r\n $.RULE('formulaWithUnaryOp', () => {\r\n // support ++---3 => -3\r\n const prefixes = [];\r\n $.MANY(() => {\r\n const op = $.OR([\r\n {ALT: () => $.CONSUME(PlusOp).image},\r\n {ALT: () => $.CONSUME(MinOp).image}\r\n ]);\r\n prefixes.push(op);\r\n });\r\n const formula = $.SUBRULE($.formulaWithIntersect);\r\n if (prefixes.length > 0) return $.ACTION(() => this.utils.applyPrefix(prefixes, formula));\r\n return formula;\r\n });\r\n\r\n\r\n $.RULE('formulaWithIntersect', () => {\r\n // e.g. 'A1 A2 A3'\r\n let ref1 = $.SUBRULE($.formulaWithRange);\r\n const refs = [ref1];\r\n // console.log('check intersect')\r\n $.MANY({\r\n GATE: () => {\r\n // see https://github.com/SAP/chevrotain/blob/master/examples/grammars/css/css.js#L436-L441\r\n const prevToken = $.LA(0);\r\n const nextToken = $.LA(1);\r\n // This is the only place where the grammar is whitespace sensitive.\r\n return nextToken.startOffset > prevToken.endOffset + 1;\r\n },\r\n DEF: () => {\r\n refs.push($.SUBRULE3($.formulaWithRange));\r\n }\r\n });\r\n if (refs.length > 1) {\r\n return $.ACTION(() => $.ACTION(() => this.utils.applyIntersect(refs)))\r\n }\r\n return ref1;\r\n });\r\n\r\n $.RULE('formulaWithRange', () => {\r\n // e.g. 'A1:C3' or 'A1:A3:C4', can be any number of references, at lease 2\r\n const ref1 = $.SUBRULE($.formula);\r\n const refs = [ref1];\r\n $.MANY(() => {\r\n $.CONSUME(Colon);\r\n refs.push($.SUBRULE2($.formula));\r\n });\r\n if (refs.length > 1)\r\n return $.ACTION(() => $.ACTION(() => this.utils.applyRange(refs)));\r\n return ref1;\r\n });\r\n\r\n $.RULE('formula', () => $.OR9([\r\n {ALT: () => $.SUBRULE($.referenceWithoutInfix)},\r\n {ALT: () => $.SUBRULE($.paren)},\r\n {ALT: () => $.SUBRULE($.constant)},\r\n {ALT: () => $.SUBRULE($.functionCall)},\r\n {ALT: () => $.SUBRULE($.constantArray)},\r\n ]));\r\n\r\n $.RULE('paren', () => {\r\n // formula paren or union paren\r\n $.CONSUME(OpenParen);\r\n let result;\r\n const refs = [];\r\n refs.push($.SUBRULE($.formulaWithBinaryOp));\r\n $.MANY(() => {\r\n $.CONSUME(Comma);\r\n refs.push($.SUBRULE2($.formulaWithBinaryOp));\r\n });\r\n if (refs.length > 1)\r\n result = $.ACTION(() => this.utils.applyUnion(refs));\r\n else\r\n result = refs[0];\r\n\r\n $.CONSUME(CloseParen);\r\n return result;\r\n });\r\n\r\n $.RULE('constantArray', () => {\r\n // console.log('constantArray');\r\n const arr = [[]];\r\n let currentRow = 0;\r\n $.CONSUME(OpenCurlyParen);\r\n\r\n // array must contain at least one item\r\n arr[currentRow].push($.SUBRULE($.constantForArray));\r\n $.MANY(() => {\r\n const sep = $.OR([\r\n {ALT: () => $.CONSUME(Comma).image},\r\n {ALT: () => $.CONSUME(Semicolon).image}\r\n ]);\r\n const constant = $.SUBRULE2($.constantForArray);\r\n if (sep === ',') {\r\n arr[currentRow].push(constant)\r\n } else {\r\n currentRow++;\r\n arr[currentRow] = [];\r\n arr[currentRow].push(constant)\r\n }\r\n });\r\n\r\n $.CONSUME(CloseCurlyParen);\r\n\r\n return $.ACTION(() => this.utils.toArray(arr));\r\n });\r\n\r\n /**\r\n * Used in array\r\n */\r\n $.RULE('constantForArray', () => $.OR([\r\n {\r\n ALT: () => {\r\n const prefix = $.OPTION(() => $.SUBRULE($.plusMinusOp));\r\n const image = $.CONSUME(Number).image;\r\n const number = $.ACTION(() => this.utils.toNumber(image));\r\n if (prefix)\r\n return $.ACTION(() => this.utils.applyPrefix([prefix], number));\r\n return number;\r\n }\r\n }, {\r\n ALT: () => {\r\n const str = $.CONSUME(String).image;\r\n return $.ACTION(() => this.utils.toString(str));\r\n }\r\n }, {\r\n ALT: () => {\r\n const bool = $.CONSUME(Boolean).image;\r\n return $.ACTION(() => this.utils.toBoolean(bool));\r\n }\r\n }, {\r\n ALT: () => {\r\n const err = $.CONSUME(FormulaErrorT).image;\r\n return $.ACTION(() => this.utils.toError(err));\r\n }\r\n }, {\r\n ALT: () => {\r\n const err = $.CONSUME(RefError).image;\r\n return $.ACTION(() => this.utils.toError(err));\r\n }\r\n },\r\n ]));\r\n\r\n $.RULE('constant', () => $.OR([\r\n {\r\n ALT: () => {\r\n const number = $.CONSUME(Number).image;\r\n return $.ACTION(() => this.utils.toNumber(number));\r\n }\r\n }, {\r\n ALT: () => {\r\n const str = $.CONSUME(String).image;\r\n return $.ACTION(() => this.utils.toString(str));\r\n }\r\n }, {\r\n ALT: () => {\r\n const bool = $.CONSUME(Boolean).image;\r\n return $.ACTION(() => this.utils.toBoolean(bool));\r\n }\r\n }, {\r\n ALT: () => {\r\n const err = $.CONSUME(FormulaErrorT).image;\r\n return $.ACTION(() => this.utils.toError(err));\r\n }\r\n },\r\n ]));\r\n\r\n $.RULE('functionCall', () => {\r\n const functionName = $.CONSUME(Function).image.slice(0, -1);\r\n // console.log('functionName', functionName);\r\n const args = $.SUBRULE($.arguments);\r\n $.CONSUME(CloseParen);\r\n // dependency parser won't call function.\r\n return $.ACTION(() => context.callFunction(functionName, args));\r\n\r\n });\r\n\r\n $.RULE('arguments', () => {\r\n // console.log('try arguments')\r\n\r\n // allows ',' in the front\r\n $.MANY2(() => {\r\n $.CONSUME2(Comma);\r\n });\r\n const args = [];\r\n // allows empty arguments\r\n $.OPTION(() => {\r\n args.push($.SUBRULE($.formulaWithBinaryOp));\r\n $.MANY(() => {\r\n $.CONSUME1(Comma);\r\n args.push(null); // e.g. ROUND(1.5,)\r\n $.OPTION3(() => {\r\n args.pop();\r\n args.push($.SUBRULE2($.formulaWithBinaryOp))\r\n });\r\n });\r\n });\r\n return args;\r\n });\r\n\r\n $.RULE('referenceWithoutInfix', () => $.OR([\r\n\r\n {ALT: () => $.SUBRULE($.referenceItem)},\r\n\r\n {\r\n // sheet name prefix\r\n ALT: () => {\r\n // console.log('try sheetName');\r\n const sheetName = $.SUBRULE($.prefixName);\r\n // console.log('sheetName', sheetName);\r\n const referenceItem = $.SUBRULE2($.formulaWithRange);\r\n\r\n $.ACTION(() => {\r\n if (this.utils.isFormulaError(referenceItem))\r\n return referenceItem;\r\n referenceItem.ref.sheet = sheetName\r\n });\r\n return referenceItem;\r\n }\r\n },\r\n\r\n // {ALT: () => $.SUBRULE('dynamicDataExchange')},\r\n ]));\r\n\r\n $.RULE('referenceItem', () => $.OR([\r\n {\r\n ALT: () => {\r\n const address = $.CONSUME(Cell).image;\r\n return $.ACTION(() => this.utils.parseCellAddress(address));\r\n }\r\n },\r\n {\r\n ALT: () => {\r\n const name = $.CONSUME(Name).image;\r\n return $.ACTION(() => context.getVariable(name))\r\n }\r\n },\r\n {\r\n ALT: () => {\r\n const column = $.CONSUME(Column).image;\r\n return $.ACTION(() => this.utils.parseCol(column))\r\n }\r\n },\r\n // A row check should be here, but the token is same with Number,\r\n // In other to resolve ambiguities, I leave this empty, and\r\n // parse the number to row number when needed.\r\n {\r\n ALT: () => {\r\n const err = $.CONSUME(RefError).image;\r\n return $.ACTION(() => this.utils.toError(err))\r\n }\r\n },\r\n // {ALT: () => $.SUBRULE($.udfFunctionCall)},\r\n // {ALT: () => $.SUBRULE($.structuredReference)},\r\n ]));\r\n\r\n $.RULE('prefixName', () => $.OR([\r\n {ALT: () => $.CONSUME(Sheet).image.slice(0, -1)},\r\n {ALT: () => $.CONSUME(SheetQuoted).image.slice(1, -2).replace(/''/g, \"'\")},\r\n ]));\r\n\r\n this.performSelfAnalysis();\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n Parser: Parsing,\r\n};\r\n","const FormulaError = require('../formulas/error');\r\nconst {Address} = require('../formulas/helpers');\r\nconst {Prefix, Postfix, Infix, Operators} = require('../formulas/operators');\r\nconst Collection = require('./type/collection');\r\nconst MAX_ROW = 1048576, MAX_COLUMN = 16384;\r\nconst {NotAllInputParsedException} = require('chevrotain');\r\n\r\nclass Utils {\r\n\r\n constructor(context) {\r\n this.context = context;\r\n }\r\n\r\n columnNameToNumber(columnName) {\r\n return Address.columnNameToNumber(columnName);\r\n }\r\n\r\n /**\r\n * Parse the cell address only.\r\n * @param {string} cellAddress\r\n * @return {{ref: {col: number, address: string, row: number}}}\r\n */\r\n parseCellAddress(cellAddress) {\r\n const res = cellAddress.match(/([$]?)([A-Za-z]{1,3})([$]?)([1-9][0-9]*)/);\r\n // console.log('parseCellAddress', cellAddress);\r\n return {\r\n ref: {\r\n address: res[0],\r\n col: this.columnNameToNumber(res[2]),\r\n row: +res[4]\r\n },\r\n };\r\n }\r\n\r\n parseRow(row) {\r\n const rowNum = +row;\r\n if (!Number.isInteger(rowNum))\r\n throw Error('Row number must be integer.');\r\n return {\r\n ref: {\r\n col: undefined,\r\n row: +row\r\n },\r\n };\r\n }\r\n\r\n parseCol(col) {\r\n return {\r\n ref: {\r\n col: this.columnNameToNumber(col),\r\n row: undefined,\r\n },\r\n };\r\n }\r\n\r\n parseColRange(col1, col2) {\r\n // const res = colRange.match(/([$]?)([A-Za-z]{1,3}):([$]?)([A-Za-z]{1,4})/);\r\n col1 = this.columnNameToNumber(col1);\r\n col2 = this.columnNameToNumber(col2);\r\n return {\r\n ref: {\r\n from: {\r\n col: Math.min(col1, col2),\r\n row: null\r\n },\r\n to: {\r\n col: Math.max(col1, col2),\r\n row: null\r\n }\r\n }\r\n }\r\n }\r\n\r\n parseRowRange(row1, row2) {\r\n // const res = rowRange.match(/([$]?)([1-9][0-9]*):([$]?)([1-9][0-9]*)/);\r\n return {\r\n ref: {\r\n from: {\r\n col: null,\r\n row: Math.min(row1, row2),\r\n },\r\n to: {\r\n col: null,\r\n row: Math.max(row1, row2),\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n _applyPrefix(prefixes, val, isArray) {\r\n if (this.isFormulaError(val))\r\n return val;\r\n return Prefix.unaryOp(prefixes, val, isArray);\r\n }\r\n\r\n async applyPrefixAsync(prefixes, value) {\r\n const {val, isArray} = this.extractRefValue(await value);\r\n return this._applyPrefix(prefixes, val, isArray);\r\n }\r\n\r\n /**\r\n * Apply + or - unary prefix.\r\n * @param {Array.} prefixes\r\n * @param {*} value\r\n * @return {*}\r\n */\r\n applyPrefix(prefixes, value) {\r\n // console.log('applyPrefix', prefixes, value);\r\n if (this.context.async) {\r\n return this.applyPrefixAsync(prefixes, value);\r\n } else {\r\n const {val, isArray} = this.extractRefValue(value);\r\n return this._applyPrefix(prefixes, val, isArray);\r\n }\r\n }\r\n\r\n _applyPostfix(val, isArray, postfix) {\r\n if (this.isFormulaError(val))\r\n return val;\r\n return Postfix.percentOp(val, postfix, isArray);\r\n }\r\n\r\n async applyPostfixAsync(value, postfix) {\r\n const {val, isArray} = this.extractRefValue(await value);\r\n return this._applyPostfix(val, isArray, postfix);\r\n }\r\n\r\n applyPostfix(value, postfix) {\r\n // console.log('applyPostfix', value, postfix);\r\n if (this.context.async) {\r\n return this.applyPostfixAsync(value, postfix);\r\n } else {\r\n const {val, isArray} = this.extractRefValue(value);\r\n return this._applyPostfix(val, isArray, postfix)\r\n }\r\n }\r\n\r\n _applyInfix(res1, infix, res2) {\r\n const val1 = res1.val, isArray1 = res1.isArray;\r\n const val2 = res2.val, isArray2 = res2.isArray;\r\n if (this.isFormulaError(val1))\r\n return val1;\r\n if (this.isFormulaError(val2))\r\n return val2;\r\n if (Operators.compareOp.includes(infix))\r\n return Infix.compareOp(val1, infix, val2, isArray1, isArray2);\r\n else if (Operators.concatOp.includes(infix))\r\n return Infix.concatOp(val1, infix, val2, isArray1, isArray2);\r\n else if (Operators.mathOp.includes(infix))\r\n return Infix.mathOp(val1, infix, val2, isArray1, isArray2);\r\n else\r\n throw new Error(`Unrecognized infix: ${infix}`);\r\n }\r\n\r\n async applyInfixAsync(value1, infix, value2) {\r\n const res1 = this.extractRefValue(await value1);\r\n const res2 = this.extractRefValue(await value2);\r\n return this._applyInfix(res1, infix, res2)\r\n }\r\n\r\n applyInfix(value1, infix, value2) {\r\n if (this.context.async) {\r\n return this.applyInfixAsync(value1, infix, value2)\r\n } else {\r\n const res1 = this.extractRefValue(value1);\r\n const res2 = this.extractRefValue(value2);\r\n return this._applyInfix(res1, infix, res2)\r\n }\r\n }\r\n\r\n applyIntersect(refs) {\r\n // console.log('applyIntersect', refs);\r\n if (this.isFormulaError(refs[0]))\r\n return refs[0];\r\n if (!refs[0].ref)\r\n throw Error(`Expecting a reference, but got ${refs[0]}.`);\r\n // a intersection will keep track of references, value won't be retrieved here.\r\n let maxRow, maxCol, minRow, minCol, sheet, res; // index start from 1\r\n // first time setup\r\n const ref = refs.shift().ref;\r\n sheet = ref.sheet;\r\n if (!ref.from) {\r\n // check whole row/col reference\r\n if (ref.row === undefined || ref.col === undefined) {\r\n throw Error('Cannot intersect the whole row or column.')\r\n }\r\n\r\n // cell ref\r\n maxRow = minRow = ref.row;\r\n maxCol = minCol = ref.col;\r\n } else {\r\n // range ref\r\n // update\r\n maxRow = Math.max(ref.from.row, ref.to.row);\r\n minRow = Math.min(ref.from.row, ref.to.row);\r\n maxCol = Math.max(ref.from.col, ref.to.col);\r\n minCol = Math.min(ref.from.col, ref.to.col);\r\n }\r\n\r\n let err;\r\n refs.forEach(ref => {\r\n if (this.isFormulaError(ref))\r\n return ref;\r\n ref = ref.ref;\r\n if (!ref) throw Error(`Expecting a reference, but got ${ref}.`);\r\n if (!ref.from) {\r\n if (ref.row === undefined || ref.col === undefined) {\r\n throw Error('Cannot intersect the whole row or column.')\r\n }\r\n // cell ref\r\n if (ref.row > maxRow || ref.row < minRow || ref.col > maxCol || ref.col < minCol\r\n || sheet !== ref.sheet) {\r\n err = FormulaError.NULL;\r\n }\r\n maxRow = minRow = ref.row;\r\n maxCol = minCol = ref.col;\r\n } else {\r\n // range ref\r\n const refMaxRow = Math.max(ref.from.row, ref.to.row);\r\n const refMinRow = Math.min(ref.from.row, ref.to.row);\r\n const refMaxCol = Math.max(ref.from.col, ref.to.col);\r\n const refMinCol = Math.min(ref.from.col, ref.to.col);\r\n if (refMinRow > maxRow || refMaxRow < minRow || refMinCol > maxCol || refMaxCol < minCol\r\n || sheet !== ref.sheet) {\r\n err = FormulaError.NULL;\r\n }\r\n // update\r\n maxRow = Math.min(maxRow, refMaxRow);\r\n minRow = Math.max(minRow, refMinRow);\r\n maxCol = Math.min(maxCol, refMaxCol);\r\n minCol = Math.max(minCol, refMinCol);\r\n }\r\n });\r\n if (err) return err;\r\n // check if the ref can be reduced to cell reference\r\n if (maxRow === minRow && maxCol === minCol) {\r\n res = {\r\n ref: {\r\n sheet,\r\n row: maxRow,\r\n col: maxCol\r\n }\r\n }\r\n } else {\r\n res = {\r\n ref: {\r\n sheet,\r\n from: {row: minRow, col: minCol},\r\n to: {row: maxRow, col: maxCol}\r\n }\r\n };\r\n }\r\n\r\n if (!res.ref.sheet)\r\n delete res.ref.sheet;\r\n return res;\r\n }\r\n\r\n applyUnion(refs) {\r\n const collection = new Collection();\r\n for (let i = 0; i < refs.length; i++) {\r\n if (this.isFormulaError(refs[i]))\r\n return refs[i];\r\n collection.add(this.extractRefValue(refs[i]).val, refs[i]);\r\n }\r\n\r\n // console.log('applyUnion', unions);\r\n return collection;\r\n }\r\n\r\n /**\r\n * Apply multiple references, e.g. A1:B3:C8:A:1:.....\r\n * @param refs\r\n // * @return {{ref: {from: {col: number, row: number}, to: {col: number, row: number}}}}\r\n */\r\n applyRange(refs) {\r\n let res, maxRow = -1, maxCol = -1, minRow = MAX_ROW + 1, minCol = MAX_COLUMN + 1;\r\n refs.forEach(ref => {\r\n if (this.isFormulaError(ref))\r\n return ref;\r\n // row ref is saved as number, parse the number to row ref here\r\n if (typeof ref === 'number') {\r\n ref = this.parseRow(ref);\r\n }\r\n ref = ref.ref;\r\n // check whole row/col reference\r\n if (ref.row === undefined) {\r\n minRow = 1;\r\n maxRow = MAX_ROW\r\n }\r\n if (ref.col === undefined) {\r\n minCol = 1;\r\n maxCol = MAX_COLUMN;\r\n }\r\n\r\n if (ref.row > maxRow)\r\n maxRow = ref.row;\r\n if (ref.row < minRow)\r\n minRow = ref.row;\r\n if (ref.col > maxCol)\r\n maxCol = ref.col;\r\n if (ref.col < minCol)\r\n minCol = ref.col;\r\n });\r\n if (maxRow === minRow && maxCol === minCol) {\r\n res = {\r\n ref: {\r\n row: maxRow,\r\n col: maxCol\r\n }\r\n }\r\n } else {\r\n res = {\r\n ref: {\r\n from: {row: minRow, col: minCol},\r\n to: {row: maxRow, col: maxCol}\r\n }\r\n };\r\n }\r\n return res;\r\n }\r\n\r\n /**\r\n * Throw away the refs, and retrieve the value.\r\n * @return {{val: *, isArray: boolean}}\r\n */\r\n extractRefValue(obj) {\r\n let res = obj, isArray = false;\r\n if (Array.isArray(res))\r\n isArray = true;\r\n if (obj.ref) {\r\n // can be number or array\r\n return {val: this.context.retrieveRef(obj), isArray};\r\n\r\n }\r\n return {val: res, isArray};\r\n }\r\n\r\n /**\r\n *\r\n * @param array\r\n * @return {Array}\r\n */\r\n toArray(array) {\r\n // TODO: check if array is valid\r\n // console.log('toArray', array);\r\n return array;\r\n }\r\n\r\n /**\r\n * @param {string} number\r\n * @return {number}\r\n */\r\n toNumber(number) {\r\n return Number(number);\r\n }\r\n\r\n /**\r\n * @param {string} string\r\n * @return {string}\r\n */\r\n toString(string) {\r\n return string.substring(1, string.length - 1) .replace(/\"\"/g, '\"');\r\n }\r\n\r\n /**\r\n * @param {string} bool\r\n * @return {boolean}\r\n */\r\n toBoolean(bool) {\r\n return bool === 'TRUE';\r\n }\r\n\r\n /**\r\n * Parse an error.\r\n * @param {string} error\r\n * @return {string}\r\n */\r\n toError(error) {\r\n return new FormulaError(error.toUpperCase());\r\n }\r\n\r\n isFormulaError(obj) {\r\n return obj instanceof FormulaError;\r\n }\r\n\r\n static formatChevrotainError(error, inputText) {\r\n let line, column, msg = '';\r\n // e.g. SUM(1))\r\n if (error instanceof NotAllInputParsedException) {\r\n line = error.token.startLine;\r\n column = error.token.startColumn;\r\n } else {\r\n line = error.previousToken.startLine;\r\n column = error.previousToken.startColumn + 1;\r\n }\r\n\r\n msg += '\\n' + inputText.split('\\n')[line - 1] + '\\n';\r\n msg += Array(column - 1).fill(' ').join('') + '^\\n';\r\n msg += `Error at position ${line}:${column}\\n` + error.message;\r\n error.errorLocation = {line, column};\r\n return FormulaError.ERROR(msg, error);\r\n }\r\n\r\n}\r\n\r\nmodule.exports = Utils;\r\n","const TextFunctions = require('../formulas/functions/text');\r\nconst MathFunctions = require('../formulas/functions/math');\r\nconst TrigFunctions = require('../formulas/functions/trigonometry');\r\nconst LogicalFunctions = require('../formulas/functions/logical');\r\nconst EngFunctions = require('../formulas/functions/engineering');\r\nconst ReferenceFunctions = require('../formulas/functions/reference');\r\nconst InformationFunctions = require('../formulas/functions/information');\r\nconst StatisticalFunctions = require('../formulas/functions/statistical');\r\nconst DateFunctions = require('../formulas/functions/date');\r\nconst WebFunctions = require('../formulas/functions/web');\r\nconst FormulaError = require('../formulas/error');\r\nconst {FormulaHelpers} = require('../formulas/helpers');\r\nconst {Parser, allTokens} = require('./parsing');\r\nconst lexer = require('./lexing');\r\nconst Utils = require('./utils');\r\n\r\n/**\r\n * A Excel Formula Parser & Evaluator\r\n */\r\nclass FormulaParser {\r\n\r\n /**\r\n * @param {{functions: {}, functionsNeedContext: {}, onVariable: function, onCell: function, onRange: function}} [config]\r\n * @param isTest - is in testing environment\r\n */\r\n constructor(config, isTest = false) {\r\n this.logs = [];\r\n this.isTest = isTest;\r\n this.utils = new Utils(this);\r\n config = Object.assign({\r\n functions: {},\r\n functionsNeedContext: {},\r\n onVariable: () => null,\r\n onCell: () => 0,\r\n onRange: () => [[0]],\r\n }, config);\r\n\r\n this.onVariable = config.onVariable;\r\n this.functions = Object.assign({}, DateFunctions, StatisticalFunctions, InformationFunctions, ReferenceFunctions,\r\n EngFunctions, LogicalFunctions, TextFunctions, MathFunctions, TrigFunctions, WebFunctions,\r\n config.functions, config.functionsNeedContext);\r\n this.onRange = config.onRange;\r\n this.onCell = config.onCell;\r\n\r\n // functions treat null as 0, other functions treats null as \"\"\r\n this.funsNullAs0 = Object.keys(MathFunctions)\r\n .concat(Object.keys(TrigFunctions))\r\n .concat(Object.keys(LogicalFunctions))\r\n .concat(Object.keys(EngFunctions))\r\n .concat(Object.keys(ReferenceFunctions))\r\n .concat(Object.keys(StatisticalFunctions))\r\n .concat(Object.keys(DateFunctions));\r\n\r\n // functions need context and don't need to retrieve references\r\n this.funsNeedContextAndNoDataRetrieve = ['ROW', 'ROWS', 'COLUMN', 'COLUMNS', 'SUMIF', 'INDEX', 'AVERAGEIF', 'IF'];\r\n\r\n // functions need parser context\r\n this.funsNeedContext = [...Object.keys(config.functionsNeedContext), ...this.funsNeedContextAndNoDataRetrieve,\r\n 'INDEX', 'OFFSET', 'INDIRECT', 'IF', 'CHOOSE', 'WEBSERVICE'];\r\n\r\n // functions preserve reference in arguments\r\n this.funsPreserveRef = Object.keys(InformationFunctions);\r\n\r\n this.parser = new Parser(this, this.utils);\r\n }\r\n\r\n /**\r\n * Get all lexing token names. Webpack needs this.\r\n * @return {Array.} - All token names that should not be minimized.\r\n */\r\n static get allTokens() {\r\n return allTokens;\r\n }\r\n\r\n /**\r\n * Get value from the cell reference\r\n * @param ref\r\n * @return {*}\r\n */\r\n getCell(ref) {\r\n // console.log('get cell', JSON.stringify(ref));\r\n if (ref.sheet == null)\r\n ref.sheet = this.position ? this.position.sheet : undefined;\r\n return this.onCell(ref);\r\n }\r\n\r\n /**\r\n * Get values from the range reference.\r\n * @param ref\r\n * @return {*}\r\n */\r\n getRange(ref) {\r\n // console.log('get range', JSON.stringify(ref));\r\n if (ref.sheet == null)\r\n ref.sheet = this.position ? this.position.sheet : undefined;\r\n return this.onRange(ref)\r\n }\r\n\r\n /**\r\n * TODO:\r\n * Get references or values from a user defined variable.\r\n * @param name\r\n * @return {*}\r\n */\r\n getVariable(name) {\r\n // console.log('get variable', name);\r\n const res = {ref: this.onVariable(name, this.position.sheet, this.position)};\r\n if (res.ref == null)\r\n return FormulaError.NAME;\r\n return res;\r\n }\r\n\r\n /**\r\n * Retrieve values from the given reference.\r\n * @param valueOrRef\r\n * @return {*}\r\n */\r\n retrieveRef(valueOrRef) {\r\n if (FormulaHelpers.isRangeRef(valueOrRef)) {\r\n return this.getRange(valueOrRef.ref);\r\n }\r\n if (FormulaHelpers.isCellRef(valueOrRef)) {\r\n return this.getCell(valueOrRef.ref)\r\n }\r\n return valueOrRef;\r\n }\r\n\r\n /**\r\n * Call an excel function.\r\n * @param name - Function name.\r\n * @param args - Arguments that pass to the function.\r\n * @return {*}\r\n */\r\n _callFunction(name, args) {\r\n if (name.indexOf('_xlfn.') === 0)\r\n name = name.slice(6);\r\n name = name.toUpperCase();\r\n // if one arg is null, it means 0 or \"\" depends on the function it calls\r\n const nullValue = this.funsNullAs0.includes(name) ? 0 : '';\r\n\r\n if (!this.funsNeedContextAndNoDataRetrieve.includes(name)) {\r\n // retrieve reference\r\n args = args.map(arg => {\r\n if (arg === null)\r\n return {value: nullValue, isArray: false, omitted: true};\r\n const res = this.utils.extractRefValue(arg);\r\n\r\n if (this.funsPreserveRef.includes(name)) {\r\n return {value: res.val, isArray: res.isArray, ref: arg.ref};\r\n }\r\n return {\r\n value: res.val,\r\n isArray: res.isArray,\r\n isRangeRef: !!FormulaHelpers.isRangeRef(arg),\r\n isCellRef: !!FormulaHelpers.isCellRef(arg)\r\n };\r\n });\r\n }\r\n // console.log('callFunction', name, args)\r\n\r\n if (this.functions[name]) {\r\n let res;\r\n try {\r\n if (!this.funsNeedContextAndNoDataRetrieve.includes(name) && !this.funsNeedContext.includes(name))\r\n res = (this.functions[name](...args));\r\n else\r\n res = (this.functions[name](this, ...args));\r\n } catch (e) {\r\n // allow functions throw FormulaError, this make functions easier to implement!\r\n if (e instanceof FormulaError) {\r\n return e;\r\n } else {\r\n throw e;\r\n }\r\n }\r\n if (res === undefined) {\r\n // console.log(`Function ${name} may be not implemented.`);\r\n if (this.isTest) {\r\n if (!this.logs.includes(name)) this.logs.push(name);\r\n return {value: 0, ref: {}};\r\n }\r\n throw FormulaError.NOT_IMPLEMENTED(name);\r\n }\r\n return res;\r\n } else {\r\n // console.log(`Function ${name} is not implemented`);\r\n if (this.isTest) {\r\n if (!this.logs.includes(name)) this.logs.push(name);\r\n return {value: 0, ref: {}};\r\n }\r\n throw FormulaError.NOT_IMPLEMENTED(name);\r\n }\r\n }\r\n\r\n async callFunctionAsync(name, args) {\r\n const awaitedArgs = [];\r\n for (const arg of args) {\r\n awaitedArgs.push(await arg);\r\n }\r\n const res = await this._callFunction(name, awaitedArgs);\r\n return FormulaHelpers.checkFunctionResult(res)\r\n }\r\n\r\n callFunction(name, args) {\r\n if (this.async) {\r\n return this.callFunctionAsync(name, args);\r\n } else {\r\n const res = this._callFunction(name, args);\r\n return FormulaHelpers.checkFunctionResult(res);\r\n }\r\n }\r\n\r\n /**\r\n * Return currently supported functions.\r\n * @return {this}\r\n */\r\n supportedFunctions() {\r\n const supported = [];\r\n const functions = Object.keys(this.functions);\r\n functions.forEach(fun => {\r\n try {\r\n const res = this.functions[fun](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\r\n if (res === undefined) return;\r\n supported.push(fun);\r\n } catch (e) {\r\n if (e instanceof Error)\r\n supported.push(fun);\r\n }\r\n });\r\n return supported.sort();\r\n }\r\n\r\n /**\r\n * Check and return the appropriate formula result.\r\n * @param result\r\n * @param {boolean} [allowReturnArray] - If the formula can return an array\r\n * @return {*}\r\n */\r\n checkFormulaResult(result, allowReturnArray = false) {\r\n const type = typeof result;\r\n // number\r\n if (type === 'number') {\r\n if (isNaN(result)) {\r\n return FormulaError.VALUE;\r\n } else if (!isFinite(result)) {\r\n return FormulaError.NUM;\r\n }\r\n result += 0; // make -0 to 0\r\n } else if (type === 'object') {\r\n if (result instanceof FormulaError)\r\n return result;\r\n if (allowReturnArray) {\r\n if (result.ref) {\r\n result = this.retrieveRef(result);\r\n }\r\n // Disallow union, and other unknown data types.\r\n // e.g. `=(A1:C1, A2:E9)` -> #VALUE!\r\n if (typeof result === 'object' && !Array.isArray(result) && result != null) {\r\n return FormulaError.VALUE;\r\n }\r\n\r\n } else {\r\n if (result.ref && result.ref.row && !result.ref.from) {\r\n // single cell reference\r\n result = this.retrieveRef(result);\r\n } else if (result.ref && result.ref.from && result.ref.from.col === result.ref.to.col) {\r\n // single Column reference\r\n result = this.retrieveRef({\r\n ref: {\r\n row: result.ref.from.row, col: result.ref.from.col\r\n }\r\n });\r\n } else if (Array.isArray(result)) {\r\n result = result[0][0]\r\n } else {\r\n // array, range reference, union collections\r\n return FormulaError.VALUE;\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Parse an excel formula.\r\n * @param {string} inputText\r\n * @param {{row: number, col: number}} [position] - The position of the parsed formula\r\n * e.g. {row: 1, col: 1}\r\n * @param {boolean} [allowReturnArray] - If the formula can return an array. Useful when parsing array formulas,\r\n * or data validation formulas.\r\n * @returns {*}\r\n */\r\n parse(inputText, position, allowReturnArray = false) {\r\n if (inputText.length === 0) throw Error('Input must not be empty.');\r\n this.position = position;\r\n this.async = false;\r\n const lexResult = lexer.lex(inputText);\r\n this.parser.input = lexResult.tokens;\r\n let res;\r\n try {\r\n res = this.parser.formulaWithBinaryOp();\r\n res = this.checkFormulaResult(res, allowReturnArray);\r\n if (res instanceof FormulaError) {\r\n return res;\r\n }\r\n } catch (e) {\r\n throw FormulaError.ERROR(e.message, e);\r\n }\r\n if (this.parser.errors.length > 0) {\r\n const error = this.parser.errors[0];\r\n throw Utils.formatChevrotainError(error, inputText);\r\n }\r\n return res;\r\n }\r\n\r\n /**\r\n * Parse an excel formula asynchronously.\r\n * Use when providing custom async functions.\r\n * @param {string} inputText\r\n * @param {{row: number, col: number}} [position] - The position of the parsed formula\r\n * e.g. {row: 1, col: 1}\r\n * @param {boolean} [allowReturnArray] - If the formula can return an array. Useful when parsing array formulas,\r\n * or data validation formulas.\r\n * @returns {*}\r\n */\r\n async parseAsync(inputText, position, allowReturnArray = false) {\r\n if (inputText.length === 0) throw Error('Input must not be empty.');\r\n this.position = position;\r\n this.async = true;\r\n const lexResult = lexer.lex(inputText);\r\n this.parser.input = lexResult.tokens;\r\n let res;\r\n try {\r\n res = await this.parser.formulaWithBinaryOp();\r\n res = this.checkFormulaResult(res, allowReturnArray);\r\n if (res instanceof FormulaError) {\r\n return res;\r\n }\r\n } catch (e) {\r\n throw FormulaError.ERROR(e.message, e);\r\n }\r\n if (this.parser.errors.length > 0) {\r\n const error = this.parser.errors[0];\r\n throw Utils.formatChevrotainError(error, inputText);\r\n }\r\n return res;\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n FormulaParser,\r\n FormulaHelpers,\r\n};\r\n","const FormulaError = require('../../formulas/error');\r\nconst {FormulaHelpers, Types, Address} = require('../../formulas/helpers');\r\nconst {Prefix, Postfix, Infix, Operators} = require('../../formulas/operators');\r\nconst Collection = require('../type/collection');\r\nconst MAX_ROW = 1048576, MAX_COLUMN = 16384;\r\n\r\nclass Utils {\r\n\r\n constructor(context) {\r\n this.context = context;\r\n }\r\n\r\n columnNameToNumber(columnName) {\r\n return Address.columnNameToNumber(columnName);\r\n }\r\n\r\n /**\r\n * Parse the cell address only.\r\n * @param {string} cellAddress\r\n * @return {{ref: {col: number, address: string, row: number}}}\r\n */\r\n parseCellAddress(cellAddress) {\r\n const res = cellAddress.match(/([$]?)([A-Za-z]{1,3})([$]?)([1-9][0-9]*)/);\r\n // console.log('parseCellAddress', cellAddress);\r\n return {\r\n ref: {\r\n col: this.columnNameToNumber(res[2]),\r\n row: +res[4]\r\n },\r\n };\r\n }\r\n\r\n parseRow(row) {\r\n const rowNum = +row;\r\n if (!Number.isInteger(rowNum))\r\n throw Error('Row number must be integer.');\r\n return {\r\n ref: {\r\n col: undefined,\r\n row: +row\r\n },\r\n };\r\n }\r\n\r\n parseCol(col) {\r\n return {\r\n ref: {\r\n col: this.columnNameToNumber(col),\r\n row: undefined,\r\n },\r\n };\r\n }\r\n\r\n /**\r\n * Apply + or - unary prefix.\r\n * @param {Array.} prefixes\r\n * @param {*} value\r\n * @return {*}\r\n */\r\n applyPrefix(prefixes, value) {\r\n this.extractRefValue(value);\r\n return 0;\r\n }\r\n\r\n applyPostfix(value, postfix) {\r\n this.extractRefValue(value);\r\n return 0\r\n }\r\n\r\n applyInfix(value1, infix, value2) {\r\n this.extractRefValue(value1);\r\n this.extractRefValue(value2);\r\n return 0;\r\n }\r\n\r\n applyIntersect(refs) {\r\n // console.log('applyIntersect', refs);\r\n if (this.isFormulaError(refs[0]))\r\n return refs[0];\r\n if (!refs[0].ref)\r\n throw Error(`Expecting a reference, but got ${refs[0]}.`);\r\n // a intersection will keep track of references, value won't be retrieved here.\r\n let maxRow, maxCol, minRow, minCol, sheet, res; // index start from 1\r\n // first time setup\r\n const ref = refs.shift().ref;\r\n sheet = ref.sheet;\r\n if (!ref.from) {\r\n // check whole row/col reference\r\n if (ref.row === undefined || ref.col === undefined) {\r\n throw Error('Cannot intersect the whole row or column.')\r\n }\r\n\r\n // cell ref\r\n maxRow = minRow = ref.row;\r\n maxCol = minCol = ref.col;\r\n } else {\r\n // range ref\r\n // update\r\n maxRow = Math.max(ref.from.row, ref.to.row);\r\n minRow = Math.min(ref.from.row, ref.to.row);\r\n maxCol = Math.max(ref.from.col, ref.to.col);\r\n minCol = Math.min(ref.from.col, ref.to.col);\r\n }\r\n\r\n let err;\r\n refs.forEach(ref => {\r\n if (this.isFormulaError(ref))\r\n return ref;\r\n ref = ref.ref;\r\n if (!ref) throw Error(`Expecting a reference, but got ${ref}.`);\r\n if (!ref.from) {\r\n if (ref.row === undefined || ref.col === undefined) {\r\n throw Error('Cannot intersect the whole row or column.')\r\n }\r\n // cell ref\r\n if (ref.row > maxRow || ref.row < minRow || ref.col > maxCol || ref.col < minCol\r\n || sheet !== ref.sheet) {\r\n err = FormulaError.NULL;\r\n }\r\n maxRow = minRow = ref.row;\r\n maxCol = minCol = ref.col;\r\n } else {\r\n // range ref\r\n const refMaxRow = Math.max(ref.from.row, ref.to.row);\r\n const refMinRow = Math.min(ref.from.row, ref.to.row);\r\n const refMaxCol = Math.max(ref.from.col, ref.to.col);\r\n const refMinCol = Math.min(ref.from.col, ref.to.col);\r\n if (refMinRow > maxRow || refMaxRow < minRow || refMinCol > maxCol || refMaxCol < minCol\r\n || sheet !== ref.sheet) {\r\n err = FormulaError.NULL;\r\n }\r\n // update\r\n maxRow = Math.min(maxRow, refMaxRow);\r\n minRow = Math.max(minRow, refMinRow);\r\n maxCol = Math.min(maxCol, refMaxCol);\r\n minCol = Math.max(minCol, refMinCol);\r\n }\r\n });\r\n if (err) return err;\r\n // check if the ref can be reduced to cell reference\r\n if (maxRow === minRow && maxCol === minCol) {\r\n res = {\r\n ref: {\r\n sheet,\r\n row: maxRow,\r\n col: maxCol\r\n }\r\n }\r\n } else {\r\n res = {\r\n ref: {\r\n sheet,\r\n from: {row: minRow, col: minCol},\r\n to: {row: maxRow, col: maxCol}\r\n }\r\n };\r\n }\r\n\r\n if (!res.ref.sheet)\r\n delete res.ref.sheet;\r\n return res;\r\n }\r\n\r\n applyUnion(refs) {\r\n const collection = new Collection();\r\n for (let i = 0; i < refs.length; i++) {\r\n if (this.isFormulaError(refs[i]))\r\n return refs[i];\r\n collection.add(this.extractRefValue(refs[i]).val, refs[i]);\r\n }\r\n\r\n // console.log('applyUnion', unions);\r\n return collection;\r\n }\r\n\r\n /**\r\n * Apply multiple references, e.g. A1:B3:C8:A:1:.....\r\n * @param refs\r\n // * @return {{ref: {from: {col: number, row: number}, to: {col: number, row: number}}}}\r\n */\r\n applyRange(refs) {\r\n let res, maxRow = -1, maxCol = -1, minRow = MAX_ROW + 1, minCol = MAX_COLUMN + 1;\r\n refs.forEach(ref => {\r\n if (this.isFormulaError(ref))\r\n return ref;\r\n // row ref is saved as number, parse the number to row ref here\r\n if (typeof ref === 'number') {\r\n ref = this.parseRow(ref);\r\n }\r\n ref = ref.ref;\r\n // check whole row/col reference\r\n if (ref.row === undefined) {\r\n minRow = 1;\r\n maxRow = MAX_ROW\r\n }\r\n if (ref.col === undefined) {\r\n minCol = 1;\r\n maxCol = MAX_COLUMN;\r\n }\r\n\r\n if (ref.row > maxRow)\r\n maxRow = ref.row;\r\n if (ref.row < minRow)\r\n minRow = ref.row;\r\n if (ref.col > maxCol)\r\n maxCol = ref.col;\r\n if (ref.col < minCol)\r\n minCol = ref.col;\r\n });\r\n if (maxRow === minRow && maxCol === minCol) {\r\n res = {\r\n ref: {\r\n row: maxRow,\r\n col: maxCol\r\n }\r\n }\r\n } else {\r\n res = {\r\n ref: {\r\n from: {row: minRow, col: minCol},\r\n to: {row: maxRow, col: maxCol}\r\n }\r\n };\r\n }\r\n return res;\r\n }\r\n\r\n /**\r\n * Throw away the refs, and retrieve the value.\r\n * @return {{val: *, isArray: boolean}}\r\n */\r\n extractRefValue(obj) {\r\n const isArray = Array.isArray(obj);\r\n if (obj.ref) {\r\n // can be number or array\r\n return {val: this.context.retrieveRef(obj), isArray};\r\n\r\n }\r\n return {val: obj, isArray};\r\n }\r\n\r\n /**\r\n *\r\n * @param array\r\n * @return {Array}\r\n */\r\n toArray(array) {\r\n // TODO: check if array is valid\r\n // console.log('toArray', array);\r\n return array;\r\n }\r\n\r\n /**\r\n * @param {string} number\r\n * @return {number}\r\n */\r\n toNumber(number) {\r\n return Number(number);\r\n }\r\n\r\n /**\r\n * @param {string} string\r\n * @return {string}\r\n */\r\n toString(string) {\r\n return string.substring(1, string.length - 1) .replace(/\"\"/g, '\"');\r\n }\r\n\r\n /**\r\n * @param {string} bool\r\n * @return {boolean}\r\n */\r\n toBoolean(bool) {\r\n return bool === 'TRUE';\r\n }\r\n\r\n /**\r\n * Parse an error.\r\n * @param {string} error\r\n * @return {FormulaError}\r\n */\r\n toError(error) {\r\n return new FormulaError(error.toUpperCase());\r\n }\r\n\r\n isFormulaError(obj) {\r\n return obj instanceof FormulaError;\r\n }\r\n}\r\n\r\nmodule.exports = Utils;\r\n","const FormulaError = require('../../formulas/error');\r\nconst {FormulaHelpers} = require('../../formulas/helpers');\r\nconst {Parser} = require('../parsing');\r\nconst lexer = require('../lexing');\r\nconst Utils = require('./utils');\r\nconst {formatChevrotainError} = require('../utils');\r\n\r\nclass DepParser {\r\n\r\n /**\r\n *\r\n * @param {{onVariable: Function}} [config]\r\n */\r\n constructor(config) {\r\n this.data = [];\r\n this.utils = new Utils(this);\r\n config = Object.assign({\r\n onVariable: () => null,\r\n }, config);\r\n this.utils = new Utils(this);\r\n\r\n this.onVariable = config.onVariable;\r\n this.functions = {}\r\n\r\n this.parser = new Parser(this, this.utils);\r\n }\r\n\r\n /**\r\n * Get value from the cell reference\r\n * @param ref\r\n * @return {*}\r\n */\r\n getCell(ref) {\r\n // console.log('get cell', JSON.stringify(ref));\r\n if (ref.row != null) {\r\n if (ref.sheet == null)\r\n ref.sheet = this.position ? this.position.sheet : undefined;\r\n const idx = this.data.findIndex(element => {\r\n return (element.from && element.from.row <= ref.row && element.to.row >= ref.row\r\n && element.from.col <= ref.col && element.to.col >= ref.col)\r\n || (element.row === ref.row && element.col === ref.col && element.sheet === ref.sheet)\r\n });\r\n if (idx === -1)\r\n this.data.push(ref);\r\n }\r\n return 0;\r\n }\r\n\r\n /**\r\n * Get values from the range reference.\r\n * @param ref\r\n * @return {*}\r\n */\r\n getRange(ref) {\r\n // console.log('get range', JSON.stringify(ref));\r\n if (ref.from.row != null) {\r\n if (ref.sheet == null)\r\n ref.sheet = this.position ? this.position.sheet : undefined;\r\n\r\n const idx = this.data.findIndex(element => {\r\n return element.from && element.from.row === ref.from.row && element.from.col === ref.from.col\r\n && element.to.row === ref.to.row && element.to.col === ref.to.col;\r\n });\r\n if (idx === -1)\r\n this.data.push(ref);\r\n }\r\n return [[0]]\r\n }\r\n\r\n /**\r\n * TODO:\r\n * Get references or values from a user defined variable.\r\n * @param name\r\n * @return {*}\r\n */\r\n getVariable(name) {\r\n // console.log('get variable', name);\r\n const res = {ref: this.onVariable(name, this.position.sheet)};\r\n if (res.ref == null)\r\n return FormulaError.NAME;\r\n if (FormulaHelpers.isCellRef(res))\r\n this.getCell(res.ref);\r\n else {\r\n this.getRange(res.ref);\r\n }\r\n return 0;\r\n }\r\n\r\n /**\r\n * Retrieve values from the given reference.\r\n * @param valueOrRef\r\n * @return {*}\r\n */\r\n retrieveRef(valueOrRef) {\r\n if (FormulaHelpers.isRangeRef(valueOrRef)) {\r\n return this.getRange(valueOrRef.ref);\r\n }\r\n if (FormulaHelpers.isCellRef(valueOrRef)) {\r\n return this.getCell(valueOrRef.ref)\r\n }\r\n return valueOrRef;\r\n }\r\n\r\n /**\r\n * Call an excel function.\r\n * @param name - Function name.\r\n * @param args - Arguments that pass to the function.\r\n * @return {*}\r\n */\r\n callFunction(name, args) {\r\n args.forEach(arg => {\r\n if (arg == null)\r\n return;\r\n this.retrieveRef(arg);\r\n });\r\n return {value: 0, ref: {}};\r\n }\r\n\r\n /**\r\n * Check and return the appropriate formula result.\r\n * @param result\r\n * @return {*}\r\n */\r\n checkFormulaResult(result) {\r\n this.retrieveRef(result);\r\n }\r\n\r\n /**\r\n * Parse an excel formula and return the dependencies\r\n * @param {string} inputText\r\n * @param {{row: number, col: number, sheet: string}} position\r\n * @param {boolean} [ignoreError=false] if true, throw FormulaError when error occurred.\r\n * if false, the parser will return partial dependencies.\r\n * @returns {Array.<{}>}\r\n */\r\n parse(inputText, position, ignoreError = false) {\r\n if (inputText.length === 0) throw Error('Input must not be empty.');\r\n this.data = [];\r\n this.position = position;\r\n const lexResult = lexer.lex(inputText);\r\n this.parser.input = lexResult.tokens;\r\n try {\r\n const res = this.parser.formulaWithBinaryOp();\r\n this.checkFormulaResult(res);\r\n } catch (e) {\r\n if (!ignoreError) {\r\n throw FormulaError.ERROR(e.message, e);\r\n }\r\n }\r\n if (this.parser.errors.length > 0 && !ignoreError) {\r\n const error = this.parser.errors[0];\r\n throw formatChevrotainError(error, inputText);\r\n }\r\n\r\n return this.data;\r\n }\r\n}\r\n\r\nmodule.exports = {\r\n DepParser,\r\n};\r\n","const {FormulaParser} = require('./grammar/hooks');\r\nconst {DepParser} = require('./grammar/dependency/hooks');\r\nconst SSF = require('./ssf/ssf');\r\nconst FormulaError = require('./formulas/error');\r\n\r\n// const funs = new FormulaParser().supportedFunctions();\r\n// console.log('Supported:', funs.join(', '),\r\n// `\\nTotal: ${funs.length}/477, ${funs.length/477*100}% implemented.`);\r\n\r\n\r\nObject.assign(FormulaParser, {\r\n MAX_ROW: 1048576,\r\n MAX_COLUMN: 16384,\r\n SSF,\r\n DepParser,\r\n FormulaError, ...require('./formulas/helpers')\r\n});\r\nmodule.exports = FormulaParser;\r\n","import Parser, { DepParser } from 'fast-formula-parser';\nexport class FormulaParser {\n parser;\n depParser;\n root;\n constructor(root) {\n this.root = root;\n this.parser = new Parser({\n onCell: ({ col, row }) => {\n const cell = this.root.data[row - 1][col - 1];\n const cellValue = cell.resultValue.length > 0 ? cell.resultValue : cell.value;\n if (cellValue && isNaN(Number(cellValue)) === false)\n return Number(cellValue);\n return this.root.data[row - 1][col - 1].resultValue ?? '';\n },\n });\n this.depParser = new DepParser({});\n this.depParser;\n }\n}\n","import { Editor } from \"./components/editor\";\nimport { Scroller } from \"./components/scroller\";\nimport { Sheet } from \"./components/sheet\";\nimport { Table } from \"./components/table\";\nimport { Toolbar } from \"./components/toolbar\";\nimport { Cell, } from \"./modules/cell\";\nimport { Config, } from \"./modules/config\";\nimport { Selection } from \"./modules/selection\";\nimport { Styles } from \"./modules/styles\";\nimport { Viewport } from \"./modules/viewport\";\nimport \"./scss/main.scss\";\nimport { createSampleData } from \"./utils/createData\";\nimport { Cache, CachedColumn, CachedRow } from \"./modules/cache\";\nimport { Row } from \"./modules/row\";\nimport { Column } from \"./modules/column\";\nimport { ColumnsBar } from \"./components/columnsBar\";\nimport { RowsBar } from \"./components/rowsBar\";\nimport { EventTypes, Events } from \"./modules/events\";\nimport { Clipboard } from \"./modules/clipboard\";\nimport { FormulaParser } from \"./modules/formulaParser\";\nexport const CSS_PREFIX = \"modern_sc_\";\nexport default class Spreadsheet {\n table;\n scroller;\n toolbar;\n rowsBar;\n columnsBar;\n sheet;\n editor;\n styles;\n config;\n data;\n viewport;\n selection;\n cache;\n events;\n clipboard;\n formulaParser;\n constructor(target, props) {\n const data = createSampleData(40, 40);\n const config = this.makeConfigFromData(data, props?.view ?? { height: 600, width: 800 });\n if (props?.view) {\n config.view = props.view;\n }\n this.config = new Config(config);\n this.config.onCellClick = props?.onCellClick ?? null;\n this.config.onSelectonChange = props?.onSelectionChange ?? null;\n this.config.onCellChange = props?.onCellChange ?? null;\n this.config.onCopy = props?.onCopy ?? null;\n this.rowsBar = new RowsBar(this);\n this.columnsBar = new ColumnsBar(this);\n this.sheet = new Sheet(this);\n this.table = new Table(this);\n this.scroller = new Scroller(this);\n this.toolbar = new Toolbar(this);\n this.editor = new Editor(this);\n this.cache = this.getInitialCache();\n this.viewport = new Viewport(this, this.scroller.getViewportBoundlingRect());\n this.selection = new Selection();\n this.events = new Events(this);\n this.clipboard = new Clipboard(this);\n this.formulaParser = new FormulaParser(this);\n this.data = data;\n this.styles = new Styles();\n this.buildComponent();\n this.setElementsPositions();\n this.appendTableToTarget(target);\n this.renderSheet();\n this.renderColumnsBar();\n this.renderRowsBar();\n }\n setRowsBarPosition() {\n const top = this.columnsBar.height + this.toolbar.height;\n const left = 0;\n this.rowsBar.setElementPosition(top, left);\n }\n setColumnsBarPosition() {\n const top = this.toolbar.height;\n const left = this.rowsBar.width;\n this.columnsBar.setElementPosition(top, left);\n }\n setElementsPositions() {\n this.setRowsBarPosition();\n this.setColumnsBarPosition();\n }\n getInitialCache() {\n const cachedCols = [];\n let currentWidth = 0;\n for (let i = 0; i <= this.config.columns.length - 1; i++) {\n const col = this.config.columns[i];\n currentWidth += col.width;\n const cacheCol = new CachedColumn({\n xPos: currentWidth,\n colIdx: i,\n });\n cachedCols.push(cacheCol);\n }\n const cachedRows = [];\n let currentHeight = 0;\n for (let i = 0; i <= this.config.rows.length - 1; i++) {\n const row = this.config.rows[i];\n currentHeight += row.height;\n const cacheRow = new CachedRow({\n yPos: currentHeight,\n rowIdx: i,\n });\n cachedRows.push(cacheRow);\n }\n const cache = new Cache({\n columns: cachedCols,\n rows: cachedRows,\n });\n return cache;\n }\n buildComponent() {\n const content = document.createElement(\"div\"); //* Abstract\n content.style.top = this.columnsBarHeight + \"px\";\n content.style.left = this.rowsBarWidth + \"px\";\n content.appendChild(this.sheet.element);\n content.classList.add(CSS_PREFIX + \"content\");\n this.table.element.appendChild(this.toolbar.element);\n this.table.element.appendChild(this.rowsBar.element);\n this.table.element.appendChild(this.columnsBar.element);\n this.table.element.appendChild(content);\n this.table.element.appendChild(this.scroller.element);\n this.table.element.append(this.editor.element);\n }\n /**Destroy spreadsheet DOM element.\n *\n * May be usefull when need to rerender component.\n */\n destroy() {\n this.table.element.remove();\n }\n appendTableToTarget(target) {\n if (typeof target === \"string\") {\n const element = document.querySelector(target);\n if (!element)\n throw new Error(`Element with selector ${target} is not finded in DOM.\\n Make sure it exists.`);\n element?.appendChild(this.table.element);\n }\n if (target instanceof HTMLElement) {\n target.append(this.table.element);\n }\n }\n /** Canvas rendering context 2D.\n *\n * Abble to draw on canvas with default CanvasAPI methods\n */\n get ctx() {\n return this.sheet.ctx;\n }\n get viewProps() {\n return this.config.view;\n }\n get columnsBarHeight() {\n return this.columnsBar.height;\n }\n get rowsBarWidth() {\n return this.rowsBar.width;\n }\n get toolbarHeight() {\n return this.toolbar.height;\n }\n /** Focusing on interactive part of spreadsheet */\n focusTable() {\n this.scroller.element.focus();\n }\n getCellByCoords(x, y) {\n return this.sheet.getCellByCoords(x, y);\n }\n getCell(position) {\n const { column, row } = position;\n return this.data[row][column];\n }\n changeCellValues(position, values, enableCallback = true) {\n const { column, row } = position;\n this.data[row][column].changeValues(values);\n this.events.dispatch({\n type: EventTypes.CELL_CHANGE,\n cell: this.data[row][column],\n enableCallback: enableCallback\n });\n this.renderCell(row, column);\n }\n changeCellStyles(position, styles) {\n const { column, row } = position;\n this.data[row][column].changeStyles(styles);\n this.renderCell(row, column);\n }\n applyActionToRange(range, callback) {\n const fromRow = Math.min(range.from.row, range.to.row);\n const toRow = Math.max(range.from.row, range.to.row);\n const fromCol = Math.min(range.from.column, range.to.column);\n const toCol = Math.max(range.from.column, range.to.column);\n for (let row = fromRow; row <= toRow; row++) {\n for (let col = fromCol; col <= toCol; col++) {\n const cell = this.data[row][col];\n callback(cell);\n }\n }\n }\n deleteSelectedCellsValues() {\n if (this.selection.selectedRange !== null) {\n this.applyActionToRange(this.selection.selectedRange, (cell) => {\n this.changeCellValues(cell.position, {\n displayValue: \"\",\n resultValue: \"\",\n value: \"\",\n });\n });\n }\n else {\n if (!this.selection.selectedCell)\n return;\n this.changeCellValues(this.selection.selectedCell, {\n displayValue: \"\",\n resultValue: \"\",\n value: \"\",\n });\n }\n }\n showEditor(position, initialString) {\n this.editor.show(position, initialString);\n }\n renderSheet() {\n this.sheet.renderSheet();\n }\n renderSelection() {\n this.sheet.renderSelection();\n }\n renderColumnsBar() {\n this.columnsBar.renderBar();\n }\n renderRowsBar() {\n this.rowsBar.renderBar();\n }\n renderCell(row, col) {\n this.data[row][col].render(this);\n }\n loadData(data) {\n const rowsLength = data.length;\n const colsLength = data[0] ? data[0].length : 0;\n this.data = [];\n const formattedData = [];\n // Transform serialized objects to Cells\n for (let row = 0; row < rowsLength; row++) {\n const innerRow = [];\n for (let col = 0; col < colsLength; col++) {\n const cell = data[row][col];\n innerRow.push(new Cell({\n displayValue: cell.displayValue,\n position: cell.position,\n resultValue: cell.resultValue,\n value: cell.value,\n style: cell.style,\n }));\n }\n formattedData.push(innerRow);\n }\n const config = this.makeConfigFromData(formattedData, this.config.view);\n config.onCellChange = this.config.onCellChange;\n config.onCellClick = this.config.onCellClick;\n config.onCopy = this.config.onCopy;\n config.onSelectonChange = this.config.onSelectonChange;\n this.data = formattedData;\n this.selection.selectedCell = null;\n this.selection.selectedRange = null;\n this.config = config;\n this.cache = this.getInitialCache();\n this.scroller.updateScrollerSize();\n this.viewport = new Viewport(this, this.scroller.getViewportBoundlingRect());\n this.renderSheet();\n return this;\n }\n makeConfigFromData(data, view) {\n const lastRowIdx = data.length - 1;\n const lastColIdx = data[0] ? data[0].length : 0;\n const rows = [];\n for (let row = 0; row < lastRowIdx; row++) {\n rows.push(new Row({\n height: 40,\n title: String(row),\n }));\n }\n const columns = [];\n for (let col = 0; col < lastColIdx; col++) {\n columns.push(new Column({\n width: 150,\n title: String(col),\n }));\n }\n const config = new Config({\n view,\n rows,\n columns,\n onCellClick: null,\n });\n return config;\n }\n serializeData() {\n const rowsLength = this.data.length;\n const colsLength = this.data[0] ? this.data[0].length : 0;\n const cellsArray = [];\n for (let row = 0; row < rowsLength; row++) {\n const innerRow = [];\n for (let col = 0; col < colsLength; col++) {\n innerRow.push(this.data[row][col].getSerializableCell());\n }\n cellsArray.push(innerRow);\n }\n return cellsArray;\n }\n}\nexport * from \"./modules/cache\";\nexport * from \"./modules/cell\";\nexport * from \"./modules/column\";\nexport * from \"./modules/config\";\nexport * from \"./modules/renderBox\";\nexport * from \"./modules/row\";\nexport * from \"./modules/selection\";\nexport * from \"./modules/styles\";\nexport * from \"./modules/viewport\";\nexport * from \"./utils/createData\";\n"],"names":["EventTypes","Events","root","__publicField","event","scroller","offsetX","offsetY","clickedCell","cell","selection","Selection","_b","_a","enableCallback","range","data","dataAsString","action","err","RenderBox","config","cellPosition","column","x","row","y","Editor","key","target","element","CSS_PREFIX","position","initialString","height","width","checkEqualCellSelections","selection1","selection2","Scroller","lastSelectedCell","isRangeChanged","newSelection","keysRegex","isPressedLetterKey","cells","from","to","rect","horizontalScroller","verticalScroller","mode","scrollTop","scrollLeft","bottom","right","groupScrollers","stack","acc","curr","totalHeight","totalWidth","CellStyles","props","Position","SerializableCell","Cell$2","styles","values","parser","renderBox","ctx","Sheet$2","canvas","col","selectedCell","selectedRange","startRow","startCol","lastRow","lastCol","startCellBox","box","firstRowIdx","lastColIdx","lastRowIdx","firstColIdx","Table","container","sizes","Toolbar","toolbarElement","Config","Styles","Viewport","Column$2","Row","createSampleData","rows","columns","fillCellsByCoords","innerRow","value","Cell","createSampleConfig","rowsArr","i","rowItem","colsArr","colItem","Column","makeSpreadsheetConfigAndData","CachedColumn","CachedRow","Cache","initial","rowIdx","colIdx","ColumnsBar","top","left","isColSelected","specialX","RowsBar","isRowSeleted","specialY","Clipboard","mapedData","item","arrayOfCells","cellProps","rowsLength","colsLength","j","savedCell","Collection$3","refs","obj","ref","collection","Collection","FormulaError","require$$0","require$$1","Types","Factorials","ReversedTypes","FormulaHelpers","result","arr1","val","isArray","allowBoolean","number","params","valueType","allowUnion","hook","defValue","minSize","param","isCellRef","isRangeRef","isUnion","isLiteral","info","type","flat","allowSingleValue","paramType","variable","context","range1","range2","Address","H","arg","res","WildCard","lookupText","flags","Criteria","criteria","upper","op","dividend","name","modulo","columnName","len","code","rowOffset","colOffset","helpers","error","msg","details","functionName","args","SSF$1","SSF","_strrev","o","fill","c","l","pad0","v","d","t","pad_","rpad_","pad0r1","pad0r2","p2_32","pad0r","isgeneral","s","days","months","init_table","table_fmt","frac","D","mixed","sgn","B","P_2","P_1","P","Q_2","Q_1","Q","A","q","parse_date_code","opts","b2","date","time","dow","dout","out","fix_hijri","basedate","dnthresh","base1904","datenum_local","date1904","epoch","general_fmt_int","general_fmt_num","gnr1","gnr2","gnr4","gnr5","gnr6","gfn2","w","gfn5","gfn3","gfn4","V","general_fmt","format","write_date","fmt","ss0","ss","tt","outl","commaify","write_num","pct1","write_num_pct","sfmt","mul","write_num_cm","idx","write_num_exp","period","ee","fakee","$$","$1","$2","$3","frac1","write_num_f1","r","aval","sign","den","rr","base","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","str","cc","rnd","dd","dec","carry","flr","write_num_flt","ffmt","ri","ff","oa","lres","rres","write_num_cm2","write_num_pct2","write_num_exp2","write_num_int","split_fmt","in_str","abstime","fmt_is_date","eval_fmt","flen","lst","dt","hr","bt","ssm","nstr","jj","vv","myv","ostr","decpt","lasti","retval","cfregex","cfregex2","chkcond","thresh","choose_fmt","f","lat","m1","m2","load_entry","tbl","ssf","defaultResult","singleUnitStrs","placeNameStrs","num2Word","nums","maxLen","overflowIndex","overflowNums","remainingNumbs","digit","grammarFix","neungLen","combine","baht","satang","bahttext","num","bahtStr","satangStr","bahtArr","satangArr","module","require$$2","require$$3","charsets","toFull","set","toHalf","re","way","sets","toFullWidth","str0","toHalfWidth","TextFunctions","text","decimals","decimalString","text1","text2","findText","withinText","startNum","noCommas","comma","numChars","decimalSeparator","groupSeparator","leftParenOrMinus","rightParen","percent","letter","old_text","start_num","num_chars","new_text","arr","number_times","findTextRegex","formatText","e","Prefix","prefixes","prefix","Postfix","postfix","type2Number","Infix","value1","infix","value2","isArray1","isArray2","type1","type2","operators","fd","factorial","n","factorialDouble","MathFunctions","functionNum","options","ref1","radix","minLength","significance","absSignificance","times","offset","numberChosen","nFactorial","kFactorial","radians","a","b","array","numRow","numCol","det","diagLeft","diagRight","array1","array2","aNumRows","aNumCols","bNumRows","bNumCols","m","v1","v2","divisor","multiple","numbers","numerator","denominator","dimension","matrix","rowArr","temp","power","product","parsedNumber","degrees","form","digits","roman","multiplier","coefficients","coefficient","sumRange","ranges","isCriteriaArray","sum","rowNum","colNum","valueToAdd","arrays","arrayX","arrayY","math","MAX_NUMBER","TrigFunctions","trigonometry","getNumLogicalValue","numTrue","numFalse","LogicalFunctions","logicalTest","valueIfTrue","valueIfFalse","valueIfError","valueIfNa","logical","factory","exports","BESSEL","M","_horner","z","_bessel_iter","f0","f1","tdx","f2","_bessel_wrap","bessel0","bessel1","nonzero","b0","b1","besselj","W","b0_a1a","b0_a2a","b0_a1b","b0_a2b","a1","a2","xx","b1_a1a","b1_a2a","b1_a1b","b1_a2b","ret","jsum","bjp","bj","bjm","tox","bessely","besseli","b0_a","b0_b","b1_a","b1_b","bip","bi","bim","besselk","window","this","jStat","Math","undefined","concat","slice","toString","calcRdx","isFunction","isNumber","toVector","fn","index","submat","ind","nrow","objArr","cols","func","toAlter","ncol","retZero","retOne","retIdent","size","min","max","length","hival","step","current","cnt","start","end","rl","_slice","list","rcSlice","colSlice","rowSlice","nl","ml","diagArray","mat","jProto","funcs","passfunc","self","results","ascNum","clip","mean","tmp","prod","low","high","hash","_arr","logs","meanOfLogs","arrlen","diffs","arrLen","distinctNumbers","numberCounts","sortedDistinctNumbers","numberRanks","currentRank","count","first","last","rank","maxCount","numMaxCount","mode_arr","flag","sumsqerr","samples","dev","median","quantilesArray","alphap","betap","sortedArray","quantileVals","p","aleph","k","gamma","exclusive","realIndex","score","kind","counter","strict","binCnt","binWidth","bins","arr2","u","arr1Len","sq_dev","mu","sigma","skewSum","fullbool","tmpthis","callbackFunction","argsToPass","curriedFunction","vector","cof","ser","x0","x2","xp","gl","gl0","fact","xden","xnum","yi","aln","ap","del","h","ITMAX","an","fpmin","qab","qap","qam","aa","EPS","gln","pp","lna1","afac","isneg","ty","lna","lnb","al","shape","oalph","newthis","vals","fnfunc","alpha","beta","df1","df2","x1","local","scale","dof","rate","ncp","tol","min_iterations","flip","prob","lastvalue","std","dof2","betinc","eps","a0","m9","c9","betacdf","N","scaledPDF","samplesDone","scaledCDF","factor","sumarr","L","lam","U","slam","loglam","invalpha","vr","us","laplaceSign","tukeyWprob","nleg","ihalf","C1","C2","C3","bb","wlar","wincr1","wincr2","xleg","aleg","qsqz","pr_w","wincr","blb","binc","bub","einsum","cc1","wi","elsum","ac","qexpo","pplus","pminus","rinsum","tukeyQinv","p0","q0","p1","q1","p2","q2","p3","q3","p4","q4","c1","c2","c3","c4","c5","vmax","ps","nmeans","df","nlegq","ihalfq","eps1","eps2","dhaf","dquar","deigh","dlarg","ulen1","ulen2","ulen3","ulen4","xlegq","alegq","f2lf","f21","ff4","ulen","ans","otsum","twa1","t1","wprb","rotsum","maxiter","valx0","valx1","iter","xabs","push","isUsable","nrescols","rescols","nnorm","newarr","determinant","submatrix","maug","pivot","y2","maxrow","parts","matrix_mode","R","T","xv","xk","qr2","R_I","I","Aj","cAi","Ij","cIi","qr_solve","array_mode","QR","attrs","Q1","R1","RI","Q2","condition","ev","maxim","theta","t_j","u_j","order","k1","k2","u_j1","k3","k4","h1","g","X","pos","h_min","y1","F","dF","dl","temp1","temp2","Y","Bt","C","Vt","sides","zscore","tscore","expVar","sample","sampMean","sampSampMean","tmpargs","unexpVar","anovafscore","fscore","mean1","mean2","n1","n2","sd","qscore","means","change","pvalue","differenceOfProportions","pooled","se","sub_regress","exog","var_count","modelList","endog_index","exog_index","ols","endog","nobs","df_model","df_resid","coef","predict","resid","ybar","SSE","SSR","SST","R2","t_test","model","subModelList","sigmaHat","seBetaHat","mod","tStatistic","pValue","leftppf","interval95","F_test","F_statistic","fcdf","ols_wrap","ttest","ftest","adjust_R2","matrixRows","jMat","pass","jMatX","jMatY","innerinv","xtransp","next","compile","jMatYBar","yAverage","covar","sds","ts","inner","yBar","ssr","sse","sst","bessel","require$$4","MAX_OCT","MIN_OCT","MAX_BIN","MIN_BIN","numberRegex","IMWithoutRealRegex","IMRegex","parseIM","textOrNumber","real","im","unit","match","EngineeringFunctions","numberStr","places","number1","number2","shiftAmount","realNum","iNum","suffix","lowerLimit","upperLimit","ifNegative","toDecimal","toBinary","iNumber","realInput","imaginaryInput","imaginary","iNumber1","iNumber2","res1","unit1","res2","unit2","argument","realSum","imSum","prevUnit","isNegative","toHex","engineering","ReferenceFunctions","rowNumber","columnNumber","absNum","sheetText","indexNum","lookupValue","tableArray","rowIndexNum","rangeLookup","lookupType","prevValue","currValue","areaNum","colIndexNum","currRow","reference","error2Number","InfoFunctions","infoType","information","SQRT2PI","DistributionFunctions","cumulative","probability","numberS","trials","probabilityS","numberS2","degFreedom","actualRange","expectedRange","actual","expected","xsqr","filterArr1","filterArr2","lambda","d1","d2","x1Mean","x2Mean","s1","s2","e2y","knownYs","knownXs","filteredY","filteredX","xAllEqual","yMean","xMean","dataArray","binsArray","binsArrayFiltered","filterArr","knownY","knownX","newX","useConst","isKnownXOmitted","avg_x","avg_y","avg_xy","avg_xx","new_y","sample_s","number_sample","population_s","number_pop","pdf","cdf","standard_dev","number_f","number_s","probability_s","deg_freedom","distribution","StatisticalFunctions","avg","averageRange","statistical","MS_PER_DAY","d1900","WEEK_STARTS","WEEK_TYPES","WEEKEND_TYPES","timeRegex","dateRegex1","dateRegex2","dateRegex3","parseSimplifiedDate","fmt1","fmt2","fmt3","parseTime","minutes","seconds","ampm","now","toSerial","addOn","toDate","serial","parseDateWithExtra","serialOrString","isDateGiven","parseDate","compareDateIgnoreTime","date1","date2","isLeapYear","year","DateFunctions","month","day","startDate","endDate","yearDiff","monthDiff","dayDiff","dateText","method","dayNum","yearStart","holidays","holidaysArr","numWorkDays","found","weekend","weekendArr","skip","hour","minute","second","timeText","returnType","weekTypes","weekStart","basis","sm","sy","ed","em","ey","yLength","years","average","WebFunctions","url","web","VERSION","isEmpty","keys","mapValues","callback","objKeys","currKey","map","flatten","currItem","forEach","iteratorCallback","isObject","colKeys","isString","isUndefined","drop","howMuch","dropRight","filter","predicate","reject","pick","has","prop","contains","find","cloneArr","newArr","cloneObj","clonedObj","findAll","reduce","arrOrObj","iterator","isArr","accumulator","compact","uniq","identity","identities","currIdentity","isRegExp","every","difference","some","indexOf","assign","sources","_i","curSource","currSourceKeys","assignNoOverwrite","defaults","groupBy","groupKeyFunc","currGroupKey","currGroupArr","merge","obj1","obj2","keys2","NOOP","IDENTITY","packArray","holeyArr","orgValue","PRINT_ERROR","PRINT_WARNING","isES2015MapSupported","applyMixins","derivedCtor","baseCtors","baseCtor","baseProto","propName","basePropDescriptor","toFastProperties","toBecomeFast","FakeConstructor","fakeInstance","fakeAccess","peek","timer","total","RegExpParser","newState","input","addFlag","alts","begin","terms","ASSERT_EXISTS","disjunction","ASSERT_NEVER_REACH_HERE","isBacktracking","atLeast","atMost","atom","complement","digitsCharCodes","whitespaceCodes","wordCharCodes","escapeCode","letterCode","escapedChar","nextChar","isFromSingleChar","isToSingleChar","insertToSet","capturing","groupAst","decimalPatternNoZero","decimalPattern","prevState","howMany","hexString","hexChar","hexDigitPattern","charCode","char","subItem","flagObj","flagKey","BaseRegExpVisitor","node","child","subChild","regExpAstCache","regExpParser","getRegExpAst","regExp","regExpStr","regExpAst","clearRegExpParserCache","__extends","extendStatics","__","complementErrorMessage","failedOptimizationPrefixMsg","getOptimizedStartCodesIndices","ensureOptimizations","ast","firstChars","firstCharOptimizedIndices","msgSuffix","ignoreCase","term","addOptimizedIdxToResult","rangeCode","minOptimizationVal","minUnOptVal","maxUnOptVal","minOptIdx","charCodeToOptimizedIndex","maxOptIdx","currOptIdx","isOptionalQuantifier","isWholeOptional","optimizedCharIdx","handleIgnoreCase","upperChar","lowerChar","findCode","setNode","targetCharCodes","codeOrRange","range_1","targetCode","CharCodeFinder","_super","_this","canMatchCharCode","charCodes","pattern","charCodeFinder","PATTERN","DEFAULT_MODE","MODES","SUPPORT_STICKY","analyzeTokenTypes","tokenTypes","tracer","initCharCodeToOptimizedIndexMap","onlyRelevantTypes","currType","Lexer","hasCustom","allTransformedPatterns","currPattern","regExpSource","addStickyFlag","addStartOfInput","escapedRegExpString","wrappedRegExp","patternIdxToType","patternIdxToGroup","patternIdxToLongerAltIdx","patternIdxToPushMode","patternIdxToPopMode","clazz","groupName","longerAltType","longerAltIdx","patternIdxToCanLineTerminator","lineTerminatorCharCodes","getCharCodes","tokType","checkLineBreaksIssues","patternIdxToIsCustom","patternIdxToShort","emptyGroups","patternIdxToConfig","isCustomPattern","isShortPattern","canBeOptimized","charCodeToPatternIdxToConfig","currTokType","optimizedIdx","addToMapOfArrays","lastOptimizedIdx_1","charOrInt","currOptimizedIdx","optimizedCodes","validatePatterns","validModesNames","errors","missingResult","findMissingPatterns","invalidResult","findInvalidPatterns","validTokenTypes","validateRegExpPattern","findInvalidGroupType","findModesThatDoNotExist","findUnreachablePatterns","withRegExpPatterns","findEndOfInputAnchor","findStartOfInputAnchor","findUnsupportedFlags","findDuplicatePatterns","findEmptyMatchRegExps","tokenTypesWithMissingPattern","LexerDefinitionErrorType","valid","tokenTypesWithInvalidPattern","end_of_input","EndAnchorFinder","invalidRegex","regexpAst","endAnchorVisitor","matchesEmptyString","start_of_input","StartAnchorFinder","startAnchorVisitor","invalidFlags","identicalPatterns","outerType","innerType","duplicatePatterns","currIdenticalSet","setOfIdentical","tokenTypeNames","dupPatternSrc","invalidTypes","group","validModes","invalidModes","canBeTested","noMetaChar","testIdx","tokenType","testTokenType","regExpArray","metaChars","performRuntimeChecks","lexerDefinition","trackLines","lineTerminatorCharacters","currModeValue","currModeName","currIdx","performWarningRuntimeChecks","warnings","hasAnyLineBreak","allTokenTypes","tokTypes","concreteTokenTypes","terminatorCharCodes","currIssue","message","buildLineBreakIssueMessage","warningDescriptor","cloneEmptyGroups","clonedResult","groupKeys","currGroupValue","LineTerminatorOptimizedTester","charsOrCodes","numOrString","charCodeToOptimizedIdxMap","tokenStructuredMatcher","tokInstance","tokConstructor","instanceType","tokenStructuredMatcherNoCategories","token","tokenShortNameIdx","tokenIdxToClass","augmentTokenTypes","tokenTypesAndParents","expandCategories","assignTokenDefaultProps","assignCategoriesMapProp","assignCategoriesTokensProp","categories","searching","newCategories","hasShortKeyProperty","hasCategoriesProperty","hasExtendingTokensTypesProperty","hasExtendingTokensTypesMapProperty","singleAssignCategoriesToksMap","path","nextNode","pathNode","nextCategory","newPath","isTokenType","defaultLexerErrorProvider","fullText","startOffset","line","DEFAULT_LEXER_CONFIG","traceInitVal","actualDefinition","hasOnlySingleMode","allModeNames","currModDef","currModName","currAnalyzeResult_1","allErrMessages","allErrMessagesString","unOptimizedModes","cannotBeOptimized","modeName","initialMode","lexResult","matchAltImage","matchedImage","payload","altPayload","imageLength","newToken","errLength","orgText","orgLength","matchedTokensIndex","guessedNumberOfTokens","matchedTokens","groups","lineTerminatorPattern","currModePatternsLength","currCharCodeToPatternIdxToConfig","modeStack","emptyArray","getPossiblePatterns","getPossiblePatternsSlow","getPossiblePatternsOptimized","possiblePatterns","pop_mode","popToken","msg_1","newMode","modeCanBeOptimized","push_mode","currConfig","nextCharCode","chosenPatternIdxToConfig","chosenPatternsLength","singleCharCode","longerAltConfig","longerAltPattern","numOfLTsInMatch","foundTerminator","lastLTEndOffset","errorStartOffset","errorLine","errorColumn","foundResyncPoint","currConfig_1","pushMode","newLastIndex","lastLTIdx","lastCharIsLT","fixForEndingInLT","oldColumn","image","tokenTypeIdx","startLine","startColumn","tokenVector","tokenToAdd","phaseDesc","phaseImpl","indent","traceMethod","tokenLabel","hasTokenLabel","tokenName","PARENT","CATEGORIES","LABEL","GROUP","PUSH_MODE","POP_MODE","LONGER_ALT","LINE_BREAKS","START_CHARS_HINT","createToken","createTokenInternal","EOF","createTokenInstance","endOffset","endLine","endColumn","tokenMatcher","AbstractProduction","_definition","visitor","NonTerminal","definition","Rule","Alternative","Option","RepetitionMandatory","RepetitionMandatoryWithSeparator","Repetition","RepetitionWithSeparator","Alternation","Terminal","serializeGrammar","topRules","serializeProduction","convertDefinition","serializedTerminal","RestWalker","prevRest","subProd","currRest","terminal","refProd","flatProd","fullOrRest","optionProd","atLeastOneProd","fullAtLeastOneRest","atLeastOneSepProd","fullAtLeastOneSepRest","restForRepetitionWithSeparator","manyProd","fullManyRest","manySepProd","fullManySepRest","orProd","alt","prodWrapper","repSepProd","repSepRest","fullRepSepRest","GAstVisitor","nodeAny","isSequenceProd","isOptionalProd","alreadyVisited","isDirectlyOptional","isBranchingProd","getProductionDslName","DslMethodsCollectorVisitor","subrule","option","manySep","atLeastOne","atLeastOneSep","many","or","collectorVisitor","collectMethods","rule","dslMethods","firstForTerminal","firstForSequence","firstForBranching","firstSet","seq","nextSubProdIdx","hasInnerProdsRemaining","currSubProd","isLastInnerProdOptional","allAlternativesFirsts","innerProd","IN","ResyncFollowsWalker","topProd","followName","buildBetweenProdsFollowPrefix","fullRest","restProd","t_in_topProd_follows","computeAllProdsFollows","topProductions","reSyncFollows","currRefsFollow","occurenceInParent","defaultParserErrorProvider","hasLabel","expectedMsg","firstRedundant","expectedPathsPerAlt","customUserDescription","errPrefix","actualText","errSuffix","allLookAheadPaths","currAltPaths","nextValidTokenSequences","currPath","currTokenType","nextValidSequenceItems","itemMsg","calculatedDescription","expectedIterationPaths","defaultGrammarResolverErrorProvider","topLevelRule","undefinedRule","defaultGrammarValidatorErrorProvider","duplicateProds","getExtraProductionArgument","topLevelName","duplicateProd","dslName","extraArgument","hasExplicitIndex","errMsg","pathMsg","currTok","occurrence","currtok","currMessage","ruleName","pathNames","utils.map","currRule","leftRecursivePath","resolveGrammar","topLevels","errMsgProvider","refResolver","GastRefResolverVisitor","nameToTopRule","ParserDefinitionErrorType","AbstractNextPossibleTokensWalker","NextAfterTokenWalker","AbstractNextTerminalAfterProductionWalker","topRule","NextTerminalAfterManyWalker","firstAfterMany","_first","NextTerminalAfterManySepWalker","firstAfterManySep","NextTerminalAfterAtLeastOneWalker","firstAfterAtLeastOne","NextTerminalAfterAtLeastOneSepWalker","atleastOneSepProd","firstAfterfirstAfterAtLeastOneSep","possiblePathsFrom","targetDef","maxLength","remainingPathWith","nextDef","getAlternativesForProd","alternatives","newDef","currAlt","nextPossibleTokensAfter","initialDef","tokMatcher","maxLookAhead","EXIT_NON_TERMINAL","EXIT_NON_TERMINAL_ARR","EXIT_ALTERNATIVE","foundCompletePath","tokenVectorLength","minimalAlternativesIndex","possiblePaths","currDef","currRuleStack","currOccurrenceStack","nextPath","nextIdx","actualToken","newRuleStack","newOccurrenceStack","nextPathWithout","nextPathWith","secondIteration","separatorGast","nthRepetition","currAltPath","expandTopLevelRule","newCurrOccurrenceStack","PROD_TYPE","getProdType","buildLookaheadFuncForOr","ruleGrammar","maxLookahead","hasPredicates","dynamicTokensEnabled","laFuncBuilder","lookAheadPaths","getLookaheadPathsForOr","areTokenCategoriesNotUsed","buildLookaheadFuncForOptionalProd","prodType","lookaheadBuilder","getLookaheadPathsForOptionalProd","buildAlternativesLookAheadFunc","numOfAlts","areAllOneTokenLookahead","orAlts","predicates","currNumOfPaths","currPredicate","currPathLength","nextToken","singleTokenAlts","choiceToAlt_1","currExtendingType","buildSingleAlternativeLookaheadFunction","numOfPaths","singleTokensTypes","expectedTokenType","expectedTokenUniqueKey_1","choiceToAlt_2","RestDefinitionFinderWalker","targetOccurrence","targetProdType","expectedProdType","InsideDefinitionFinderVisitor","targetRef","expectedProdName","initializeArrayOfArrays","pathToHashKeys","longerKeys","currShorterKey","categoriesKeySuffix","isUniquePrefixHash","altKnownPathsKeys","searchPathKeys","currAltIdx","otherAltKnownPathsKeys","searchIdx","searchKey","lookAheadSequenceFromAlternatives","altsDefs","partialAlts","finalResult","altsHashes","dict","newData","pathLength","currDataset","_loop_1","altIdx","currAltPathsAndSuffixes","currPathIdx","currPathPrefix","suffixDef","prefixKeys","isUnique","currAltResult","containsPath","newPartialPathsAndSuffixes","insideDefVisitor","insideDef","afterDefWalker","afterDef","insideFlat","AlternativeGAST","afterFlat","alternative","searchPath","compareOtherPath","otherPath","searchTok","otherTok","matchingTokens","isStrictPrefixOfPath","other","otherTokType","singleAltPaths","singlePath","validateGrammar","globalMaxLookahead","grammarName","duplicateErrors","currTopLevel","validateDuplicateProductions","leftRecursionErrors","currTopRule","validateNoLeftRecursion","emptyAltErrors","ambiguousAltsErrors","emptyRepetitionErrors","validateEmptyOrAlternative","validateAmbiguousAlternationAlternatives","validateSomeNonEmptyLookaheadPath","termsNamespaceConflictErrors","checkTerminalAndNoneTerminalsNameSpace","tooManyAltsErrors","curRule","validateTooManyAlts","duplicateRulesError","validateRuleDoesNotAlreadyExist","utils.flatten","OccurrenceValidationCollector","allRuleProductions","productionGroups","utils.groupBy","identifyProductionForDuplicates","duplicates","utils.pick","currGroup","utils.values","currDuplicates","firstProd","utils.first","defError","allRules","className","occurrences","validateRuleIsOverridden","definedRulesNames","utils.contains","nextNonTerminals","getFirstNoneTerminal","utils.isEmpty","foundLeftRecursion","validNextSteps","utils.difference","errorsFromNextSteps","currRefRule","utils.cloneArr","currSubDef","isFirstOptional","hasMore","rest","utils.drop","OrCollector","orCollector","ors","utils.reduce","currOr","exceptLast","utils.dropRight","currErrors","currAlternative","possibleFirstInAlt","utils.compact","currOccurrence","actualMaxLookahead","altsAmbiguityErrors","checkAlternativesAmbiguities","altsPrefixAmbiguityErrors","checkPrefixAlternativesAmbiguities","RepetionCollector","topLevelRules","currProd","paths","pathsInsideProduction","alternation","foundAmbiguousPaths","identicalAmbiguities","altsCurrPathAppearsIn","currOtherAlt","currOtherAltIdx","currAmbDescriptor","ambgIndices","pathsAndIndices","currPathsAndIdx","currPathAndIdx","alternativeGast","targetIdx","targetPath","prefixAmbiguitiesPathsAndIndices","searchPathAndIdx","currPathPrefixErrors","currAmbPathAndIdx","tokenNames","currToken","currRuleName","topRulesTable","orgResolveGrammar","orgValidateGrammar","assignOccurrenceIndices","methodsCollector","methods","currMethod","arrIdx","MISMATCHED_TOKEN_EXCEPTION","NO_VIABLE_ALT_EXCEPTION","EARLY_EXIT_EXCEPTION","NOT_ALL_INPUT_PARSED_EXCEPTION","RECOGNITION_EXCEPTION_NAMES","isRecognitionException","RecognitionException","_newTarget","MismatchedTokenException","previousToken","NoViableAltException","NotAllInputParsedException","EarlyExitException","EOF_FOLLOW_KEY","IN_RULE_RECOVERY_EXCEPTION","InRuleRecoveryException","Recoverable","DEFAULT_PARSER_CONFIG","attemptInRepetitionRecovery","tokToInsert","grammarRule","grammarRuleArgs","lookAheadFunc","expectedTokType","reSyncTokType","savedLexerState","resyncedTokens","passedResyncPoint","nextTokenWithoutResync","generateErrorMessage","expectTokAfterLastMatch","nextTokIdx","notStuck","tokIdxInRule","grammarPath","follows","nextTok","expectedToken","mismatchedTok","isMisMatchedTokInFollows","possibleFollowsTokType","isNextTokenWhatIsExpected","followKey","currentRuleReSyncSet","allPossibleReSyncTokTypes","nextTokenType","currRuleShortName","currRuleIdx","prevRuleShortName","explicitRuleStack","explicitOccurrenceStack","followStack","resyncTokens","prodFunc","lookaheadFunc","dslMethodIdx","prodOccurrence","nextToksWalker","pathRuleStack","pathOccurrenceStack","currShortName","firstAfterRepInfo","walker","isEndOfRule","BITS_FOR_METHOD_TYPE","BITS_FOR_OCCURRENCE_IDX","OR_IDX","OPTION_IDX","MANY_IDX","AT_LEAST_ONE_IDX","MANY_SEP_IDX","AT_LEAST_ONE_SEP_IDX","getKeyForAutomaticLookahead","ruleIdx","LooksAhead","rules","repetition","repetitionMandatory","repetitionMandatoryWithSeparator","repetitionWithSeparator","prodIdx","laFunc","prodKey","prodMaxLookahead","dslMethodName","setNodeLocationOnlyOffset","currNodeLocation","newLocationInfo","setNodeLocationFull","addTerminalToCst","tokenTypeName","addNoneTerminalToCst","ruleResult","classNameFromInstance","instance","NAME","existingNameProp","defineNameProp","nameValue","namePropDescriptor","defaultVisit","childrenNames","childrenNamesLength","currChildName","currChildArray","currChildArrayLength","currChild","createBaseSemanticVisitorConstructor","ruleNames","derivedConstructor","semanticProto","cstNode","semanticDefinitionErrors","validateVisitor","errorMessages","currDefError","createBaseVisitorConstructorWithDefaults","baseConstructor","withDefaultsProto","CstVisitorDefinitionError","visitorInstance","missingErrors","validateMissingCstMethods","redundantErrors","validateRedundantMethods","VALID_PROP_NAMES","TreeBuilder","fullRuleName","shortName","ruleCstNode","prevToken","loc","consumedToken","rootCst","ruleCstResult","preCstNode","newBaseCstVisitorConstructor","newConstructor","ruleStack","occurrenceStack","LexerAdapter","newInput","END_OF_FILE","soughtIdx","RecognizerApi","impl","ruleToCall","actionORMethodDef","altsOrOpts","implementation","DEFAULT_RULE_CONFIG","ruleImplementation","ruleErrors","orgState","RecognizerEngine","tokenVocabulary","uniqueTokens","noTokenCategoriesUsed","tokenConstructor","resyncEnabled","recoveryValueFunc","invokeRuleWithTry","cst","wrappedGrammarRule","idxInCallingRule","ruleNamePropName","resyncEnabledConfig","isFirstInvokedRule","reSyncEnabled","recogError","partialCstResult","orgLookaheadFunction_1","laKey","orgLookaheadFunction_2","separator","firstIterationLookaheadFunc","separatorLookAheadFunc","lookaheadFunction","orgLookaheadFunction_3","firstIterationLaFunc","nextTerminalAfterWalker","beforeIteration","afterIteration","altIdxToTake","chosenAlternative","firstRedundantTok","eFromConsumption","eFromInRuleRecovery","savedErrors","savedRuleStack","fullName","ErrorHandler","newErrors","userDefinedErrMsg","lookAheadPathsPerAlternative","insideProdPaths","actualTokens","errMsgTypes","ContentAssist","startRuleName","precedingInput","startRuleGast","topRuleName","gastProductions","topProduction","nextPossibleTokenTypes","RECORDING_NULL_OBJECT","HANDLE_SEPARATOR","MAX_METHOD_IDX","RFT","RECORDING_PHASE_TOKEN","RECORDING_PHASE_CSTNODE","GastRecorder","arg1","arg2","def","newTopLevelRule","originalError","recordProd","recordOrProd","assertMethodIdxIsValid","getIdxSuffix","prevProd","newNoneTerminal","prodConstructor","mainProdArg","handleSep","grammarAction","newProd","hasOptions","newOrProd","currAltFlat","PerformanceTracer","userTraceInitPerf","traceIsNumber","EMPTY_ALT","Parser","that","parserInstance","defErrorsMsgs","wrappedRule","originalGrammarAction","recordedRuleGast","resolverErrors","validationErrors","allFollows","CstParser","configClone","EmbeddedActionsParser","createSyntaxDiagramsCode","grammar","_c","resourceBase","_d","css","header","cssHtml","scripts","diagramsDiv","serializedGrammar","initLogic","NL","genUmdModule","genClass","genWrapperFunction","genAllRules","rulesText","genRule","genDefinition","genTerminal","genNonTerminal","genAlternation","altDef","genSingleAlt","genProd","genDSLRule","genDefFunction","spaces","generateParserFactory","wrapperText","constructorWrapper","generateParserModule","clearCache","WhiteSpace","String","SingleQuotedString","SheetQuoted","Function","FormulaErrorT","RefError","Name","Sheet","Number","Boolean","At","Comma","Colon","Semicolon","OpenParen","CloseParen","OpenSquareParen","CloseSquareParen","OpenCurlyParen","CloseCurlyParen","QuoteS","MulOp","PlusOp","DivOp","MinOp","ConcatOp","ExOp","PercentOp","GtOp","EqOp","LtOp","NeqOp","GteOp","LteOp","allTokens","SelectLexer","lexing","inputText","lexingResult","lexer","ExcelRefFunction","ExcelConditionalRefFunction","Parsing","utils","$","infixes","ops","formula","currentRow","sep","constant","bool","sheetName","referenceItem","address","parsing","Operators","MAX_ROW","MAX_COLUMN","Utils$3","cellAddress","col1","col2","row1","row2","val1","val2","maxRow","maxCol","minRow","minCol","sheet","refMaxRow","refMinRow","refMaxCol","refMinCol","string","Utils","EngFunctions","require$$5","InformationFunctions","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","FormulaParser$2","isTest","valueOrRef","nullValue","awaitedArgs","supported","fun","allowReturnArray","hooks","FormulaParser","Utils$1","formatChevrotainError","DepParser$1","ignoreError","DepParser","fastFormulaParser","cellValue","Spreadsheet","cachedCols","currentWidth","cacheCol","cachedRows","currentHeight","cacheRow","content","fromRow","toRow","fromCol","toCol","formattedData","view","cellsArray"],"mappings":"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","x_google_ignoreList":[20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88]} \ No newline at end of file diff --git a/manifest.json b/manifest.json index d2f72eb..f699aa9 100644 --- a/manifest.json +++ b/manifest.json @@ -1,17 +1,9 @@ { "index.html": { "file": "demo.js", - "imports": [ - "src/main.ts" - ], "isEntry": true, "src": "index.html" }, - "src/main.ts": { - "file": "main.js", - "isEntry": true, - "src": "src/main.ts" - }, "style.css": { "file": "style.css", "src": "style.css" diff --git a/modules/cache.d.ts b/modules/cache.d.ts deleted file mode 100644 index 8c82e48..0000000 --- a/modules/cache.d.ts +++ /dev/null @@ -1,29 +0,0 @@ -export interface CachedColumnProperties { - xPos: number; - colIdx: number; -} -export declare class CachedColumn { - xPos: number; - colIdx: number; - constructor(props: CachedColumnProperties); -} -export interface CachedRowProperties { - yPos: number; - rowIdx: number; -} -export declare class CachedRow { - yPos: number; - rowIdx: number; - constructor(props: CachedRowProperties); -} -export interface CacheConstructorProps { - columns: CachedColumn[]; - rows: CachedRow[]; -} -export declare class Cache { - columns: CachedColumn[]; - rows: CachedRow[]; - constructor(initial: CacheConstructorProps); - getRowByYCoord(y: number): number; - getColumnByXCoord(x: number): number; -} diff --git a/modules/cell.d.ts b/modules/cell.d.ts deleted file mode 100644 index e770d65..0000000 --- a/modules/cell.d.ts +++ /dev/null @@ -1,58 +0,0 @@ -import Spreadsheet from "../main"; -import { FormulaParser } from "./formulaParser"; -export type CellConstructorProps = { - value: string; - displayValue: string; - resultValue: string; - position: Position; - style: CellStyles | null; -}; -interface CellStylesConstructorProps { - fontSize: number; - fontColor: string; - background: string; - borderColor: string; - selectedBackground: string; - selectedFontColor: string; -} -export declare class CellStyles { - fontSize: number; - fontColor: string; - background: string; - borderColor: string; - selectedBackground: string; - selectedFontColor: string; - constructor(props?: CellStylesConstructorProps); -} -export declare class Position { - row: number; - column: number; - constructor(row: number, column: number); -} -export declare class SerializableCell { - value: string; - displayValue: string; - resultValue: string; - position: Position; - style: CellStyles | null; - constructor(props: SerializableCell | SerializableCell); -} -export declare class Cell { - /** True value (data) */ - value: string; - /** Value to render */ - displayValue: string; - /** This refers to the values that were obtained by calculations, for example, after calculating the formula */ - resultValue: string; - position: Position; - style: CellStyles | null; - cellsDependsOnThisCell: Position[]; - dependedFromCells: Position[]; - constructor(props: CellConstructorProps); - getSerializableCell(): SerializableCell; - changeStyles(styles: CellStyles): void; - changeValues(values: Partial>): void; - evalFormula(parser: FormulaParser): void; - render(root: Spreadsheet): void; -} -export {}; diff --git a/modules/clipboard.d.ts b/modules/clipboard.d.ts deleted file mode 100644 index d05a633..0000000 --- a/modules/clipboard.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import Spreadsheet, { RangeSelectionType } from "../main"; -import { Cell, Position } from "./cell"; -export declare class Clipboard { - saved: Cell[][] | null; - root: Spreadsheet; - constructor(root: Spreadsheet); - copy(data: Cell[][], range: RangeSelectionType): void; - paste(root: Spreadsheet, { column, row }: Position, event: ClipboardEvent): void; -} diff --git a/modules/column.d.ts b/modules/column.d.ts deleted file mode 100644 index 6cc7ac9..0000000 --- a/modules/column.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -export type ColumnConstructorProperties = { - width: number; - title: string; -}; -export declare class Column { - width: number; - title: string; - constructor(props: ColumnConstructorProperties); -} diff --git a/modules/config.d.ts b/modules/config.d.ts deleted file mode 100644 index 21c0057..0000000 --- a/modules/config.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Cell } from "./cell"; -import { Column } from "./column"; -import { Row } from "./row"; -import { RangeSelectionType, Selection } from "./selection"; -export interface ViewProperties { - width: number; - height: number; -} -export type CellClickEvent = (event: MouseEvent, cell: Cell) => void; -export type SelectionChangeEvent = (selection: Selection) => void; -export type CellChangeEvent = (cell: Cell) => void; -export type CopyEvent = (range: RangeSelectionType, data: Cell[][], dataAsString: string) => void; -export type ConfigProperties = { - /** Please, end it with '_' symbol. - * - * *Example:* - * - * 'test_' - * 'google_' */ - rows: Row[]; - columns: Column[]; - view: ViewProperties; - onCellClick?: CellClickEvent | null; - onSelectionChange?: SelectionChangeEvent | null; - onCellChange?: CellChangeEvent | null; - onCopy?: CopyEvent | null; -}; -export type SheetConfigConstructorProps = { - rows: Row[]; - columns: Column[]; -}; -export declare class Config { - rows: Row[]; - columns: Column[]; - view: ViewProperties; - onCellClick: CellClickEvent | null; - onSelectonChange: SelectionChangeEvent | null; - onCellChange: CellChangeEvent | null; - onCopy: CopyEvent | null; - constructor(props: ConfigProperties); -} diff --git a/modules/events.d.ts b/modules/events.d.ts deleted file mode 100644 index 901796b..0000000 --- a/modules/events.d.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Scroller } from "../components/scroller"; -import Spreadsheet, { Cell, RangeSelectionType, Selection } from "../main"; -export declare enum EventTypes { - CELL_CLICK = "CELL_CLICK", - SELECTION_CHANGE = "CHANGE_SELECTION", - CELL_CHANGE = "CELL_CHANGE", - COPY_CELLS = "COPY_CELLS" -} -export type CellClickEvent = { - type: EventTypes.CELL_CLICK; - event: MouseEvent; - scroller: Scroller; -}; -export type ChangeSelectionEvent = { - type: EventTypes.SELECTION_CHANGE; - selection: Selection; - enableCallback?: boolean; -}; -export type ChangeCellEvent = { - type: EventTypes.CELL_CHANGE; - cell: Cell; - enableCallback?: boolean; -}; -export type CopyAction = { - type: EventTypes.COPY_CELLS; - range: RangeSelectionType; - data: Cell[][]; - dataAsString: string; -}; -export type ActionTypes = CellClickEvent | ChangeSelectionEvent | ChangeCellEvent | CopyAction; -export declare class Events { - root: Spreadsheet; - constructor(root: Spreadsheet); - dispatch(action: ActionTypes): Promise; - private cellClick; - private changeSelection; - private changeCellValues; - private copy; -} diff --git a/modules/formulaParser.d.ts b/modules/formulaParser.d.ts deleted file mode 100644 index a50c36f..0000000 --- a/modules/formulaParser.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import Parser, { DepParser } from 'fast-formula-parser'; -import Spreadsheet from '../main'; -export declare class FormulaParser { - parser: Parser; - depParser: DepParser; - root: Spreadsheet; - constructor(root: Spreadsheet); -} diff --git a/modules/renderBox.d.ts b/modules/renderBox.d.ts deleted file mode 100644 index ba0eef1..0000000 --- a/modules/renderBox.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Position } from "./cell"; -import { Config } from "./config"; -export declare class RenderBox { - x: number; - y: number; - width: number; - height: number; - constructor(config: Config, cellPosition: Position); - private getXCoord; - private getYCoord; -} diff --git a/modules/row.d.ts b/modules/row.d.ts deleted file mode 100644 index 7c860e7..0000000 --- a/modules/row.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -export type RowConstructorProps = { - height: number; - title: string; -}; -export declare class Row { - height: number; - title: string; - constructor(props: RowConstructorProps); -} diff --git a/modules/selection.d.ts b/modules/selection.d.ts deleted file mode 100644 index f76c2e5..0000000 --- a/modules/selection.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -export type BaseSelectionType = { - row: number; - column: number; -}; -export type RangeSelectionType = { - from: BaseSelectionType; - to: BaseSelectionType; -}; -export declare class Selection { - selectedCell: BaseSelectionType | null; - selectedRange: RangeSelectionType | null; -} diff --git a/modules/styles.d.ts b/modules/styles.d.ts deleted file mode 100644 index 297f7b6..0000000 --- a/modules/styles.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { CellStyles } from "./cell"; -export declare class Styles { - cells: CellStyles; - constructor(); -} diff --git a/modules/viewport.d.ts b/modules/viewport.d.ts deleted file mode 100644 index 298596b..0000000 --- a/modules/viewport.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -import Spreadsheet from "../main"; -export type ViewportConstructorProps = { - top: number; - left: number; - right: number; - bottom: number; -}; -export declare class Viewport { - root: Spreadsheet; - top: number; - left: number; - right: number; - bottom: number; - firstRow: number; - lastRow: number; - firstCol: number; - lastCol: number; - constructor(root: Spreadsheet, props: ViewportConstructorProps); - updateValues(props: ViewportConstructorProps): void; - /** Get index of first row in viewport */ - private getFirstRow; - private getLastRow; - private getFirstCol; - private getLastCol; -} diff --git a/utils/createData.d.ts b/utils/createData.d.ts deleted file mode 100644 index cb4c520..0000000 --- a/utils/createData.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Cell } from "../modules/cell"; -import { Config } from "../modules/config"; -export declare function createSampleData(rows: number, columns: number, fillCellsByCoords?: boolean): Cell[][]; -export declare function createSampleConfig(rows: number, columns: number): Config; -export type SpreadsheetConfigAndDataReturnType = { - config: Config; - data: Cell[][]; -}; -export declare function makeSpreadsheetConfigAndData(rows: number, columns: number): SpreadsheetConfigAndDataReturnType; diff --git a/utils/position.d.ts b/utils/position.d.ts deleted file mode 100644 index 34fba7e..0000000 --- a/utils/position.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { BaseSelectionType, RangeSelectionType } from "../main"; -export declare function checkEqualRanges(range1: RangeSelectionType, range2: RangeSelectionType): boolean; -export declare function checkEqualCellSelections(selection1: BaseSelectionType, selection2: BaseSelectionType): boolean;