timeline-chart 0.3.0-next.f3add09.0 → 0.3.1
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.
- package/README.md +12 -7
- package/lib/bigint-utils.d.ts +1 -0
- package/lib/bigint-utils.js +6 -0
- package/lib/bigint-utils.js.map +1 -1
- package/lib/components/time-graph-annotation.d.ts +9 -2
- package/lib/components/time-graph-annotation.js +15 -2
- package/lib/components/time-graph-annotation.js.map +1 -1
- package/lib/components/time-graph-arrow.d.ts +0 -1
- package/lib/components/time-graph-arrow.js +1 -5
- package/lib/components/time-graph-arrow.js.map +1 -1
- package/lib/components/time-graph-axis-scale.d.ts +4 -1
- package/lib/components/time-graph-axis-scale.js +41 -12
- package/lib/components/time-graph-axis-scale.js.map +1 -1
- package/lib/components/time-graph-component.d.ts +8 -7
- package/lib/components/time-graph-component.js +11 -1
- package/lib/components/time-graph-component.js.map +1 -1
- package/lib/components/time-graph-row.d.ts +33 -3
- package/lib/components/time-graph-row.js +42 -5
- package/lib/components/time-graph-row.js.map +1 -1
- package/lib/components/time-graph-state.d.ts +14 -2
- package/lib/components/time-graph-state.js +77 -37
- package/lib/components/time-graph-state.js.map +1 -1
- package/lib/layer/time-graph-axis.d.ts +2 -0
- package/lib/layer/time-graph-axis.js +4 -1
- package/lib/layer/time-graph-axis.js.map +1 -1
- package/lib/layer/time-graph-chart-arrows.d.ts +6 -2
- package/lib/layer/time-graph-chart-arrows.js +31 -12
- package/lib/layer/time-graph-chart-arrows.js.map +1 -1
- package/lib/layer/time-graph-chart-cursors.d.ts +3 -4
- package/lib/layer/time-graph-chart-cursors.js +34 -60
- package/lib/layer/time-graph-chart-cursors.js.map +1 -1
- package/lib/layer/time-graph-chart-grid.d.ts +1 -1
- package/lib/layer/time-graph-chart-grid.js +4 -2
- package/lib/layer/time-graph-chart-grid.js.map +1 -1
- package/lib/layer/time-graph-chart-layer.d.ts +2 -2
- package/lib/layer/time-graph-chart-layer.js +2 -2
- package/lib/layer/time-graph-chart-layer.js.map +1 -1
- package/lib/layer/time-graph-chart-selection-range.d.ts +2 -3
- package/lib/layer/time-graph-chart-selection-range.js +13 -10
- package/lib/layer/time-graph-chart-selection-range.js.map +1 -1
- package/lib/layer/time-graph-chart.d.ts +67 -22
- package/lib/layer/time-graph-chart.js +434 -171
- package/lib/layer/time-graph-chart.js.map +1 -1
- package/lib/layer/time-graph-layer.d.ts +2 -1
- package/lib/layer/time-graph-layer.js +14 -4
- package/lib/layer/time-graph-layer.js.map +1 -1
- package/lib/layer/time-graph-markers-chart-cursors.d.ts +5 -0
- package/lib/layer/time-graph-markers-chart-cursors.js +78 -0
- package/lib/layer/time-graph-markers-chart-cursors.js.map +1 -0
- package/lib/layer/time-graph-navigator.d.ts +1 -1
- package/lib/layer/time-graph-navigator.js +48 -10
- package/lib/layer/time-graph-navigator.js.map +1 -1
- package/lib/layer/time-graph-range-events-layer.d.ts +3 -3
- package/lib/layer/time-graph-range-events-layer.js +9 -9
- package/lib/layer/time-graph-range-events-layer.js.map +1 -1
- package/lib/layer/time-graph-vertical-scrollbar.d.ts +5 -0
- package/lib/layer/time-graph-vertical-scrollbar.js +65 -14
- package/lib/layer/time-graph-vertical-scrollbar.js.map +1 -1
- package/lib/layer/time-graph-viewport-layer.d.ts +19 -0
- package/lib/layer/time-graph-viewport-layer.js +70 -0
- package/lib/layer/time-graph-viewport-layer.js.map +1 -0
- package/lib/time-graph-container.d.ts +5 -2
- package/lib/time-graph-container.js +19 -0
- package/lib/time-graph-container.js.map +1 -1
- package/lib/time-graph-font-controller.d.ts +16 -5
- package/lib/time-graph-font-controller.js +48 -16
- package/lib/time-graph-font-controller.js.map +1 -1
- package/lib/time-graph-render-controller.d.ts +12 -0
- package/lib/time-graph-render-controller.js +57 -0
- package/lib/time-graph-render-controller.js.map +1 -0
- package/lib/time-graph-row-controller.d.ts +9 -2
- package/lib/time-graph-row-controller.js +41 -2
- package/lib/time-graph-row-controller.js.map +1 -1
- package/lib/time-graph-state-controller.d.ts +33 -6
- package/lib/time-graph-state-controller.js +121 -10
- package/lib/time-graph-state-controller.js.map +1 -1
- package/lib/time-graph-unit-controller.d.ts +14 -4
- package/lib/time-graph-unit-controller.js +27 -4
- package/lib/time-graph-unit-controller.js.map +1 -1
- package/package.json +20 -5
- package/src/bigint-utils.ts +7 -0
- package/src/components/time-graph-annotation.ts +18 -3
- package/src/components/time-graph-arrow.ts +1 -6
- package/src/components/time-graph-axis-scale.ts +51 -13
- package/src/components/time-graph-component.ts +14 -3
- package/src/components/time-graph-row.ts +50 -6
- package/src/components/time-graph-state.ts +84 -36
- package/src/layer/time-graph-axis.ts +7 -2
- package/src/layer/time-graph-chart-arrows.ts +33 -12
- package/src/layer/time-graph-chart-cursors.ts +39 -60
- package/src/layer/time-graph-chart-grid.ts +4 -2
- package/src/layer/time-graph-chart-layer.ts +4 -4
- package/src/layer/time-graph-chart-selection-range.ts +14 -12
- package/src/layer/time-graph-chart.ts +446 -205
- package/src/layer/time-graph-layer.ts +13 -4
- package/src/layer/time-graph-markers-chart-cursors.ts +66 -0
- package/src/layer/time-graph-navigator.ts +51 -13
- package/src/layer/time-graph-range-events-layer.ts +10 -10
- package/src/layer/time-graph-vertical-scrollbar.ts +68 -14
- package/src/layer/time-graph-viewport-layer.ts +57 -0
- package/src/time-graph-container.ts +25 -3
- package/src/time-graph-font-controller.ts +57 -16
- package/src/time-graph-render-controller.ts +65 -0
- package/src/time-graph-row-controller.ts +50 -7
- package/src/time-graph-state-controller.ts +128 -14
- package/src/time-graph-unit-controller.ts +38 -8
- package/jest.config.json +0 -26
- package/lib/components/__tests__/time-graph-arrow.test.d.ts +0 -1
- package/lib/components/__tests__/time-graph-arrow.test.js +0 -26
- package/lib/components/__tests__/time-graph-arrow.test.js.map +0 -1
- package/lib/components/__tests__/time-graph-axis-cursor.test.d.ts +0 -1
- package/lib/components/__tests__/time-graph-axis-cursor.test.js +0 -17
- package/lib/components/__tests__/time-graph-axis-cursor.test.js.map +0 -1
- package/lib/components/__tests__/time-graph-axis-scale.test.d.ts +0 -1
- package/lib/components/__tests__/time-graph-axis-scale.test.js +0 -33
- package/lib/components/__tests__/time-graph-axis-scale.test.js.map +0 -1
- package/src/components/__tests__/__snapshots__/time-graph-arrow.test.ts.snap +0 -1067
- package/src/components/__tests__/__snapshots__/time-graph-axis-cursor.test.ts.snap +0 -535
- package/src/components/__tests__/time-graph-arrow.test.ts +0 -26
- package/src/components/__tests__/time-graph-axis-cursor.test.ts +0 -17
- package/src/components/__tests__/time-graph-axis-scale.test.ts +0 -34
- package/tsconfig.json +0 -28
|
@@ -9,16 +9,28 @@ export interface TimeGraphStateStyle {
|
|
|
9
9
|
height?: number;
|
|
10
10
|
borderWidth?: number;
|
|
11
11
|
borderColor?: number;
|
|
12
|
+
scale?: number;
|
|
12
13
|
}
|
|
13
14
|
export declare class TimeGraphStateComponent extends TimeGraphComponent<TimelineChart.TimeGraphState> {
|
|
14
15
|
protected _row: TimeGraphRow;
|
|
15
16
|
protected _style: TimeGraphStateStyle;
|
|
16
17
|
protected displayWidth: number;
|
|
18
|
+
protected scaleFactor: number;
|
|
17
19
|
static fontController: FontController;
|
|
18
20
|
protected _options: TimeGraphStyledRect;
|
|
19
|
-
|
|
21
|
+
private textLabelObject;
|
|
22
|
+
constructor(id: string, model: TimelineChart.TimeGraphState, xStart: number, xEnd: number, _row: TimeGraphRow, _style: TimeGraphStateStyle, displayWidth: number, scaleFactor: number, displayObject?: PIXI.Graphics);
|
|
23
|
+
/**
|
|
24
|
+
* Conveniently generate the labels of states and apply proper scaling when zooming
|
|
25
|
+
*/
|
|
20
26
|
renderLabel(): void;
|
|
21
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Scale only state labels that actually have text displayed.
|
|
29
|
+
*
|
|
30
|
+
* @param scaleFactor
|
|
31
|
+
*/
|
|
32
|
+
scaleLabel(scaleFactor: number): void;
|
|
33
|
+
private removeLabel;
|
|
22
34
|
get height(): number;
|
|
23
35
|
get width(): number;
|
|
24
36
|
get position(): TimeGraphElementPosition;
|
|
@@ -19,14 +19,35 @@ exports.TimeGraphStateComponent = void 0;
|
|
|
19
19
|
var time_graph_component_1 = require("./time-graph-component");
|
|
20
20
|
var time_graph_font_controller_1 = require("../time-graph-font-controller");
|
|
21
21
|
var PIXI = require("pixi.js-legacy");
|
|
22
|
+
/**
|
|
23
|
+
* Using BitMapText.getLocalBounds() to measure the full label width is expensive, because
|
|
24
|
+
* we need to create a BitMapText object to use it. This means that we need to create a BitMapText
|
|
25
|
+
* for every state, even if we don't use it. When we remove the states, these objects need to
|
|
26
|
+
* be removed as well. In the case where we have a lot states, this cause multiple garbage collection
|
|
27
|
+
* and hogs the performance of the timeline chart.
|
|
28
|
+
*
|
|
29
|
+
* An alternative to measure the width of the label is to use PIXI.TextMetrics.measureText().
|
|
30
|
+
* However, this method applies only for Text objects, and not BitMapText; therefore there is a
|
|
31
|
+
* slight difference between the values returned by the two methods. PIXI.TextMetrics returns a
|
|
32
|
+
* slightly smaller value. Currently, PIXI does not support measureText() for BitMapText.
|
|
33
|
+
*
|
|
34
|
+
* Through some trials, it looks like the ratio between the text width returned by the two methods is
|
|
35
|
+
* consistent. Hence, we can use PIXI.TextMetrics.measureText() to get a good estimation of the text width,
|
|
36
|
+
* then multiply with the SCALING_FACTOR to determine the actual width of the label when rendered
|
|
37
|
+
* with BitMapText.
|
|
38
|
+
*
|
|
39
|
+
* SCALING_FACTOR = BitMapText.getLocalBounds() / PIXI.TextMetrics.measureText()
|
|
40
|
+
*/
|
|
41
|
+
var SCALING_FACTOR = 1.04;
|
|
22
42
|
var TimeGraphStateComponent = /** @class */ (function (_super) {
|
|
23
43
|
__extends(TimeGraphStateComponent, _super);
|
|
24
|
-
function TimeGraphStateComponent(id, model, xStart, xEnd, _row, _style, displayWidth, displayObject) {
|
|
44
|
+
function TimeGraphStateComponent(id, model, xStart, xEnd, _row, _style, displayWidth, scaleFactor, displayObject) {
|
|
25
45
|
if (_style === void 0) { _style = { color: 0xfffa66, height: 14 }; }
|
|
26
46
|
var _this = _super.call(this, id, displayObject, model) || this;
|
|
27
47
|
_this._row = _row;
|
|
28
48
|
_this._style = _style;
|
|
29
49
|
_this.displayWidth = displayWidth;
|
|
50
|
+
_this.scaleFactor = scaleFactor;
|
|
30
51
|
var height = _row.height === 0 ? 0 : Math.min(_style.height || 14, _row.height - 1);
|
|
31
52
|
var position = {
|
|
32
53
|
x: xStart,
|
|
@@ -47,12 +68,16 @@ var TimeGraphStateComponent = /** @class */ (function (_super) {
|
|
|
47
68
|
};
|
|
48
69
|
return _this;
|
|
49
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Conveniently generate the labels of states and apply proper scaling when zooming
|
|
73
|
+
*/
|
|
50
74
|
TimeGraphStateComponent.prototype.renderLabel = function () {
|
|
75
|
+
var _a;
|
|
51
76
|
if (!this.model.label) {
|
|
52
77
|
return;
|
|
53
78
|
}
|
|
54
|
-
var
|
|
55
|
-
TimeGraphStateComponent.fontController.
|
|
79
|
+
var _b = TimeGraphStateComponent.fontController.getFont(this._options.color ? this._options.color : 0, this._options.height - 2) ||
|
|
80
|
+
TimeGraphStateComponent.fontController.getDefaultFont(), fontName = _b.fontName, fontStyle = _b.fontStyle;
|
|
56
81
|
var position = {
|
|
57
82
|
x: this._options.position.x + this._options.width < 0 ? this._options.position.x : Math.max(0, this._options.position.x),
|
|
58
83
|
y: this._options.position.y
|
|
@@ -61,45 +86,61 @@ var TimeGraphStateComponent = /** @class */ (function (_super) {
|
|
|
61
86
|
var labelText = this.model.label;
|
|
62
87
|
var textPadding = 0.5;
|
|
63
88
|
if (displayWidth < 3) {
|
|
64
|
-
this.
|
|
89
|
+
this.removeLabel();
|
|
65
90
|
return;
|
|
66
91
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
var textScaler = displayWidth / textWidth;
|
|
78
|
-
var index = Math.min(Math.floor(textScaler * labelText.length), labelText.length - 1);
|
|
79
|
-
var partialLabel = labelText.substr(0, Math.max(index - 3, 0));
|
|
80
|
-
if (partialLabel.length > 0) {
|
|
81
|
-
displayLabel = partialLabel.concat("...");
|
|
92
|
+
if (fontStyle) {
|
|
93
|
+
var metrics = PIXI.TextMetrics.measureText(this.model.label, fontStyle);
|
|
94
|
+
// Round the text width up just to be sure that it will fit in the state
|
|
95
|
+
var textWidth = Math.ceil(metrics.width * SCALING_FACTOR / this.scaleFactor);
|
|
96
|
+
var textObjX = position.x + textPadding;
|
|
97
|
+
var textObjY = position.y + textPadding;
|
|
98
|
+
var displayLabel = "";
|
|
99
|
+
if (displayWidth > textWidth) {
|
|
100
|
+
textObjX = position.x + (displayWidth - textWidth) / 2;
|
|
101
|
+
displayLabel = labelText;
|
|
82
102
|
}
|
|
103
|
+
else {
|
|
104
|
+
var textScaler = displayWidth / textWidth;
|
|
105
|
+
var index = Math.min(Math.floor(textScaler * labelText.length), labelText.length - 1);
|
|
106
|
+
var partialLabel = labelText.substr(0, Math.max(index - 1, 0));
|
|
107
|
+
if (partialLabel.length > 0) {
|
|
108
|
+
displayLabel = partialLabel.concat("…");
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (displayLabel === "") {
|
|
112
|
+
this.removeLabel();
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
if (!this.textLabelObject) {
|
|
116
|
+
this.textLabelObject = new PIXI.BitmapText(displayLabel, { fontName: fontName });
|
|
117
|
+
this.displayObject.addChild(this.textLabelObject);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
this.textLabelObject.text = displayLabel;
|
|
121
|
+
}
|
|
122
|
+
this.textLabelObject.alpha = (_a = this._options.opacity) !== null && _a !== void 0 ? _a : 1;
|
|
123
|
+
this.textLabelObject.x = textObjX;
|
|
124
|
+
this.textLabelObject.y = textObjY;
|
|
125
|
+
this.textLabelObject.scale.x = 1 / this.scaleFactor;
|
|
83
126
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
var newTextObj = new PIXI.BitmapText(displayLabel, { fontName: fontName });
|
|
95
|
-
newTextObj.x = textObjX;
|
|
96
|
-
newTextObj.y = textObjY;
|
|
97
|
-
this.displayObject.addChild(newTextObj);
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* Scale only state labels that actually have text displayed.
|
|
130
|
+
*
|
|
131
|
+
* @param scaleFactor
|
|
132
|
+
*/
|
|
133
|
+
TimeGraphStateComponent.prototype.scaleLabel = function (scaleFactor) {
|
|
134
|
+
this.scaleFactor = scaleFactor;
|
|
135
|
+
if (this.textLabelObject && this.textLabelObject.scale) {
|
|
136
|
+
this.renderLabel();
|
|
98
137
|
}
|
|
99
138
|
};
|
|
100
|
-
TimeGraphStateComponent.prototype.
|
|
101
|
-
this.
|
|
102
|
-
|
|
139
|
+
TimeGraphStateComponent.prototype.removeLabel = function () {
|
|
140
|
+
if (this.textLabelObject) {
|
|
141
|
+
this.textLabelObject.destroy();
|
|
142
|
+
this.textLabelObject = undefined;
|
|
143
|
+
}
|
|
103
144
|
};
|
|
104
145
|
Object.defineProperty(TimeGraphStateComponent.prototype, "height", {
|
|
105
146
|
get: function () {
|
|
@@ -167,7 +208,6 @@ var TimeGraphStateComponent = /** @class */ (function (_super) {
|
|
|
167
208
|
this.renderLabel();
|
|
168
209
|
};
|
|
169
210
|
TimeGraphStateComponent.prototype.clear = function () {
|
|
170
|
-
this.clearLabel();
|
|
171
211
|
_super.prototype.clear.call(this);
|
|
172
212
|
};
|
|
173
213
|
TimeGraphStateComponent.fontController = new time_graph_font_controller_1.FontController();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-graph-state.js","sourceRoot":"","sources":["../../src/components/time-graph-state.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,+DAA2G;AAG3G,4EAA+D;AAC/D,qCAAuC;
|
|
1
|
+
{"version":3,"file":"time-graph-state.js","sourceRoot":"","sources":["../../src/components/time-graph-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export declare class TimeGraphAxis extends TimeGraphLayer {
|
|
|
7
7
|
protected style?: {
|
|
8
8
|
color?: number | undefined;
|
|
9
9
|
lineColor?: number | undefined;
|
|
10
|
+
verticalAlign?: string | undefined;
|
|
10
11
|
} | undefined;
|
|
11
12
|
protected scaleComponent: TimeGraphAxisScale;
|
|
12
13
|
protected controlKeyDown: boolean;
|
|
@@ -17,6 +18,7 @@ export declare class TimeGraphAxis extends TimeGraphLayer {
|
|
|
17
18
|
constructor(id: string, style?: {
|
|
18
19
|
color?: number | undefined;
|
|
19
20
|
lineColor?: number | undefined;
|
|
21
|
+
verticalAlign?: string | undefined;
|
|
20
22
|
} | undefined);
|
|
21
23
|
protected getOptions(): TimeGraphAxisStyle;
|
|
22
24
|
protected afterAddToContainer(): void;
|
|
@@ -30,9 +30,11 @@ var TimeGraphAxis = /** @class */ (function (_super) {
|
|
|
30
30
|
TimeGraphAxis.prototype.getOptions = function () {
|
|
31
31
|
var color;
|
|
32
32
|
var lineColor;
|
|
33
|
+
var verticalAlign = 'top'; // Default position is top, same as CSS verticalAlign is 'baseline'
|
|
33
34
|
if (this.style) {
|
|
34
35
|
color = this.style.color;
|
|
35
36
|
lineColor = this.style.lineColor;
|
|
37
|
+
verticalAlign = this.style.verticalAlign;
|
|
36
38
|
}
|
|
37
39
|
return {
|
|
38
40
|
height: this.stateController.canvasDisplayHeight,
|
|
@@ -42,7 +44,8 @@ var TimeGraphAxis = /** @class */ (function (_super) {
|
|
|
42
44
|
y: 0
|
|
43
45
|
},
|
|
44
46
|
color: color,
|
|
45
|
-
lineColor: lineColor
|
|
47
|
+
lineColor: lineColor,
|
|
48
|
+
verticalAlign: verticalAlign
|
|
46
49
|
};
|
|
47
50
|
};
|
|
48
51
|
TimeGraphAxis.prototype.afterAddToContainer = function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-graph-axis.js","sourceRoot":"","sources":["../../src/layer/time-graph-axis.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,6EAA6F;AAC7F,uDAA2E;AAC3E,0BAA4B;AAE5B,gDAAyC;AAMzC;IAAmC,iCAAc;IAS7C,uBAAY,EAAU,EAAY,
|
|
1
|
+
{"version":3,"file":"time-graph-axis.js","sourceRoot":"","sources":["../../src/layer/time-graph-axis.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { TimeGraphArrowComponent, TimeGraphArrowCoordinates } from "../components/time-graph-arrow";
|
|
2
2
|
import { TimelineChart } from "../time-graph-model";
|
|
3
|
+
import { TimeGraphRowController } from "../time-graph-row-controller";
|
|
3
4
|
import { TimeGraphChartLayer } from "./time-graph-chart-layer";
|
|
4
5
|
export declare class TimeGraphChartArrows extends TimeGraphChartLayer {
|
|
6
|
+
protected rowController: TimeGraphRowController;
|
|
5
7
|
protected arrows: Map<TimelineChart.TimeGraphArrow, TimeGraphArrowComponent>;
|
|
8
|
+
protected rowIds: number[];
|
|
6
9
|
private _updateHandler;
|
|
10
|
+
constructor(id: string, rowController: TimeGraphRowController);
|
|
7
11
|
protected afterAddToContainer(): void;
|
|
8
|
-
protected getCoordinates(arrow: TimelineChart.TimeGraphArrow): TimeGraphArrowCoordinates;
|
|
12
|
+
protected getCoordinates(arrow: TimelineChart.TimeGraphArrow): TimeGraphArrowCoordinates | undefined;
|
|
9
13
|
protected addArrow(arrow: TimelineChart.TimeGraphArrow): void;
|
|
10
|
-
addArrows(arrows: TimelineChart.TimeGraphArrow[]): void;
|
|
14
|
+
addArrows(arrows: TimelineChart.TimeGraphArrow[], rowIds: number[]): void;
|
|
11
15
|
update(): void;
|
|
12
16
|
protected updateArrow(arrow: TimelineChart.TimeGraphArrow): void;
|
|
13
17
|
destroy(): void;
|
|
@@ -31,37 +31,50 @@ var time_graph_arrow_1 = require("../components/time-graph-arrow");
|
|
|
31
31
|
var time_graph_chart_layer_1 = require("./time-graph-chart-layer");
|
|
32
32
|
var TimeGraphChartArrows = /** @class */ (function (_super) {
|
|
33
33
|
__extends(TimeGraphChartArrows, _super);
|
|
34
|
-
function TimeGraphChartArrows() {
|
|
35
|
-
|
|
34
|
+
function TimeGraphChartArrows(id, rowController) {
|
|
35
|
+
var _this = _super.call(this, id, rowController) || this;
|
|
36
|
+
_this.rowController = rowController;
|
|
37
|
+
_this.rowIds = [];
|
|
38
|
+
_this.isScalable = false;
|
|
39
|
+
return _this;
|
|
36
40
|
}
|
|
37
41
|
TimeGraphChartArrows.prototype.afterAddToContainer = function () {
|
|
38
42
|
var _this = this;
|
|
39
43
|
this._updateHandler = function () { return _this.update(); };
|
|
40
|
-
this.
|
|
44
|
+
this.stateController.onWorldRender(this._updateHandler);
|
|
45
|
+
this.stateController.onScaleFactorChange(this._updateHandler);
|
|
41
46
|
this.rowController.onVerticalOffsetChangedHandler(function (verticalOffset) {
|
|
42
47
|
_this.layer.position.y = -verticalOffset;
|
|
43
48
|
});
|
|
44
49
|
};
|
|
45
50
|
TimeGraphChartArrows.prototype.getCoordinates = function (arrow) {
|
|
46
|
-
var
|
|
51
|
+
var sourceIndex = this.rowIds.indexOf(arrow.sourceId);
|
|
52
|
+
var destinationIndex = this.rowIds.indexOf(arrow.destinationId);
|
|
53
|
+
if (sourceIndex === -1 || destinationIndex === -1) {
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
47
56
|
var start = {
|
|
48
|
-
x: this.
|
|
49
|
-
y: (
|
|
57
|
+
x: this.getWorldPixel(arrow.range.start),
|
|
58
|
+
y: (sourceIndex * this.rowController.rowHeight) + (this.rowController.rowHeight / 2)
|
|
50
59
|
};
|
|
51
60
|
var end = {
|
|
52
|
-
x: this.
|
|
53
|
-
y: (
|
|
61
|
+
x: this.getWorldPixel(arrow.range.end),
|
|
62
|
+
y: (destinationIndex * this.rowController.rowHeight) + (this.rowController.rowHeight / 2)
|
|
54
63
|
};
|
|
55
64
|
return { start: start, end: end };
|
|
56
65
|
};
|
|
57
66
|
TimeGraphChartArrows.prototype.addArrow = function (arrow) {
|
|
58
67
|
var coords = this.getCoordinates(arrow);
|
|
68
|
+
if (!coords) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
59
71
|
var arrowComponent = new time_graph_arrow_1.TimeGraphArrowComponent('arrow', arrow, coords);
|
|
60
72
|
this.arrows.set(arrow, arrowComponent);
|
|
61
73
|
this.addChild(arrowComponent);
|
|
62
74
|
};
|
|
63
|
-
TimeGraphChartArrows.prototype.addArrows = function (arrows) {
|
|
75
|
+
TimeGraphChartArrows.prototype.addArrows = function (arrows, rowIds) {
|
|
64
76
|
var _this = this;
|
|
77
|
+
this.rowIds = rowIds;
|
|
65
78
|
if (!this.stateController) {
|
|
66
79
|
throw ('Add this TimeGraphChartArrows to a container before adding arrows.');
|
|
67
80
|
}
|
|
@@ -92,15 +105,21 @@ var TimeGraphChartArrows = /** @class */ (function (_super) {
|
|
|
92
105
|
}
|
|
93
106
|
};
|
|
94
107
|
TimeGraphChartArrows.prototype.updateArrow = function (arrow) {
|
|
95
|
-
var _a = this.getCoordinates(arrow), start = _a.start, end = _a.end;
|
|
96
108
|
var arrowComponent = this.arrows.get(arrow);
|
|
97
109
|
if (arrowComponent) {
|
|
98
|
-
|
|
110
|
+
var coords = this.getCoordinates(arrow);
|
|
111
|
+
if (!coords) {
|
|
112
|
+
this.removeChild(arrowComponent);
|
|
113
|
+
this.arrows.delete(arrow);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
arrowComponent.update(coords);
|
|
117
|
+
}
|
|
99
118
|
}
|
|
100
119
|
};
|
|
101
120
|
TimeGraphChartArrows.prototype.destroy = function () {
|
|
102
121
|
if (this.unitController) {
|
|
103
|
-
this.
|
|
122
|
+
this.stateController.removeWorldRenderHandler(this._updateHandler);
|
|
104
123
|
}
|
|
105
124
|
_super.prototype.destroy.call(this);
|
|
106
125
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-graph-chart-arrows.js","sourceRoot":"","sources":["../../src/layer/time-graph-chart-arrows.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mEAAoG;
|
|
1
|
+
{"version":3,"file":"time-graph-chart-arrows.js","sourceRoot":"","sources":["../../src/layer/time-graph-chart-arrows.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,8 +16,9 @@ export declare class TimeGraphChartCursors extends TimeGraphChartLayer {
|
|
|
16
16
|
private _stageMouseUpHandler;
|
|
17
17
|
private _updateHandler;
|
|
18
18
|
private _mouseDownHandler;
|
|
19
|
-
private
|
|
20
|
-
private
|
|
19
|
+
private _cursorKeyDownHandler;
|
|
20
|
+
private _cursorKeyUpHandler;
|
|
21
|
+
protected _keyboardShortcutKeyDownHandler: (event: KeyboardEvent) => void;
|
|
21
22
|
constructor(id: string, chartLayer: TimeGraphChart, rowController: TimeGraphRowController, style?: {
|
|
22
23
|
color?: number;
|
|
23
24
|
});
|
|
@@ -25,8 +26,6 @@ export declare class TimeGraphChartCursors extends TimeGraphChartLayer {
|
|
|
25
26
|
maybeCenterCursor(): void;
|
|
26
27
|
protected navigateOrSelectLeft(): void;
|
|
27
28
|
protected navigateOrSelectRight(): void;
|
|
28
|
-
protected navigateDown(): void;
|
|
29
|
-
protected navigateUp(): void;
|
|
30
29
|
centerCursor(): void;
|
|
31
30
|
removeCursors(): void;
|
|
32
31
|
update(): void;
|
|
@@ -16,7 +16,6 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
16
16
|
})();
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.TimeGraphChartCursors = void 0;
|
|
19
|
-
var keyboardKey = require("keyboard-key");
|
|
20
19
|
var time_graph_cursor_1 = require("../components/time-graph-cursor");
|
|
21
20
|
var time_graph_chart_layer_1 = require("./time-graph-chart-layer");
|
|
22
21
|
var bigint_utils_1 = require("../bigint-utils");
|
|
@@ -29,6 +28,7 @@ var TimeGraphChartCursors = /** @class */ (function (_super) {
|
|
|
29
28
|
_this.mouseSelecting = false;
|
|
30
29
|
_this.mouseButtons = 0;
|
|
31
30
|
_this.color = 0x0000ff;
|
|
31
|
+
_this.isScalable = false;
|
|
32
32
|
if (style && style.color) {
|
|
33
33
|
_this.color = style.color;
|
|
34
34
|
}
|
|
@@ -40,7 +40,7 @@ var TimeGraphChartCursors = /** @class */ (function (_super) {
|
|
|
40
40
|
this.shiftKeyDown = false;
|
|
41
41
|
this.stage.interactive = true;
|
|
42
42
|
this._updateHandler = function () { return _this.update(); };
|
|
43
|
-
this.
|
|
43
|
+
this._cursorKeyDownHandler = function (event) {
|
|
44
44
|
if (event.key === 'Shift' && _this.mouseButtons === 0 && !event.ctrlKey && !event.altKey) {
|
|
45
45
|
_this.stage.cursor = 'crosshair';
|
|
46
46
|
}
|
|
@@ -49,28 +49,28 @@ var TimeGraphChartCursors = /** @class */ (function (_super) {
|
|
|
49
49
|
_this.stage.cursor = 'default';
|
|
50
50
|
}
|
|
51
51
|
_this.shiftKeyDown = event.shiftKey;
|
|
52
|
-
// TODO: keyCode is deprecated. We should change these.
|
|
53
|
-
if (event.keyCode === keyboardKey.ArrowLeft) {
|
|
54
|
-
_this.navigateOrSelectLeft();
|
|
55
|
-
}
|
|
56
|
-
else if (event.keyCode === keyboardKey.ArrowRight) {
|
|
57
|
-
_this.navigateOrSelectRight();
|
|
58
|
-
}
|
|
59
|
-
else if (event.keyCode === keyboardKey.ArrowUp) {
|
|
60
|
-
_this.navigateUp();
|
|
61
|
-
}
|
|
62
|
-
else if (event.keyCode === keyboardKey.ArrowDown) {
|
|
63
|
-
_this.navigateDown();
|
|
64
|
-
}
|
|
65
52
|
};
|
|
66
|
-
this.
|
|
53
|
+
this._cursorKeyUpHandler = function (event) {
|
|
67
54
|
_this.shiftKeyDown = event.shiftKey;
|
|
68
55
|
if (_this.stage.cursor === 'crosshair' && !_this.mouseSelecting && event.key === 'Shift') {
|
|
69
56
|
_this.stage.cursor = 'default';
|
|
70
57
|
}
|
|
71
58
|
};
|
|
72
|
-
this.
|
|
73
|
-
|
|
59
|
+
this._keyboardShortcutKeyDownHandler = function (event) {
|
|
60
|
+
switch (event.key) {
|
|
61
|
+
case "ArrowLeft":
|
|
62
|
+
_this.navigateOrSelectLeft();
|
|
63
|
+
break;
|
|
64
|
+
case "ArrowRight":
|
|
65
|
+
_this.navigateOrSelectRight();
|
|
66
|
+
break;
|
|
67
|
+
default:
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
this.onCanvasEvent('keydown', this._cursorKeyDownHandler);
|
|
72
|
+
this.onCanvasEvent('keydown', this._keyboardShortcutKeyDownHandler);
|
|
73
|
+
this.onCanvasEvent('keyup', this._cursorKeyUpHandler);
|
|
74
74
|
this._stageMouseDownHandler = function (event) {
|
|
75
75
|
_this.mouseButtons = event.data.buttons;
|
|
76
76
|
// if only left button is pressed with or without Shift key
|
|
@@ -149,8 +149,9 @@ var TimeGraphChartCursors = /** @class */ (function (_super) {
|
|
|
149
149
|
}
|
|
150
150
|
};
|
|
151
151
|
this.onCanvasEvent('mousedown', this._mouseDownHandler);
|
|
152
|
-
this.
|
|
152
|
+
this.stateController.onWorldRender(this._updateHandler);
|
|
153
153
|
this.unitController.onSelectionRangeChange(this._updateHandler);
|
|
154
|
+
this.stateController.onScaleFactorChange(this._updateHandler);
|
|
154
155
|
this.update();
|
|
155
156
|
};
|
|
156
157
|
TimeGraphChartCursors.prototype.maybeCenterCursor = function () {
|
|
@@ -198,40 +199,6 @@ var TimeGraphChartCursors = /** @class */ (function (_super) {
|
|
|
198
199
|
this.maybeCenterCursor();
|
|
199
200
|
}
|
|
200
201
|
};
|
|
201
|
-
TimeGraphChartCursors.prototype.navigateDown = function () {
|
|
202
|
-
var _this = this;
|
|
203
|
-
var rows = this.chartLayer.getRowModels();
|
|
204
|
-
var selectedRow = this.rowController.selectedRow;
|
|
205
|
-
var idx = rows.findIndex(function (row) { return row === selectedRow; });
|
|
206
|
-
if (idx < rows.length) {
|
|
207
|
-
this.chartLayer.selectRow(rows[idx + 1]);
|
|
208
|
-
}
|
|
209
|
-
selectedRow = this.rowController.selectedRow;
|
|
210
|
-
var state = selectedRow.states.find(function (state) {
|
|
211
|
-
if (_this.unitController.selectionRange) {
|
|
212
|
-
return state.range.start <= _this.unitController.selectionRange.start && state.range.end > _this.unitController.selectionRange.start;
|
|
213
|
-
}
|
|
214
|
-
return false;
|
|
215
|
-
});
|
|
216
|
-
state && this.chartLayer.selectState(state);
|
|
217
|
-
};
|
|
218
|
-
TimeGraphChartCursors.prototype.navigateUp = function () {
|
|
219
|
-
var _this = this;
|
|
220
|
-
var rows = this.chartLayer.getRowModels();
|
|
221
|
-
var selectedRow = this.rowController.selectedRow;
|
|
222
|
-
var idx = rows.findIndex(function (row) { return row === selectedRow; });
|
|
223
|
-
if (idx > 0) {
|
|
224
|
-
this.chartLayer.selectRow(rows[idx - 1]);
|
|
225
|
-
}
|
|
226
|
-
selectedRow = this.rowController.selectedRow;
|
|
227
|
-
var state = selectedRow.states.find(function (state) {
|
|
228
|
-
if (_this.unitController.selectionRange) {
|
|
229
|
-
return state.range.start <= _this.unitController.selectionRange.start && state.range.end > _this.unitController.selectionRange.start;
|
|
230
|
-
}
|
|
231
|
-
return false;
|
|
232
|
-
});
|
|
233
|
-
state && this.chartLayer.selectState(state);
|
|
234
|
-
};
|
|
235
202
|
TimeGraphChartCursors.prototype.centerCursor = function () {
|
|
236
203
|
if (this.unitController.selectionRange) {
|
|
237
204
|
var cursorPosition = this.unitController.selectionRange.end;
|
|
@@ -257,8 +224,12 @@ var TimeGraphChartCursors = /** @class */ (function (_super) {
|
|
|
257
224
|
};
|
|
258
225
|
TimeGraphChartCursors.prototype.update = function () {
|
|
259
226
|
if (this.unitController.selectionRange) {
|
|
260
|
-
|
|
261
|
-
|
|
227
|
+
/**
|
|
228
|
+
* When user selects a range on the timeline chart, the selection position must correspond to the cursor of the user,
|
|
229
|
+
* and not the timeline chart itself since scaling might be applied.
|
|
230
|
+
*/
|
|
231
|
+
var firstCursorPosition = this.getWorldPixel(this.unitController.selectionRange.start);
|
|
232
|
+
var secondCursorPosition = this.getWorldPixel(this.unitController.selectionRange.end);
|
|
262
233
|
var firstCursorOptions = {
|
|
263
234
|
color: this.color,
|
|
264
235
|
height: this.stateController.canvasDisplayHeight,
|
|
@@ -304,17 +275,20 @@ var TimeGraphChartCursors = /** @class */ (function (_super) {
|
|
|
304
275
|
};
|
|
305
276
|
TimeGraphChartCursors.prototype.destroy = function () {
|
|
306
277
|
if (this.unitController) {
|
|
307
|
-
this.
|
|
278
|
+
this.stateController.removeWorldRenderHandler(this._updateHandler);
|
|
308
279
|
this.unitController.removeSelectionRangeChangedHandler(this._updateHandler);
|
|
309
280
|
}
|
|
310
281
|
if (this._mouseDownHandler) {
|
|
311
282
|
this.removeOnCanvasEvent('mousedown', this._mouseDownHandler);
|
|
312
283
|
}
|
|
313
|
-
if (this.
|
|
314
|
-
this.removeOnCanvasEvent('keydown', this.
|
|
284
|
+
if (this._cursorKeyDownHandler) {
|
|
285
|
+
this.removeOnCanvasEvent('keydown', this._cursorKeyDownHandler);
|
|
286
|
+
}
|
|
287
|
+
if (this._keyboardShortcutKeyDownHandler) {
|
|
288
|
+
this.removeOnCanvasEvent('keydown', this._keyboardShortcutKeyDownHandler);
|
|
315
289
|
}
|
|
316
|
-
if (this.
|
|
317
|
-
this.removeOnCanvasEvent('mousedown', this.
|
|
290
|
+
if (this._cursorKeyUpHandler) {
|
|
291
|
+
this.removeOnCanvasEvent('mousedown', this._cursorKeyUpHandler);
|
|
318
292
|
}
|
|
319
293
|
if (this.stage) {
|
|
320
294
|
this.stage.off('mousedown', this._stageMouseDownHandler);
|