@omegagrid/grid-core 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/dist/calculations/autofill.d.ts +7 -0
  2. package/dist/calculations/autofill.d.ts.map +1 -0
  3. package/dist/calculations/autofill.js +81 -0
  4. package/dist/calculations/autofill.js.map +1 -0
  5. package/dist/calculations/calculationModel.d.ts +35 -0
  6. package/dist/calculations/calculationModel.d.ts.map +1 -0
  7. package/dist/calculations/calculationModel.js +199 -0
  8. package/dist/calculations/calculationModel.js.map +1 -0
  9. package/dist/calculations/conditions.d.ts +4 -0
  10. package/dist/calculations/conditions.d.ts.map +1 -0
  11. package/dist/calculations/conditions.js +46 -0
  12. package/dist/calculations/conditions.js.map +1 -0
  13. package/dist/calculations/context.d.ts +53 -0
  14. package/dist/calculations/context.d.ts.map +1 -0
  15. package/dist/calculations/context.js +83 -0
  16. package/dist/calculations/context.js.map +1 -0
  17. package/dist/calculations/formula.d.ts +69 -0
  18. package/dist/calculations/formula.d.ts.map +1 -0
  19. package/dist/calculations/formula.js +360 -0
  20. package/dist/calculations/formula.js.map +1 -0
  21. package/dist/calculations/functions/dates.d.ts +6 -0
  22. package/dist/calculations/functions/dates.d.ts.map +1 -0
  23. package/dist/calculations/functions/dates.js +28 -0
  24. package/dist/calculations/functions/dates.js.map +1 -0
  25. package/dist/calculations/functions/helpers.d.ts +11 -0
  26. package/dist/calculations/functions/helpers.d.ts.map +1 -0
  27. package/dist/calculations/functions/helpers.js +38 -0
  28. package/dist/calculations/functions/helpers.js.map +1 -0
  29. package/dist/calculations/functions/index.d.ts +5 -0
  30. package/dist/calculations/functions/index.d.ts.map +1 -0
  31. package/dist/calculations/functions/index.js +73 -0
  32. package/dist/calculations/functions/index.js.map +1 -0
  33. package/dist/calculations/functions/logical.d.ts +10 -0
  34. package/dist/calculations/functions/logical.d.ts.map +1 -0
  35. package/dist/calculations/functions/logical.js +49 -0
  36. package/dist/calculations/functions/logical.js.map +1 -0
  37. package/dist/calculations/functions/lookup.d.ts +17 -0
  38. package/dist/calculations/functions/lookup.d.ts.map +1 -0
  39. package/dist/calculations/functions/lookup.js +167 -0
  40. package/dist/calculations/functions/lookup.js.map +1 -0
  41. package/dist/calculations/functions/math.d.ts +62 -0
  42. package/dist/calculations/functions/math.d.ts.map +1 -0
  43. package/dist/calculations/functions/math.js +228 -0
  44. package/dist/calculations/functions/math.js.map +1 -0
  45. package/dist/calculations/functions/special.d.ts +2 -0
  46. package/dist/calculations/functions/special.d.ts.map +1 -0
  47. package/dist/calculations/functions/special.js +55 -0
  48. package/dist/calculations/functions/special.js.map +1 -0
  49. package/dist/calculations/functions/statistical.d.ts +5 -0
  50. package/dist/calculations/functions/statistical.d.ts.map +1 -0
  51. package/dist/calculations/functions/statistical.js +47 -0
  52. package/dist/calculations/functions/statistical.js.map +1 -0
  53. package/dist/calculations/functions/text.d.ts +5 -0
  54. package/dist/calculations/functions/text.d.ts.map +1 -0
  55. package/dist/calculations/functions/text.js +23 -0
  56. package/dist/calculations/functions/text.js.map +1 -0
  57. package/dist/calculations/index.d.ts +6 -0
  58. package/dist/calculations/index.d.ts.map +1 -0
  59. package/dist/calculations/index.js +22 -0
  60. package/dist/calculations/index.js.map +1 -0
  61. package/dist/calculations/operators.d.ts +19 -0
  62. package/dist/calculations/operators.d.ts.map +1 -0
  63. package/dist/calculations/operators.js +66 -0
  64. package/dist/calculations/operators.js.map +1 -0
  65. package/dist/calculations/tokenization.d.ts +34 -0
  66. package/dist/calculations/tokenization.d.ts.map +1 -0
  67. package/dist/calculations/tokenization.js +192 -0
  68. package/dist/calculations/tokenization.js.map +1 -0
  69. package/dist/comments/comments.d.ts +37 -0
  70. package/dist/comments/comments.d.ts.map +1 -0
  71. package/dist/comments/comments.js +39 -0
  72. package/dist/comments/comments.js.map +1 -0
  73. package/dist/comments/index.d.ts +2 -0
  74. package/dist/comments/index.d.ts.map +1 -0
  75. package/dist/comments/index.js +18 -0
  76. package/dist/comments/index.js.map +1 -0
  77. package/dist/common/index.d.ts +2 -0
  78. package/dist/common/index.d.ts.map +1 -0
  79. package/dist/common/index.js +18 -0
  80. package/dist/common/index.js.map +1 -0
  81. package/dist/common/range.d.ts +65 -0
  82. package/dist/common/range.d.ts.map +1 -0
  83. package/dist/common/range.js +220 -0
  84. package/dist/common/range.js.map +1 -0
  85. package/dist/constants.d.ts +60 -0
  86. package/dist/constants.d.ts.map +1 -0
  87. package/dist/constants.js +75 -0
  88. package/dist/constants.js.map +1 -0
  89. package/dist/formatting/conditionalFormats.d.ts +34 -0
  90. package/dist/formatting/conditionalFormats.d.ts.map +1 -0
  91. package/dist/formatting/conditionalFormats.js +107 -0
  92. package/dist/formatting/conditionalFormats.js.map +1 -0
  93. package/dist/formatting/index.d.ts +2 -0
  94. package/dist/formatting/index.d.ts.map +1 -0
  95. package/dist/formatting/index.js +18 -0
  96. package/dist/formatting/index.js.map +1 -0
  97. package/dist/index.d.ts +9 -0
  98. package/dist/index.d.ts.map +1 -0
  99. package/dist/index.js +30 -0
  100. package/dist/index.js.map +1 -0
  101. package/dist/model/cellModel.d.ts +105 -0
  102. package/dist/model/cellModel.d.ts.map +1 -0
  103. package/dist/model/cellModel.js +251 -0
  104. package/dist/model/cellModel.js.map +1 -0
  105. package/dist/model/columnModel.d.ts +132 -0
  106. package/dist/model/columnModel.d.ts.map +1 -0
  107. package/dist/model/columnModel.js +147 -0
  108. package/dist/model/columnModel.js.map +1 -0
  109. package/dist/model/columnSorting.d.ts +50 -0
  110. package/dist/model/columnSorting.d.ts.map +1 -0
  111. package/dist/model/columnSorting.js +164 -0
  112. package/dist/model/columnSorting.js.map +1 -0
  113. package/dist/model/cssStyle.d.ts +18 -0
  114. package/dist/model/cssStyle.d.ts.map +1 -0
  115. package/dist/model/cssStyle.js +197 -0
  116. package/dist/model/cssStyle.js.map +1 -0
  117. package/dist/model/dependencies.d.ts +28 -0
  118. package/dist/model/dependencies.d.ts.map +1 -0
  119. package/dist/model/dependencies.js +129 -0
  120. package/dist/model/dependencies.js.map +1 -0
  121. package/dist/model/elementModel.d.ts +98 -0
  122. package/dist/model/elementModel.d.ts.map +1 -0
  123. package/dist/model/elementModel.js +109 -0
  124. package/dist/model/elementModel.js.map +1 -0
  125. package/dist/model/filterModel.d.ts +22 -0
  126. package/dist/model/filterModel.d.ts.map +1 -0
  127. package/dist/model/filterModel.js +83 -0
  128. package/dist/model/filterModel.js.map +1 -0
  129. package/dist/model/gridModel.d.ts +172 -0
  130. package/dist/model/gridModel.d.ts.map +1 -0
  131. package/dist/model/gridModel.js +639 -0
  132. package/dist/model/gridModel.js.map +1 -0
  133. package/dist/model/groupModel.d.ts +23 -0
  134. package/dist/model/groupModel.d.ts.map +1 -0
  135. package/dist/model/groupModel.js +102 -0
  136. package/dist/model/groupModel.js.map +1 -0
  137. package/dist/model/history.d.ts +21 -0
  138. package/dist/model/history.d.ts.map +1 -0
  139. package/dist/model/history.js +39 -0
  140. package/dist/model/history.js.map +1 -0
  141. package/dist/model/index.d.ts +17 -0
  142. package/dist/model/index.d.ts.map +1 -0
  143. package/dist/model/index.js +33 -0
  144. package/dist/model/index.js.map +1 -0
  145. package/dist/model/iterableRange.d.ts +32 -0
  146. package/dist/model/iterableRange.d.ts.map +1 -0
  147. package/dist/model/iterableRange.js +79 -0
  148. package/dist/model/iterableRange.js.map +1 -0
  149. package/dist/model/namingModel.d.ts +24 -0
  150. package/dist/model/namingModel.d.ts.map +1 -0
  151. package/dist/model/namingModel.js +75 -0
  152. package/dist/model/namingModel.js.map +1 -0
  153. package/dist/model/options.d.ts +56 -0
  154. package/dist/model/options.d.ts.map +1 -0
  155. package/dist/model/options.js +27 -0
  156. package/dist/model/options.js.map +1 -0
  157. package/dist/model/rowModel.d.ts +91 -0
  158. package/dist/model/rowModel.d.ts.map +1 -0
  159. package/dist/model/rowModel.js +137 -0
  160. package/dist/model/rowModel.js.map +1 -0
  161. package/dist/model/selectionModel.d.ts +20 -0
  162. package/dist/model/selectionModel.d.ts.map +1 -0
  163. package/dist/model/selectionModel.js +45 -0
  164. package/dist/model/selectionModel.js.map +1 -0
  165. package/dist/model/style.d.ts +73 -0
  166. package/dist/model/style.d.ts.map +1 -0
  167. package/dist/model/style.js +38 -0
  168. package/dist/model/style.js.map +1 -0
  169. package/dist/model/styleModel.d.ts +20 -0
  170. package/dist/model/styleModel.d.ts.map +1 -0
  171. package/dist/model/styleModel.js +85 -0
  172. package/dist/model/styleModel.js.map +1 -0
  173. package/dist/sparklines/index.d.ts +2 -0
  174. package/dist/sparklines/index.d.ts.map +1 -0
  175. package/dist/sparklines/index.js +18 -0
  176. package/dist/sparklines/index.js.map +1 -0
  177. package/dist/sparklines/sparklines.d.ts +61 -0
  178. package/dist/sparklines/sparklines.d.ts.map +1 -0
  179. package/dist/sparklines/sparklines.js +185 -0
  180. package/dist/sparklines/sparklines.js.map +1 -0
  181. package/dist/types.d.ts +27 -0
  182. package/dist/types.d.ts.map +1 -0
  183. package/dist/types.js +9 -0
  184. package/dist/types.js.map +1 -0
  185. package/package.json +56 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statistical.js","sourceRoot":"","sources":["../../../src/calculations/functions/statistical.ts"],"names":[],"mappings":";;;;;;AAAA,uCAAuE;AACvE,mEAA2C;AAC3C,qEAAiD;AACjD,gDAAgD;AAChD,0DAA0D;AAE1D,qDAAqD;AACrD,iDAAiD;AACjD,sCAAsC;AACtC,IAAI;AAEJ,SAAgB,OAAO,CAAC,GAAG,IAAc;IACxC,IAAI,GAAG,GAAG,CAAC,CAAC;IAAC,IAAI,GAAG,GAAG,CAAC,CAAA;IACxB,IAAA,mBAAS,EAAC,IAAI,EAAE,CAAC,CAAC,EAAE;QACnB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAW,CAAC,EAAE,CAAC;YACtC,GAAG,IAAK,CAAY,IAAI,CAAC,CAAA;YACzB,EAAE,GAAG,CAAC;QACP,CAAC;IACF,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,GAAG,GAAG,CAAC;AAClB,CAAC;AATD,0BASC;AAED,SAAgB,gBAAgB,CAAE,MAAwB,EAAE,OAAyB;;IACpF,MAAM,UAAU,GAAG,IAAA,eAAS,GAAE,CAAC;IAC/B,MAAM,CAAC,GAAG,IAAA,gBAAM,EAAS,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,GAAG,IAAA,gBAAM,EAAS,OAAO,CAAC,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC,CAAC;QAChD,CAAC;IACF,CAAC;IACD,OAAO,UAAU,EAAE,CAAC;AACrB,CAAC;AAVD,4CAUC;AAED,SAAgB,MAAM,CAAC,GAAG,IAAsB;IAC/C,MAAM,IAAI,GAAG,IAAA,uBAAa,EAAC,IAAI,CAAa,CAAC;IAC7C,MAAM,CAAC,GAAG,IAAA,cAAI,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACrC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AACxE,CAAC;AAJD,wBAIC"}
@@ -0,0 +1,5 @@
1
+ import { ArrayArg } from "./helpers";
2
+ export declare function text(v: unknown, format?: string): string;
3
+ export declare function left(v: string, count?: number): string;
4
+ export declare function concat(...args: ArrayArg): string;
5
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/calculations/functions/text.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAC;AAEhD,wBAAgB,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,UAO/C;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,UAG7C;AAED,wBAAgB,MAAM,CAAC,GAAG,IAAI,EAAE,QAAQ,UAIvC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.concat = exports.left = exports.text = void 0;
4
+ const core_1 = require("@omegagrid/core");
5
+ const helpers_1 = require("./helpers");
6
+ function text(v, format) {
7
+ if (format)
8
+ v = core_1.numbers.getNumberFormatter(this.cell.model.options.locale, core_1.numbers.fixNumberFormat(format, 'd'), false)(v);
9
+ return v == null ? '' : v.toString();
10
+ }
11
+ exports.text = text;
12
+ function left(v, count) {
13
+ v = v == null ? '' : v.toString();
14
+ return v.substring(0, count);
15
+ }
16
+ exports.left = left;
17
+ function concat(...args) {
18
+ let res = '';
19
+ (0, helpers_1.eachValue)(args, (v) => res += v == null ? '' : v.toString());
20
+ return res;
21
+ }
22
+ exports.concat = concat;
23
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/calculations/functions/text.ts"],"names":[],"mappings":";;;AAAA,0CAA0C;AAC1C,uCAAgD;AAEhD,SAAgB,IAAI,CAAC,CAAU,EAAE,MAAe;IAC/C,IAAI,MAAM;QAAE,CAAC,GAAG,cAAO,CAAC,kBAAkB,CACzC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAC9B,cAAO,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,EACpC,KAAK,CACL,CAAC,CAAW,CAAC,CAAC;IACf,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AACtC,CAAC;AAPD,oBAOC;AAED,SAAgB,IAAI,CAAC,CAAS,EAAE,KAAc;IAC7C,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAClC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC;AAHD,oBAGC;AAED,SAAgB,MAAM,CAAC,GAAG,IAAc;IACvC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAA,mBAAS,EAAC,IAAI,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrE,OAAO,GAAG,CAAC;AACZ,CAAC;AAJD,wBAIC"}
@@ -0,0 +1,6 @@
1
+ export * from './formula';
2
+ export * from './autofill';
3
+ export * from './calculationModel';
4
+ export * from './functions';
5
+ export * from './tokenization';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/calculations/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./formula"), exports);
18
+ __exportStar(require("./autofill"), exports);
19
+ __exportStar(require("./calculationModel"), exports);
20
+ __exportStar(require("./functions"), exports);
21
+ __exportStar(require("./tokenization"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/calculations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,6CAA2B;AAC3B,qDAAmC;AACnC,8CAA4B;AAC5B,iDAA+B"}
@@ -0,0 +1,19 @@
1
+ import { Matrix, Scalar } from "@omegagrid/core";
2
+ export type ArythmeticOperator = '*' | '/' | '+' | '-';
3
+ export type LogicalOperataor = '=' | '>' | '<' | '>=' | '<=';
4
+ export type Operator = ArythmeticOperator | LogicalOperataor;
5
+ /**
6
+ * [javascript operator, precedence, associativity]
7
+ */
8
+ export type OperatorSpec = [string, number, number];
9
+ /**
10
+ * Operator precedence and associativity
11
+ * Map<operator_token, [operator, precedence, associativity]>
12
+ */
13
+ export declare const operatorMap: Map<Operator, OperatorSpec>;
14
+ export declare const isLogicalOperator: (o: string) => o is LogicalOperataor;
15
+ export declare const isArythmeticOperator: (o: string) => o is ArythmeticOperator;
16
+ export declare const isOperator: (o: string) => o is Operator;
17
+ export declare function scalarOperation<T = number>(s1: Scalar<T>, s2: Scalar<T>, operator: Operator): Scalar;
18
+ export declare function matrixOperation<T>(m1: Matrix<T>, m2: Matrix<T>, operator: Operator): Matrix<T>;
19
+ //# sourceMappingURL=operators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../src/calculations/operators.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGjD,MAAM,MAAM,kBAAkB,GAAG,GAAG,GAAC,GAAG,GAAC,GAAG,GAAC,GAAG,CAAC;AACjD,MAAM,MAAM,gBAAgB,GAAG,GAAG,GAAC,GAAG,GAAC,GAAG,GAAC,IAAI,GAAC,IAAI,CAAC;AACrD,MAAM,MAAM,QAAQ,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,WAAW,6BAUtB,CAAC;AAEH,eAAO,MAAM,iBAAiB,MAAO,MAAM,0BAAmE,CAAC;AAC/G,eAAO,MAAM,oBAAoB,MAAO,MAAM,4BAA8D,CAAC;AAC7G,eAAO,MAAM,UAAU,MAAO,MAAM,kBAAmE,CAAC;AAExG,wBAAgB,eAAe,CAAC,CAAC,GAAG,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAI,MAAM,CAarG;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAI,MAAM,CAAC,CAAC,CAAC,CAwB/F"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.matrixOperation = exports.scalarOperation = exports.isOperator = exports.isArythmeticOperator = exports.isLogicalOperator = exports.operatorMap = void 0;
5
+ const conditions_1 = require("./conditions");
6
+ /**
7
+ * Operator precedence and associativity
8
+ * Map<operator_token, [operator, precedence, associativity]>
9
+ */
10
+ exports.operatorMap = new Map([
11
+ ['=', ['==', 1, 0]],
12
+ ['>', ['>', 1, 0]],
13
+ ['<', ['<', 1, 0]],
14
+ ['>=', ['>=', 1, 0]],
15
+ ['<=', ['<=', 1, 0]],
16
+ ['+', ['+', 2, 0]],
17
+ ['-', ['-', 2, 0]],
18
+ ['*', ['*', 3, 0]],
19
+ ['/', ['/', 3, 0]],
20
+ ]);
21
+ const isLogicalOperator = (o) => ['=', '>', '<', '>=', '<='].includes(o);
22
+ exports.isLogicalOperator = isLogicalOperator;
23
+ const isArythmeticOperator = (o) => ['+', '-', '*', '/'].includes(o);
24
+ exports.isArythmeticOperator = isArythmeticOperator;
25
+ const isOperator = (o) => (0, exports.isArythmeticOperator)(o) || (0, exports.isLogicalOperator)(o);
26
+ exports.isOperator = isOperator;
27
+ function scalarOperation(s1, s2, operator) {
28
+ switch (operator) {
29
+ case '+': return s1 + s2;
30
+ case '-': return s1 - s2;
31
+ case '*': return s1 * s2;
32
+ case '/': return s1 / s2;
33
+ case '=': return (0, conditions_1.scalarCompare)(s1, s2) == 0;
34
+ case '>': return (0, conditions_1.scalarCompare)(s1, s2) > 0;
35
+ case '<': return (0, conditions_1.scalarCompare)(s1, s2) < 0;
36
+ case '>=': return (0, conditions_1.scalarCompare)(s1, s2) >= 0;
37
+ case '<=': return (0, conditions_1.scalarCompare)(s1, s2) <= 0;
38
+ default: throw new Error(`Invalid operator: ${operator}`);
39
+ }
40
+ }
41
+ exports.scalarOperation = scalarOperation;
42
+ function matrixOperation(m1, m2, operator) {
43
+ var _a, _b;
44
+ const a1 = Array.isArray(m1);
45
+ const a2 = Array.isArray(m2);
46
+ if (!a1 && !a2) {
47
+ return [[scalarOperation(m1, m2, operator)]];
48
+ }
49
+ const r = Math.max(a1 ? m1.length : 0, a2 ? m2.length : 0);
50
+ const c = Math.max(a1 ? m1[0].length : 0, a2 ? m2[0].length : 0);
51
+ const result = [];
52
+ for (let i = 0; i < r; i++) {
53
+ const row = [];
54
+ for (let j = 0; j < c; j++) {
55
+ const v1 = a1 ? (_a = m1[i]) === null || _a === void 0 ? void 0 : _a[j] : m1;
56
+ const v2 = a2 ? (_b = m2[i]) === null || _b === void 0 ? void 0 : _b[j] : m2;
57
+ const v = v1 == null && v2 == null ? null
58
+ : scalarOperation(v1, v2, operator);
59
+ row.push(v);
60
+ }
61
+ result.push(row);
62
+ }
63
+ return result;
64
+ }
65
+ exports.matrixOperation = matrixOperation;
66
+ //# sourceMappingURL=operators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operators.js","sourceRoot":"","sources":["../../src/calculations/operators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ export declare enum TokenType {
2
+ Number = 0,
3
+ Boolean = 1,
4
+ String = 2,
5
+ StringQuote = 3,
6
+ Function = 4,
7
+ ArgumentSeparator = 5,
8
+ OpenBracket = 6,
9
+ CloseBracket = 7,
10
+ Operator = 8,
11
+ Cell = 9,
12
+ Variable = 10,
13
+ Range = 11,
14
+ Sheet = 12,
15
+ SheetQuote = 13,
16
+ SheetSeparator = 14,
17
+ Unknown = 15
18
+ }
19
+ export type Token = [string, TokenType];
20
+ export declare const isNumber: (code: number) => boolean;
21
+ export declare const isBool: (value: string) => boolean;
22
+ export declare const isLetter: (code: number) => boolean;
23
+ export type TokenizationOptions = {
24
+ decimalPoint: string;
25
+ stringQuote: string;
26
+ sheetQuote: string;
27
+ argumentSeparator: string;
28
+ };
29
+ export declare class Tokenizer {
30
+ readonly options: TokenizationOptions;
31
+ constructor(options?: Partial<TokenizationOptions>);
32
+ tokenize(formula: string): Token[];
33
+ }
34
+ //# sourceMappingURL=tokenization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenization.d.ts","sourceRoot":"","sources":["../../src/calculations/tokenization.ts"],"names":[],"mappings":"AAEA,oBAAY,SAAS;IACpB,MAAM,IAAA;IACN,OAAO,IAAA;IACP,MAAM,IAAA;IACN,WAAW,IAAA;IACX,QAAQ,IAAA;IACR,iBAAiB,IAAA;IACjB,WAAW,IAAA;IACX,YAAY,IAAA;IACZ,QAAQ,IAAA;IACR,IAAI,IAAA;IACJ,QAAQ,KAAA;IACR,KAAK,KAAA;IACL,KAAK,KAAA;IACL,UAAU,KAAA;IACV,cAAc,KAAA;IACd,OAAO,KAAA;CACP;AAED,MAAM,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAGxC,eAAO,MAAM,QAAQ,SAAU,MAAM,YAA6B,CAAC;AAGnE,eAAO,MAAM,MAAM,UAAW,MAAM,YAGnC,CAAA;AAGD,eAAO,MAAM,QAAQ,SAAU,MAAM,YAGR,CAAC;AAI9B,MAAM,MAAM,mBAAmB,GAAG;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAC;CAC1B,CAAA;AASD,qBAAa,SAAS;IACrB,SAAgB,OAAO,EAAE,mBAAmB,CAAC;gBAEjC,OAAO,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC;IAIlD,QAAQ,CAAC,OAAO,EAAE,MAAM;CA4HxB"}
@@ -0,0 +1,192 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Tokenizer = exports.isLetter = exports.isBool = exports.isNumber = exports.TokenType = void 0;
4
+ const operators_1 = require("./operators");
5
+ var TokenType;
6
+ (function (TokenType) {
7
+ TokenType[TokenType["Number"] = 0] = "Number";
8
+ TokenType[TokenType["Boolean"] = 1] = "Boolean";
9
+ TokenType[TokenType["String"] = 2] = "String";
10
+ TokenType[TokenType["StringQuote"] = 3] = "StringQuote";
11
+ TokenType[TokenType["Function"] = 4] = "Function";
12
+ TokenType[TokenType["ArgumentSeparator"] = 5] = "ArgumentSeparator";
13
+ TokenType[TokenType["OpenBracket"] = 6] = "OpenBracket";
14
+ TokenType[TokenType["CloseBracket"] = 7] = "CloseBracket";
15
+ TokenType[TokenType["Operator"] = 8] = "Operator";
16
+ TokenType[TokenType["Cell"] = 9] = "Cell";
17
+ TokenType[TokenType["Variable"] = 10] = "Variable";
18
+ TokenType[TokenType["Range"] = 11] = "Range";
19
+ TokenType[TokenType["Sheet"] = 12] = "Sheet";
20
+ TokenType[TokenType["SheetQuote"] = 13] = "SheetQuote";
21
+ TokenType[TokenType["SheetSeparator"] = 14] = "SheetSeparator";
22
+ TokenType[TokenType["Unknown"] = 15] = "Unknown";
23
+ })(TokenType || (exports.TokenType = TokenType = {}));
24
+ // 0-9
25
+ const isNumber = (code) => code >= 48 && code <= 57;
26
+ exports.isNumber = isNumber;
27
+ // true, false
28
+ const isBool = (value) => {
29
+ value = value.toLowerCase();
30
+ return value === 'true' || value === 'false';
31
+ };
32
+ exports.isBool = isBool;
33
+ // A-Z, a-z + some unicode chars
34
+ const isLetter = (code) => (code >= 65 && code <= 90) ||
35
+ (code >= 97 && code <= 122) ||
36
+ (code >= 192 && code <= 687);
37
+ exports.isLetter = isLetter;
38
+ const DEFAULT_TOKENIZATION_OPTIONS = {
39
+ decimalPoint: '.',
40
+ stringQuote: '"',
41
+ sheetQuote: '\'',
42
+ argumentSeparator: ','
43
+ };
44
+ class Tokenizer {
45
+ constructor(options) {
46
+ this.options = Object.assign(DEFAULT_TOKENIZATION_OPTIONS, options);
47
+ }
48
+ tokenize(formula) {
49
+ const tokens = [];
50
+ const len = formula.length;
51
+ let offset = 0;
52
+ let char;
53
+ let code;
54
+ let token = '';
55
+ let isSheet = false;
56
+ let type;
57
+ let closed = false;
58
+ while (offset < len) {
59
+ char = formula.charAt(offset);
60
+ code = char.charCodeAt(0);
61
+ if (char == '=' && offset == 0) {
62
+ ++offset;
63
+ }
64
+ else if ((0, exports.isNumber)(code)) {
65
+ // number token
66
+ token = char;
67
+ ++offset;
68
+ while (offset < len) {
69
+ char = formula.charAt(offset);
70
+ code = char.charCodeAt(0);
71
+ if ((0, exports.isNumber)(code)) {
72
+ token += char;
73
+ ++offset;
74
+ }
75
+ else if (char === this.options.decimalPoint) {
76
+ token += '.';
77
+ ++offset;
78
+ }
79
+ else {
80
+ break;
81
+ }
82
+ }
83
+ tokens.push([token, TokenType.Number]);
84
+ }
85
+ else if ((0, exports.isLetter)(code) || char == '$') {
86
+ // cell/range/variable/function token
87
+ token = char;
88
+ type = null;
89
+ ++offset;
90
+ do {
91
+ char = formula.charAt(offset);
92
+ code = char.charCodeAt(0);
93
+ if ((0, exports.isLetter)(code) || (0, exports.isNumber)(code) || char === '.' || char === '$' || char === '_') {
94
+ if (char == '_')
95
+ type = TokenType.Variable;
96
+ else if ((0, exports.isNumber)(code) && !isSheet && type == null)
97
+ type = TokenType.Cell;
98
+ token += char;
99
+ ++offset;
100
+ if (offset == len)
101
+ tokens.push([token, type || TokenType.Variable]);
102
+ }
103
+ else if (char == '(') {
104
+ tokens.push([token.toUpperCase(), TokenType.Function]);
105
+ tokens.push([char, TokenType.OpenBracket]);
106
+ ++offset;
107
+ break;
108
+ }
109
+ else if (char == '\'') {
110
+ tokens.push([token, TokenType.Sheet]);
111
+ token = '';
112
+ tokens.push([char, TokenType.SheetQuote]);
113
+ isSheet = true;
114
+ ++offset;
115
+ }
116
+ else if (char == ':') {
117
+ type = TokenType.Range;
118
+ token += char;
119
+ ++offset;
120
+ }
121
+ else if (isSheet && char == ' ') {
122
+ token += char;
123
+ ++offset;
124
+ }
125
+ else if (char == '!') {
126
+ if (token !== '')
127
+ tokens.push([token, TokenType.Sheet]);
128
+ tokens.push([char, TokenType.SheetSeparator]);
129
+ isSheet = false;
130
+ token = '';
131
+ ++offset;
132
+ break;
133
+ }
134
+ else {
135
+ tokens.push([token, type || ((0, exports.isBool)(token) ? TokenType.Boolean : TokenType.Variable)]);
136
+ break;
137
+ }
138
+ } while (offset < len);
139
+ }
140
+ else if ((0, operators_1.isOperator)(char)) {
141
+ token = char;
142
+ while ((0, operators_1.isOperator)(formula.charAt(offset + 1))) {
143
+ token += formula.charAt(++offset);
144
+ }
145
+ tokens.push([token, TokenType.Operator]);
146
+ ++offset;
147
+ }
148
+ else if (char === '(') {
149
+ tokens.push([char, TokenType.OpenBracket]);
150
+ ++offset;
151
+ }
152
+ else if (char === ')') {
153
+ tokens.push([char, TokenType.CloseBracket]);
154
+ ++offset;
155
+ }
156
+ else if (char === '\'') {
157
+ tokens.push([char, TokenType.SheetQuote]);
158
+ isSheet = true;
159
+ ++offset;
160
+ }
161
+ else if (char === this.options.argumentSeparator) {
162
+ tokens.push([char, TokenType.ArgumentSeparator]);
163
+ ++offset;
164
+ }
165
+ else if (char === this.options.stringQuote) {
166
+ closed = false;
167
+ tokens.push([char, TokenType.StringQuote]);
168
+ token = '';
169
+ while (++offset < len) {
170
+ char = formula.charAt(offset);
171
+ if (char === this.options.stringQuote) {
172
+ closed = true;
173
+ ++offset;
174
+ break;
175
+ }
176
+ token += char;
177
+ }
178
+ tokens.push([token, TokenType.String]);
179
+ if (closed)
180
+ tokens.push([this.options.stringQuote, TokenType.StringQuote]);
181
+ }
182
+ else {
183
+ tokens.push([char, TokenType.Unknown]);
184
+ ++offset;
185
+ }
186
+ }
187
+ //if (token && token.length > 0) tokens.push([token, TokenType.Unknown]);
188
+ return tokens;
189
+ }
190
+ }
191
+ exports.Tokenizer = Tokenizer;
192
+ //# sourceMappingURL=tokenization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenization.js","sourceRoot":"","sources":["../../src/calculations/tokenization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { Direction } from "@omegagrid/core";
2
+ import { CellAddress } from "../common";
3
+ import { GridModel } from "../model";
4
+ import { Renderer } from "../types";
5
+ export type CommentSource = {
6
+ author?: string;
7
+ data?: unknown;
8
+ text?: string;
9
+ date?: string | number | Date;
10
+ c?: number;
11
+ r?: number;
12
+ a1?: CellAddress;
13
+ };
14
+ export type CommentModel = {
15
+ author?: string;
16
+ text?: string;
17
+ date?: Date;
18
+ data?: unknown;
19
+ };
20
+ export type CommentOptions = {
21
+ hideTimeout?: number;
22
+ offsetX?: number;
23
+ offsetY?: number;
24
+ zIndex?: number;
25
+ renderer?: Renderer;
26
+ };
27
+ export declare class Comments {
28
+ readonly model: GridModel;
29
+ private _commentMap;
30
+ constructor(model: GridModel, sourceData?: CommentSource[]);
31
+ has: (a1: CellAddress) => boolean;
32
+ delete: (a1: CellAddress) => boolean;
33
+ get: (a1: CellAddress) => CommentModel;
34
+ populate(sourceData: CommentSource[]): void;
35
+ shift(index: number, offset: number, direction: Direction): void;
36
+ }
37
+ //# sourceMappingURL=comments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comments.d.ts","sourceRoot":"","sources":["../../src/comments/comments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAa,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,MAAM,aAAa,GAAG;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAC,MAAM,GAAC,IAAI,CAAC;IAC1B,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,EAAE,CAAC,EAAE,WAAW,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACpB,CAAA;AAED,qBAAa,QAAQ;aAIQ,KAAK,EAAE,SAAS;IAF5C,OAAO,CAAC,WAAW,CAAwC;gBAE/B,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,aAAa,EAAE;IAI1E,GAAG,OAAQ,WAAW,aAA8B;IACpD,MAAM,OAAQ,WAAW,aAAiC;IAC1D,GAAG,OAAQ,WAAW,kBAGrB;IAED,QAAQ,CAAC,UAAU,EAAE,aAAa,EAAE;IASpC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS;CAWzD"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Comments = void 0;
4
+ const common_1 = require("../common");
5
+ class Comments {
6
+ constructor(model, sourceData) {
7
+ this.model = model;
8
+ this._commentMap = new Map();
9
+ this.has = (a1) => this._commentMap.has(a1);
10
+ this.delete = (a1) => this._commentMap.delete(a1);
11
+ this.get = (a1) => {
12
+ if (!this.has(a1))
13
+ this._commentMap.set(a1, {});
14
+ return this._commentMap.get(a1);
15
+ };
16
+ if (sourceData)
17
+ this.populate(sourceData);
18
+ }
19
+ populate(sourceData) {
20
+ sourceData.forEach(item => this._commentMap.set(item.a1 || (new common_1.CellRange(item.c, item.r)).A1, {
21
+ author: item.author,
22
+ text: item.text,
23
+ data: item.data,
24
+ date: item.date ? new Date(item.date) : null
25
+ }));
26
+ }
27
+ shift(index, offset, direction) {
28
+ Array.from(this._commentMap.keys()).forEach((addr) => {
29
+ const range = common_1.CellRange.fromA1(addr);
30
+ range.shift(index, offset, direction);
31
+ if (range.A1 != addr) {
32
+ this._commentMap.set(range.A1, this._commentMap.get(addr));
33
+ this._commentMap.delete(addr);
34
+ }
35
+ });
36
+ }
37
+ }
38
+ exports.Comments = Comments;
39
+ //# sourceMappingURL=comments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/comments/comments.ts"],"names":[],"mappings":";;;AACA,sCAAmD;AA6BnD,MAAa,QAAQ;IAIpB,YAA4B,KAAgB,EAAE,UAA4B;QAA9C,UAAK,GAAL,KAAK,CAAW;QAFpC,gBAAW,GAAG,IAAI,GAAG,EAA6B,CAAC;QAM3D,QAAG,GAAG,CAAC,EAAe,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpD,WAAM,GAAG,CAAC,EAAe,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1D,QAAG,GAAG,CAAC,EAAe,EAAE,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC,CAAA;QARA,IAAI,UAAU;YAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IASD,QAAQ,CAAC,UAA2B;QACnC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,kBAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9F,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;SAC5C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAa,EAAE,MAAc,EAAE,SAAoB;QACxD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACpD,MAAM,KAAK,GAAG,kBAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YACtC,IAAI,KAAK,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;gBACtB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3D,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;CAED;AAnCD,4BAmCC"}
@@ -0,0 +1,2 @@
1
+ export * from './comments';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/comments/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./comments"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/comments/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B"}
@@ -0,0 +1,2 @@
1
+ export * from './range';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./range"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB"}
@@ -0,0 +1,65 @@
1
+ import { Direction } from "@omegagrid/core";
2
+ export type Coords = {
3
+ c: number;
4
+ r: number;
5
+ };
6
+ export type RangeCoords = {
7
+ c1: number;
8
+ r1: number;
9
+ c2: number;
10
+ r2: number;
11
+ };
12
+ export type RangeAddress = string;
13
+ export type CellAddress = string;
14
+ export declare class CellRange {
15
+ c1: number;
16
+ c1Anchor: boolean;
17
+ r1: number;
18
+ r1Anchor: boolean;
19
+ c2: number;
20
+ c2Anchor: boolean;
21
+ r2: number;
22
+ r2Anchor: boolean;
23
+ sheet?: string;
24
+ constructor(c1?: number, r1?: number, c2?: number, r2?: number, sheet?: string);
25
+ setCoords(c1: number, r1: number, c2?: number, r2?: number): void;
26
+ get size(): {
27
+ columns: number;
28
+ rows: number;
29
+ };
30
+ get count(): number;
31
+ private normalize;
32
+ move(columns: number, rows: number, maxColumns?: number, maxRows?: number, cycle?: boolean): void;
33
+ contains(r: CellRange): boolean;
34
+ containsColumn(c: number): boolean;
35
+ containsRow(r: number): boolean;
36
+ removeAnchors(): this;
37
+ addAnchors(): this;
38
+ shiftLeft(c: number, offset?: number, maxIndex?: number): this;
39
+ shiftRight(c: number, offset?: number, maxIndex?: number): this;
40
+ shiftUp(r: number, offset?: number, maxIndex?: number): this;
41
+ shiftDown(r: number, offset?: number, maxIndex?: number): this;
42
+ shift(index: number, offset: number, direction: Direction, maxIndex?: number): this;
43
+ intersect(r: CellRange): CellRange;
44
+ unite(r: CellRange): CellRange;
45
+ clone(): CellRange;
46
+ equals(r: CellRange, exact?: boolean): boolean;
47
+ get isCell(): boolean;
48
+ get isRange(): boolean;
49
+ get isColumn(): boolean;
50
+ get isRow(): boolean;
51
+ get A1(): RangeAddress;
52
+ get bounds(): [[CellRange, CellRange], [CellRange, CellRange]];
53
+ static fromA1(a1: RangeAddress): CellRange;
54
+ static fromA1s: (a1: RangeAddress, delimiter?: string) => CellRange[];
55
+ static toA1s: (ranges: CellRange[], delimiter?: string) => string;
56
+ static fromCoords: (r: RangeCoords) => CellRange;
57
+ static fullColumn: (c: number) => CellRange;
58
+ static fullRow: (r: number) => CellRange;
59
+ }
60
+ export declare function encodeRow(row: number): string;
61
+ export declare function decodeRow(row: string): number;
62
+ export declare function encodeColumn(column: number): string;
63
+ export declare function decodeColumn(letter: string): number;
64
+ export declare function sortRanges(ranges: CellRange[]): CellRange[];
65
+ //# sourceMappingURL=range.d.ts.map