@gridsheet/core 3.0.0-rc.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -0
- package/dist/constants.d.ts +21 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +28 -0
- package/dist/constants.js.map +1 -0
- package/dist/formula/evaluator.d.ts +134 -0
- package/dist/formula/evaluator.d.ts.map +1 -0
- package/dist/formula/evaluator.js +585 -0
- package/dist/formula/evaluator.js.map +1 -0
- package/dist/formula/formula-error.d.ts +10 -0
- package/dist/formula/formula-error.d.ts.map +1 -0
- package/dist/formula/formula-error.js +15 -0
- package/dist/formula/formula-error.js.map +1 -0
- package/dist/formula/functions/__async.d.ts +67 -0
- package/dist/formula/functions/__async.d.ts.map +1 -0
- package/dist/formula/functions/__async.js +70 -0
- package/dist/formula/functions/__async.js.map +1 -0
- package/dist/formula/functions/__base.d.ts +112 -0
- package/dist/formula/functions/__base.d.ts.map +1 -0
- package/dist/formula/functions/__base.js +265 -0
- package/dist/formula/functions/__base.js.map +1 -0
- package/dist/formula/functions/__utils.d.ts +28 -0
- package/dist/formula/functions/__utils.d.ts.map +1 -0
- package/dist/formula/functions/__utils.js +179 -0
- package/dist/formula/functions/__utils.js.map +1 -0
- package/dist/formula/functions/abs.d.ts +9 -0
- package/dist/formula/functions/abs.d.ts.map +1 -0
- package/dist/formula/functions/abs.js +15 -0
- package/dist/formula/functions/abs.js.map +1 -0
- package/dist/formula/functions/add.d.ts +10 -0
- package/dist/formula/functions/add.d.ts.map +1 -0
- package/dist/formula/functions/add.js +37 -0
- package/dist/formula/functions/add.js.map +1 -0
- package/dist/formula/functions/and.d.ts +9 -0
- package/dist/formula/functions/and.d.ts.map +1 -0
- package/dist/formula/functions/and.js +23 -0
- package/dist/formula/functions/and.js.map +1 -0
- package/dist/formula/functions/arrayformula.d.ts +12 -0
- package/dist/formula/functions/arrayformula.d.ts.map +1 -0
- package/dist/formula/functions/arrayformula.js +24 -0
- package/dist/formula/functions/arrayformula.js.map +1 -0
- package/dist/formula/functions/average.d.ts +9 -0
- package/dist/formula/functions/average.d.ts.map +1 -0
- package/dist/formula/functions/average.js +40 -0
- package/dist/formula/functions/average.js.map +1 -0
- package/dist/formula/functions/concat.d.ts +9 -0
- package/dist/formula/functions/concat.d.ts.map +1 -0
- package/dist/formula/functions/concat.js +27 -0
- package/dist/formula/functions/concat.js.map +1 -0
- package/dist/formula/functions/count.d.ts +9 -0
- package/dist/formula/functions/count.d.ts.map +1 -0
- package/dist/formula/functions/count.js +32 -0
- package/dist/formula/functions/count.js.map +1 -0
- package/dist/formula/functions/counta.d.ts +9 -0
- package/dist/formula/functions/counta.d.ts.map +1 -0
- package/dist/formula/functions/counta.js +32 -0
- package/dist/formula/functions/counta.js.map +1 -0
- package/dist/formula/functions/divide.d.ts +10 -0
- package/dist/formula/functions/divide.d.ts.map +1 -0
- package/dist/formula/functions/divide.js +34 -0
- package/dist/formula/functions/divide.js.map +1 -0
- package/dist/formula/functions/eq.d.ts +9 -0
- package/dist/formula/functions/eq.d.ts.map +1 -0
- package/dist/formula/functions/eq.js +19 -0
- package/dist/formula/functions/eq.js.map +1 -0
- package/dist/formula/functions/gt.d.ts +9 -0
- package/dist/formula/functions/gt.d.ts.map +1 -0
- package/dist/formula/functions/gt.js +19 -0
- package/dist/formula/functions/gt.js.map +1 -0
- package/dist/formula/functions/gte.d.ts +9 -0
- package/dist/formula/functions/gte.d.ts.map +1 -0
- package/dist/formula/functions/gte.js +19 -0
- package/dist/formula/functions/gte.js.map +1 -0
- package/dist/formula/functions/if.d.ts +9 -0
- package/dist/formula/functions/if.d.ts.map +1 -0
- package/dist/formula/functions/if.js +29 -0
- package/dist/formula/functions/if.js.map +1 -0
- package/dist/formula/functions/iferror.d.ts +10 -0
- package/dist/formula/functions/iferror.d.ts.map +1 -0
- package/dist/formula/functions/iferror.js +28 -0
- package/dist/formula/functions/iferror.js.map +1 -0
- package/dist/formula/functions/len.d.ts +9 -0
- package/dist/formula/functions/len.d.ts.map +1 -0
- package/dist/formula/functions/len.js +21 -0
- package/dist/formula/functions/len.js.map +1 -0
- package/dist/formula/functions/lt.d.ts +9 -0
- package/dist/formula/functions/lt.d.ts.map +1 -0
- package/dist/formula/functions/lt.js +19 -0
- package/dist/formula/functions/lt.js.map +1 -0
- package/dist/formula/functions/lte.d.ts +9 -0
- package/dist/formula/functions/lte.d.ts.map +1 -0
- package/dist/formula/functions/lte.js +19 -0
- package/dist/formula/functions/lte.js.map +1 -0
- package/dist/formula/functions/max.d.ts +9 -0
- package/dist/formula/functions/max.d.ts.map +1 -0
- package/dist/formula/functions/max.js +37 -0
- package/dist/formula/functions/max.js.map +1 -0
- package/dist/formula/functions/min.d.ts +9 -0
- package/dist/formula/functions/min.d.ts.map +1 -0
- package/dist/formula/functions/min.js +37 -0
- package/dist/formula/functions/min.js.map +1 -0
- package/dist/formula/functions/minus.d.ts +10 -0
- package/dist/formula/functions/minus.d.ts.map +1 -0
- package/dist/formula/functions/minus.js +41 -0
- package/dist/formula/functions/minus.js.map +1 -0
- package/dist/formula/functions/multiply.d.ts +9 -0
- package/dist/formula/functions/multiply.d.ts.map +1 -0
- package/dist/formula/functions/multiply.js +19 -0
- package/dist/formula/functions/multiply.js.map +1 -0
- package/dist/formula/functions/ne.d.ts +9 -0
- package/dist/formula/functions/ne.d.ts.map +1 -0
- package/dist/formula/functions/ne.js +19 -0
- package/dist/formula/functions/ne.js.map +1 -0
- package/dist/formula/functions/not.d.ts +9 -0
- package/dist/formula/functions/not.d.ts.map +1 -0
- package/dist/formula/functions/not.js +22 -0
- package/dist/formula/functions/not.js.map +1 -0
- package/dist/formula/functions/now.d.ts +9 -0
- package/dist/formula/functions/now.d.ts.map +1 -0
- package/dist/formula/functions/now.js +14 -0
- package/dist/formula/functions/now.js.map +1 -0
- package/dist/formula/functions/or.d.ts +9 -0
- package/dist/formula/functions/or.d.ts.map +1 -0
- package/dist/formula/functions/or.js +23 -0
- package/dist/formula/functions/or.js.map +1 -0
- package/dist/formula/functions/power.d.ts +9 -0
- package/dist/formula/functions/power.d.ts.map +1 -0
- package/dist/formula/functions/power.js +18 -0
- package/dist/formula/functions/power.js.map +1 -0
- package/dist/formula/functions/sum.d.ts +9 -0
- package/dist/formula/functions/sum.d.ts.map +1 -0
- package/dist/formula/functions/sum.js +34 -0
- package/dist/formula/functions/sum.js.map +1 -0
- package/dist/formula/functions/uminus.d.ts +9 -0
- package/dist/formula/functions/uminus.d.ts.map +1 -0
- package/dist/formula/functions/uminus.js +17 -0
- package/dist/formula/functions/uminus.js.map +1 -0
- package/dist/formula/mapping.d.ts +11 -0
- package/dist/formula/mapping.d.ts.map +1 -0
- package/dist/formula/mapping.js +82 -0
- package/dist/formula/mapping.js.map +1 -0
- package/dist/formula/solver.d.ts +39 -0
- package/dist/formula/solver.d.ts.map +1 -0
- package/dist/formula/solver.js +71 -0
- package/dist/formula/solver.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +74 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/autofill.d.ts +22 -0
- package/dist/lib/autofill.d.ts.map +1 -0
- package/dist/lib/autofill.js +276 -0
- package/dist/lib/autofill.js.map +1 -0
- package/dist/lib/book.d.ts +131 -0
- package/dist/lib/book.d.ts.map +1 -0
- package/dist/lib/book.js +53 -0
- package/dist/lib/book.js.map +1 -0
- package/dist/lib/cell.d.ts +17 -0
- package/dist/lib/cell.d.ts.map +1 -0
- package/dist/lib/cell.js +17 -0
- package/dist/lib/cell.js.map +1 -0
- package/dist/lib/coords.d.ts +22 -0
- package/dist/lib/coords.d.ts.map +1 -0
- package/dist/lib/coords.js +73 -0
- package/dist/lib/coords.js.map +1 -0
- package/dist/lib/date.d.ts +2 -0
- package/dist/lib/date.d.ts.map +1 -0
- package/dist/lib/date.js +91 -0
- package/dist/lib/date.js.map +1 -0
- package/dist/lib/dom.d.ts +7 -0
- package/dist/lib/dom.d.ts.map +1 -0
- package/dist/lib/dom.js +28 -0
- package/dist/lib/dom.js.map +1 -0
- package/dist/lib/filter.d.ts +7 -0
- package/dist/lib/filter.d.ts.map +1 -0
- package/dist/lib/filter.js +122 -0
- package/dist/lib/filter.js.map +1 -0
- package/dist/lib/input.d.ts +28 -0
- package/dist/lib/input.d.ts.map +1 -0
- package/dist/lib/input.js +73 -0
- package/dist/lib/input.js.map +1 -0
- package/dist/lib/label.d.ts +4 -0
- package/dist/lib/label.d.ts.map +1 -0
- package/dist/lib/label.js +10 -0
- package/dist/lib/label.js.map +1 -0
- package/dist/lib/operation.d.ts +31 -0
- package/dist/lib/operation.d.ts.map +1 -0
- package/dist/lib/operation.js +36 -0
- package/dist/lib/operation.js.map +1 -0
- package/dist/lib/palette.d.ts +2 -0
- package/dist/lib/palette.d.ts.map +1 -0
- package/dist/lib/palette.js +26 -0
- package/dist/lib/palette.js.map +1 -0
- package/dist/lib/popup.d.ts +24 -0
- package/dist/lib/popup.d.ts.map +1 -0
- package/dist/lib/popup.js +21 -0
- package/dist/lib/popup.js.map +1 -0
- package/dist/lib/reference.d.ts +19 -0
- package/dist/lib/reference.d.ts.map +1 -0
- package/dist/lib/reference.js +40 -0
- package/dist/lib/reference.js.map +1 -0
- package/dist/lib/sheet.d.ts +512 -0
- package/dist/lib/sheet.d.ts.map +1 -0
- package/dist/lib/sheet.js +1530 -0
- package/dist/lib/sheet.js.map +1 -0
- package/dist/lib/sheet_utils.d.ts +55 -0
- package/dist/lib/sheet_utils.d.ts.map +1 -0
- package/dist/lib/sheet_utils.js +125 -0
- package/dist/lib/sheet_utils.js.map +1 -0
- package/dist/lib/spatial.d.ts +79 -0
- package/dist/lib/spatial.d.ts.map +1 -0
- package/dist/lib/spatial.js +227 -0
- package/dist/lib/spatial.js.map +1 -0
- package/dist/lib/time.d.ts +29 -0
- package/dist/lib/time.d.ts.map +1 -0
- package/dist/lib/time.js +113 -0
- package/dist/lib/time.js.map +1 -0
- package/dist/lib/virtualization.d.ts +22 -0
- package/dist/lib/virtualization.d.ts.map +1 -0
- package/dist/lib/virtualization.js +91 -0
- package/dist/lib/virtualization.js.map +1 -0
- package/dist/policy/core.d.ts +161 -0
- package/dist/policy/core.d.ts.map +1 -0
- package/dist/policy/core.js +248 -0
- package/dist/policy/core.js.map +1 -0
- package/dist/policy/thousand_separator.d.ts +4 -0
- package/dist/policy/thousand_separator.d.ts.map +1 -0
- package/dist/policy/thousand_separator.js +13 -0
- package/dist/policy/thousand_separator.js.map +1 -0
- package/dist/sentinels.d.ts +40 -0
- package/dist/sentinels.d.ts.map +1 -0
- package/dist/sentinels.js +41 -0
- package/dist/sentinels.js.map +1 -0
- package/dist/styles/embedder.d.ts +2 -0
- package/dist/styles/embedder.d.ts.map +1 -0
- package/dist/styles/embedder.js +11 -0
- package/dist/styles/embedder.js.map +1 -0
- package/dist/styles/minified.d.ts +3 -0
- package/dist/styles/minified.d.ts.map +1 -0
- package/dist/styles/minified.js +6 -0
- package/dist/styles/minified.js.map +1 -0
- package/dist/types.d.ts +310 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +2 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +5 -0
- package/dist/utils.js.map +1 -0
- package/package.json +59 -0
package/README.md
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# @gridsheet/core
|
|
2
|
+
|
|
3
|
+
Framework-agnostic core package for [GridSheet](https://gridsheet.walkframe.com/).
|
|
4
|
+
|
|
5
|
+
This package contains the shared classes, formula engine, and utilities used internally by `@gridsheet/react-core` and `@gridsheet/preact-core`. It is **not intended to be used directly** by application developers.
|
|
6
|
+
|
|
7
|
+
## For application developers
|
|
8
|
+
|
|
9
|
+
Please use one of the framework-specific packages:
|
|
10
|
+
|
|
11
|
+
- **React**: [`@gridsheet/react-core`](https://www.npmjs.com/package/@gridsheet/react-core)
|
|
12
|
+
- **Preact**: [`@gridsheet/preact-core`](https://www.npmjs.com/package/@gridsheet/preact-core)
|
|
13
|
+
- **Vue**: [`@gridsheet/vue-core`](https://www.npmjs.com/package/@gridsheet/vue-core)
|
|
14
|
+
|
|
15
|
+
## License
|
|
16
|
+
|
|
17
|
+
Apache-2.0
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ZoneType } from './types';
|
|
2
|
+
export declare const DEFAULT_HISTORY_LIMIT = 20;
|
|
3
|
+
export declare const DEFAULT_HEIGHT = 24;
|
|
4
|
+
export declare const DEFAULT_WIDTH = 90;
|
|
5
|
+
export declare const SHEET_HEIGHT = 500;
|
|
6
|
+
export declare const SHEET_WIDTH = 1000;
|
|
7
|
+
export declare const HEADER_HEIGHT = 24;
|
|
8
|
+
export declare const HEADER_WIDTH = 50;
|
|
9
|
+
export declare const MIN_WIDTH = 5;
|
|
10
|
+
export declare const MIN_HEIGHT = 5;
|
|
11
|
+
export declare const OVERSCAN_X = 5;
|
|
12
|
+
export declare const OVERSCAN_Y = 10;
|
|
13
|
+
export declare const DEFAULT_ALPHABET_CACHE_SIZE = 1000;
|
|
14
|
+
export declare const SECONDS_IN_DAY = 86400;
|
|
15
|
+
export declare const FULLDATE_FORMAT_UTC = "YYYY-MM-DDTHH:mm:ss.SSSZ";
|
|
16
|
+
export declare const RESET_ZONE: ZoneType;
|
|
17
|
+
export declare const BASE_DATE: Date;
|
|
18
|
+
export declare const DEFAULT_KEY = "default";
|
|
19
|
+
export declare const DEFAULT_COL_KEY = "defaultCol";
|
|
20
|
+
export declare const DEFAULT_ROW_KEY = "defaultRow";
|
|
21
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,eAAO,MAAM,WAAW,OAAO,CAAC;AAEhC,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,YAAY,KAAK,CAAC;AAE/B,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,UAAU,KAAK,CAAC;AAE7B,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,eAAO,MAAM,mBAAmB,6BAA6B,CAAC;AAE9D,eAAO,MAAM,UAAU,EAAE,QAKxB,CAAC;AAGF,eAAO,MAAM,SAAS,MAAuB,CAAC;AAE9C,eAAO,MAAM,WAAW,YAAY,CAAC;AACrC,eAAO,MAAM,eAAe,eAAe,CAAC;AAC5C,eAAO,MAAM,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const E = 20, t = 24, T = 90, _ = 500, s = 1e3, n = 24, o = 50, H = 5, D = 5, c = 5, A = 10, I = 1e3, S = 86400, L = "YYYY-MM-DDTHH:mm:ss.SSSZ", Y = {
|
|
2
|
+
startY: -1,
|
|
3
|
+
startX: -1,
|
|
4
|
+
endY: -1,
|
|
5
|
+
endX: -1
|
|
6
|
+
}, e = new Date(1900, 0, 1), F = "default", R = "defaultCol", U = "defaultRow";
|
|
7
|
+
export {
|
|
8
|
+
e as BASE_DATE,
|
|
9
|
+
I as DEFAULT_ALPHABET_CACHE_SIZE,
|
|
10
|
+
R as DEFAULT_COL_KEY,
|
|
11
|
+
t as DEFAULT_HEIGHT,
|
|
12
|
+
E as DEFAULT_HISTORY_LIMIT,
|
|
13
|
+
F as DEFAULT_KEY,
|
|
14
|
+
U as DEFAULT_ROW_KEY,
|
|
15
|
+
T as DEFAULT_WIDTH,
|
|
16
|
+
L as FULLDATE_FORMAT_UTC,
|
|
17
|
+
n as HEADER_HEIGHT,
|
|
18
|
+
o as HEADER_WIDTH,
|
|
19
|
+
D as MIN_HEIGHT,
|
|
20
|
+
H as MIN_WIDTH,
|
|
21
|
+
c as OVERSCAN_X,
|
|
22
|
+
A as OVERSCAN_Y,
|
|
23
|
+
Y as RESET_ZONE,
|
|
24
|
+
S as SECONDS_IN_DAY,
|
|
25
|
+
_ as SHEET_HEIGHT,
|
|
26
|
+
s as SHEET_WIDTH
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../src/constants.ts"],"sourcesContent":["import type { ZoneType } from './types';\n\nexport const DEFAULT_HISTORY_LIMIT = 20;\n\nexport const DEFAULT_HEIGHT = 24;\nexport const DEFAULT_WIDTH = 90;\n\nexport const SHEET_HEIGHT = 500;\nexport const SHEET_WIDTH = 1000;\n\nexport const HEADER_HEIGHT = 24;\nexport const HEADER_WIDTH = 50;\n\nexport const MIN_WIDTH = 5;\nexport const MIN_HEIGHT = 5;\n\nexport const OVERSCAN_X = 5;\nexport const OVERSCAN_Y = 10;\n\nexport const DEFAULT_ALPHABET_CACHE_SIZE = 1000;\n\nexport const SECONDS_IN_DAY = 86400;\nexport const FULLDATE_FORMAT_UTC = 'YYYY-MM-DDTHH:mm:ss.SSSZ';\n\nexport const RESET_ZONE: ZoneType = {\n startY: -1,\n startX: -1,\n endY: -1,\n endX: -1,\n};\n\n// 1900-01-01 is the base date for date serialization in Excel, and is represented as 0 in Excel's date system. However, JavaScript's Date object uses the Unix epoch (1970-01-01) as its base date. Therefore, we need to account for the difference between these two epochs when converting between Excel dates and JavaScript dates.\nexport const BASE_DATE = new Date(1900, 0, 1);\n\nexport const DEFAULT_KEY = 'default';\nexport const DEFAULT_COL_KEY = 'defaultCol';\nexport const DEFAULT_ROW_KEY = 'defaultRow';\n"],"names":["DEFAULT_HISTORY_LIMIT","DEFAULT_HEIGHT","DEFAULT_WIDTH","SHEET_HEIGHT","SHEET_WIDTH","HEADER_HEIGHT","HEADER_WIDTH","MIN_WIDTH","MIN_HEIGHT","OVERSCAN_X","OVERSCAN_Y","DEFAULT_ALPHABET_CACHE_SIZE","SECONDS_IN_DAY","FULLDATE_FORMAT_UTC","RESET_ZONE","BASE_DATE","DEFAULT_KEY","DEFAULT_COL_KEY","DEFAULT_ROW_KEY"],"mappings":"AAEO,MAAMA,IAAwB,IAExBC,IAAiB,IACjBC,IAAgB,IAEhBC,IAAe,KACfC,IAAc,KAEdC,IAAgB,IAChBC,IAAe,IAEfC,IAAY,GACZC,IAAa,GAEbC,IAAa,GACbC,IAAa,IAEbC,IAA8B,KAE9BC,IAAiB,OACjBC,IAAsB,4BAEtBC,IAAuB;AAAA,EAClC,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AACR,GAGaC,IAAY,IAAI,KAAK,MAAM,GAAG,CAAC,GAE/BC,IAAc,WACdC,IAAkB,cAClBC,IAAkB;"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { Sheet } from '../lib/sheet';
|
|
2
|
+
import { Id } from '../types';
|
|
3
|
+
type EvaluateProps = {
|
|
4
|
+
sheet: Sheet;
|
|
5
|
+
};
|
|
6
|
+
type IdentityBaseProps = {
|
|
7
|
+
slideY?: number;
|
|
8
|
+
slideX?: number;
|
|
9
|
+
operation?: 'move' | 'removeRows' | 'removeCols';
|
|
10
|
+
dependency: Id;
|
|
11
|
+
};
|
|
12
|
+
export type ProcessFormulaProps = IdentityBaseProps & {
|
|
13
|
+
idMap?: {
|
|
14
|
+
[id: string]: string;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export type IdentifyProps = IdentityBaseProps & {
|
|
18
|
+
sheet: Sheet;
|
|
19
|
+
};
|
|
20
|
+
export type DisplayProps = {
|
|
21
|
+
sheet: Sheet;
|
|
22
|
+
slideY?: number;
|
|
23
|
+
slideX?: number;
|
|
24
|
+
};
|
|
25
|
+
declare class Entity<T = any> {
|
|
26
|
+
value: T;
|
|
27
|
+
ids: string[];
|
|
28
|
+
constructor(value: T);
|
|
29
|
+
}
|
|
30
|
+
export declare class ValueEntity extends Entity {
|
|
31
|
+
evaluate(): any;
|
|
32
|
+
}
|
|
33
|
+
export declare class UnreferencedEntity extends Entity {
|
|
34
|
+
evaluate(): void;
|
|
35
|
+
}
|
|
36
|
+
export declare class InvalidRefEntity extends Entity<string> {
|
|
37
|
+
evaluate(): void;
|
|
38
|
+
}
|
|
39
|
+
export declare class RefEntity extends Entity<string> {
|
|
40
|
+
constructor(value: string);
|
|
41
|
+
stringify(): string;
|
|
42
|
+
evaluate({ sheet }: EvaluateProps): Sheet;
|
|
43
|
+
identify(props: IdentifyProps): string;
|
|
44
|
+
}
|
|
45
|
+
export declare class RangeEntity extends Entity<string> {
|
|
46
|
+
stringify(): string;
|
|
47
|
+
evaluate({ sheet }: EvaluateProps): Sheet;
|
|
48
|
+
identify(props: IdentifyProps): string;
|
|
49
|
+
}
|
|
50
|
+
export declare class IdEntity extends Entity<string> {
|
|
51
|
+
private parse;
|
|
52
|
+
evaluate({ sheet }: EvaluateProps): Sheet;
|
|
53
|
+
display({ sheet, slideY, slideX }: DisplayProps): string;
|
|
54
|
+
identify(props: IdentifyProps): string;
|
|
55
|
+
}
|
|
56
|
+
export declare class IdRangeEntity extends Entity<string> {
|
|
57
|
+
private parse;
|
|
58
|
+
evaluate({ sheet }: EvaluateProps): Sheet;
|
|
59
|
+
display({ sheet, slideY, slideX }: DisplayProps): string;
|
|
60
|
+
identify(props: IdentifyProps): string;
|
|
61
|
+
}
|
|
62
|
+
export declare class FunctionEntity {
|
|
63
|
+
args: Expression[];
|
|
64
|
+
name: string;
|
|
65
|
+
precedence: number;
|
|
66
|
+
private at?;
|
|
67
|
+
constructor(name: string, precedence?: number, args?: Expression[], at?: Id);
|
|
68
|
+
evaluate({ sheet }: EvaluateProps): any;
|
|
69
|
+
}
|
|
70
|
+
export type Expression = ValueEntity | RefEntity | RangeEntity | IdEntity | IdRangeEntity | FunctionEntity | UnreferencedEntity | InvalidRefEntity;
|
|
71
|
+
export type TokenType = 'VALUE' | 'REF' | 'RANGE' | 'ID' | 'ID_RANGE' | 'FUNCTION' | 'PREFIX_OPERATOR' | 'INFIX_OPERATOR' | 'POSTFIX_OPERATOR' | 'OPEN' | 'CLOSE' | 'COMMA' | 'SPACE' | 'UNREFERENCED' | 'INVALID_REF';
|
|
72
|
+
export declare class Token {
|
|
73
|
+
type: TokenType;
|
|
74
|
+
entity: any;
|
|
75
|
+
precedence: number;
|
|
76
|
+
closed: boolean;
|
|
77
|
+
private at?;
|
|
78
|
+
constructor(type: TokenType, entity: any, precedence?: number, at?: Id, closed?: boolean);
|
|
79
|
+
length(): number;
|
|
80
|
+
stringify(): string;
|
|
81
|
+
convert(): ValueEntity | UnreferencedEntity | InvalidRefEntity | RefEntity | RangeEntity | IdEntity | IdRangeEntity | FunctionEntity | undefined;
|
|
82
|
+
}
|
|
83
|
+
type LexerOption = {
|
|
84
|
+
at?: Id;
|
|
85
|
+
};
|
|
86
|
+
export declare class Lexer {
|
|
87
|
+
private index;
|
|
88
|
+
private formula;
|
|
89
|
+
tokens: Token[];
|
|
90
|
+
foreign: boolean;
|
|
91
|
+
identifiedFormula: string;
|
|
92
|
+
dependencyIds: string[];
|
|
93
|
+
private at?;
|
|
94
|
+
constructor(formula: string, options?: LexerOption);
|
|
95
|
+
private isWhiteSpace;
|
|
96
|
+
private next;
|
|
97
|
+
private get;
|
|
98
|
+
private getToken;
|
|
99
|
+
getTokenIndexByCharPosition(pos: number): [number, boolean];
|
|
100
|
+
getTokenPositionRange(index: number, slide?: number): [number, number];
|
|
101
|
+
stringify(): string;
|
|
102
|
+
identify(props: IdentifyProps): void;
|
|
103
|
+
display({ sheet }: DisplayProps): string;
|
|
104
|
+
tokenize(idMap?: {
|
|
105
|
+
[id: Id]: Id;
|
|
106
|
+
}): void;
|
|
107
|
+
private skipSpaces;
|
|
108
|
+
private getString;
|
|
109
|
+
}
|
|
110
|
+
export declare class Parser {
|
|
111
|
+
index: number;
|
|
112
|
+
depth: number;
|
|
113
|
+
tokens: Token[];
|
|
114
|
+
constructor(tokens: Token[]);
|
|
115
|
+
build(): Expression | undefined;
|
|
116
|
+
private parse;
|
|
117
|
+
}
|
|
118
|
+
/** Alias for Parser, exported for external tooling (e.g. Debugger). */
|
|
119
|
+
export declare const FormulaParser: typeof Parser;
|
|
120
|
+
export declare const stripSheetName: (sheetName: string) => string;
|
|
121
|
+
export declare function splitRef(ref: string): {
|
|
122
|
+
sheetName: string | undefined;
|
|
123
|
+
addresses: string[];
|
|
124
|
+
};
|
|
125
|
+
export declare const parseRef: (ref: string, { sheet, operation, dependency }: IdentifyProps) => {
|
|
126
|
+
sheet: Sheet;
|
|
127
|
+
sheetId?: number;
|
|
128
|
+
formula?: string;
|
|
129
|
+
sheetName?: string;
|
|
130
|
+
addresses: string[];
|
|
131
|
+
ids: string[];
|
|
132
|
+
};
|
|
133
|
+
export {};
|
|
134
|
+
//# sourceMappingURL=evaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../src/formula/evaluator.ts"],"names":[],"mappings":"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"}
|