@formant/ava 3.4.9-formant → 3.4.16-formant

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.
@@ -4,6 +4,8 @@ import { first, last, maxBy, minBy } from 'lodash';
4
4
  import { generateTextSpec } from '../../../ntv';
5
5
  import { InsightNarrativeStrategy } from './base';
6
6
  import { getDiffDesc } from './helpers';
7
+ import { formatDateRange } from "little-date";
8
+ import { formatDate } from 'date-fns';
7
9
  var variableMetaMap = {
8
10
  dateRange: {
9
11
  varType: 'time_desc',
@@ -44,7 +46,7 @@ var TimeSeriesOutlierNarrativeStrategy = /** @class */ (function (_super) {
44
46
  var spec = generateTextSpec({
45
47
  structures: TimeSeriesOutlierNarrativeStrategy.structures[lang],
46
48
  variable: {
47
- dateRange: "".concat(first(data)[dimension], "~").concat(last(data)[dimension]),
49
+ dateRange: "".concat(formatDateRange(new Date(first(data)[dimension]), new Date(last(data)[dimension]), { includeTime: false })),
48
50
  total: patterns.length,
49
51
  measure: measure,
50
52
  max: maxBy(data, measure)[measure],
@@ -52,7 +54,7 @@ var TimeSeriesOutlierNarrativeStrategy = /** @class */ (function (_super) {
52
54
  outliers: patterns.map(function (point) {
53
55
  var base = point.baselines[point.index];
54
56
  var diff = point.y - base;
55
- return __assign(__assign({}, point), { base: base, diffDesc: getDiffDesc(diff, lang), diff: diff });
57
+ return __assign(__assign({}, point), { base: base, diffDesc: getDiffDesc(diff, lang), x: formatDate(new Date(point.x), 'MMM d, yyyy'), diff: diff });
56
58
  }),
57
59
  },
58
60
  });
@@ -3,6 +3,7 @@ import { __extends } from "tslib";
3
3
  import { first, last } from 'lodash';
4
4
  import { generateTextSpec } from '../../../ntv';
5
5
  import { InsightNarrativeStrategy } from './base';
6
+ import { formatDateRange } from "little-date";
6
7
  var trendMapping = {
7
8
  decreasing: '下降',
8
9
  increasing: '上升',
@@ -27,12 +28,14 @@ var TrendNarrativeStrategy = /** @class */ (function (_super) {
27
28
  TrendNarrativeStrategy.prototype.generateTextSpec = function (insightInfo, lang) {
28
29
  var patterns = insightInfo.patterns, data = insightInfo.data;
29
30
  var _a = patterns[0], dimension = _a.dimension, measure = _a.measure, trend = _a.trend;
31
+ var regression = patterns[0].regression;
30
32
  var spec = generateTextSpec({
31
33
  structures: TrendNarrativeStrategy.structures[lang],
32
34
  variable: {
33
- dateRange: "".concat(first(data)[dimension], "~").concat(last(data)[dimension]),
35
+ dateRange: "".concat(formatDateRange(new Date(first(data)[dimension]), new Date(last(data)[dimension]), { includeTime: false })),
34
36
  measure: measure,
35
37
  trend: lang === 'en-US' ? trend : trendMapping[trend],
38
+ slope: regression.equation[0],
36
39
  },
37
40
  });
38
41
  return spec.sections[0].paragraphs;
@@ -47,7 +50,7 @@ var TrendNarrativeStrategy = /** @class */ (function (_super) {
47
50
  ],
48
51
  'en-US': [
49
52
  {
50
- template: 'In ${dateRange}, the ${measure} is ${trend}.',
53
+ template: 'There is a signifcant ${trend} trend for ${measure} during ${dateRange} with a slope of ${slope}X.',
51
54
  variableMetaMap: variableMetaMap,
52
55
  },
53
56
  ],
@@ -6,6 +6,8 @@ var lodash_1 = require("lodash");
6
6
  var ntv_1 = require("../../../ntv");
7
7
  var base_1 = require("./base");
8
8
  var helpers_1 = require("./helpers");
9
+ var little_date_1 = require("little-date");
10
+ var date_fns_1 = require("date-fns");
9
11
  var variableMetaMap = {
10
12
  dateRange: {
11
13
  varType: 'time_desc',
@@ -46,7 +48,7 @@ var TimeSeriesOutlierNarrativeStrategy = /** @class */ (function (_super) {
46
48
  var spec = (0, ntv_1.generateTextSpec)({
47
49
  structures: TimeSeriesOutlierNarrativeStrategy.structures[lang],
48
50
  variable: {
49
- dateRange: "".concat((0, lodash_1.first)(data)[dimension], "~").concat((0, lodash_1.last)(data)[dimension]),
51
+ dateRange: "".concat((0, little_date_1.formatDateRange)(new Date((0, lodash_1.first)(data)[dimension]), new Date((0, lodash_1.last)(data)[dimension]), { includeTime: false })),
50
52
  total: patterns.length,
51
53
  measure: measure,
52
54
  max: (0, lodash_1.maxBy)(data, measure)[measure],
@@ -54,7 +56,7 @@ var TimeSeriesOutlierNarrativeStrategy = /** @class */ (function (_super) {
54
56
  outliers: patterns.map(function (point) {
55
57
  var base = point.baselines[point.index];
56
58
  var diff = point.y - base;
57
- return tslib_1.__assign(tslib_1.__assign({}, point), { base: base, diffDesc: (0, helpers_1.getDiffDesc)(diff, lang), diff: diff });
59
+ return tslib_1.__assign(tslib_1.__assign({}, point), { base: base, diffDesc: (0, helpers_1.getDiffDesc)(diff, lang), x: (0, date_fns_1.formatDate)(new Date(point.x), 'MMM d, yyyy'), diff: diff });
58
60
  }),
59
61
  },
60
62
  });
@@ -5,6 +5,7 @@ var tslib_1 = require("tslib");
5
5
  var lodash_1 = require("lodash");
6
6
  var ntv_1 = require("../../../ntv");
7
7
  var base_1 = require("./base");
8
+ var little_date_1 = require("little-date");
8
9
  var trendMapping = {
9
10
  decreasing: '下降',
10
11
  increasing: '上升',
@@ -29,12 +30,14 @@ var TrendNarrativeStrategy = /** @class */ (function (_super) {
29
30
  TrendNarrativeStrategy.prototype.generateTextSpec = function (insightInfo, lang) {
30
31
  var patterns = insightInfo.patterns, data = insightInfo.data;
31
32
  var _a = patterns[0], dimension = _a.dimension, measure = _a.measure, trend = _a.trend;
33
+ var regression = patterns[0].regression;
32
34
  var spec = (0, ntv_1.generateTextSpec)({
33
35
  structures: TrendNarrativeStrategy.structures[lang],
34
36
  variable: {
35
- dateRange: "".concat((0, lodash_1.first)(data)[dimension], "~").concat((0, lodash_1.last)(data)[dimension]),
37
+ dateRange: "".concat((0, little_date_1.formatDateRange)(new Date((0, lodash_1.first)(data)[dimension]), new Date((0, lodash_1.last)(data)[dimension]), { includeTime: false })),
36
38
  measure: measure,
37
39
  trend: lang === 'en-US' ? trend : trendMapping[trend],
40
+ slope: regression.equation[0],
38
41
  },
39
42
  });
40
43
  return spec.sections[0].paragraphs;
@@ -49,7 +52,7 @@ var TrendNarrativeStrategy = /** @class */ (function (_super) {
49
52
  ],
50
53
  'en-US': [
51
54
  {
52
- template: 'In ${dateRange}, the ${measure} is ${trend}.',
55
+ template: 'There is a signifcant ${trend} trend for ${measure} during ${dateRange} with a slope of ${slope}X.',
53
56
  variableMetaMap: variableMetaMap,
54
57
  },
55
58
  ],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@formant/ava",
3
- "version": "3.4.9-formant",
3
+ "version": "3.4.16-formant",
4
4
  "description": "A framework for automated visual analytics.",
5
5
  "author": {
6
6
  "name": "formant",
@@ -59,19 +59,21 @@
59
59
  "@antv/smart-color": "^0.2.1",
60
60
  "bayesian-changepoint": "^1.0.1",
61
61
  "csstype": "^3.1.2",
62
+ "date-fns": "^4.1.0",
62
63
  "heap-js": "^2.1.6",
63
- "lodash": "^4.17.21",
64
+ "little-date": "^1.0.0",
64
65
  "regression": "^2.0.1",
65
- "tslib": "^2.3.1"
66
+ "tslib": "^2.3.1",
67
+ "twix": "^1.3.0"
66
68
  },
67
69
  "devDependencies": {
68
70
  "@antv/algorithm": "^0.1.25",
69
71
  "@antv/color-schema": "^0.2.3",
70
72
  "@antv/data-samples": "^1.0.1",
71
73
  "@stdlib/types": "^0.0.12",
74
+ "@testing-library/jest-dom": "^4.2.4",
72
75
  "@types/d3-array": "^3.0.1",
73
76
  "@types/jest": "^23.3.12",
74
- "@testing-library/jest-dom": "^4.2.4",
75
77
  "@types/lodash": "^4.14.171",
76
78
  "@types/numeral": "^2.0.2",
77
79
  "eslint": "^7.32.0",