Socket
Socket
Sign inDemoInstall

@antv/adjust

Package Overview
Dependencies
3
Maintainers
15
Versions
19
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.2.0 to 0.2.1-beta.1

esm/constant.d.ts

66

esm/adjusts/adjust.d.ts

@@ -1,37 +0,39 @@

import { AdjustCfg, DataPointType, RangeType } from '../interface';
import { AdjustCfg, Data, Range } from '../interface';
export declare type AdjustConstructor = new (cfg: any) => Adjust;
export interface DimValuesMapType {
[dim: string]: number[];
[dim: string]: number[];
}
export default abstract class Adjust {
cfg: AdjustCfg;
constructor(cfg: AdjustCfg);
/**
* 查看维度是否是 adjust 字段
* @param dim
*/
isAdjust(dim: string): boolean;
getAdjustRange(dim: string, dimValue: number, values: number[]): RangeType;
adjustData(groupedDataArray: DataPointType[][], mergedData: DataPointType[]): void;
/**
* 对数据进行分组adjustData
* @param data 数据
* @param dim 分组的字段
* @return 分组结果
*/
groupData(
data: DataPointType[],
dim: string
): {
[dim: string]: DataPointType[];
};
abstract process(dataArray: DataPointType[][]): DataPointType[][];
abstract adjustDim(dim: string, values: number[], data: DataPointType[], length?: number, index?: number): any;
/**
* @protected
* 获取可调整度量对应的值
* @param mergedData 数据
* @return 值的映射
*/
protected _getDimValues(mergedData: DataPointType[]): DimValuesMapType;
/** 参与调整的维度 */
adjustNames: string[];
/** x 维度对应的字段 */
readonly xField: string;
/** y 维度对应的字段 */
readonly yField: string;
constructor(cfg: AdjustCfg);
abstract process(dataArray: Data[][]): Data[][];
/**
* 查看维度是否是 adjust 字段
* @param dim
*/
isAdjust(dim: string): boolean;
protected getAdjustRange(dim: string, dimValue: number, values: number[]): Range;
protected adjustData(groupedDataArray: Data[][], mergedData: Data[]): void;
/**
* 对数据进行分组adjustData
* @param data 数据
* @param dim 分组的字段
* @return 分组结果
*/
protected groupData(data: Data[], dim: string): {
[dim: string]: Data[];
};
/** @override */
protected adjustDim(dim: string, values: number[], data: Data[], index?: number): void;
/**
* 获取可调整度量对应的值
* @param mergedData 数据
* @return 值的映射
*/
private getDimValues;
}

@@ -1,10 +0,9 @@

import * as tslib_1 from "tslib";
import * as _ from '@antv/util';
var DEFAULT_Y = 0; // 默认的 y 的值
import { DEFAULT_Y } from '../constant';
var Adjust = /** @class */ (function () {
function Adjust(cfg) {
this.cfg = {
adjustNames: ['x', 'y'],
};
this.cfg = tslib_1.__assign({}, this.cfg, cfg);
var xField = cfg.xField, yField = cfg.yField, _a = cfg.adjustNames, adjustNames = _a === void 0 ? ['x', 'y'] : _a;
this.adjustNames = adjustNames;
this.xField = xField;
this.yField = yField;
}

@@ -16,6 +15,6 @@ /**

Adjust.prototype.isAdjust = function (dim) {
return this.cfg.adjustNames.indexOf(dim) >= 0;
return this.adjustNames.indexOf(dim) >= 0;
};
Adjust.prototype.getAdjustRange = function (dim, dimValue, values) {
var yField = this.cfg.yField;
var yField = this.yField;
var index = values.indexOf(dimValue);

@@ -60,3 +59,3 @@ var length = values.length;

// 所有调整维度的值数组
var dimValuesMap = this._getDimValues(mergedData);
var dimValuesMap = this.getDimValues(mergedData);
// 按照每一个分组来进行调整

@@ -68,3 +67,3 @@ _.each(groupedDataArray, function (dataArray, index) {

// 根据不同的度量分别调整位置
_this.adjustDim(dim, values, dataArray, groupedDataArray.length, index);
_this.adjustDim(dim, values, dataArray, index);
});

@@ -89,4 +88,5 @@ });

};
/** @override */
Adjust.prototype.adjustDim = function (dim, values, data, index) { };
/**
* @protected
* 获取可调整度量对应的值

@@ -96,4 +96,4 @@ * @param mergedData 数据

*/
Adjust.prototype._getDimValues = function (mergedData) {
var _a = this.cfg, xField = _a.xField, yField = _a.yField;
Adjust.prototype.getDimValues = function (mergedData) {
var _a = this, xField = _a.xField, yField = _a.yField;
var dimValuesMap = {};

@@ -110,3 +110,2 @@ // 所有的维度

// 在每个维度上,所有的值
// @ts-ignore
dimValuesMap[dim] = _.valuesOfKey(mergedData, dim).sort(function (v1, v2) { return v1 - v2; });

@@ -113,0 +112,0 @@ });

@@ -1,15 +0,18 @@

import { DataPointType, DodgeCfg, RangeType } from '../interface';
import { Data, DodgeCfg } from '../interface';
import Adjust from './adjust';
export default class Dodge extends Adjust {
cacheMap: {
[key: string]: any;
};
adjustDataArray: DataPointType[][];
mergeData: DataPointType[];
cfg: DodgeCfg;
constructor(cfg: DodgeCfg);
process(groupDataArray: DataPointType[][]): DataPointType[][];
getDodgeOffset(range: RangeType, idx: number, len: number): number;
getDistribution(dim: string): any;
adjustDim(dim: string, values: number[], data: DataPointType[], frameCount: number, frameIndex: number): any[];
/** 调整占单位宽度的比例,例如:占 2 个分类间距的 1 / 2 */
readonly dodgeRatio: number;
/** 调整过程中 2 个数据的间距,以 dodgeRatio 为分母 */
readonly marginRatio: number;
/** 指定进行 dodge 的字段 */
readonly dodgeBy: string;
private cacheMap;
private adjustDataArray;
private mergeData;
constructor(cfg: DodgeCfg);
process(groupDataArray: Data[][]): Data[][];
protected adjustDim(dim: string, values: number[], data: Data[], frameIndex: number): any[];
private getDodgeOffset;
private getDistribution;
}

@@ -1,9 +0,7 @@

import * as tslib_1 from "tslib";
import { __extends } from "tslib";
import * as _ from '@antv/util';
import { DODGE_RATIO, MARGIN_RATIO } from '../constant';
import Adjust from './adjust';
// 偏移之后,间距
var MARGIN_RATIO = 1 / 2;
var DODGE_RATIO = 1 / 2;
var Dodge = /** @class */ (function (_super) {
tslib_1.__extends(Dodge, _super);
__extends(Dodge, _super);
function Dodge(cfg) {

@@ -14,12 +12,5 @@ var _this = _super.call(this, cfg) || this;

_this.mergeData = [];
_this.cfg = {
adjustNames: ['x', 'y'],
xField: '',
yField: '',
// 调整过程中,2个数据的间距
marginRatio: MARGIN_RATIO,
// 调整占单位宽度的比例,例如:占 2 个分类间距的 1 / 2
dodgeRatio: DODGE_RATIO,
};
_this.cfg = tslib_1.__assign({}, _this.cfg, cfg);
var _a = cfg.marginRatio, marginRatio = _a === void 0 ? MARGIN_RATIO : _a, _b = cfg.dodgeRatio, dodgeRatio = _b === void 0 ? DODGE_RATIO : _b;
_this.marginRatio = marginRatio;
_this.dodgeRatio = dodgeRatio;
return _this;

@@ -31,3 +22,3 @@ }

var mergeData = _.flatten(groupedDataArray);
var dodgeBy = this.cfg.dodgeBy;
var dodgeBy = this.dodgeBy;
// 如果指定了分组 dim 的字段

@@ -41,8 +32,32 @@ var adjustDataArray = dodgeBy ? _.group(mergeData, dodgeBy) : groupedDataArray;

this.mergeData = [];
// 下面不能注释掉,不然单测报错,我也不知道为啥 todo
// this.cacheMap = {};
return groupedDataArray;
};
Dodge.prototype.adjustDim = function (dim, values, data, frameIndex) {
var _this = this;
var map = this.getDistribution(dim);
var groupData = this.groupData(data, dim); // 根据值分组
_.each(groupData, function (group, key) {
var range;
// xField 中只有一个值,不需要做 dodge
if (values.length === 1) {
range = {
pre: values[0] - 1,
next: values[0] + 1,
};
}
else {
// 如果有多个,则需要获取调整的范围
range = _this.getAdjustRange(dim, parseFloat(key), values);
}
_.each(group, function (d) {
var value = d[dim];
var valueArr = map[value];
var valIndex = valueArr.indexOf(frameIndex);
d[dim] = _this.getDodgeOffset(range, valIndex, valueArr.length);
});
});
return [];
};
Dodge.prototype.getDodgeOffset = function (range, idx, len) {
var _a = this.cfg, dodgeRatio = _a.dodgeRatio, marginRatio = _a.marginRatio;
var _a = this, dodgeRatio = _a.dodgeRatio, marginRatio = _a.marginRatio;
var pre = range.pre, next = range.next;

@@ -80,28 +95,2 @@ var tickLength = next - pre;

};
Dodge.prototype.adjustDim = function (dim, values, data, frameCount, frameIndex) {
var _this = this;
var map = this.getDistribution(dim);
var groupData = this.groupData(data, dim); // 根据值分组
_.each(groupData, function (group, key) {
var range;
// xField 中只有一个值,不需要做 dodge
if (values.length === 1) {
range = {
pre: values[0] - 1,
next: values[0] + 1,
};
}
else {
// 如果有多个,则需要获取调整的范围
range = _this.getAdjustRange(dim, parseFloat(key), values);
}
_.each(group, function (d) {
var value = d[dim];
var valueArr = map[value];
var valIndex = valueArr.indexOf(frameIndex);
d[dim] = _this.getDodgeOffset(range, valIndex, valueArr.length);
});
});
return [];
};
return Dodge;

@@ -108,0 +97,0 @@ }(Adjust));

@@ -1,17 +0,14 @@

import { DataPointType, JitterCfg, RangeType } from '../interface';
import { Data } from '../interface';
import Adjust from './adjust';
export default class Jitter extends Adjust {
cfg: JitterCfg;
constructor(cfg: JitterCfg);
process(groupDataArray: DataPointType[][]): DataPointType[][];
randomNumber(min: number, max: number): number;
getAdjustOffset(range: RangeType): number;
_adjustGroup(group: DataPointType[], dim: string, dimValue: number, values: number[]): DataPointType[];
/**
* 当前数据分组(index)中,按照维度 dim 进行 jitter 调整
* @param dim
* @param values
* @param dataArray
*/
adjustDim(dim: string, values: number[], dataArray: DataPointType[]): void;
process(groupDataArray: Data[][]): Data[][];
/**
* 当前数据分组(index)中,按照维度 dim 进行 jitter 调整
* @param dim
* @param values
* @param dataArray
*/
protected adjustDim(dim: string, values: number[], dataArray: Data[]): void;
private getAdjustOffset;
private adjustGroup;
}

@@ -1,17 +0,12 @@

import * as tslib_1 from "tslib";
import { __extends } from "tslib";
import * as _ from '@antv/util';
import { GAP } from '../constant';
import Adjust from './adjust';
// 散点分开之后,距离边界的距离
var GAP = 0.05;
function randomNumber(min, max) {
return (max - min) * Math.random() + min;
}
var Jitter = /** @class */ (function (_super) {
tslib_1.__extends(Jitter, _super);
function Jitter(cfg) {
var _this = _super.call(this, cfg) || this;
_this.cfg = {
adjustNames: ['x', 'y'],
xField: '',
yField: '',
};
_this.cfg = tslib_1.__assign({}, _this.cfg, cfg);
return _this;
__extends(Jitter, _super);
function Jitter() {
return _super !== null && _super.apply(this, arguments) || this;
}

@@ -26,4 +21,15 @@ Jitter.prototype.process = function (groupDataArray) {

};
Jitter.prototype.randomNumber = function (min, max) {
return (max - min) * Math.random() + min;
/**
* 当前数据分组(index)中,按照维度 dim 进行 jitter 调整
* @param dim
* @param values
* @param dataArray
*/
Jitter.prototype.adjustDim = function (dim, values, dataArray) {
var _this = this;
// 在每一个分组中,将数据再按照 dim 分组,用于散列
var groupDataArray = this.groupData(dataArray, dim);
return _.each(groupDataArray, function (data, dimValue) {
return _this.adjustGroup(data, dim, parseFloat(dimValue), values);
});
};

@@ -35,6 +41,6 @@ // 随机出来的字段值

var margin = (next - pre) * GAP;
return this.randomNumber(pre + margin, next - margin);
return randomNumber(pre + margin, next - margin);
};
// adjust group data
Jitter.prototype._adjustGroup = function (group, dim, dimValue, values) {
Jitter.prototype.adjustGroup = function (group, dim, dimValue, values) {
var _this = this;

@@ -44,6 +50,2 @@ // 调整范围

_.each(group, function (data) {
// return {
// ...data,
// [dim]: this.getAdjustOffset(range); // 获取调整的位置
// }
data[dim] = _this.getAdjustOffset(range); // 获取调整的位置

@@ -53,16 +55,2 @@ });

};
/**
* 当前数据分组(index)中,按照维度 dim 进行 jitter 调整
* @param dim
* @param values
* @param dataArray
*/
Jitter.prototype.adjustDim = function (dim, values, dataArray) {
var _this = this;
// 在每一个分组中,将数据再按照 dim 分组,用于散列
var groupDataArray = this.groupData(dataArray, dim);
return _.each(groupDataArray, function (da, dimValue) {
return _this._adjustGroup(da, dim, parseFloat(dimValue), values);
});
};
return Jitter;

@@ -69,0 +57,0 @@ }(Adjust));

@@ -1,15 +0,16 @@

import { DataPointType, StackCfg } from '../interface';
import { Data, StackCfg } from '../interface';
import Adjust from './adjust';
export default class Stack extends Adjust {
cfg: StackCfg;
constructor(cfg: StackCfg);
_reverse(groupedDataArray: DataPointType[][]): DataPointType[][];
/**
* 方法入参是经过数据分组、数据数字化之后的二维数组
* @param groupDataArray 分组之后的数据
*/
process(groupDataArray: DataPointType[][]): DataPointType[][];
processStack(groupDataArray: DataPointType[][]): DataPointType[][];
processOneDimStack(groupDataArray: DataPointType[][]): DataPointType[][];
adjustDim(dim: string, values: number[], data: object[]): void;
readonly height: number;
readonly size: number;
readonly reverseOrder: boolean;
constructor(cfg: StackCfg);
/**
* 方法入参是经过数据分组、数据数字化之后的二维数组
* @param groupDataArray 分组之后的数据
*/
process(groupDataArray: Data[][]): Data[][];
private reverse;
private processStack;
private processOneDimStack;
}

@@ -1,2 +0,2 @@

import * as tslib_1 from "tslib";
import { __assign, __extends } from "tslib";
import * as _ from '@antv/util';

@@ -6,19 +6,12 @@ import Adjust from './adjust';

var Stack = /** @class */ (function (_super) {
tslib_1.__extends(Stack, _super);
__extends(Stack, _super);
function Stack(cfg) {
var _this = _super.call(this, cfg) || this;
_this.cfg = {
adjustNames: ['y'],
xField: '',
yField: '',
height: NaN,
size: 10,
reverseOrder: false,
};
_this.cfg = tslib_1.__assign({}, _this.cfg, cfg);
var _a = cfg.adjustNames, adjustNames = _a === void 0 ? ['y'] : _a, _b = cfg.height, height = _b === void 0 ? NaN : _b, _c = cfg.size, size = _c === void 0 ? 10 : _c, _d = cfg.reverseOrder, reverseOrder = _d === void 0 ? false : _d;
_this.adjustNames = adjustNames;
_this.height = height;
_this.size = size;
_this.reverseOrder = reverseOrder;
return _this;
}
Stack.prototype._reverse = function (groupedDataArray) {
return groupedDataArray.slice(0).reverse();
};
/**

@@ -29,12 +22,15 @@ * 方法入参是经过数据分组、数据数字化之后的二维数组

Stack.prototype.process = function (groupDataArray) {
var _a = this.cfg, yField = _a.yField, reverseOrder = _a.reverseOrder;
var _a = this, yField = _a.yField, reverseOrder = _a.reverseOrder;
// 如果有指定 y 字段,那么按照 y 字段来 stack
// 否则,按照高度均分
var d = yField ? this.processStack(groupDataArray) : this.processOneDimStack(groupDataArray);
return reverseOrder ? this._reverse(d) : d;
return reverseOrder ? this.reverse(d) : d;
};
Stack.prototype.reverse = function (groupedDataArray) {
return groupedDataArray.slice(0).reverse();
};
Stack.prototype.processStack = function (groupDataArray) {
var _a = this.cfg, xField = _a.xField, yField = _a.yField, reverseOrder = _a.reverseOrder;
var _a = this, xField = _a.xField, yField = _a.yField, reverseOrder = _a.reverseOrder;
// 层叠顺序翻转
var groupedDataArray = reverseOrder ? this._reverse(groupDataArray) : groupDataArray;
var groupedDataArray = reverseOrder ? this.reverse(groupDataArray) : groupDataArray;
// 用来缓存,正数和负数的堆叠问题

@@ -60,3 +56,3 @@ var positive = new Cache();

cache.set(xKey, newXValue);
return tslib_1.__assign({}, data, (_a = {}, _a[yField] = [xValue, newXValue], _a));
return __assign(__assign({}, data), (_a = {}, _a[yField] = [xValue, newXValue], _a));
}

@@ -68,11 +64,8 @@ // 没有修改,则直接返回

};
// todo 不明白画出来是什么含义
Stack.prototype.processOneDimStack = function (groupDataArray) {
var _this = this;
var _a = this.cfg, xField = _a.xField, height = _a.height, reverseOrder = _a.reverseOrder;
var yField = this.cfg.yField;
// todo processOneDimStack 必然是 yField 不存在
yField = 'y';
var _a = this, xField = _a.xField, height = _a.height, reverseOrder = _a.reverseOrder;
var yField = 'y';
// 如果层叠的顺序翻转
var groupedDataArray = reverseOrder ? this._reverse(groupDataArray) : groupDataArray;
var groupedDataArray = reverseOrder ? this.reverse(groupDataArray) : groupDataArray;
// 缓存累加数据

@@ -83,3 +76,3 @@ var cache = new Cache();

var _a;
var size = _this.cfg.size;
var size = _this.size;
var xValue = data[xField];

@@ -94,8 +87,6 @@ // todo 没有看到这个 stack 计算原理

cache.set(xValue, stackValue + stackHeight);
return tslib_1.__assign({}, data, (_a = {}, _a[yField] = stackValue, _a));
return __assign(__assign({}, data), (_a = {}, _a[yField] = stackValue, _a));
});
});
};
// 没有用到,空实现
Stack.prototype.adjustDim = function (dim, values, data) { };
return Stack;

@@ -102,0 +93,0 @@ }(Adjust));

@@ -1,14 +0,7 @@

import { DataPointType, SymmetricCfg } from '../interface';
import { Data } from '../interface';
import Adjust from './adjust';
export default class Symmetric extends Adjust {
cfg: SymmetricCfg;
constructor(cfg: SymmetricCfg);
process(groupDataArray: DataPointType[][]): DataPointType[][];
_getXValuesMaxMap(
mergeData: DataPointType[]
): {
[key: string]: number;
};
_getDimMaxValue(mergeData: DataPointType[], dim: string): number;
adjustDim(dim: string, values: number[], data: object[]): void;
process(groupDataArray: Data[][]): Data[][];
private getXValuesMaxMap;
private getDimMaxValue;
}

@@ -1,24 +0,15 @@

import * as tslib_1 from "tslib";
import { __assign, __extends } from "tslib";
import * as _ from '@antv/util';
import Adjust from './adjust';
var Symmetric = /** @class */ (function (_super) {
tslib_1.__extends(Symmetric, _super);
function Symmetric(cfg) {
var _this = _super.call(this, cfg) || this;
_this.cfg = {
adjustNames: [],
xField: '',
yField: '',
};
_this.cfg = tslib_1.__assign({}, _this.cfg, cfg);
return _this;
__extends(Symmetric, _super);
function Symmetric() {
return _super !== null && _super.apply(this, arguments) || this;
}
// 入口函数
Symmetric.prototype.process = function (groupDataArray) {
var mergeData = _.flatten(groupDataArray);
var _a = this.cfg, xField = _a.xField, yField = _a.yField;
var _a = this, xField = _a.xField, yField = _a.yField;
// 每个 x 值对应的 最大值
var cache = this._getXValuesMaxMap(mergeData);
var cache = this.getXValuesMaxMap(mergeData);
// 所有数据的最大的值
// const max = this._getDimMaxValue(mergeData, yField);
var max = Math.max.apply(Math, Object.keys(cache).map(function (key) { return cache[key]; }));

@@ -33,7 +24,7 @@ return _.map(groupDataArray, function (dataArray) {

var off_1 = (max - cache[xValue]) / 2;
return tslib_1.__assign({}, data, (_a = {}, _a[yField] = _.map(yValue, function (y) { return off_1 + y; }), _a));
return __assign(__assign({}, data), (_a = {}, _a[yField] = _.map(yValue, function (y) { return off_1 + y; }), _a));
}
// 非数组处理逻辑
var offset = (max - yValue) / 2;
return tslib_1.__assign({}, data, (_b = {}, _b[yField] = [offset, yValue + offset], _b));
return __assign(__assign({}, data), (_b = {}, _b[yField] = [offset, yValue + offset], _b));
});

@@ -43,11 +34,11 @@ });

// 获取每个 x 对应的最大的值
Symmetric.prototype._getXValuesMaxMap = function (mergeData) {
Symmetric.prototype.getXValuesMaxMap = function (mergeData) {
var _this = this;
var _a = this.cfg, xField = _a.xField, yField = _a.yField;
var _a = this, xField = _a.xField, yField = _a.yField;
// 根据 xField 的值进行分组
var groupDataArray = _.groupBy(mergeData, function (data) { return data[xField]; });
// 获取每个 xField 值中的最大值
return _.mapValues(groupDataArray, function (dataArray) { return _this._getDimMaxValue(dataArray, yField); });
return _.mapValues(groupDataArray, function (dataArray) { return _this.getDimMaxValue(dataArray, yField); });
};
Symmetric.prototype._getDimMaxValue = function (mergeData, dim) {
Symmetric.prototype.getDimMaxValue = function (mergeData, dim) {
// 所有的 value 值

@@ -60,4 +51,2 @@ var dimValues = _.map(mergeData, function (data) { return _.get(data, dim, []); });

};
// 没有用到,空实现
Symmetric.prototype.adjustDim = function (dim, values, data) { };
return Symmetric;

@@ -64,0 +53,0 @@ }(Adjust));

@@ -1,43 +0,34 @@

export interface AdjustBaseCfg {
readonly adjustNames: string[];
}
export interface AdjustCfg {
readonly adjustNames: string[];
readonly xField?: string;
readonly yField?: string;
readonly dodgeBy?: string;
readonly marginRatio?: number;
readonly dodgeRatio?: number;
readonly size?: number;
readonly height?: number;
readonly reverseOrder?: boolean;
readonly adjustNames?: string[];
readonly xField?: string;
readonly yField?: string;
readonly dodgeBy?: string;
readonly marginRatio?: number;
readonly dodgeRatio?: number;
readonly size?: number;
readonly height?: number;
readonly reverseOrder?: boolean;
}
export interface DodgeCfg extends AdjustBaseCfg {
readonly xField: string;
readonly yField: string;
readonly marginRatio: number;
readonly dodgeRatio: number;
readonly dodgeBy?: string;
export interface DodgeCfg {
readonly adjustNames?: string[];
readonly xField: string;
readonly yField?: string;
readonly marginRatio?: number;
readonly dodgeRatio?: number;
readonly dodgeBy?: string;
}
export interface JitterCfg extends AdjustBaseCfg {
readonly xField: string;
readonly yField: string;
export interface StackCfg {
readonly adjustNames?: string[];
readonly xField: string;
readonly yField?: string;
readonly height?: number;
readonly size?: number;
readonly reverseOrder?: boolean;
}
export interface StackCfg extends AdjustBaseCfg {
readonly xField: string;
readonly yField: string;
readonly height: number;
readonly size: number;
readonly reverseOrder: boolean;
export interface Data {
[key: string]: any;
}
export interface SymmetricCfg extends AdjustBaseCfg {
readonly xField: string;
readonly yField: string;
export interface Range {
pre: number;
next: number;
}
export interface DataPointType {
[key: string]: any;
}
export interface RangeType {
pre: number;
next: number;
}

@@ -1,37 +0,39 @@

import { AdjustCfg, DataPointType, RangeType } from '../interface';
import { AdjustCfg, Data, Range } from '../interface';
export declare type AdjustConstructor = new (cfg: any) => Adjust;
export interface DimValuesMapType {
[dim: string]: number[];
[dim: string]: number[];
}
export default abstract class Adjust {
cfg: AdjustCfg;
constructor(cfg: AdjustCfg);
/**
* 查看维度是否是 adjust 字段
* @param dim
*/
isAdjust(dim: string): boolean;
getAdjustRange(dim: string, dimValue: number, values: number[]): RangeType;
adjustData(groupedDataArray: DataPointType[][], mergedData: DataPointType[]): void;
/**
* 对数据进行分组adjustData
* @param data 数据
* @param dim 分组的字段
* @return 分组结果
*/
groupData(
data: DataPointType[],
dim: string
): {
[dim: string]: DataPointType[];
};
abstract process(dataArray: DataPointType[][]): DataPointType[][];
abstract adjustDim(dim: string, values: number[], data: DataPointType[], length?: number, index?: number): any;
/**
* @protected
* 获取可调整度量对应的值
* @param mergedData 数据
* @return 值的映射
*/
protected _getDimValues(mergedData: DataPointType[]): DimValuesMapType;
/** 参与调整的维度 */
adjustNames: string[];
/** x 维度对应的字段 */
readonly xField: string;
/** y 维度对应的字段 */
readonly yField: string;
constructor(cfg: AdjustCfg);
abstract process(dataArray: Data[][]): Data[][];
/**
* 查看维度是否是 adjust 字段
* @param dim
*/
isAdjust(dim: string): boolean;
protected getAdjustRange(dim: string, dimValue: number, values: number[]): Range;
protected adjustData(groupedDataArray: Data[][], mergedData: Data[]): void;
/**
* 对数据进行分组adjustData
* @param data 数据
* @param dim 分组的字段
* @return 分组结果
*/
protected groupData(data: Data[], dim: string): {
[dim: string]: Data[];
};
/** @override */
protected adjustDim(dim: string, values: number[], data: Data[], index?: number): void;
/**
* 获取可调整度量对应的值
* @param mergedData 数据
* @return 值的映射
*/
private getDimValues;
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var _ = require("@antv/util");
var DEFAULT_Y = 0; // 默认的 y 的值
var constant_1 = require("../constant");
var Adjust = /** @class */ (function () {
function Adjust(cfg) {
this.cfg = {
adjustNames: ['x', 'y'],
};
this.cfg = tslib_1.__assign({}, this.cfg, cfg);
var xField = cfg.xField, yField = cfg.yField, _a = cfg.adjustNames, adjustNames = _a === void 0 ? ['x', 'y'] : _a;
this.adjustNames = adjustNames;
this.xField = xField;
this.yField = yField;
}

@@ -18,6 +17,6 @@ /**

Adjust.prototype.isAdjust = function (dim) {
return this.cfg.adjustNames.indexOf(dim) >= 0;
return this.adjustNames.indexOf(dim) >= 0;
};
Adjust.prototype.getAdjustRange = function (dim, dimValue, values) {
var yField = this.cfg.yField;
var yField = this.yField;
var index = values.indexOf(dimValue);

@@ -62,3 +61,3 @@ var length = values.length;

// 所有调整维度的值数组
var dimValuesMap = this._getDimValues(mergedData);
var dimValuesMap = this.getDimValues(mergedData);
// 按照每一个分组来进行调整

@@ -70,3 +69,3 @@ _.each(groupedDataArray, function (dataArray, index) {

// 根据不同的度量分别调整位置
_this.adjustDim(dim, values, dataArray, groupedDataArray.length, index);
_this.adjustDim(dim, values, dataArray, index);
});

@@ -85,3 +84,3 @@ });

if (record[dim] === undefined) {
record[dim] = DEFAULT_Y;
record[dim] = constant_1.DEFAULT_Y;
}

@@ -92,4 +91,5 @@ });

};
/** @override */
Adjust.prototype.adjustDim = function (dim, values, data, index) { };
/**
* @protected
* 获取可调整度量对应的值

@@ -99,4 +99,4 @@ * @param mergedData 数据

*/
Adjust.prototype._getDimValues = function (mergedData) {
var _a = this.cfg, xField = _a.xField, yField = _a.yField;
Adjust.prototype.getDimValues = function (mergedData) {
var _a = this, xField = _a.xField, yField = _a.yField;
var dimValuesMap = {};

@@ -113,3 +113,2 @@ // 所有的维度

// 在每个维度上,所有的值
// @ts-ignore
dimValuesMap[dim] = _.valuesOfKey(mergedData, dim).sort(function (v1, v2) { return v1 - v2; });

@@ -120,3 +119,3 @@ });

var dim = 'y';
dimValuesMap[dim] = [DEFAULT_Y, 1]; // 默认分布在 y 轴的 0 与 1 之间
dimValuesMap[dim] = [constant_1.DEFAULT_Y, 1]; // 默认分布在 y 轴的 0 与 1 之间
}

@@ -123,0 +122,0 @@ return dimValuesMap;

@@ -1,15 +0,18 @@

import { DataPointType, DodgeCfg, RangeType } from '../interface';
import { Data, DodgeCfg } from '../interface';
import Adjust from './adjust';
export default class Dodge extends Adjust {
cacheMap: {
[key: string]: any;
};
adjustDataArray: DataPointType[][];
mergeData: DataPointType[];
cfg: DodgeCfg;
constructor(cfg: DodgeCfg);
process(groupDataArray: DataPointType[][]): DataPointType[][];
getDodgeOffset(range: RangeType, idx: number, len: number): number;
getDistribution(dim: string): any;
adjustDim(dim: string, values: number[], data: DataPointType[], frameCount: number, frameIndex: number): any[];
/** 调整占单位宽度的比例,例如:占 2 个分类间距的 1 / 2 */
readonly dodgeRatio: number;
/** 调整过程中 2 个数据的间距,以 dodgeRatio 为分母 */
readonly marginRatio: number;
/** 指定进行 dodge 的字段 */
readonly dodgeBy: string;
private cacheMap;
private adjustDataArray;
private mergeData;
constructor(cfg: DodgeCfg);
process(groupDataArray: Data[][]): Data[][];
protected adjustDim(dim: string, values: number[], data: Data[], frameIndex: number): any[];
private getDodgeOffset;
private getDistribution;
}

@@ -5,6 +5,4 @@ "use strict";

var _ = require("@antv/util");
var constant_1 = require("../constant");
var adjust_1 = require("./adjust");
// 偏移之后,间距
var MARGIN_RATIO = 1 / 2;
var DODGE_RATIO = 1 / 2;
var Dodge = /** @class */ (function (_super) {

@@ -17,12 +15,5 @@ tslib_1.__extends(Dodge, _super);

_this.mergeData = [];
_this.cfg = {
adjustNames: ['x', 'y'],
xField: '',
yField: '',
// 调整过程中,2个数据的间距
marginRatio: MARGIN_RATIO,
// 调整占单位宽度的比例,例如:占 2 个分类间距的 1 / 2
dodgeRatio: DODGE_RATIO,
};
_this.cfg = tslib_1.__assign({}, _this.cfg, cfg);
var _a = cfg.marginRatio, marginRatio = _a === void 0 ? constant_1.MARGIN_RATIO : _a, _b = cfg.dodgeRatio, dodgeRatio = _b === void 0 ? constant_1.DODGE_RATIO : _b;
_this.marginRatio = marginRatio;
_this.dodgeRatio = dodgeRatio;
return _this;

@@ -34,3 +25,3 @@ }

var mergeData = _.flatten(groupedDataArray);
var dodgeBy = this.cfg.dodgeBy;
var dodgeBy = this.dodgeBy;
// 如果指定了分组 dim 的字段

@@ -44,8 +35,32 @@ var adjustDataArray = dodgeBy ? _.group(mergeData, dodgeBy) : groupedDataArray;

this.mergeData = [];
// 下面不能注释掉,不然单测报错,我也不知道为啥 todo
// this.cacheMap = {};
return groupedDataArray;
};
Dodge.prototype.adjustDim = function (dim, values, data, frameIndex) {
var _this = this;
var map = this.getDistribution(dim);
var groupData = this.groupData(data, dim); // 根据值分组
_.each(groupData, function (group, key) {
var range;
// xField 中只有一个值,不需要做 dodge
if (values.length === 1) {
range = {
pre: values[0] - 1,
next: values[0] + 1,
};
}
else {
// 如果有多个,则需要获取调整的范围
range = _this.getAdjustRange(dim, parseFloat(key), values);
}
_.each(group, function (d) {
var value = d[dim];
var valueArr = map[value];
var valIndex = valueArr.indexOf(frameIndex);
d[dim] = _this.getDodgeOffset(range, valIndex, valueArr.length);
});
});
return [];
};
Dodge.prototype.getDodgeOffset = function (range, idx, len) {
var _a = this.cfg, dodgeRatio = _a.dodgeRatio, marginRatio = _a.marginRatio;
var _a = this, dodgeRatio = _a.dodgeRatio, marginRatio = _a.marginRatio;
var pre = range.pre, next = range.next;

@@ -83,28 +98,2 @@ var tickLength = next - pre;

};
Dodge.prototype.adjustDim = function (dim, values, data, frameCount, frameIndex) {
var _this = this;
var map = this.getDistribution(dim);
var groupData = this.groupData(data, dim); // 根据值分组
_.each(groupData, function (group, key) {
var range;
// xField 中只有一个值,不需要做 dodge
if (values.length === 1) {
range = {
pre: values[0] - 1,
next: values[0] + 1,
};
}
else {
// 如果有多个,则需要获取调整的范围
range = _this.getAdjustRange(dim, parseFloat(key), values);
}
_.each(group, function (d) {
var value = d[dim];
var valueArr = map[value];
var valIndex = valueArr.indexOf(frameIndex);
d[dim] = _this.getDodgeOffset(range, valIndex, valueArr.length);
});
});
return [];
};
return Dodge;

@@ -111,0 +100,0 @@ }(adjust_1.default));

@@ -1,17 +0,14 @@

import { DataPointType, JitterCfg, RangeType } from '../interface';
import { Data } from '../interface';
import Adjust from './adjust';
export default class Jitter extends Adjust {
cfg: JitterCfg;
constructor(cfg: JitterCfg);
process(groupDataArray: DataPointType[][]): DataPointType[][];
randomNumber(min: number, max: number): number;
getAdjustOffset(range: RangeType): number;
_adjustGroup(group: DataPointType[], dim: string, dimValue: number, values: number[]): DataPointType[];
/**
* 当前数据分组(index)中,按照维度 dim 进行 jitter 调整
* @param dim
* @param values
* @param dataArray
*/
adjustDim(dim: string, values: number[], dataArray: DataPointType[]): void;
process(groupDataArray: Data[][]): Data[][];
/**
* 当前数据分组(index)中,按照维度 dim 进行 jitter 调整
* @param dim
* @param values
* @param dataArray
*/
protected adjustDim(dim: string, values: number[], dataArray: Data[]): void;
private getAdjustOffset;
private adjustGroup;
}

@@ -5,16 +5,11 @@ "use strict";

var _ = require("@antv/util");
var constant_1 = require("../constant");
var adjust_1 = require("./adjust");
// 散点分开之后,距离边界的距离
var GAP = 0.05;
function randomNumber(min, max) {
return (max - min) * Math.random() + min;
}
var Jitter = /** @class */ (function (_super) {
tslib_1.__extends(Jitter, _super);
function Jitter(cfg) {
var _this = _super.call(this, cfg) || this;
_this.cfg = {
adjustNames: ['x', 'y'],
xField: '',
yField: '',
};
_this.cfg = tslib_1.__assign({}, _this.cfg, cfg);
return _this;
function Jitter() {
return _super !== null && _super.apply(this, arguments) || this;
}

@@ -29,4 +24,15 @@ Jitter.prototype.process = function (groupDataArray) {

};
Jitter.prototype.randomNumber = function (min, max) {
return (max - min) * Math.random() + min;
/**
* 当前数据分组(index)中,按照维度 dim 进行 jitter 调整
* @param dim
* @param values
* @param dataArray
*/
Jitter.prototype.adjustDim = function (dim, values, dataArray) {
var _this = this;
// 在每一个分组中,将数据再按照 dim 分组,用于散列
var groupDataArray = this.groupData(dataArray, dim);
return _.each(groupDataArray, function (data, dimValue) {
return _this.adjustGroup(data, dim, parseFloat(dimValue), values);
});
};

@@ -37,7 +43,7 @@ // 随机出来的字段值

// 随机的范围
var margin = (next - pre) * GAP;
return this.randomNumber(pre + margin, next - margin);
var margin = (next - pre) * constant_1.GAP;
return randomNumber(pre + margin, next - margin);
};
// adjust group data
Jitter.prototype._adjustGroup = function (group, dim, dimValue, values) {
Jitter.prototype.adjustGroup = function (group, dim, dimValue, values) {
var _this = this;

@@ -47,6 +53,2 @@ // 调整范围

_.each(group, function (data) {
// return {
// ...data,
// [dim]: this.getAdjustOffset(range); // 获取调整的位置
// }
data[dim] = _this.getAdjustOffset(range); // 获取调整的位置

@@ -56,16 +58,2 @@ });

};
/**
* 当前数据分组(index)中,按照维度 dim 进行 jitter 调整
* @param dim
* @param values
* @param dataArray
*/
Jitter.prototype.adjustDim = function (dim, values, dataArray) {
var _this = this;
// 在每一个分组中,将数据再按照 dim 分组,用于散列
var groupDataArray = this.groupData(dataArray, dim);
return _.each(groupDataArray, function (da, dimValue) {
return _this._adjustGroup(da, dim, parseFloat(dimValue), values);
});
};
return Jitter;

@@ -72,0 +60,0 @@ }(adjust_1.default));

@@ -1,15 +0,16 @@

import { DataPointType, StackCfg } from '../interface';
import { Data, StackCfg } from '../interface';
import Adjust from './adjust';
export default class Stack extends Adjust {
cfg: StackCfg;
constructor(cfg: StackCfg);
_reverse(groupedDataArray: DataPointType[][]): DataPointType[][];
/**
* 方法入参是经过数据分组、数据数字化之后的二维数组
* @param groupDataArray 分组之后的数据
*/
process(groupDataArray: DataPointType[][]): DataPointType[][];
processStack(groupDataArray: DataPointType[][]): DataPointType[][];
processOneDimStack(groupDataArray: DataPointType[][]): DataPointType[][];
adjustDim(dim: string, values: number[], data: object[]): void;
readonly height: number;
readonly size: number;
readonly reverseOrder: boolean;
constructor(cfg: StackCfg);
/**
* 方法入参是经过数据分组、数据数字化之后的二维数组
* @param groupDataArray 分组之后的数据
*/
process(groupDataArray: Data[][]): Data[][];
private reverse;
private processStack;
private processOneDimStack;
}

@@ -11,16 +11,9 @@ "use strict";

var _this = _super.call(this, cfg) || this;
_this.cfg = {
adjustNames: ['y'],
xField: '',
yField: '',
height: NaN,
size: 10,
reverseOrder: false,
};
_this.cfg = tslib_1.__assign({}, _this.cfg, cfg);
var _a = cfg.adjustNames, adjustNames = _a === void 0 ? ['y'] : _a, _b = cfg.height, height = _b === void 0 ? NaN : _b, _c = cfg.size, size = _c === void 0 ? 10 : _c, _d = cfg.reverseOrder, reverseOrder = _d === void 0 ? false : _d;
_this.adjustNames = adjustNames;
_this.height = height;
_this.size = size;
_this.reverseOrder = reverseOrder;
return _this;
}
Stack.prototype._reverse = function (groupedDataArray) {
return groupedDataArray.slice(0).reverse();
};
/**

@@ -31,12 +24,15 @@ * 方法入参是经过数据分组、数据数字化之后的二维数组

Stack.prototype.process = function (groupDataArray) {
var _a = this.cfg, yField = _a.yField, reverseOrder = _a.reverseOrder;
var _a = this, yField = _a.yField, reverseOrder = _a.reverseOrder;
// 如果有指定 y 字段,那么按照 y 字段来 stack
// 否则,按照高度均分
var d = yField ? this.processStack(groupDataArray) : this.processOneDimStack(groupDataArray);
return reverseOrder ? this._reverse(d) : d;
return reverseOrder ? this.reverse(d) : d;
};
Stack.prototype.reverse = function (groupedDataArray) {
return groupedDataArray.slice(0).reverse();
};
Stack.prototype.processStack = function (groupDataArray) {
var _a = this.cfg, xField = _a.xField, yField = _a.yField, reverseOrder = _a.reverseOrder;
var _a = this, xField = _a.xField, yField = _a.yField, reverseOrder = _a.reverseOrder;
// 层叠顺序翻转
var groupedDataArray = reverseOrder ? this._reverse(groupDataArray) : groupDataArray;
var groupedDataArray = reverseOrder ? this.reverse(groupDataArray) : groupDataArray;
// 用来缓存,正数和负数的堆叠问题

@@ -62,3 +58,3 @@ var positive = new Cache();

cache.set(xKey, newXValue);
return tslib_1.__assign({}, data, (_a = {}, _a[yField] = [xValue, newXValue], _a));
return tslib_1.__assign(tslib_1.__assign({}, data), (_a = {}, _a[yField] = [xValue, newXValue], _a));
}

@@ -70,11 +66,8 @@ // 没有修改,则直接返回

};
// todo 不明白画出来是什么含义
Stack.prototype.processOneDimStack = function (groupDataArray) {
var _this = this;
var _a = this.cfg, xField = _a.xField, height = _a.height, reverseOrder = _a.reverseOrder;
var yField = this.cfg.yField;
// todo processOneDimStack 必然是 yField 不存在
yField = 'y';
var _a = this, xField = _a.xField, height = _a.height, reverseOrder = _a.reverseOrder;
var yField = 'y';
// 如果层叠的顺序翻转
var groupedDataArray = reverseOrder ? this._reverse(groupDataArray) : groupDataArray;
var groupedDataArray = reverseOrder ? this.reverse(groupDataArray) : groupDataArray;
// 缓存累加数据

@@ -85,3 +78,3 @@ var cache = new Cache();

var _a;
var size = _this.cfg.size;
var size = _this.size;
var xValue = data[xField];

@@ -96,8 +89,6 @@ // todo 没有看到这个 stack 计算原理

cache.set(xValue, stackValue + stackHeight);
return tslib_1.__assign({}, data, (_a = {}, _a[yField] = stackValue, _a));
return tslib_1.__assign(tslib_1.__assign({}, data), (_a = {}, _a[yField] = stackValue, _a));
});
});
};
// 没有用到,空实现
Stack.prototype.adjustDim = function (dim, values, data) { };
return Stack;

@@ -104,0 +95,0 @@ }(adjust_1.default));

@@ -1,14 +0,7 @@

import { DataPointType, SymmetricCfg } from '../interface';
import { Data } from '../interface';
import Adjust from './adjust';
export default class Symmetric extends Adjust {
cfg: SymmetricCfg;
constructor(cfg: SymmetricCfg);
process(groupDataArray: DataPointType[][]): DataPointType[][];
_getXValuesMaxMap(
mergeData: DataPointType[]
): {
[key: string]: number;
};
_getDimMaxValue(mergeData: DataPointType[], dim: string): number;
adjustDim(dim: string, values: number[], data: object[]): void;
process(groupDataArray: Data[][]): Data[][];
private getXValuesMaxMap;
private getDimMaxValue;
}

@@ -8,20 +8,11 @@ "use strict";

tslib_1.__extends(Symmetric, _super);
function Symmetric(cfg) {
var _this = _super.call(this, cfg) || this;
_this.cfg = {
adjustNames: [],
xField: '',
yField: '',
};
_this.cfg = tslib_1.__assign({}, _this.cfg, cfg);
return _this;
function Symmetric() {
return _super !== null && _super.apply(this, arguments) || this;
}
// 入口函数
Symmetric.prototype.process = function (groupDataArray) {
var mergeData = _.flatten(groupDataArray);
var _a = this.cfg, xField = _a.xField, yField = _a.yField;
var _a = this, xField = _a.xField, yField = _a.yField;
// 每个 x 值对应的 最大值
var cache = this._getXValuesMaxMap(mergeData);
var cache = this.getXValuesMaxMap(mergeData);
// 所有数据的最大的值
// const max = this._getDimMaxValue(mergeData, yField);
var max = Math.max.apply(Math, Object.keys(cache).map(function (key) { return cache[key]; }));

@@ -36,7 +27,7 @@ return _.map(groupDataArray, function (dataArray) {

var off_1 = (max - cache[xValue]) / 2;
return tslib_1.__assign({}, data, (_a = {}, _a[yField] = _.map(yValue, function (y) { return off_1 + y; }), _a));
return tslib_1.__assign(tslib_1.__assign({}, data), (_a = {}, _a[yField] = _.map(yValue, function (y) { return off_1 + y; }), _a));
}
// 非数组处理逻辑
var offset = (max - yValue) / 2;
return tslib_1.__assign({}, data, (_b = {}, _b[yField] = [offset, yValue + offset], _b));
return tslib_1.__assign(tslib_1.__assign({}, data), (_b = {}, _b[yField] = [offset, yValue + offset], _b));
});

@@ -46,11 +37,11 @@ });

// 获取每个 x 对应的最大的值
Symmetric.prototype._getXValuesMaxMap = function (mergeData) {
Symmetric.prototype.getXValuesMaxMap = function (mergeData) {
var _this = this;
var _a = this.cfg, xField = _a.xField, yField = _a.yField;
var _a = this, xField = _a.xField, yField = _a.yField;
// 根据 xField 的值进行分组
var groupDataArray = _.groupBy(mergeData, function (data) { return data[xField]; });
// 获取每个 xField 值中的最大值
return _.mapValues(groupDataArray, function (dataArray) { return _this._getDimMaxValue(dataArray, yField); });
return _.mapValues(groupDataArray, function (dataArray) { return _this.getDimMaxValue(dataArray, yField); });
};
Symmetric.prototype._getDimMaxValue = function (mergeData, dim) {
Symmetric.prototype.getDimMaxValue = function (mergeData, dim) {
// 所有的 value 值

@@ -63,4 +54,2 @@ var dimValues = _.map(mergeData, function (data) { return _.get(data, dim, []); });

};
// 没有用到,空实现
Symmetric.prototype.adjustDim = function (dim, values, data) { };
return Symmetric;

@@ -67,0 +56,0 @@ }(adjust_1.default));

@@ -1,43 +0,34 @@

export interface AdjustBaseCfg {
readonly adjustNames: string[];
}
export interface AdjustCfg {
readonly adjustNames: string[];
readonly xField?: string;
readonly yField?: string;
readonly dodgeBy?: string;
readonly marginRatio?: number;
readonly dodgeRatio?: number;
readonly size?: number;
readonly height?: number;
readonly reverseOrder?: boolean;
readonly adjustNames?: string[];
readonly xField?: string;
readonly yField?: string;
readonly dodgeBy?: string;
readonly marginRatio?: number;
readonly dodgeRatio?: number;
readonly size?: number;
readonly height?: number;
readonly reverseOrder?: boolean;
}
export interface DodgeCfg extends AdjustBaseCfg {
readonly xField: string;
readonly yField: string;
readonly marginRatio: number;
readonly dodgeRatio: number;
readonly dodgeBy?: string;
export interface DodgeCfg {
readonly adjustNames?: string[];
readonly xField: string;
readonly yField?: string;
readonly marginRatio?: number;
readonly dodgeRatio?: number;
readonly dodgeBy?: string;
}
export interface JitterCfg extends AdjustBaseCfg {
readonly xField: string;
readonly yField: string;
export interface StackCfg {
readonly adjustNames?: string[];
readonly xField: string;
readonly yField?: string;
readonly height?: number;
readonly size?: number;
readonly reverseOrder?: boolean;
}
export interface StackCfg extends AdjustBaseCfg {
readonly xField: string;
readonly yField: string;
readonly height: number;
readonly size: number;
readonly reverseOrder: boolean;
export interface Data {
[key: string]: any;
}
export interface SymmetricCfg extends AdjustBaseCfg {
readonly xField: string;
readonly yField: string;
export interface Range {
pre: number;
next: number;
}
export interface DataPointType {
[key: string]: any;
}
export interface RangeType {
pre: number;
next: number;
}
{
"name": "@antv/adjust",
"version": "0.2.0",
"version": "0.2.1-beta.1",
"description": "The adjust module for G2, F2.",

@@ -14,22 +14,8 @@ "main": "lib/index.js",

],
"devDependencies": {
"@antv/scale": "~0.2.0",
"@antv/torch": "~1.0.5",
"chai": "~4.1.2",
"husky": "^3.0.4",
"npm-run-all": "^4.1.5",
"prettier": "^1.18.2",
"tslint": "^5.18.0",
"tslint-config-prettier": "^1.18.0",
"typescript": "^3.5.3",
"rimraf": "^3.0.0"
},
"scripts": {
"clean": "rimraf lib esm",
"lint": "run-s lint:*",
"lint:tslint": "tslint -c tslint.json 'src/**/*.ts'",
"lint:prettier": "prettier --list-different 'src/**/*.{ts,tsx,js,jsx}'",
"test": "torch --renderer --compile --recursive ./__tests__/",
"test-live": "torch --compile --interactive --watch --recursive ./__tests__/",
"coverage": "exit 0",
"lint": "lint-staged",
"test": "jest",
"test-live": "DEBUG_MODE=1 jest",
"coverage": "jest --coverage",
"lib:cjs": "tsc -p tsconfig.json --target ES5 --module commonjs --outDir lib",

@@ -39,3 +25,4 @@ "lib:esm": "tsc -p tsconfig.json --target ES5 --module ESNext --outDir esm",

"build": "run-s clean lib",
"ci": "run-s lint build test"
"ci": "run-s build coverage",
"coveralls": "cat ./coverage/lcov.info | coveralls"
},

@@ -46,2 +33,19 @@ "dependencies": {

},
"devDependencies": {
"@antv/scale": "~0.2.0",
"@types/jest": "^24.0.18",
"husky": "^3.0.4",
"jest": "^24.9.0",
"jest-electron": "^0.1.7",
"jest-extended": "^0.11.2",
"lint-staged": "^9.2.3",
"npm-run-all": "^4.1.5",
"prettier": "^1.18.2",
"rimraf": "^3.0.0",
"ts-jest": "^24.1.0",
"tslint": "^5.18.0",
"tslint-config-prettier": "^1.18.0",
"typescript": "^3.5.3",
"coveralls": "^3.0.6"
},
"husky": {

@@ -52,2 +56,25 @@ "hooks": {

},
"lint-staged": {
"*.{js,css,json,md}": [
"prettier --write",
"git add"
],
"*.{ts}": [
"tslint -c tslint.json --fix",
"prettier --write",
"git add"
]
},
"jest": {
"runner": "jest-electron/runner",
"testEnvironment": "jest-electron/environment",
"preset": "ts-jest",
"collectCoverage": false,
"collectCoverageFrom": [
"src/**/*.{ts,js}",
"!**/node_modules/**",
"!**/vendor/**"
],
"testRegex": "/tests/.*-spec\\.ts?$"
},
"repository": {

@@ -54,0 +81,0 @@ "type": "git",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc