@omegagrid/grid-core 0.10.77 → 0.10.79

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.
@@ -3,6 +3,8 @@ import { ArrayArg } from "../helpers";
3
3
  export declare function address(row: number, column: number, mode?: number): string;
4
4
  export declare function vlookup(lookupValue: string, lookupTable: Matrix<string>, colIndex: number, exactMatch?: boolean): string;
5
5
  export declare function hlookup(lookupValue: string, lookupTable: Matrix<string>, rowIndex: number, exactMatch?: boolean): string;
6
+ export declare function xlookup(lookupValue: unknown, lookupArray: Matrix<unknown>, returnArray: Matrix<unknown>, ifNotFound?: unknown, matchMode?: number, searchMode?: number): unknown;
7
+ export declare function xmatch(lookupValue: unknown, lookupArray: Matrix<unknown>, matchMode?: number, searchMode?: number): number;
6
8
  export declare function lookup(lookupValue: unknown, lookupTable: Matrix<unknown>, resultTable?: Matrix<unknown>): unknown;
7
9
  export declare function choose(index: number, ...args: ArrayArg): unknown;
8
10
  export declare function column(address?: string): number;
@@ -1 +1 @@
1
- {"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../../src/calculations/functions/lookup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,OAAO,EAAE,QAAQ,EAA8B,MAAM,YAAY,CAAC;AAYlE,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,SAAI,UAK5D;AAED,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,UAAQ,UAW7G;AAED,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,UAAQ,UAW7G;AAED,wBAAgB,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,WAYvG;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,QAAQ,WAUtD;AAED,wBAAgB,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,UAEtC;AAED,wBAAgB,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,UAEnC;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,QAAQ,UAEtC;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,QAAQ,UAEnC;AAED,wBAAgB,WAAW,WAG1B;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,6DAMjE;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,WAwBnC;AAED,wBAAgB,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,SAAI,UAU/E;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,aAcnG;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAiBtD"}
1
+ {"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../../src/calculations/functions/lookup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,OAAO,EAAE,QAAQ,EAA8B,MAAM,YAAY,CAAC;AAYlE,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,SAAI,UAK5D;AAED,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,UAAQ,UAW7G;AAED,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,UAAQ,UAW7G;AAkDD,wBAAgB,OAAO,CACtB,WAAW,EAAE,OAAO,EACpB,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,EAC5B,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,EAC5B,UAAU,GAAE,OAAc,EAC1B,SAAS,SAAI,EACb,UAAU,SAAI,WASd;AAED,wBAAgB,MAAM,CACrB,WAAW,EAAE,OAAO,EACpB,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,EAC5B,SAAS,SAAI,EACb,UAAU,SAAI,UAKd;AAED,wBAAgB,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,WAYvG;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,QAAQ,WAUtD;AAED,wBAAgB,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,UAEtC;AAED,wBAAgB,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,UAEnC;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,QAAQ,UAEtC;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,QAAQ,UAEnC;AAED,wBAAgB,WAAW,WAG1B;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,6DAMjE;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,WAwBnC;AAED,wBAAgB,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,SAAI,UAU/E;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,aAcnG;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAiBtD"}
@@ -43,6 +43,74 @@ export function hlookup(lookupValue, lookupTable, rowIndex, exactMatch = false)
43
43
  }
44
44
  return null;
45
45
  }
46
+ function getWildcardMatcher(searchValue) {
47
+ // translate Excel wildcards: ? = any single char, * = any sequence, ~? / ~* / ~~ = literals
48
+ let pattern = '';
49
+ const s = searchValue == null ? '' : searchValue.toString();
50
+ for (let i = 0; i < s.length; i++) {
51
+ const ch = s[i];
52
+ if (ch == '~' && i + 1 < s.length)
53
+ pattern += s[++i].replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
54
+ else if (ch == '?')
55
+ pattern += '.';
56
+ else if (ch == '*')
57
+ pattern += '.*';
58
+ else
59
+ pattern += ch.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
60
+ }
61
+ const regex = new RegExp('^' + pattern + '$', 'i');
62
+ return (value) => regex.test((value ?? '').toString());
63
+ }
64
+ function compareValues(a, b) {
65
+ if (typeof a == 'number' && typeof b == 'number')
66
+ return a - b;
67
+ const sa = (a ?? '').toString().toLowerCase();
68
+ const sb = (b ?? '').toString().toLowerCase();
69
+ return sa < sb ? -1 : (sa > sb ? 1 : 0);
70
+ }
71
+ // searches a single row or column and returns the matched 0-based index, or -1
72
+ function xsearch(lookupValue, values, matchMode, searchMode) {
73
+ const reverse = searchMode < 0;
74
+ const isMatch = matchMode == 2
75
+ ? getWildcardMatcher(lookupValue)
76
+ : (value) => compareValues(value, lookupValue) == 0;
77
+ let bestIndex = -1;
78
+ for (let n = 0; n < values.length; n++) {
79
+ const i = reverse ? values.length - 1 - n : n;
80
+ const value = values[i];
81
+ if (isMatch(value))
82
+ return i;
83
+ if (matchMode == -1 && compareValues(value, lookupValue) < 0) {
84
+ if (bestIndex < 0 || compareValues(value, values[bestIndex]) > 0)
85
+ bestIndex = i;
86
+ }
87
+ else if (matchMode == 1 && compareValues(value, lookupValue) > 0) {
88
+ if (bestIndex < 0 || compareValues(value, values[bestIndex]) < 0)
89
+ bestIndex = i;
90
+ }
91
+ }
92
+ return bestIndex;
93
+ }
94
+ // lookup_array is expected to be a single row or a single column
95
+ function isRowVector(lookupArray) {
96
+ return lookupArray.length == 1 && (lookupArray[0]?.length ?? 0) > 1;
97
+ }
98
+ export function xlookup(lookupValue, lookupArray, returnArray, ifNotFound = null, matchMode = 0, searchMode = 1) {
99
+ const isRow = isRowVector(lookupArray);
100
+ const values = isRow ? lookupArray[0] : lookupArray.map(row => row?.[0]);
101
+ const i = xsearch(lookupValue, values, matchMode, searchMode);
102
+ if (i < 0)
103
+ return ifNotFound;
104
+ const slice = isRow ? returnArray.map(row => row?.[i]) : returnArray[i];
105
+ if (slice == null)
106
+ return null;
107
+ return slice.length == 1 ? slice[0] : slice;
108
+ }
109
+ export function xmatch(lookupValue, lookupArray, matchMode = 0, searchMode = 1) {
110
+ const values = isRowVector(lookupArray) ? lookupArray[0] : lookupArray.map(row => row?.[0]);
111
+ const i = xsearch(lookupValue, values, matchMode, searchMode);
112
+ return i < 0 ? null : i + 1;
113
+ }
46
114
  export function lookup(lookupValue, lookupTable, resultTable) {
47
115
  let r, c;
48
116
  exit_loops: for (r = 0; r < lookupTable.length; r++) {
@@ -1 +1 @@
1
- {"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../../src/calculations/functions/lookup.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix } from \"@omegagrid/core\";\nimport { FormulaContext, prefixFormula } from \"..\";\nimport { CellRange } from \"../../common\";\nimport { ArrayArg, eachValue, getFormulaCells } from \"../helpers\";\n\nfunction getStringMatcher(searchValue: string, exactMatch: boolean): ((value: string) => boolean) {\n\tsearchValue = searchValue == null ? '' : searchValue.toString();\n\tif (exactMatch) {\n\t\treturn (value: string) => value == searchValue;\t\n\t} else {\n\t\tsearchValue = searchValue.toLowerCase();\n\t\treturn (value: string) => (value ?? '').toString().toLowerCase() == searchValue;\n\t}\n}\n\nexport function address(row: number, column: number, mode = 1) {\n\tconst range = new CellRange(Math.max((column || 0) - 1, 0), Math.max((row || 0) - 1, 0));\n\tif (mode == 1 || mode == 2) range.r1Anchor = true;\n\tif (mode == 1 || mode == 3) range.c1Anchor = true;\n\treturn range.A1;\n}\n\nexport function vlookup(lookupValue: string, lookupTable: Matrix<string>, colIndex: number, exactMatch = false) {\n\tlet r: number, c: number;\n\tconst match = getStringMatcher(lookupValue, exactMatch);\n\tfor (r = 0; r < lookupTable.length; r++) {\n\t\tfor (c = 0; c < lookupTable[r].length; c++) {\n\t\t\tif (match(lookupTable[r][c])) {\n\t\t\t\treturn lookupTable[r][colIndex - 1];\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n}\n\nexport function hlookup(lookupValue: string, lookupTable: Matrix<string>, rowIndex: number, exactMatch = false) {\n\tlet r: number, c: number;\n\tconst match = getStringMatcher(lookupValue, exactMatch);\n\tfor (r = 0; r < lookupTable.length; r++) {\n\t\tfor (c = 0; c < lookupTable[r].length; c++) {\n\t\t\tif (match(lookupTable[r][c])) {\n\t\t\t\treturn lookupTable[rowIndex - 1][c];\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n}\n\nexport function lookup(lookupValue: unknown, lookupTable: Matrix<unknown>, resultTable?: Matrix<unknown>) {\n\tlet r: number, c: number;\n\n\texit_loops:\n\tfor (r = 0; r < lookupTable.length; r++) {\n\t\tfor (c = 0; c < lookupTable[r].length; c++) {\n\t\t\tif (lookupTable[r][c] == lookupValue) break exit_loops;\n\t\t}\n\t}\n\n\tif (resultTable) return resultTable[r] ? resultTable[r][c] : null;\n\telse return lookupTable[r][lookupTable[r].length - 1];\n}\n\nexport function choose(index: number, ...args: ArrayArg) {\n\tlet result: unknown = null;\n\tlet current = 0;\n\teachValue(args, v => { \n\t\tif (index == ++current) {\n\t\t\tresult = v;\n\t\t\treturn false;\n\t\t}\n\t});\n\treturn result;\n}\n\nexport function column(address?: string) {\n\treturn (address ? CellRange.fromA1(address).c1 : (this as FormulaContext).cell.c) + 1;\n}\n\nexport function row(address?: string) {\n\treturn (address ? CellRange.fromA1(address).r1 : (this as FormulaContext).cell.r) + 1;\n}\n\nexport function columns(range: ArrayArg) {\n\treturn Array.isArray(range) ? range[0]?.length : 1;\n}\n\nexport function rows(range: ArrayArg) {\n\treturn Array.isArray(range) ? range.length : 1;\n}\n\nexport function formulatext() {\n\tconst cell = getFormulaCells(this)[0];\n\treturn cell && cell.hasFormula ? (' ' + prefixFormula(cell.formula)) : '';\n}\n\nexport function index(range: ArrayArg, row: number, column: number) {\n\trow = row || 1;\n\tcolumn = column || 1;\n\tif (Array.isArray(range)) return range[row - 1] ? range[row - 1][column - 1] : null;\n\telse if (row == 1 && column == 1) return range;\n\telse return null;\n}\n\nexport function indirect(ref: string) {\n\tconst currentCell = (this as FormulaContext).cell;\n\tconst model = currentCell.model;\n\tconst targetCell = model.getCellByA1(ref);\n\n\t// register string reference dependencies\n\tlet map: Map<string, [CellRange, string?]>;\n\tif (model.calculations.dependencies.cellDependencies.has(currentCell.address)) {\n\t\tmap = model.calculations.dependencies.cellDependencies.get(currentCell.address);\n\t} else {\n\t\tmap = new Map();\n\t\tmodel.calculations.dependencies.cellDependencies.set(currentCell.address, map);\n\t}\n\tmap.set(targetCell.address, [targetCell.range]);\n\n\tif (model.calculations.dependencies.cellDependants.has(targetCell.address)) {\n\t\tmap = model.calculations.dependencies.cellDependants.get(targetCell.address);\n\t} else {\n\t\tmap = new Map();\n\t\tmodel.calculations.dependencies.cellDependants.set(targetCell.address, map);\n\t}\n\tmap.set(currentCell.address, [currentCell.range]);\n\n\treturn targetCell.value;\n}\n\nexport function match(matchValue: unknown, range: Matrix<unknown>, matchType = 0) {\n\tlet r: number, c: number;\n\tfor (r = 0; r < range.length; r++) {\n\t\tfor (c = 0; c < range[r].length; c++) {\n\t\t\tif (matchType == 0 && range[r][c] == matchValue) return Math.max(r + 1, c + 1);\n\t\t\tif (matchType == 1 && range[r][c] > matchValue) return Math.max(r + 1, c + 1);\n\t\t\tif (matchType == -1 && range[r][c] < matchValue) return Math.max(r + 1, c + 1);\n\t\t}\n\t}\n\treturn null;\n}\n\nexport function offset(_ref: unknown, rows: number, columns: number, height?: number, width?: number) {\n\tconst cell = getFormulaCells(this)[0];\n\tconst result: unknown[] = [];\n\theight = height || 1;\n\twidth = width || 1;\n\tfor (let r = 0; r < height; r++) {\n\t\tconst row: unknown[] = [];\n\t\tfor (let c = 0; c < width; c++) {\n\t\t\tconst cell2 = cell.model.rows[cell.r + r + rows].cell(cell.c + c + columns);\n\t\t\trow.push(cell2 ? cell.value : null)\n\t\t}\n\t\tresult.push(row);\n\t}\n\treturn result;\n}\n\nexport function filter(range: Matrix, boolRange: Matrix) {\n\tconst result: unknown[] = [];\n\tif (range.length == boolRange.length) {\n\t\tfor (let r = 0; r < range.length; r++) {\n\t\t\tlet match = true;\n\t\t\tfor (let c = 0; c < boolRange[r].length; c++) {\n\t\t\t\tif (!boolRange[r][c]) {\n\t\t\t\t\tmatch = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (match) result.push(range[r]);\n\t\t}\n\t} else {\n\t\t// by columns\n\t}\n\treturn result;\n}"]}
1
+ {"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../../src/calculations/functions/lookup.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix } from \"@omegagrid/core\";\nimport { FormulaContext, prefixFormula } from \"..\";\nimport { CellRange } from \"../../common\";\nimport { ArrayArg, eachValue, getFormulaCells } from \"../helpers\";\n\nfunction getStringMatcher(searchValue: string, exactMatch: boolean): ((value: string) => boolean) {\n\tsearchValue = searchValue == null ? '' : searchValue.toString();\n\tif (exactMatch) {\n\t\treturn (value: string) => value == searchValue;\t\n\t} else {\n\t\tsearchValue = searchValue.toLowerCase();\n\t\treturn (value: string) => (value ?? '').toString().toLowerCase() == searchValue;\n\t}\n}\n\nexport function address(row: number, column: number, mode = 1) {\n\tconst range = new CellRange(Math.max((column || 0) - 1, 0), Math.max((row || 0) - 1, 0));\n\tif (mode == 1 || mode == 2) range.r1Anchor = true;\n\tif (mode == 1 || mode == 3) range.c1Anchor = true;\n\treturn range.A1;\n}\n\nexport function vlookup(lookupValue: string, lookupTable: Matrix<string>, colIndex: number, exactMatch = false) {\n\tlet r: number, c: number;\n\tconst match = getStringMatcher(lookupValue, exactMatch);\n\tfor (r = 0; r < lookupTable.length; r++) {\n\t\tfor (c = 0; c < lookupTable[r].length; c++) {\n\t\t\tif (match(lookupTable[r][c])) {\n\t\t\t\treturn lookupTable[r][colIndex - 1];\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n}\n\nexport function hlookup(lookupValue: string, lookupTable: Matrix<string>, rowIndex: number, exactMatch = false) {\n\tlet r: number, c: number;\n\tconst match = getStringMatcher(lookupValue, exactMatch);\n\tfor (r = 0; r < lookupTable.length; r++) {\n\t\tfor (c = 0; c < lookupTable[r].length; c++) {\n\t\t\tif (match(lookupTable[r][c])) {\n\t\t\t\treturn lookupTable[rowIndex - 1][c];\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n}\n\nfunction getWildcardMatcher(searchValue: string): ((value: unknown) => boolean) {\n\t// translate Excel wildcards: ? = any single char, * = any sequence, ~? / ~* / ~~ = literals\n\tlet pattern = '';\n\tconst s = searchValue == null ? '' : searchValue.toString();\n\tfor (let i = 0; i < s.length; i++) {\n\t\tconst ch = s[i];\n\t\tif (ch == '~' && i + 1 < s.length) pattern += s[++i].replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\t\telse if (ch == '?') pattern += '.';\n\t\telse if (ch == '*') pattern += '.*';\n\t\telse pattern += ch.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\t}\n\tconst regex = new RegExp('^' + pattern + '$', 'i');\n\treturn (value: unknown) => regex.test((value ?? '').toString());\n}\n\nfunction compareValues(a: unknown, b: unknown): number {\n\tif (typeof a == 'number' && typeof b == 'number') return a - b;\n\tconst sa = (a ?? '').toString().toLowerCase();\n\tconst sb = (b ?? '').toString().toLowerCase();\n\treturn sa < sb ? -1 : (sa > sb ? 1 : 0);\n}\n\n// searches a single row or column and returns the matched 0-based index, or -1\nfunction xsearch(lookupValue: unknown, values: unknown[], matchMode: number, searchMode: number): number {\n\tconst reverse = searchMode < 0;\n\tconst isMatch = matchMode == 2\n\t\t? getWildcardMatcher(lookupValue as string)\n\t\t: (value: unknown) => compareValues(value, lookupValue) == 0;\n\n\tlet bestIndex = -1;\n\tfor (let n = 0; n < values.length; n++) {\n\t\tconst i = reverse ? values.length - 1 - n : n;\n\t\tconst value = values[i];\n\t\tif (isMatch(value)) return i;\n\t\tif (matchMode == -1 && compareValues(value, lookupValue) < 0) {\n\t\t\tif (bestIndex < 0 || compareValues(value, values[bestIndex]) > 0) bestIndex = i;\n\t\t} else if (matchMode == 1 && compareValues(value, lookupValue) > 0) {\n\t\t\tif (bestIndex < 0 || compareValues(value, values[bestIndex]) < 0) bestIndex = i;\n\t\t}\n\t}\n\treturn bestIndex;\n}\n\n// lookup_array is expected to be a single row or a single column\nfunction isRowVector(lookupArray: Matrix<unknown>) {\n\treturn lookupArray.length == 1 && (lookupArray[0]?.length ?? 0) > 1;\n}\n\nexport function xlookup(\n\tlookupValue: unknown,\n\tlookupArray: Matrix<unknown>,\n\treturnArray: Matrix<unknown>,\n\tifNotFound: unknown = null,\n\tmatchMode = 0,\n\tsearchMode = 1\n) {\n\tconst isRow = isRowVector(lookupArray);\n\tconst values = isRow ? lookupArray[0] : lookupArray.map(row => row?.[0]);\n\tconst i = xsearch(lookupValue, values, matchMode, searchMode);\n\tif (i < 0) return ifNotFound;\n\tconst slice = isRow ? returnArray.map(row => row?.[i]) : returnArray[i];\n\tif (slice == null) return null;\n\treturn slice.length == 1 ? slice[0] : slice;\n}\n\nexport function xmatch(\n\tlookupValue: unknown,\n\tlookupArray: Matrix<unknown>,\n\tmatchMode = 0,\n\tsearchMode = 1\n) {\n\tconst values = isRowVector(lookupArray) ? lookupArray[0] : lookupArray.map(row => row?.[0]);\n\tconst i = xsearch(lookupValue, values, matchMode, searchMode);\n\treturn i < 0 ? null : i + 1;\n}\n\nexport function lookup(lookupValue: unknown, lookupTable: Matrix<unknown>, resultTable?: Matrix<unknown>) {\n\tlet r: number, c: number;\n\n\texit_loops:\n\tfor (r = 0; r < lookupTable.length; r++) {\n\t\tfor (c = 0; c < lookupTable[r].length; c++) {\n\t\t\tif (lookupTable[r][c] == lookupValue) break exit_loops;\n\t\t}\n\t}\n\n\tif (resultTable) return resultTable[r] ? resultTable[r][c] : null;\n\telse return lookupTable[r][lookupTable[r].length - 1];\n}\n\nexport function choose(index: number, ...args: ArrayArg) {\n\tlet result: unknown = null;\n\tlet current = 0;\n\teachValue(args, v => { \n\t\tif (index == ++current) {\n\t\t\tresult = v;\n\t\t\treturn false;\n\t\t}\n\t});\n\treturn result;\n}\n\nexport function column(address?: string) {\n\treturn (address ? CellRange.fromA1(address).c1 : (this as FormulaContext).cell.c) + 1;\n}\n\nexport function row(address?: string) {\n\treturn (address ? CellRange.fromA1(address).r1 : (this as FormulaContext).cell.r) + 1;\n}\n\nexport function columns(range: ArrayArg) {\n\treturn Array.isArray(range) ? range[0]?.length : 1;\n}\n\nexport function rows(range: ArrayArg) {\n\treturn Array.isArray(range) ? range.length : 1;\n}\n\nexport function formulatext() {\n\tconst cell = getFormulaCells(this)[0];\n\treturn cell && cell.hasFormula ? (' ' + prefixFormula(cell.formula)) : '';\n}\n\nexport function index(range: ArrayArg, row: number, column: number) {\n\trow = row || 1;\n\tcolumn = column || 1;\n\tif (Array.isArray(range)) return range[row - 1] ? range[row - 1][column - 1] : null;\n\telse if (row == 1 && column == 1) return range;\n\telse return null;\n}\n\nexport function indirect(ref: string) {\n\tconst currentCell = (this as FormulaContext).cell;\n\tconst model = currentCell.model;\n\tconst targetCell = model.getCellByA1(ref);\n\n\t// register string reference dependencies\n\tlet map: Map<string, [CellRange, string?]>;\n\tif (model.calculations.dependencies.cellDependencies.has(currentCell.address)) {\n\t\tmap = model.calculations.dependencies.cellDependencies.get(currentCell.address);\n\t} else {\n\t\tmap = new Map();\n\t\tmodel.calculations.dependencies.cellDependencies.set(currentCell.address, map);\n\t}\n\tmap.set(targetCell.address, [targetCell.range]);\n\n\tif (model.calculations.dependencies.cellDependants.has(targetCell.address)) {\n\t\tmap = model.calculations.dependencies.cellDependants.get(targetCell.address);\n\t} else {\n\t\tmap = new Map();\n\t\tmodel.calculations.dependencies.cellDependants.set(targetCell.address, map);\n\t}\n\tmap.set(currentCell.address, [currentCell.range]);\n\n\treturn targetCell.value;\n}\n\nexport function match(matchValue: unknown, range: Matrix<unknown>, matchType = 0) {\n\tlet r: number, c: number;\n\tfor (r = 0; r < range.length; r++) {\n\t\tfor (c = 0; c < range[r].length; c++) {\n\t\t\tif (matchType == 0 && range[r][c] == matchValue) return Math.max(r + 1, c + 1);\n\t\t\tif (matchType == 1 && range[r][c] > matchValue) return Math.max(r + 1, c + 1);\n\t\t\tif (matchType == -1 && range[r][c] < matchValue) return Math.max(r + 1, c + 1);\n\t\t}\n\t}\n\treturn null;\n}\n\nexport function offset(_ref: unknown, rows: number, columns: number, height?: number, width?: number) {\n\tconst cell = getFormulaCells(this)[0];\n\tconst result: unknown[] = [];\n\theight = height || 1;\n\twidth = width || 1;\n\tfor (let r = 0; r < height; r++) {\n\t\tconst row: unknown[] = [];\n\t\tfor (let c = 0; c < width; c++) {\n\t\t\tconst cell2 = cell.model.rows[cell.r + r + rows].cell(cell.c + c + columns);\n\t\t\trow.push(cell2 ? cell.value : null)\n\t\t}\n\t\tresult.push(row);\n\t}\n\treturn result;\n}\n\nexport function filter(range: Matrix, boolRange: Matrix) {\n\tconst result: unknown[] = [];\n\tif (range.length == boolRange.length) {\n\t\tfor (let r = 0; r < range.length; r++) {\n\t\t\tlet match = true;\n\t\t\tfor (let c = 0; c < boolRange[r].length; c++) {\n\t\t\t\tif (!boolRange[r][c]) {\n\t\t\t\t\tmatch = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (match) result.push(range[r]);\n\t\t}\n\t} else {\n\t\t// by columns\n\t}\n\treturn result;\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omegagrid/grid-core",
3
- "version": "0.10.77",
3
+ "version": "0.10.79",
4
4
  "license": "UNLICENSED",
5
5
  "description": "Grid model, no ui components",
6
6
  "main": "./dist/index.js",
@@ -28,8 +28,8 @@
28
28
  "generate-functions-docs": "node ./scripts/generate-functions-docs.cjs"
29
29
  },
30
30
  "dependencies": {
31
- "@omegagrid/core": "^0.10.77",
32
- "@omegagrid/localize": "^0.10.77",
31
+ "@omegagrid/core": "^0.10.79",
32
+ "@omegagrid/localize": "^0.10.79",
33
33
  "@stdlib/stats": "^0.0.13",
34
34
  "color": "^4.2.3",
35
35
  "date-fns": "^3.2.0",