@yamcs/opi 1.2.1 → 1.2.4

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 (66) hide show
  1. package/README.md +4 -6
  2. package/dist/images/Add_Annotation.png +0 -0
  3. package/dist/images/AutoScale.png +0 -0
  4. package/dist/images/Configure.png +0 -0
  5. package/dist/images/Del_Annotation.png +0 -0
  6. package/dist/images/HorizontalZoom.png +0 -0
  7. package/dist/images/MouseArrow.png +0 -0
  8. package/dist/images/Panning.png +0 -0
  9. package/dist/images/Redo.png +0 -0
  10. package/dist/images/Redo_Gray.png +0 -0
  11. package/dist/images/RubberbandZoom.png +0 -0
  12. package/dist/images/ShowLegend.png +0 -0
  13. package/dist/images/Undo.png +0 -0
  14. package/dist/images/Undo_Gray.png +0 -0
  15. package/dist/images/VerticalZoom.png +0 -0
  16. package/dist/images/ZoomIn.png +0 -0
  17. package/dist/images/ZoomOut.png +0 -0
  18. package/dist/images/camera.png +0 -0
  19. package/dist/opi.js +1 -1
  20. package/dist/opi.js.map +1 -1
  21. package/dist/opi.umd.js +1 -1
  22. package/dist/opi.umd.js.map +1 -1
  23. package/dist/types/AutoScaleWidgets.d.ts +6 -0
  24. package/dist/types/Color.d.ts +5 -0
  25. package/dist/types/ColorMap.d.ts +23 -0
  26. package/dist/types/DecimalFormat.d.ts +36 -0
  27. package/dist/types/Display.d.ts +23 -6
  28. package/dist/types/EventHandler.d.ts +10 -0
  29. package/dist/types/Graphics.d.ts +4 -1
  30. package/dist/types/HitCanvas.d.ts +1 -11
  31. package/dist/types/HitRegionSpecification.d.ts +15 -0
  32. package/dist/types/ImageResolver.d.ts +9 -0
  33. package/dist/types/Range.d.ts +4 -0
  34. package/dist/types/ScaleOptions.d.ts +6 -0
  35. package/dist/types/Widget.d.ts +15 -1
  36. package/dist/types/XMLNode.d.ts +2 -0
  37. package/dist/types/index.d.ts +3 -2
  38. package/dist/types/positioning.d.ts +1 -0
  39. package/dist/types/properties.d.ts +18 -0
  40. package/dist/types/pv/LocalPV.d.ts +2 -2
  41. package/dist/types/pv/PV.d.ts +1 -0
  42. package/dist/types/pv/PVEngine.d.ts +2 -0
  43. package/dist/types/scripting/ColorFontUtil.d.ts +13 -13
  44. package/dist/types/scripting/DataUtil.d.ts +6 -0
  45. package/dist/types/scripting/DisplayWrapper.d.ts +1 -2
  46. package/dist/types/scripting/GUIUtil.d.ts +8 -0
  47. package/dist/types/scripting/WidgetWrapper.d.ts +12 -0
  48. package/dist/types/scripting/XYGraphWrapper.d.ts +9 -0
  49. package/dist/types/scripting/utils.d.ts +3 -0
  50. package/dist/types/scripts.d.ts +2 -1
  51. package/dist/types/widgets/graphics/ImageWidget.d.ts +1 -0
  52. package/dist/types/widgets/monitors/IntensityGraph.d.ts +43 -0
  53. package/dist/types/widgets/monitors/LinearScale.d.ts +20 -1
  54. package/dist/types/widgets/monitors/Meter.d.ts +1 -0
  55. package/dist/types/widgets/monitors/ProgressBar.d.ts +3 -1
  56. package/dist/types/widgets/monitors/Tank.d.ts +2 -1
  57. package/dist/types/widgets/monitors/Thermometer.d.ts +3 -1
  58. package/dist/types/widgets/monitors/xygraph/Axis.d.ts +41 -0
  59. package/dist/types/widgets/monitors/xygraph/CommandBuffer.d.ts +26 -0
  60. package/dist/types/widgets/monitors/xygraph/PlotAreaRegion.d.ts +22 -0
  61. package/dist/types/widgets/monitors/xygraph/Trace.d.ts +38 -0
  62. package/dist/types/widgets/monitors/xygraph/TraceBuffer.d.ts +32 -0
  63. package/dist/types/widgets/monitors/xygraph/XYGraph.d.ts +44 -0
  64. package/dist/types/widgets/monitors/xygraph/XYGraphToolbar.d.ts +54 -0
  65. package/dist/types/widgets/others/LinkingContainer.d.ts +2 -0
  66. package/package.json +6 -8
@@ -1,6 +1,7 @@
1
1
  import { Color } from '../../Color';
2
2
  import { Font } from '../../Font';
3
3
  import { Graphics } from '../../Graphics';
4
+ import { Range } from '../../Range';
4
5
  export declare class LinearScale {
5
6
  private scale;
6
7
  private scaleFont;
@@ -19,14 +20,30 @@ export declare class LinearScale {
19
20
  private horizontal;
20
21
  private x;
21
22
  private y;
23
+ scaleFormat: string;
24
+ timeFormat: number;
22
25
  length: number;
23
26
  margin: number;
24
27
  constructor(scale: number, scaleFont: Font, minimum: number, maximum: number, logScale: boolean, majorTickStepHint: number, foregroundColor: Color, showMinorTicks: boolean, showScale: boolean);
25
28
  get scaleLength(): number;
29
+ /** Only available post-draw */
30
+ getX(): number;
31
+ /** Only available post-draw */
32
+ getY(): number;
33
+ /** Only available post-draw */
34
+ getGridPositions(): number[];
35
+ /**
36
+ * Use only when the scale is not drawn, but you still need
37
+ * getValuePosition to work.
38
+ */
39
+ setDimensions(x: number, y: number, length: number, horizontal: boolean): void;
26
40
  getValuePosition(value: number): number;
41
+ getMinMax(): Range;
42
+ getPositionValue(absolutePosition: number): number;
27
43
  calculateMargin(g: Graphics, horizontal: boolean): number;
44
+ measureHorizontalHeight(g: Graphics): number;
28
45
  drawHorizontal(g: Graphics, x: number, y: number, width: number): number;
29
- drawVertical(g: Graphics, x: number, y: number, height: number, leftCoordinate: boolean): number;
46
+ drawVertical(g: Graphics, x: number, y: number, height: number, leftCoordinate: boolean, ticksLeft?: boolean): number;
30
47
  private drawMinorXTicks;
31
48
  private drawMinorYTicks;
32
49
  private updateLabels;
@@ -39,6 +56,8 @@ export declare class LinearScale {
39
56
  private hasSpaceToDraw;
40
57
  private isMajorTick;
41
58
  private format;
59
+ private formatDate;
60
+ private formatTime;
42
61
  get spaceBetweenMarkAndLabel(): number;
43
62
  get majorTickLength(): number;
44
63
  get minorTickLength(): number;
@@ -35,4 +35,5 @@ export declare class Meter extends Widget {
35
35
  get showHi(): boolean;
36
36
  get showHiHi(): boolean;
37
37
  get showRamp(): boolean;
38
+ get valueLabelFormat(): string;
38
39
  }
@@ -31,7 +31,6 @@ export declare class ProgressBar extends Widget {
31
31
  get colorLoLo(): Color;
32
32
  get colorHi(): Color;
33
33
  get colorHiHi(): Color;
34
- get scaleFont(): Font;
35
34
  get colorFillbackground(): Color;
36
35
  get effect3d(): boolean;
37
36
  get fillColorAlarmSensitive(): boolean;
@@ -50,6 +49,8 @@ export declare class ProgressBar extends Widget {
50
49
  get maximum(): number;
51
50
  get origin(): number;
52
51
  get originIgnored(): boolean;
52
+ get scaleFont(): Font;
53
+ get scaleFormat(): string;
53
54
  get showHi(): boolean;
54
55
  get showHiHi(): boolean;
55
56
  get showLabel(): boolean;
@@ -59,4 +60,5 @@ export declare class ProgressBar extends Widget {
59
60
  get showMinorTicks(): boolean;
60
61
  get showScale(): boolean;
61
62
  get transparentBackground(): boolean;
63
+ get valueLabelFormat(): string;
62
64
  }
@@ -26,7 +26,6 @@ export declare class Tank extends Widget {
26
26
  get colorLoLo(): Color;
27
27
  get colorHi(): Color;
28
28
  get colorHiHi(): Color;
29
- get scaleFont(): Font;
30
29
  get colorFillbackground(): Color;
31
30
  get fillColorAlarmSensitive(): boolean;
32
31
  get fillColor(): Color;
@@ -40,6 +39,8 @@ export declare class Tank extends Widget {
40
39
  get minimum(): number;
41
40
  get majorTickStepHint(): number;
42
41
  get maximum(): number;
42
+ get scaleFont(): Font;
43
+ get scaleFormat(): string;
43
44
  get showLo(): boolean;
44
45
  get showLoLo(): boolean;
45
46
  get showHi(): boolean;
@@ -28,7 +28,6 @@ export declare class Thermometer extends Widget {
28
28
  get colorLoLo(): Color;
29
29
  get colorHi(): Color;
30
30
  get colorHiHi(): Color;
31
- get scaleFont(): Font;
32
31
  get colorFillbackground(): Color;
33
32
  get fillColorAlarmSensitive(): boolean;
34
33
  get fillColor(): Color;
@@ -43,6 +42,8 @@ export declare class Thermometer extends Widget {
43
42
  get minimum(): number;
44
43
  get majorTickStepHint(): number;
45
44
  get maximum(): number;
45
+ get scaleFont(): Font;
46
+ get scaleFormat(): string;
46
47
  get showBulb(): boolean;
47
48
  get showMarkers(): boolean;
48
49
  get showMinorTicks(): boolean;
@@ -53,4 +54,5 @@ export declare class Thermometer extends Widget {
53
54
  get showScale(): boolean;
54
55
  get transparentBackground(): boolean;
55
56
  get unit(): number;
57
+ get valueLabelFormat(): string;
56
58
  }
@@ -0,0 +1,41 @@
1
+ import { Color } from '../../../Color';
2
+ import { Font } from '../../../Font';
3
+ import { LinearScale } from '../LinearScale';
4
+ import { XYGraph } from './XYGraph';
5
+ export declare class Axis {
6
+ private widget;
7
+ readonly index: number;
8
+ linearScale?: LinearScale;
9
+ private _effectiveMinimum?;
10
+ private _effectiveMaximum?;
11
+ constructor(widget: XYGraph, index: number);
12
+ get scale(): number;
13
+ private getValue;
14
+ isDateEnabled(): boolean;
15
+ isHorizontal(): boolean;
16
+ isVertical(): boolean;
17
+ isPrimary(): boolean;
18
+ get effectiveMinimum(): number;
19
+ set effectiveMinimum(effectiveMinimum: number);
20
+ get effectiveMaximum(): number;
21
+ set effectiveMaximum(effectiveMaximum: number);
22
+ performAutoScale(): void;
23
+ applyZoom(center: number, ratio: number): void;
24
+ get autoScale(): boolean;
25
+ get autoScaleTreshold(): number;
26
+ get axisColor(): Color;
27
+ get axisTitle(): string;
28
+ get dashGridLine(): boolean;
29
+ get gridColor(): Color;
30
+ get leftBottomSide(): boolean;
31
+ get logScale(): boolean;
32
+ private get maximum();
33
+ private get minimum();
34
+ get scaleFont(): Font;
35
+ get scaleFormat(): string;
36
+ get showGrid(): boolean;
37
+ get timeFormat(): number;
38
+ get titleFont(): Font;
39
+ get visible(): boolean;
40
+ get yAxis(): boolean;
41
+ }
@@ -0,0 +1,26 @@
1
+ import { Axis } from './Axis';
2
+ export interface Command {
3
+ undo(): void;
4
+ redo(): void;
5
+ }
6
+ export declare class ZoomCommand implements Command {
7
+ private xAxis;
8
+ private yAxis;
9
+ private beforeXRanges;
10
+ private beforeYRanges;
11
+ private afterXRanges;
12
+ private afterYRanges;
13
+ constructor(xAxis: Axis[], yAxis: Axis[]);
14
+ saveState(): void;
15
+ undo(): void;
16
+ redo(): void;
17
+ }
18
+ export declare class CommandBuffer {
19
+ private undoStack;
20
+ private redoStack;
21
+ canUndo(): boolean;
22
+ canRedo(): boolean;
23
+ add(command: Command): void;
24
+ undo(): void;
25
+ redo(): void;
26
+ }
@@ -0,0 +1,22 @@
1
+ import { OpiGrabEvent, OpiMouseEvent } from '../../../EventHandler';
2
+ import { HitRegionSpecification } from '../../../HitRegionSpecification';
3
+ import { Bounds } from '../../../positioning';
4
+ import { XYGraph } from './XYGraph';
5
+ export declare class PlotAreaRegion implements HitRegionSpecification {
6
+ private widget;
7
+ id: string;
8
+ cursor?: string;
9
+ selection?: Bounds;
10
+ private grabStart?;
11
+ private prevGrabEvent?;
12
+ private grabZoomCommand?;
13
+ constructor(id: string, widget: XYGraph);
14
+ tooltip(): string | undefined;
15
+ mouseDown(evt: OpiMouseEvent): void;
16
+ grab(evt: OpiGrabEvent): void;
17
+ grabEnd(): void;
18
+ click(evt: OpiMouseEvent): void;
19
+ private rangeZoomXAxes;
20
+ private rangeZoomYAxes;
21
+ private pan;
22
+ }
@@ -0,0 +1,38 @@
1
+ import { Color } from '../../../Color';
2
+ import { Graphics } from '../../../Graphics';
3
+ import { Point } from '../../../positioning';
4
+ import { XYGraph } from './XYGraph';
5
+ export declare class Trace {
6
+ private widget;
7
+ private i;
8
+ private traceData?;
9
+ private xPVInstance?;
10
+ private yPVInstance?;
11
+ private xPVListener;
12
+ private yPVListener;
13
+ constructor(widget: XYGraph, i: number);
14
+ init(): void;
15
+ snapshot(): import("./TraceBuffer").Sample[];
16
+ drawTrace(g: Graphics, points: Point[]): void;
17
+ drawPoint(g: Graphics, point: Point): void;
18
+ clearData(): void;
19
+ get scale(): number;
20
+ private getValue;
21
+ get antiAlias(): boolean;
22
+ get bufferSize(): number;
23
+ get concatenateData(): boolean;
24
+ get lineWidth(): number;
25
+ get name(): string;
26
+ get plotMode(): number;
27
+ get pointSize(): number;
28
+ get pointStyle(): number;
29
+ get traceColor(): Color;
30
+ get traceType(): number;
31
+ get updateDelay(): number;
32
+ get updateMode(): number;
33
+ get visible(): boolean;
34
+ get xAxisIndex(): number;
35
+ get xPV(): string;
36
+ get yAxisIndex(): number;
37
+ get yPV(): string;
38
+ }
@@ -0,0 +1,32 @@
1
+ export interface Sample {
2
+ x: number;
3
+ y: number;
4
+ }
5
+ export declare class TraceBuffer {
6
+ private bufferSize;
7
+ private plotMode;
8
+ private updateMode;
9
+ private concatenateData;
10
+ private chronological;
11
+ private traceData;
12
+ private x;
13
+ private xPending;
14
+ private y;
15
+ private yTimestamp?;
16
+ private yPending;
17
+ private xArray;
18
+ private xArrayPending;
19
+ private yArray;
20
+ private yArrayPending;
21
+ constructor(bufferSize: number, plotMode: number, updateMode: number, concatenateData: boolean, chronological: boolean);
22
+ clear(): void;
23
+ snapshot(): Sample[];
24
+ updateX(x: number): void;
25
+ updateY(y: number, timestamp?: number): void;
26
+ updateXArray(xArray: number[]): void;
27
+ updateYArray(yArray: number[]): void;
28
+ private maybeAddPoint;
29
+ private maybeAddArray;
30
+ private addPoint;
31
+ private addArray;
32
+ }
@@ -0,0 +1,44 @@
1
+ import { Color } from '../../../Color';
2
+ import { Display } from '../../../Display';
3
+ import { Font } from '../../../Font';
4
+ import { Graphics } from '../../../Graphics';
5
+ import { Range } from '../../../Range';
6
+ import { Widget } from '../../../Widget';
7
+ import { AbstractContainerWidget } from '../../others/AbstractContainerWidget';
8
+ import { Axis } from './Axis';
9
+ import { Trace } from './Trace';
10
+ import { XYGraphToolbar } from './XYGraphToolbar';
11
+ export declare class XYGraph extends Widget {
12
+ toolbar?: XYGraphToolbar;
13
+ private plotAreaRegion?;
14
+ private axes;
15
+ private traces;
16
+ autoScaleAllowed: boolean;
17
+ constructor(display: Display, parent: AbstractContainerWidget);
18
+ init(): void;
19
+ draw(g: Graphics): void;
20
+ private drawToolbar;
21
+ private drawTitle;
22
+ private drawAxes;
23
+ private drawPlotArea;
24
+ private drawZoomSelection;
25
+ private drawLegend;
26
+ setCursor(cursor: string | undefined): void;
27
+ calculateAutoscaledRange(axis: Axis): Range | undefined;
28
+ performAutoScale(): void;
29
+ clearGraph(): void;
30
+ getAxes(): Axis[];
31
+ getXAxes(): Axis[];
32
+ getYAxes(): Axis[];
33
+ getAxis(index: number): Axis;
34
+ getTrace(index: number): Trace;
35
+ get axisCount(): number;
36
+ get plotAreaBackgroundColor(): Color;
37
+ get showLegend(): boolean;
38
+ get showPlotAreaBorder(): boolean;
39
+ get showToolbar(): boolean;
40
+ get title(): string;
41
+ get titleFont(): Font;
42
+ get traceCount(): number;
43
+ get transparent(): boolean;
44
+ }
@@ -0,0 +1,54 @@
1
+ import { Graphics } from '../../../Graphics';
2
+ import { HitRegionSpecification } from '../../../HitRegionSpecification';
3
+ import { Bounds } from '../../../positioning';
4
+ import { Command } from './CommandBuffer';
5
+ import { XYGraph } from './XYGraph';
6
+ declare class Button {
7
+ private imageFile;
8
+ private disabledImageFile;
9
+ private action;
10
+ readonly imageElement: HTMLImageElement;
11
+ readonly disabledImageElement: HTMLImageElement;
12
+ readonly loadPromise: Promise<void>;
13
+ readonly disabledLoadPromise: Promise<void>;
14
+ toggleButton: boolean;
15
+ toolButton: boolean;
16
+ pushed: boolean;
17
+ disabled: boolean;
18
+ region: HitRegionSpecification;
19
+ constructor(toolbar: XYGraphToolbar, imageFile: string, disabledImageFile: string, tooltip: string, action: () => void);
20
+ loadImage(prefix: string): void;
21
+ }
22
+ export declare class XYGraphToolbar {
23
+ readonly xyGraph: XYGraph;
24
+ private buttons;
25
+ private showLegend;
26
+ private autoScale;
27
+ private rubberbandZoom;
28
+ private horizontalZoom;
29
+ private verticalZoom;
30
+ private zoomIn;
31
+ private zoomOut;
32
+ private panning;
33
+ private mouseArrow;
34
+ private undo;
35
+ private redo;
36
+ private camera;
37
+ private imagesLoaded;
38
+ currentTool: 'rubberband-zoom' | 'horizontal-zoom' | 'vertical-zoom' | 'zoom-in' | 'zoom-out' | 'panning' | 'default';
39
+ private commandBuffer;
40
+ constructor(xyGraph: XYGraph);
41
+ updateState(): void;
42
+ addCommand(command: Command): void;
43
+ toggleTool(button: Button): void;
44
+ private createToolButton;
45
+ private createToggleButton;
46
+ private createButton;
47
+ draw(g: Graphics, area: Bounds): number;
48
+ private maybeWrap;
49
+ private drawSeparator;
50
+ private drawButton;
51
+ get scale(): number;
52
+ get buttonSize(): number;
53
+ }
54
+ export {};
@@ -1,9 +1,11 @@
1
1
  import { Display } from '../../Display';
2
2
  import { Graphics } from '../../Graphics';
3
+ import { XMLNode } from '../../XMLNode';
3
4
  import { AbstractContainerWidget } from './AbstractContainerWidget';
4
5
  export declare class LinkingContainer extends AbstractContainerWidget {
5
6
  private linkedDisplay?;
6
7
  constructor(display: Display, parent: AbstractContainerWidget);
8
+ parseNode(node: XMLNode): void;
7
9
  init(): void;
8
10
  draw(g: Graphics): void;
9
11
  getLinkedWidget(): import("../../Widget").Widget | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yamcs/opi",
3
- "version": "1.2.1",
3
+ "version": "1.2.4",
4
4
  "description": "OPI Display Renderer",
5
5
  "author": "Yamcs Team <yamcs@spaceapplications.com>",
6
6
  "repository": {
@@ -24,21 +24,19 @@
24
24
  "dist/"
25
25
  ],
26
26
  "devDependencies": {
27
- "@rollup/plugin-commonjs": "^20.0.0",
27
+ "@rollup/plugin-commonjs": "^21.0.2",
28
28
  "@rollup/plugin-node-resolve": "^13.0.4",
29
- "@types/dygraphs": "^2.1.3",
30
29
  "@types/fontfaceobserver": "2.1.0",
31
- "@types/node": "^14.17.9",
32
- "dygraphs": "^2.1.0",
33
- "express": "^4.17.1",
30
+ "@types/node": "^14.18.12",
31
+ "express": "^4.17.3",
34
32
  "fontfaceobserver": "^2.0.13",
35
33
  "morgan": "^1.10.0",
36
34
  "nunjucks": "^3.2.2",
37
35
  "peggy": "^1.2.0",
38
- "rollup": "^2.56.2",
36
+ "rollup": "^2.68.0",
39
37
  "rollup-plugin-copy": "^3.3.0",
40
38
  "rollup-plugin-terser": "^7.0.2",
41
- "rollup-plugin-typescript2": "^0.30.0",
39
+ "rollup-plugin-typescript2": "^0.31.2",
42
40
  "typescript": "^4.3.5"
43
41
  }
44
42
  }