@gridsheet/react-core 1.3.0-alpha.2 → 1.3.0-alpha.3

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 (59) hide show
  1. package/dist/constants.d.ts +2 -0
  2. package/dist/constants.d.ts.map +1 -1
  3. package/dist/constants.js +3 -1
  4. package/dist/constants.js.map +1 -1
  5. package/dist/formula/functions/__utils.d.ts +6 -0
  6. package/dist/formula/functions/__utils.d.ts.map +1 -1
  7. package/dist/formula/functions/__utils.js +64 -18
  8. package/dist/formula/functions/__utils.js.map +1 -1
  9. package/dist/formula/functions/add.d.ts.map +1 -1
  10. package/dist/formula/functions/add.js +11 -3
  11. package/dist/formula/functions/add.js.map +1 -1
  12. package/dist/formula/functions/countif.d.ts.map +1 -1
  13. package/dist/formula/functions/countif.js +1 -0
  14. package/dist/formula/functions/countif.js.map +1 -1
  15. package/dist/formula/functions/countif.spec.d.ts +2 -0
  16. package/dist/formula/functions/countif.spec.d.ts.map +1 -0
  17. package/dist/formula/functions/countif.spec.js +185 -0
  18. package/dist/formula/functions/countif.spec.js.map +1 -0
  19. package/dist/formula/functions/eq.d.ts +1 -1
  20. package/dist/formula/functions/eq.d.ts.map +1 -1
  21. package/dist/formula/functions/eq.js +2 -1
  22. package/dist/formula/functions/eq.js.map +1 -1
  23. package/dist/formula/functions/eq.spec.d.ts +2 -0
  24. package/dist/formula/functions/eq.spec.d.ts.map +1 -0
  25. package/dist/formula/functions/eq.spec.js +92 -0
  26. package/dist/formula/functions/eq.spec.js.map +1 -0
  27. package/dist/formula/functions/gt.d.ts.map +1 -1
  28. package/dist/formula/functions/gt.js +1 -2
  29. package/dist/formula/functions/gt.js.map +1 -1
  30. package/dist/formula/functions/gte.d.ts.map +1 -1
  31. package/dist/formula/functions/gte.js +1 -2
  32. package/dist/formula/functions/gte.js.map +1 -1
  33. package/dist/formula/functions/lt.d.ts.map +1 -1
  34. package/dist/formula/functions/lt.js +1 -2
  35. package/dist/formula/functions/lt.js.map +1 -1
  36. package/dist/formula/functions/lte.d.ts.map +1 -1
  37. package/dist/formula/functions/lte.js +1 -2
  38. package/dist/formula/functions/lte.js.map +1 -1
  39. package/dist/formula/functions/minus.d.ts.map +1 -1
  40. package/dist/formula/functions/minus.js +8 -2
  41. package/dist/formula/functions/minus.js.map +1 -1
  42. package/dist/formula/functions/ne.d.ts.map +1 -1
  43. package/dist/formula/functions/ne.js +2 -1
  44. package/dist/formula/functions/ne.js.map +1 -1
  45. package/dist/formula/functions/sumif.d.ts.map +1 -1
  46. package/dist/formula/functions/sumif.js +1 -0
  47. package/dist/formula/functions/sumif.js.map +1 -1
  48. package/dist/lib/autofill.js +5 -2
  49. package/dist/lib/autofill.js.map +1 -1
  50. package/dist/lib/time.d.ts.map +1 -1
  51. package/dist/lib/time.js +8 -4
  52. package/dist/lib/time.js.map +1 -1
  53. package/dist/parsers/core.d.ts.map +1 -1
  54. package/dist/parsers/core.js +20 -7
  55. package/dist/parsers/core.js.map +1 -1
  56. package/dist/renderers/core.d.ts.map +1 -1
  57. package/dist/renderers/core.js +9 -6
  58. package/dist/renderers/core.js.map +1 -1
  59. package/package.json +2 -3
@@ -15,4 +15,6 @@ export declare class Special {
15
15
  name: string;
16
16
  constructor(name: string);
17
17
  }
18
+ export declare const SECONDS_IN_DAY = 86400;
19
+ export declare const FULLDATE_FORMAT_UTC = "YYYY-MM-DDTHH:mm:ss.SSSZ";
18
20
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,kBAA6F,CAAC;AAMpH,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC,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,qBAAa,OAAO;IACX,IAAI,EAAE,MAAM,CAAC;gBACR,IAAI,EAAE,MAAM;CAGzB"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,kBAA6F,CAAC;AAMpH,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC,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,qBAAa,OAAO;IACX,IAAI,EAAE,MAAM,CAAC;gBACR,IAAI,EAAE,MAAM;CAGzB;AAED,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,eAAO,MAAM,mBAAmB,6BAA6B,CAAC"}
package/dist/constants.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Special = exports.DEFAULT_ALPHABET_CACHE_SIZE = exports.OVERSCAN_Y = exports.OVERSCAN_X = exports.MIN_HEIGHT = exports.MIN_WIDTH = exports.HEADER_WIDTH = exports.HEADER_HEIGHT = exports.SHEET_WIDTH = exports.SHEET_HEIGHT = exports.DEFAULT_WIDTH = exports.DEFAULT_HEIGHT = exports.HISTORY_LIMIT = exports.DUMMY_IMG = void 0;
3
+ exports.FULLDATE_FORMAT_UTC = exports.SECONDS_IN_DAY = exports.Special = exports.DEFAULT_ALPHABET_CACHE_SIZE = exports.OVERSCAN_Y = exports.OVERSCAN_X = exports.MIN_HEIGHT = exports.MIN_WIDTH = exports.HEADER_WIDTH = exports.HEADER_HEIGHT = exports.SHEET_WIDTH = exports.SHEET_HEIGHT = exports.DEFAULT_WIDTH = exports.DEFAULT_HEIGHT = exports.HISTORY_LIMIT = exports.DUMMY_IMG = void 0;
4
4
  const IMG_BASE64 = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';
5
5
  exports.DUMMY_IMG = (typeof window === 'undefined' ? null : document.createElement('img'));
6
6
  if (exports.DUMMY_IMG) {
@@ -24,4 +24,6 @@ class Special {
24
24
  }
25
25
  }
26
26
  exports.Special = Special;
27
+ exports.SECONDS_IN_DAY = 86400;
28
+ exports.FULLDATE_FORMAT_UTC = 'YYYY-MM-DDTHH:mm:ss.SSSZ';
27
29
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,MAAM,UAAU,GAAG,4EAA4E,CAAC;AAEnF,QAAA,SAAS,GAAG,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAqB,CAAC;AAEpH,IAAI,iBAAS,EAAE;IACb,iBAAS,CAAC,GAAG,GAAG,UAAU,CAAC;CAC5B;AAEY,QAAA,aAAa,GAAG,EAAE,CAAC;AAEnB,QAAA,cAAc,GAAG,EAAE,CAAC;AACpB,QAAA,aAAa,GAAG,EAAE,CAAC;AAEnB,QAAA,YAAY,GAAG,GAAG,CAAC;AACnB,QAAA,WAAW,GAAG,IAAI,CAAC;AAEnB,QAAA,aAAa,GAAG,EAAE,CAAC;AACnB,QAAA,YAAY,GAAG,EAAE,CAAC;AAElB,QAAA,SAAS,GAAG,CAAC,CAAC;AACd,QAAA,UAAU,GAAG,CAAC,CAAC;AAEf,QAAA,UAAU,GAAG,CAAC,CAAC;AACf,QAAA,UAAU,GAAG,EAAE,CAAC;AAEhB,QAAA,2BAA2B,GAAG,IAAI,CAAC;AAEhD,MAAa,OAAO;IAElB,YAAY,IAAY;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AALD,0BAKC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,MAAM,UAAU,GAAG,4EAA4E,CAAC;AAEnF,QAAA,SAAS,GAAG,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAqB,CAAC;AAEpH,IAAI,iBAAS,EAAE;IACb,iBAAS,CAAC,GAAG,GAAG,UAAU,CAAC;CAC5B;AAEY,QAAA,aAAa,GAAG,EAAE,CAAC;AAEnB,QAAA,cAAc,GAAG,EAAE,CAAC;AACpB,QAAA,aAAa,GAAG,EAAE,CAAC;AAEnB,QAAA,YAAY,GAAG,GAAG,CAAC;AACnB,QAAA,WAAW,GAAG,IAAI,CAAC;AAEnB,QAAA,aAAa,GAAG,EAAE,CAAC;AACnB,QAAA,YAAY,GAAG,EAAE,CAAC;AAElB,QAAA,SAAS,GAAG,CAAC,CAAC;AACd,QAAA,UAAU,GAAG,CAAC,CAAC;AAEf,QAAA,UAAU,GAAG,CAAC,CAAC;AACf,QAAA,UAAU,GAAG,EAAE,CAAC;AAEhB,QAAA,2BAA2B,GAAG,IAAI,CAAC;AAEhD,MAAa,OAAO;IAElB,YAAY,IAAY;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AALD,0BAKC;AAEY,QAAA,cAAc,GAAG,KAAK,CAAC;AACvB,QAAA,mBAAmB,GAAG,0BAA0B,CAAC"}
@@ -1,3 +1,9 @@
1
+ export declare const gt: (left: any, right: any) => boolean;
2
+ export declare const gte: (left: any, right: any) => boolean;
3
+ export declare const lt: (left: any, right: any) => boolean;
4
+ export declare const lte: (left: any, right: any) => boolean;
5
+ export declare const eq: (left: any, right: any) => boolean;
6
+ export declare const ne: (left: any, right: any) => boolean;
1
7
  export declare const ensureNumber: (value: any, alternative?: number) => number;
2
8
  export declare const ensureString: (value: any) => string;
3
9
  export declare const ensureBoolean: (value: any, alternative?: boolean) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"__utils.d.ts","sourceRoot":"","sources":["../../../src/formula/functions/__utils.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,UAAW,GAAG,gBAAgB,MAAM,KAAG,MAiB/D,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,GAAG,KAAG,MAsBzC,CAAC;AAEF,eAAO,MAAM,aAAa,UACjB,GAAG,gBAEI,OAAO,KACpB,OAmBF,CAAC;AAEF,eAAO,MAAM,UAAU,UAAW,GAAG,gCAKpC,CAAC;AAIF,eAAO,MAAM,KAAK,UAAW,GAAG,aAAa,MAAM,YAsClD,CAAC"}
1
+ {"version":3,"file":"__utils.d.ts","sourceRoot":"","sources":["../../../src/formula/functions/__utils.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,EAAE,SAAU,GAAG,SAAS,GAAG,KAAG,OAS1C,CAAC;AAEF,eAAO,MAAM,GAAG,SAAU,GAAG,SAAS,GAAG,KAAG,OAS3C,CAAC;AAEF,eAAO,MAAM,EAAE,SAAU,GAAG,SAAS,GAAG,KAAG,OAE1C,CAAC;AAEF,eAAO,MAAM,GAAG,SAAU,GAAG,SAAS,GAAG,KAAG,OAE3C,CAAC;AAEF,eAAO,MAAM,EAAE,SAAU,GAAG,SAAS,GAAG,KAAG,OAE1C,CAAC;AAEF,eAAO,MAAM,EAAE,SAAU,GAAG,SAAS,GAAG,KAAG,OAE1C,CAAA;AAED,eAAO,MAAM,YAAY,UAAW,GAAG,gBAAgB,MAAM,KAAG,MAoB/D,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,GAAG,KAAG,MAmBzC,CAAC;AAEF,eAAO,MAAM,aAAa,UACjB,GAAG,gBAEI,OAAO,KACpB,OAmBF,CAAC;AAEF,eAAO,MAAM,UAAU,UAAW,GAAG,gCAKpC,CAAC;AAIF,eAAO,MAAM,KAAK,UAAW,GAAG,aAAa,MAAM,KAAG,OAsCrD,CAAC"}
@@ -1,9 +1,54 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.check = exports.stripTable = exports.ensureBoolean = exports.ensureString = exports.ensureNumber = void 0;
6
+ exports.check = exports.stripTable = exports.ensureBoolean = exports.ensureString = exports.ensureNumber = exports.ne = exports.eq = exports.lte = exports.lt = exports.gte = exports.gt = void 0;
4
7
  const solver_1 = require("../solver");
5
8
  const table_1 = require("../../lib/table");
6
9
  const evaluator_1 = require("../evaluator");
10
+ const dayjs_1 = __importDefault(require("dayjs"));
11
+ const constants_1 = require("../../constants");
12
+ const gt = (left, right) => {
13
+ if (typeof left === 'string' || typeof right === 'string') {
14
+ return (0, exports.ensureString)(left) > (0, exports.ensureString)(right);
15
+ }
16
+ try {
17
+ return (0, exports.ensureNumber)(left) > (0, exports.ensureNumber)(right);
18
+ }
19
+ catch (_a) {
20
+ return false;
21
+ }
22
+ };
23
+ exports.gt = gt;
24
+ const gte = (left, right) => {
25
+ if (typeof left === 'string' || typeof right === 'string') {
26
+ return (0, exports.ensureString)(left) >= (0, exports.ensureString)(right);
27
+ }
28
+ try {
29
+ return (0, exports.ensureNumber)(left) >= (0, exports.ensureNumber)(right);
30
+ }
31
+ catch (_a) {
32
+ return false;
33
+ }
34
+ };
35
+ exports.gte = gte;
36
+ const lt = (left, right) => {
37
+ return !(0, exports.gte)(left, right);
38
+ };
39
+ exports.lt = lt;
40
+ const lte = (left, right) => {
41
+ return !(0, exports.gt)(left, right);
42
+ };
43
+ exports.lte = lte;
44
+ const eq = (left, right) => {
45
+ return (0, exports.ensureString)(left) === (0, exports.ensureString)(right);
46
+ };
47
+ exports.eq = eq;
48
+ const ne = (left, right) => {
49
+ return !(0, exports.eq)(left, right);
50
+ };
51
+ exports.ne = ne;
7
52
  const ensureNumber = (value, alternative) => {
8
53
  if (typeof value === 'undefined' && typeof alternative !== 'undefined') {
9
54
  return alternative;
@@ -16,6 +61,9 @@ const ensureNumber = (value, alternative) => {
16
61
  const v = (0, exports.stripTable)(value, 0, 0);
17
62
  return (0, exports.ensureNumber)(v, alternative);
18
63
  }
64
+ if (value instanceof Date) {
65
+ return value.getTime();
66
+ }
19
67
  const num = parseFloat(value);
20
68
  if (isNaN(num)) {
21
69
  throw new evaluator_1.FormulaError('#VALUE!', `${value} cannot be converted to a number`);
@@ -37,10 +85,7 @@ const ensureString = (value) => {
37
85
  switch (value.constructor.name) {
38
86
  case 'Date': {
39
87
  const d = value;
40
- if (d.getHours() + d.getMinutes() + d.getSeconds() === 0) {
41
- return d.toLocaleDateString();
42
- }
43
- return d.toLocaleString();
88
+ return (0, dayjs_1.default)(d).format(constants_1.FULLDATE_FORMAT_UTC);
44
89
  }
45
90
  default:
46
91
  return String(value);
@@ -75,42 +120,43 @@ const stripTable = (value, y = 0, x = 0) => {
75
120
  return value;
76
121
  };
77
122
  exports.stripTable = stripTable;
78
- const CONDITION_REGEX = /^(?<expr>|<=|>=|<>|>|<|=)?(?<target>.*)$/;
123
+ const CONDITION_REGEX = /^(<=|>=|<>|>|<|=)?(.*)$/;
79
124
  const check = (value, condition) => {
80
125
  const m = condition.match(CONDITION_REGEX);
81
126
  // eslint-disable-next-line no-unsafe-optional-chaining
82
127
  // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain
83
- const { expr = '', target = '' } = (m === null || m === void 0 ? void 0 : m.groups) || {};
84
- const comparison = parseFloat(target);
128
+ const [, expr = '', target = ''] = m || [];
129
+ let comparison = target;
85
130
  if (expr === '>' || expr === '<' || expr === '>=' || expr === '<=') {
86
- if (isNaN(comparison) === (typeof value === 'number')) {
87
- return false;
131
+ if (typeof value === 'number') {
132
+ comparison = parseFloat(target);
88
133
  }
89
134
  switch (expr) {
90
135
  case '>':
91
- return value > target;
136
+ return (0, exports.gt)(value, comparison);
92
137
  case '>=':
93
- return value >= target;
138
+ return (0, exports.gte)(value, comparison);
94
139
  case '<':
95
- return value < target;
140
+ return (0, exports.lt)(value, comparison);
96
141
  case '<=':
97
- return value <= target;
142
+ return (0, exports.lte)(value, comparison);
98
143
  }
99
144
  }
100
145
  const equals = expr === '' || expr === '=';
101
146
  if (target === '') {
102
- return !value === equals;
147
+ // empty target means "" or "<>"
148
+ return (value == null || value === '') === equals;
103
149
  }
104
- if (isNaN(comparison) && (typeof value === 'string' || value instanceof String)) {
150
+ if (typeof value === 'string' || value instanceof String) {
105
151
  const replaced = target
106
152
  .replace(/~\*/g, '(\\*)')
107
153
  .replace(/~\?/g, '(\\?)')
108
154
  .replace(/\*/g, '(.*)')
109
- .replace(/\?/g, '(.?)');
155
+ .replace(/\?/g, '(.)');
110
156
  const regex = RegExp(`^${replaced}$`, 'i');
111
157
  return regex.test(value) === equals;
112
158
  }
113
- return (value == comparison) === equals;
159
+ return (0, exports.eq)(value, comparison) === equals;
114
160
  };
115
161
  exports.check = check;
116
162
  //# sourceMappingURL=__utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"__utils.js","sourceRoot":"","sources":["../../../src/formula/functions/__utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"__utils.js","sourceRoot":"","sources":["../../../src/formula/functions/__utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/formula/functions/add.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,SAAe;IACtB,QAAQ,WAAgF;IACxF,QAAQ;;;QAGN;IAEF,SAAS,CAAC,QAAQ;IAYlB,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;CAwB5E"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/formula/functions/add.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,SAAe;IACtB,QAAQ,WAAgF;IACxF,QAAQ;;;QAGN;IAEF,SAAS,CAAC,QAAQ;IAYlB,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;CA4B5E"}
@@ -1,12 +1,16 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.AddFunction = void 0;
7
+ const dayjs_1 = __importDefault(require("dayjs"));
4
8
  const evaluator_1 = require("../evaluator");
5
9
  const __base_1 = require("./__base");
6
10
  const __utils_1 = require("./__utils");
7
11
  const table_1 = require("../../lib/table");
8
12
  const time_1 = require("../../lib/time");
9
- const date_fns_1 = require("date-fns");
13
+ const constants_1 = require("../../constants");
10
14
  class AddFunction extends __base_1.BaseFunction {
11
15
  constructor() {
12
16
  super(...arguments);
@@ -39,10 +43,14 @@ class AddFunction extends __base_1.BaseFunction {
39
43
  return v1.add(v2);
40
44
  }
41
45
  if (v1 instanceof Date && typeof v2 === 'number') {
42
- return (0, date_fns_1.addSeconds)(v1, v2);
46
+ return (0, dayjs_1.default)(v1)
47
+ .add(v2 * constants_1.SECONDS_IN_DAY, 'second')
48
+ .toDate();
43
49
  }
44
50
  if (typeof v1 === 'number' && v2 instanceof Date) {
45
- return (0, date_fns_1.addSeconds)(v2, v1);
51
+ return (0, dayjs_1.default)(v2)
52
+ .add(v1 * constants_1.SECONDS_IN_DAY, 'second')
53
+ .toDate();
46
54
  }
47
55
  if (!v1) {
48
56
  return v2;
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/formula/functions/add.ts"],"names":[],"mappings":";;;AAAA,4CAA4C;AAC5C,qCAAwC;AACxC,uCAAqD;AACrD,2CAAwC;AACxC,yCAA2C;AAC3C,uCAAsC;AAEtC,MAAa,WAAY,SAAQ,qBAAY;IAA7C;;QACE,YAAO,GAAG,WAAW,CAAC;QACtB,aAAQ,GAAG,CAAC,iCAAiC,EAAE,uCAAuC,CAAC,CAAC;QACxF,aAAQ,GAAG;YACT,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;YAClD,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;SACpD,CAAC;IAsCJ,CAAC;IApCW,QAAQ;QAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,MAAM,IAAI,wBAAY,CAAC,MAAM,EAAE,2CAA2C,CAAC,CAAC;SAC7E;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACxC,IAAI,GAAG,YAAY,aAAK,EAAE;gBACxB,GAAG,GAAG,IAAA,oBAAU,EAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;aAC7B;YACD,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,sBAAY,EAAC,GAAG,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC;IAES,IAAI,CAAC,EAA6B,EAAE,EAA6B;QACzE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;YACpD,OAAO,EAAE,GAAG,EAAE,CAAC;SAChB;QACD,IAAI,EAAE,YAAY,IAAI,IAAI,EAAE,YAAY,gBAAS,EAAE;YACjD,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACnB;QACD,IAAI,EAAE,YAAY,gBAAS,IAAI,EAAE,YAAY,IAAI,EAAE;YACjD,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACnB;QACD,IAAI,EAAE,YAAY,IAAI,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;YAChD,OAAO,IAAA,qBAAU,EAAC,EAAE,EAAE,EAAE,CAAC,CAAC;SAC3B;QACD,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,YAAY,IAAI,EAAE;YAChD,OAAO,IAAA,qBAAU,EAAC,EAAE,EAAE,EAAE,CAAC,CAAC;SAC3B;QACD,IAAI,CAAC,EAAE,EAAE;YACP,OAAO,EAAE,CAAC;SACX;QACD,IAAI,CAAC,EAAE,EAAE;YACP,OAAO,EAAE,CAAC;SACX;QACD,MAAM,IAAI,wBAAY,CAAC,SAAS,EAAE,yCAAyC,CAAC,CAAC;IAC/E,CAAC;CACF;AA5CD,kCA4CC"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/formula/functions/add.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,4CAA4C;AAC5C,qCAAwC;AACxC,uCAAqD;AACrD,2CAAwC;AACxC,yCAA2C;AAC3C,+CAAiD;AAEjD,MAAa,WAAY,SAAQ,qBAAY;IAA7C;;QACE,YAAO,GAAG,WAAW,CAAC;QACtB,aAAQ,GAAG,CAAC,iCAAiC,EAAE,uCAAuC,CAAC,CAAC;QACxF,aAAQ,GAAG;YACT,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;YAClD,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;SACpD,CAAC;IA0CJ,CAAC;IAxCW,QAAQ;QAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,MAAM,IAAI,wBAAY,CAAC,MAAM,EAAE,2CAA2C,CAAC,CAAC;SAC7E;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACxC,IAAI,GAAG,YAAY,aAAK,EAAE;gBACxB,GAAG,GAAG,IAAA,oBAAU,EAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;aAC7B;YACD,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,sBAAY,EAAC,GAAG,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC;IAES,IAAI,CAAC,EAA6B,EAAE,EAA6B;QACzE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;YACpD,OAAO,EAAE,GAAG,EAAE,CAAC;SAChB;QACD,IAAI,EAAE,YAAY,IAAI,IAAI,EAAE,YAAY,gBAAS,EAAE;YACjD,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACnB;QACD,IAAI,EAAE,YAAY,gBAAS,IAAI,EAAE,YAAY,IAAI,EAAE;YACjD,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACnB;QACD,IAAI,EAAE,YAAY,IAAI,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;YAChD,OAAO,IAAA,eAAK,EAAC,EAAE,CAAC;iBACb,GAAG,CAAC,EAAE,GAAG,0BAAc,EAAE,QAAQ,CAAC;iBAClC,MAAM,EAAE,CAAC;SACb;QACD,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,YAAY,IAAI,EAAE;YAChD,OAAO,IAAA,eAAK,EAAC,EAAE,CAAC;iBACb,GAAG,CAAC,EAAE,GAAG,0BAAc,EAAE,QAAQ,CAAC;iBAClC,MAAM,EAAE,CAAC;SACb;QACD,IAAI,CAAC,EAAE,EAAE;YACP,OAAO,EAAE,CAAC;SACX;QACD,IAAI,CAAC,EAAE,EAAE;YACP,OAAO,EAAE,CAAC;SACX;QACD,MAAM,IAAI,wBAAY,CAAC,SAAS,EAAE,yCAAyC,CAAC,CAAC;IAC/E,CAAC;CACF;AAhDD,kCAgDC"}
@@ -1 +1 @@
1
- {"version":3,"file":"countif.d.ts","sourceRoot":"","sources":["../../../src/formula/functions/countif.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,SAA2B;IAClC,QAAQ,WAA+C;IACvD,QAAQ;;;QAMN;IAEF,SAAS,CAAC,QAAQ;IAMlB,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM;CAI/C"}
1
+ {"version":3,"file":"countif.d.ts","sourceRoot":"","sources":["../../../src/formula/functions/countif.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,SAA2B;IAClC,QAAQ,WAA+C;IACvD,QAAQ;;;QAMN;IAEF,SAAS,CAAC,QAAQ;IAOlB,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM;CAI/C"}
@@ -22,6 +22,7 @@ class CountifFunction extends __base_1.BaseFunction {
22
22
  if (this.bareArgs.length !== 2) {
23
23
  throw new evaluator_1.FormulaError('#N/A', 'Number of arguments for COUNTIF is incorrect.');
24
24
  }
25
+ this.bareArgs[1] = (0, __utils_1.ensureString)(this.bareArgs[1]);
25
26
  }
26
27
  main(table, condition) {
27
28
  const matrix = (0, solver_1.solveTable)({ table });
@@ -1 +1 @@
1
- {"version":3,"file":"countif.js","sourceRoot":"","sources":["../../../src/formula/functions/countif.ts"],"names":[],"mappings":";;;AAAA,4CAA4C;AAC5C,sCAAuC;AAEvC,qCAAwC;AACxC,uCAAkC;AAElC,MAAa,eAAgB,SAAQ,qBAAY;IAAjD;;QACE,YAAO,GAAG,uBAAuB,CAAC;QAClC,aAAQ,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACvD,aAAQ,GAAG;YACT,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE;YAC/C;gBACE,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,wBAAwB;aACtC;SACF,CAAC;IAYJ,CAAC;IAVW,QAAQ;QAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,MAAM,IAAI,wBAAY,CAAC,MAAM,EAAE,+CAA+C,CAAC,CAAC;SACjF;IACH,CAAC;IAES,IAAI,CAAC,KAAY,EAAE,SAAiB;QAC5C,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAA,eAAK,EAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7F,CAAC;CACF;AArBD,0CAqBC"}
1
+ {"version":3,"file":"countif.js","sourceRoot":"","sources":["../../../src/formula/functions/countif.ts"],"names":[],"mappings":";;;AAAA,4CAA4C;AAC5C,sCAAuC;AAEvC,qCAAwC;AACxC,uCAAgD;AAEhD,MAAa,eAAgB,SAAQ,qBAAY;IAAjD;;QACE,YAAO,GAAG,uBAAuB,CAAC;QAClC,aAAQ,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACvD,aAAQ,GAAG;YACT,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE;YAC/C;gBACE,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,wBAAwB;aACtC;SACF,CAAC;IAaJ,CAAC;IAXW,QAAQ;QAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,MAAM,IAAI,wBAAY,CAAC,MAAM,EAAE,+CAA+C,CAAC,CAAC;SACjF;QACD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAA,sBAAY,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAES,IAAI,CAAC,KAAY,EAAE,SAAiB;QAC5C,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAA,eAAK,EAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7F,CAAC;CACF;AAtBD,0CAsBC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=countif.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countif.spec.d.ts","sourceRoot":"","sources":["../../../src/formula/functions/countif.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const countif_1 = require("./countif");
4
+ const table_1 = require("../../lib/table");
5
+ const evaluator_1 = require("../evaluator");
6
+ describe('countif', () => {
7
+ const table = new table_1.Table({});
8
+ table.initialize({
9
+ A1: { value: 1 },
10
+ B1: { value: 10 },
11
+ C1: { value: 3 },
12
+ D1: { value: 2 },
13
+ E1: { value: 3 },
14
+ A2: { value: 'a' },
15
+ B2: { value: 'aa' },
16
+ C2: { value: 'a日' },
17
+ D2: { value: 'abc' },
18
+ E2: { value: 'bb' },
19
+ A3: { value: new Date('2022-01-05T00:00:00.000Z') },
20
+ B3: { value: new Date('2022-01-03T00:00:00.000Z') },
21
+ C3: { value: new Date('2022-01-04T00:00:00.000Z') },
22
+ D3: { value: new Date('2022-01-04T00:00:00.000+09:00') },
23
+ A4: { value: null },
24
+ B4: { value: 0 },
25
+ C4: { value: '' },
26
+ D4: { value: false },
27
+ E4: { value: true },
28
+ });
29
+ describe('normal', () => {
30
+ it('eq', () => {
31
+ {
32
+ const f = new countif_1.CountifFunction({
33
+ table,
34
+ args: [new evaluator_1.RangeEntity('A1:E1'), new evaluator_1.ValueEntity('3')],
35
+ });
36
+ expect(f.call()).toBe(2);
37
+ }
38
+ {
39
+ const f = new countif_1.CountifFunction({
40
+ table,
41
+ args: [new evaluator_1.RangeEntity('A1:E1'), new evaluator_1.ValueEntity('=3')],
42
+ });
43
+ expect(f.call()).toBe(2);
44
+ }
45
+ {
46
+ const f = new countif_1.CountifFunction({
47
+ table,
48
+ args: [new evaluator_1.RangeEntity('A1:E1'), new evaluator_1.RefEntity('E1')],
49
+ });
50
+ expect(f.call()).toBe(2);
51
+ }
52
+ {
53
+ const f = new countif_1.CountifFunction({
54
+ table,
55
+ args: [new evaluator_1.RangeEntity('A2:E2'), new evaluator_1.ValueEntity('a*')],
56
+ });
57
+ expect(f.call()).toBe(4);
58
+ }
59
+ {
60
+ const f = new countif_1.CountifFunction({
61
+ table,
62
+ args: [new evaluator_1.RangeEntity('A2:E2'), new evaluator_1.ValueEntity('a?')],
63
+ });
64
+ expect(f.call()).toBe(2);
65
+ }
66
+ {
67
+ const f = new countif_1.CountifFunction({
68
+ table,
69
+ args: [new evaluator_1.RangeEntity('A2:E2'), new evaluator_1.ValueEntity('?b*')],
70
+ });
71
+ expect(f.call()).toBe(2);
72
+ }
73
+ {
74
+ const f = new countif_1.CountifFunction({
75
+ table,
76
+ args: [new evaluator_1.RangeEntity('A3:E3'), new evaluator_1.ValueEntity(new Date('2022-01-04T00:00:00.000Z'))],
77
+ });
78
+ expect(f.call()).toBe(1);
79
+ }
80
+ {
81
+ const f = new countif_1.CountifFunction({
82
+ table,
83
+ args: [new evaluator_1.RangeEntity('A4:E4'), new evaluator_1.ValueEntity('')],
84
+ });
85
+ expect(f.call()).toBe(2);
86
+ }
87
+ });
88
+ it('ne', () => {
89
+ {
90
+ const f = new countif_1.CountifFunction({
91
+ table,
92
+ args: [new evaluator_1.RangeEntity('A1:E1'), new evaluator_1.ValueEntity('<>3')],
93
+ });
94
+ expect(f.call()).toBe(3);
95
+ }
96
+ {
97
+ const f = new countif_1.CountifFunction({
98
+ table,
99
+ args: [new evaluator_1.RangeEntity('A2:E2'), new evaluator_1.ValueEntity('<>a*')],
100
+ });
101
+ expect(f.call()).toBe(1);
102
+ }
103
+ {
104
+ const f = new countif_1.CountifFunction({
105
+ table,
106
+ args: [new evaluator_1.RangeEntity('A4:E4'), new evaluator_1.ValueEntity('<>')],
107
+ });
108
+ expect(f.call()).toBe(3);
109
+ }
110
+ });
111
+ it('gt', () => {
112
+ {
113
+ const f = new countif_1.CountifFunction({
114
+ table,
115
+ args: [new evaluator_1.RangeEntity('A1:E1'), new evaluator_1.ValueEntity('>3')],
116
+ });
117
+ expect(f.call()).toBe(1);
118
+ }
119
+ {
120
+ const f = new countif_1.CountifFunction({
121
+ table,
122
+ args: [new evaluator_1.RangeEntity('A2:E2'), new evaluator_1.ValueEntity('>aa')],
123
+ });
124
+ expect(f.call()).toBe(3);
125
+ }
126
+ });
127
+ it('gte', () => {
128
+ {
129
+ const f = new countif_1.CountifFunction({
130
+ table,
131
+ args: [new evaluator_1.RangeEntity('A1:E1'), new evaluator_1.ValueEntity('>=3')],
132
+ });
133
+ expect(f.call()).toBe(3);
134
+ }
135
+ {
136
+ const f = new countif_1.CountifFunction({
137
+ table,
138
+ args: [new evaluator_1.RangeEntity('A2:E2'), new evaluator_1.ValueEntity('>=aa')],
139
+ });
140
+ expect(f.call()).toBe(4);
141
+ }
142
+ });
143
+ it('lt', () => {
144
+ {
145
+ const f = new countif_1.CountifFunction({
146
+ table,
147
+ args: [new evaluator_1.RangeEntity('A1:E1'), new evaluator_1.ValueEntity('<3')],
148
+ });
149
+ expect(f.call()).toBe(2);
150
+ }
151
+ {
152
+ const f = new countif_1.CountifFunction({
153
+ table,
154
+ args: [new evaluator_1.RangeEntity('A2:E2'), new evaluator_1.ValueEntity('<aa')],
155
+ });
156
+ expect(f.call()).toBe(1);
157
+ }
158
+ });
159
+ it('lte', () => {
160
+ {
161
+ const f = new countif_1.CountifFunction({
162
+ table,
163
+ args: [new evaluator_1.RangeEntity('A1:E1'), new evaluator_1.ValueEntity('<=3')],
164
+ });
165
+ expect(f.call()).toBe(4);
166
+ }
167
+ {
168
+ const f = new countif_1.CountifFunction({
169
+ table,
170
+ args: [new evaluator_1.RangeEntity('A2:E2'), new evaluator_1.ValueEntity('<=aa')],
171
+ });
172
+ expect(f.call()).toBe(2);
173
+ }
174
+ });
175
+ });
176
+ describe('validation error', () => {
177
+ it('missing argument', () => {
178
+ {
179
+ const f = new countif_1.CountifFunction({ table, args: [new evaluator_1.RangeEntity('A1:A3')] });
180
+ expect(f.call.bind(f)).toThrow(evaluator_1.FormulaError);
181
+ }
182
+ });
183
+ });
184
+ });
185
+ //# sourceMappingURL=countif.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countif.spec.js","sourceRoot":"","sources":["../../../src/formula/functions/countif.spec.ts"],"names":[],"mappings":";;AAAA,uCAA4C;AAC5C,2CAAwC;AACxC,4CAAiF;AAEjF,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC,EAAE,CAAC,CAAC;IAC5B,KAAK,CAAC,UAAU,CAAC;QACf,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;QAChB,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QACjB,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;QAChB,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;QAChB,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;QAChB,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;QAClB,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;QACnB,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;QACnB,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QACpB,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;QACnB,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,0BAA0B,CAAC,EAAE;QACnD,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,0BAA0B,CAAC,EAAE;QACnD,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,0BAA0B,CAAC,EAAE;QACnD,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,+BAA+B,CAAC,EAAE;QACxD,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;QACnB,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;QAChB,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QACjB,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QACpB,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;KACpB,CAAC,CAAC;IACH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE;YACZ;gBACE,MAAM,CAAC,GAAG,IAAI,yBAAe,CAAC;oBAC5B,KAAK;oBACL,IAAI,EAAE,CAAC,IAAI,uBAAW,CAAC,OAAO,CAAC,EAAE,IAAI,uBAAW,CAAC,GAAG,CAAC,CAAC;iBACvD,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1B;YACD;gBACE,MAAM,CAAC,GAAG,IAAI,yBAAe,CAAC;oBAC5B,KAAK;oBACL,IAAI,EAAE,CAAC,IAAI,uBAAW,CAAC,OAAO,CAAC,EAAE,IAAI,uBAAW,CAAC,IAAI,CAAC,CAAC;iBACxD,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1B;YACD;gBACE,MAAM,CAAC,GAAG,IAAI,yBAAe,CAAC;oBAC5B,KAAK;oBACL,IAAI,EAAE,CAAC,IAAI,uBAAW,CAAC,OAAO,CAAC,EAAE,IAAI,qBAAS,CAAC,IAAI,CAAC,CAAC;iBACtD,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1B;YACD;gBACE,MAAM,CAAC,GAAG,IAAI,yBAAe,CAAC;oBAC5B,KAAK;oBACL,IAAI,EAAE,CAAC,IAAI,uBAAW,CAAC,OAAO,CAAC,EAAE,IAAI,uBAAW,CAAC,IAAI,CAAC,CAAC;iBACxD,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1B;YACD;gBACE,MAAM,CAAC,GAAG,IAAI,yBAAe,CAAC;oBAC5B,KAAK;oBACL,IAAI,EAAE,CAAC,IAAI,uBAAW,CAAC,OAAO,CAAC,EAAE,IAAI,uBAAW,CAAC,IAAI,CAAC,CAAC;iBACxD,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1B;YACD;gBACE,MAAM,CAAC,GAAG,IAAI,yBAAe,CAAC;oBAC5B,KAAK;oBACL,IAAI,EAAE,CAAC,IAAI,uBAAW,CAAC,OAAO,CAAC,EAAE,IAAI,uBAAW,CAAC,KAAK,CAAC,CAAC;iBACzD,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1B;YACD;gBACE,MAAM,CAAC,GAAG,IAAI,yBAAe,CAAC;oBAC5B,KAAK;oBACL,IAAI,EAAE,CAAC,IAAI,uBAAW,CAAC,OAAO,CAAC,EAAE,IAAI,uBAAW,CAAC,IAAI,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;iBACxF,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1B;YACD;gBACE,MAAM,CAAC,GAAG,IAAI,yBAAe,CAAC;oBAC5B,KAAK;oBACL,IAAI,EAAE,CAAC,IAAI,uBAAW,CAAC,OAAO,CAAC,EAAE,IAAI,uBAAW,CAAC,EAAE,CAAC,CAAC;iBACtD,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE;YACZ;gBACE,MAAM,CAAC,GAAG,IAAI,yBAAe,CAAC;oBAC5B,KAAK;oBACL,IAAI,EAAE,CAAC,IAAI,uBAAW,CAAC,OAAO,CAAC,EAAE,IAAI,uBAAW,CAAC,KAAK,CAAC,CAAC;iBACzD,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1B;YACD;gBACE,MAAM,CAAC,GAAG,IAAI,yBAAe,CAAC;oBAC5B,KAAK;oBACL,IAAI,EAAE,CAAC,IAAI,uBAAW,CAAC,OAAO,CAAC,EAAE,IAAI,uBAAW,CAAC,MAAM,CAAC,CAAC;iBAC1D,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1B;YACD;gBACE,MAAM,CAAC,GAAG,IAAI,yBAAe,CAAC;oBAC5B,KAAK;oBACL,IAAI,EAAE,CAAC,IAAI,uBAAW,CAAC,OAAO,CAAC,EAAE,IAAI,uBAAW,CAAC,IAAI,CAAC,CAAC;iBACxD,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE;YACZ;gBACE,MAAM,CAAC,GAAG,IAAI,yBAAe,CAAC;oBAC5B,KAAK;oBACL,IAAI,EAAE,CAAC,IAAI,uBAAW,CAAC,OAAO,CAAC,EAAE,IAAI,uBAAW,CAAC,IAAI,CAAC,CAAC;iBACxD,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1B;YACD;gBACE,MAAM,CAAC,GAAG,IAAI,yBAAe,CAAC;oBAC5B,KAAK;oBACL,IAAI,EAAE,CAAC,IAAI,uBAAW,CAAC,OAAO,CAAC,EAAE,IAAI,uBAAW,CAAC,KAAK,CAAC,CAAC;iBACzD,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACb;gBACE,MAAM,CAAC,GAAG,IAAI,yBAAe,CAAC;oBAC5B,KAAK;oBACL,IAAI,EAAE,CAAC,IAAI,uBAAW,CAAC,OAAO,CAAC,EAAE,IAAI,uBAAW,CAAC,KAAK,CAAC,CAAC;iBACzD,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1B;YACD;gBACE,MAAM,CAAC,GAAG,IAAI,yBAAe,CAAC;oBAC5B,KAAK;oBACL,IAAI,EAAE,CAAC,IAAI,uBAAW,CAAC,OAAO,CAAC,EAAE,IAAI,uBAAW,CAAC,MAAM,CAAC,CAAC;iBAC1D,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE;YACZ;gBACE,MAAM,CAAC,GAAG,IAAI,yBAAe,CAAC;oBAC5B,KAAK;oBACL,IAAI,EAAE,CAAC,IAAI,uBAAW,CAAC,OAAO,CAAC,EAAE,IAAI,uBAAW,CAAC,IAAI,CAAC,CAAC;iBACxD,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1B;YACD;gBACE,MAAM,CAAC,GAAG,IAAI,yBAAe,CAAC;oBAC5B,KAAK;oBACL,IAAI,EAAE,CAAC,IAAI,uBAAW,CAAC,OAAO,CAAC,EAAE,IAAI,uBAAW,CAAC,KAAK,CAAC,CAAC;iBACzD,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACb;gBACE,MAAM,CAAC,GAAG,IAAI,yBAAe,CAAC;oBAC5B,KAAK;oBACL,IAAI,EAAE,CAAC,IAAI,uBAAW,CAAC,OAAO,CAAC,EAAE,IAAI,uBAAW,CAAC,KAAK,CAAC,CAAC;iBACzD,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1B;YACD;gBACE,MAAM,CAAC,GAAG,IAAI,yBAAe,CAAC;oBAC5B,KAAK;oBACL,IAAI,EAAE,CAAC,IAAI,uBAAW,CAAC,OAAO,CAAC,EAAE,IAAI,uBAAW,CAAC,MAAM,CAAC,CAAC;iBAC1D,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAC1B;gBACE,MAAM,CAAC,GAAG,IAAI,yBAAe,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,uBAAW,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC3E,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAY,CAAC,CAAC;aAC9C;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -7,6 +7,6 @@ export declare class EqFunction extends BaseFunction {
7
7
  description: string;
8
8
  }[];
9
9
  protected validate(): void;
10
- protected main(v1: number, v2: number): boolean;
10
+ protected main(v1: any, v2: any): boolean;
11
11
  }
12
12
  //# sourceMappingURL=eq.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"eq.d.ts","sourceRoot":"","sources":["../../../src/formula/functions/eq.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,SAAc;IACrB,QAAQ,WAGN;IACF,QAAQ;;;QAGN;IAEF,SAAS,CAAC,QAAQ;IAMlB,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;CAGtC"}
1
+ {"version":3,"file":"eq.d.ts","sourceRoot":"","sources":["../../../src/formula/functions/eq.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,SAAc;IACrB,QAAQ,WAGN;IACF,QAAQ;;;QAGN;IAEF,SAAS,CAAC,QAAQ;IAMlB,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG;CAGhC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EqFunction = void 0;
4
4
  const evaluator_1 = require("../evaluator");
5
5
  const __base_1 = require("./__base");
6
+ const __utils_1 = require("./__utils");
6
7
  class EqFunction extends __base_1.BaseFunction {
7
8
  constructor() {
8
9
  super(...arguments);
@@ -22,7 +23,7 @@ class EqFunction extends __base_1.BaseFunction {
22
23
  }
23
24
  }
24
25
  main(v1, v2) {
25
- return v1 === v2;
26
+ return (0, __utils_1.eq)(v1, v2);
26
27
  }
27
28
  }
28
29
  exports.EqFunction = EqFunction;
@@ -1 +1 @@
1
- {"version":3,"file":"eq.js","sourceRoot":"","sources":["../../../src/formula/functions/eq.ts"],"names":[],"mappings":";;;AAAA,4CAA4C;AAC5C,qCAAwC;AAExC,MAAa,UAAW,SAAQ,qBAAY;IAA5C;;QACE,YAAO,GAAG,UAAU,CAAC;QACrB,aAAQ,GAAG;YACT,4EAA4E;YAC5E,uCAAuC;SACxC,CAAC;QACF,aAAQ,GAAG;YACT,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;YAC/C,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE;SACvE,CAAC;IAWJ,CAAC;IATW,QAAQ;QAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,MAAM,IAAI,wBAAY,CAAC,MAAM,EAAE,0CAA0C,CAAC,CAAC;SAC5E;IACH,CAAC;IAES,IAAI,CAAC,EAAU,EAAE,EAAU;QACnC,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;CACF;AApBD,gCAoBC"}
1
+ {"version":3,"file":"eq.js","sourceRoot":"","sources":["../../../src/formula/functions/eq.ts"],"names":[],"mappings":";;;AAAA,4CAA4C;AAC5C,qCAAwC;AACxC,uCAA+B;AAE/B,MAAa,UAAW,SAAQ,qBAAY;IAA5C;;QACE,YAAO,GAAG,UAAU,CAAC;QACrB,aAAQ,GAAG;YACT,4EAA4E;YAC5E,uCAAuC;SACxC,CAAC;QACF,aAAQ,GAAG;YACT,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;YAC/C,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE;SACvE,CAAC;IAWJ,CAAC;IATW,QAAQ;QAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,MAAM,IAAI,wBAAY,CAAC,MAAM,EAAE,0CAA0C,CAAC,CAAC;SAC5E;IACH,CAAC;IAES,IAAI,CAAC,EAAO,EAAE,EAAO;QAC7B,OAAO,IAAA,YAAE,EAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACpB,CAAC;CACF;AApBD,gCAoBC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=eq.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eq.spec.d.ts","sourceRoot":"","sources":["../../../src/formula/functions/eq.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const eq_1 = require("./eq");
4
+ const table_1 = require("../../lib/table");
5
+ const evaluator_1 = require("../evaluator");
6
+ describe('eq', () => {
7
+ const table = new table_1.Table({});
8
+ table.initialize({
9
+ A1: { value: 101 },
10
+ A2: { value: 101 },
11
+ A3: { value: 103 },
12
+ B1: { value: 'abc' },
13
+ B2: { value: 'abcd' },
14
+ C1: { value: new Date('2022-05-23T12:34:56+09:00') },
15
+ C2: { value: new Date('2022-05-23T12:34:56.999+09:00') },
16
+ C3: { value: new Date('2022-05-23T12:34:56Z') },
17
+ D4: { value: '=1/0' },
18
+ E5: { value: null },
19
+ });
20
+ describe('normal', () => {
21
+ it('A1=101 is true', () => {
22
+ const f = new eq_1.EqFunction({
23
+ table,
24
+ args: [new evaluator_1.RefEntity('A1'), new evaluator_1.ValueEntity(101)],
25
+ });
26
+ expect(f.call()).toBe(true);
27
+ });
28
+ it('A1=A2 is true', () => {
29
+ const f = new eq_1.EqFunction({
30
+ table,
31
+ args: [new evaluator_1.RefEntity('A1'), new evaluator_1.RefEntity('A2')],
32
+ });
33
+ expect(f.call()).toBe(true);
34
+ });
35
+ it('A1=A3 is false', () => {
36
+ const f = new eq_1.EqFunction({
37
+ table,
38
+ args: [new evaluator_1.RefEntity('A1'), new evaluator_1.RefEntity('A3')],
39
+ });
40
+ expect(f.call()).toBe(false);
41
+ });
42
+ it('B1=abc is true', () => {
43
+ const f = new eq_1.EqFunction({
44
+ table,
45
+ args: [new evaluator_1.RefEntity('B1'), new evaluator_1.ValueEntity('abc')],
46
+ });
47
+ expect(f.call()).toBe(true);
48
+ });
49
+ it('B1=B2 is false', () => {
50
+ const f = new eq_1.EqFunction({
51
+ table,
52
+ args: [new evaluator_1.RefEntity('B1'), new evaluator_1.RefEntity('B2')],
53
+ });
54
+ expect(f.call()).toBe(false);
55
+ });
56
+ it('C1=raw date is true', () => {
57
+ const f = new eq_1.EqFunction({
58
+ table,
59
+ args: [new evaluator_1.RefEntity('C1'), new evaluator_1.ValueEntity(new Date('2022-05-23T12:34:56+09:00'))],
60
+ });
61
+ expect(f.call()).toBe(true);
62
+ });
63
+ it('C1=C2 is false', () => {
64
+ const f = new eq_1.EqFunction({
65
+ table,
66
+ args: [new evaluator_1.RefEntity('C1'), new evaluator_1.RefEntity('C2')],
67
+ });
68
+ expect(f.call()).toBe(false);
69
+ });
70
+ it('C1=C3 is false', () => {
71
+ const f = new eq_1.EqFunction({
72
+ table,
73
+ args: [new evaluator_1.RefEntity('C1'), new evaluator_1.RefEntity('C3')],
74
+ });
75
+ expect(f.call()).toBe(false);
76
+ });
77
+ it('null is blank', () => {
78
+ const f = new eq_1.EqFunction({
79
+ table,
80
+ args: [new evaluator_1.ValueEntity(null), new evaluator_1.ValueEntity('')],
81
+ });
82
+ expect(f.call()).toBe(true);
83
+ });
84
+ });
85
+ describe('validation error', () => {
86
+ it('missing argument', () => {
87
+ const f = new eq_1.EqFunction({ table, args: [] });
88
+ expect(f.call.bind(f)).toThrow(evaluator_1.FormulaError);
89
+ });
90
+ });
91
+ });
92
+ //# sourceMappingURL=eq.spec.js.map