@insync-stageplayer/annotations 0.4.7 → 0.4.8

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 (41) hide show
  1. package/lib/components/AnnotationContent.d.ts +37 -37
  2. package/lib/components/AnnotationContent.js +59 -59
  3. package/lib/components/AnnotationEditForm.d.ts +26 -26
  4. package/lib/components/AnnotationEditForm.js +146 -146
  5. package/lib/components/AnnotationsModuleProvider.d.ts +36 -36
  6. package/lib/components/AnnotationsModuleProvider.js +20 -20
  7. package/lib/components/AnnotationsViewer.d.ts +15 -15
  8. package/lib/components/AnnotationsViewer.js +107 -107
  9. package/lib/components/DraggablePosition.d.ts +31 -31
  10. package/lib/components/DraggablePosition.js +62 -62
  11. package/lib/components/MeasurementDisplayDataContext.d.ts +10 -10
  12. package/lib/components/MeasurementDisplayDataContext.js +2 -2
  13. package/lib/components/MeasurementDisplayDataProvider.d.ts +15 -15
  14. package/lib/components/MeasurementDisplayDataProvider.js +45 -45
  15. package/lib/components/MeasurementDisplayEditor.d.ts +19 -19
  16. package/lib/components/MeasurementDisplayEditor.js +136 -136
  17. package/lib/components/MeasurementDisplayElement.d.ts +18 -18
  18. package/lib/components/MeasurementDisplayElement.js +97 -97
  19. package/lib/components/ModalAnnotationEditor.d.ts +12 -12
  20. package/lib/components/ModalAnnotationEditor.js +37 -37
  21. package/lib/formatNumber.d.ts +29 -29
  22. package/lib/formatNumber.js +12 -12
  23. package/lib/index.d.ts +7 -7
  24. package/lib/index.js +7 -7
  25. package/lib/redux/actions.d.ts +1 -1
  26. package/lib/redux/actions.js +1 -1
  27. package/lib/redux/annotationEditor.slice.d.ts +37 -37
  28. package/lib/redux/annotationEditor.slice.js +122 -122
  29. package/lib/redux/annotations.slice.d.ts +31 -31
  30. package/lib/redux/annotations.slice.js +65 -65
  31. package/lib/redux/measurementDisplayEditor.slice.d.ts +25 -25
  32. package/lib/redux/measurementDisplayEditor.slice.js +36 -36
  33. package/lib/redux/measurementDisplays.slice.d.ts +25 -25
  34. package/lib/redux/measurementDisplays.slice.js +22 -22
  35. package/lib/redux/reducer.d.ts +51 -51
  36. package/lib/redux/reducer.js +65 -65
  37. package/lib/useBoundingRect.d.ts +8 -8
  38. package/lib/useBoundingRect.js +27 -27
  39. package/lib/util.d.ts +5 -5
  40. package/lib/util.js +7 -7
  41. package/package.json +5 -5
@@ -1,20 +1,20 @@
1
- import React from "react";
2
- import { MeasurementDisplay } from "../redux/measurementDisplays.slice";
3
- declare module MeasurementDisplayEditor {
4
- type SharedProps = Omit<React.HTMLAttributes<HTMLFormElement>, "onChange"> & {
5
- onClose: () => void;
6
- };
7
- export type ComponentProps = SharedProps & {
8
- display?: MeasurementDisplay;
9
- onChange: (update: Partial<MeasurementDisplay>) => void;
10
- onDelete: () => void;
11
- };
12
- export const Component: React.FC<ComponentProps>;
13
- type ContainerProps = SharedProps & {
14
- id: string;
15
- };
16
- export const Container: React.FC<ContainerProps>;
17
- export {};
18
- }
19
- export default MeasurementDisplayEditor;
1
+ import React from "react";
2
+ import { MeasurementDisplay } from "../redux/measurementDisplays.slice";
3
+ declare module MeasurementDisplayEditor {
4
+ type SharedProps = Omit<React.HTMLAttributes<HTMLFormElement>, "onChange"> & {
5
+ onClose: () => void;
6
+ };
7
+ export type ComponentProps = SharedProps & {
8
+ display?: MeasurementDisplay;
9
+ onChange: (update: Partial<MeasurementDisplay>) => void;
10
+ onDelete: () => void;
11
+ };
12
+ export const Component: React.FC<ComponentProps>;
13
+ type ContainerProps = SharedProps & {
14
+ id: string;
15
+ };
16
+ export const Container: React.FC<ContainerProps>;
17
+ export {};
18
+ }
19
+ export default MeasurementDisplayEditor;
20
20
  //# sourceMappingURL=MeasurementDisplayEditor.d.ts.map
@@ -1,137 +1,137 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
11
- };
12
- import React, { useContext } from "react";
13
- import { useDispatch, useSelector } from "react-redux";
14
- import { AnnotationsModuleContext } from "./AnnotationsModuleProvider";
15
- import { updateMeasurementDisplay, deleteMeasurementDisplay, } from "../redux/measurementDisplays.slice";
16
- import { useTheme } from "@insync-stageplayer/ui-components";
17
- import cx from "classnames";
18
- var MeasurementDisplayEditor;
19
- (function (MeasurementDisplayEditor) {
20
- MeasurementDisplayEditor.Component = (props) => {
21
- const theme = useTheme();
22
- const { onChange, onClose, onDelete, display, className, style } = props;
23
- return (React.createElement("form", { className: className, style: style, onSubmit: (e) => {
24
- e.preventDefault();
25
- return false;
26
- } },
27
- React.createElement("div", { className: cx("card", theme.name === "dark" && "bg-dark", "h-100", "flex-column") },
28
- React.createElement("div", { className: "card-body" },
29
- React.createElement("div", { className: "row" },
30
- React.createElement("div", { className: "col" },
31
- React.createElement("div", { className: "form-check" },
32
- React.createElement("input", { type: "checkbox", id: "measurementDisplayShowSignal", className: "form-check-input", name: "showSignal", checked: display === null || display === void 0 ? void 0 : display.showSignal, onChange: (e) => {
33
- onChange({
34
- showSignal: e.target.checked,
35
- });
36
- } }),
37
- React.createElement("label", { htmlFor: "measurementDisplayShowSignal", className: "form-check-label" }, "Show Signal Unit"))),
38
- React.createElement("div", { className: "col" },
39
- React.createElement("div", { className: "form-check" },
40
- React.createElement("input", { type: "checkbox", id: "measurementDisplayShowSigColor", className: "form-check-input", name: "showSigColor", checked: display === null || display === void 0 ? void 0 : display.showSigColor, onChange: (e) => {
41
- onChange({
42
- showSigColor: e.target.checked,
43
- });
44
- } }),
45
- React.createElement("label", { htmlFor: "measurementDisplayShowSigColor", className: "form-check-label" }, "Show Signal Color")))),
46
- React.createElement("div", { className: "row" },
47
- React.createElement("div", { className: "col" },
48
- React.createElement("div", { className: "form-check" },
49
- React.createElement("input", { type: "checkbox", id: "measurementDisplayShowX", className: "form-check-input", name: "showX", checked: display === null || display === void 0 ? void 0 : display.showX, onChange: (e) => {
50
- onChange({
51
- showX: e.target.checked,
52
- });
53
- } }),
54
- React.createElement("label", { htmlFor: "measurementDisplayShowX", className: "form-check-label" }, "Show X")))),
55
- React.createElement("div", { className: "row" },
56
- React.createElement("div", { className: "col" },
57
- React.createElement("label", { htmlFor: "measurementDisplayDecimalsX" }, "Decimals X"),
58
- React.createElement("input", { id: "measurementDisplayDecimalsX", type: "number", name: "decimalsX", className: "form-control", min: 0, max: 100, disabled: !(display === null || display === void 0 ? void 0 : display.showX), value: (display === null || display === void 0 ? void 0 : display.decimalsX) || "", onChange: (e) => {
59
- onChange({
60
- decimalsX: Math.min(100, Math.max(0, parseInt(e.target.value))),
61
- });
62
- } }))),
63
- React.createElement("div", { className: "row" },
64
- React.createElement("div", { className: "col" },
65
- React.createElement("label", { htmlFor: "measurementDisplayPadXTo" }, "Pad X to"),
66
- React.createElement("input", { id: "measurementDisplayPadXTo", type: "number", className: "form-control", min: 0, max: 100, disabled: !(display === null || display === void 0 ? void 0 : display.showX), name: "padXTo", value: (display === null || display === void 0 ? void 0 : display.padXTo) || "", onChange: (e) => {
67
- onChange({
68
- padXTo: Math.max(0, parseInt(e.target.value)),
69
- });
70
- } })),
71
- React.createElement("div", { className: "col" },
72
- React.createElement("label", { htmlFor: "measurementDisplayPadXChar" }, "Pad X character"),
73
- React.createElement("input", { type: "text", id: "measurementDisplayPadXChar", className: "form-control", name: "padXChar", maxLength: 1, disabled: !(display === null || display === void 0 ? void 0 : display.showX), value: !(display === null || display === void 0 ? void 0 : display.padXChar) || display.padXChar === " "
74
- ? ""
75
- : display.padXChar, onChange: (e) => {
76
- onChange({
77
- padXChar: e.target.value || " ",
78
- });
79
- } }))))),
80
- React.createElement("div", { className: cx("card", theme.name === "dark" && "bg-dark", "h-100", "flex-column") },
81
- React.createElement("div", { className: "card-body" },
82
- React.createElement("div", { className: "row" },
83
- React.createElement("div", { className: "col" },
84
- React.createElement("div", { className: "form-check" },
85
- React.createElement("input", { id: "measurementDisplayPadTo", className: "form-check-input", type: "checkbox", name: "showY", checked: display === null || display === void 0 ? void 0 : display.showY, onChange: (e) => {
86
- onChange({
87
- showY: e.target.checked,
88
- });
89
- } }),
90
- React.createElement("label", { htmlFor: "measurementDisplayPadTo", className: "form-check-label" }, "Show Y")))),
91
- React.createElement("div", { className: "row" },
92
- React.createElement("div", { className: "col" },
93
- React.createElement("label", { htmlFor: "measurementDisplayDecimals" }, "Decimals Y"),
94
- React.createElement("input", { type: "number", className: "form-control", id: "measurementDisplayDecimals", disabled: !(display === null || display === void 0 ? void 0 : display.showY), name: "decimalsY", min: 0, max: 100, value: (display === null || display === void 0 ? void 0 : display.decimalsY) || "", onChange: (e) => {
95
- onChange({
96
- decimalsY: Math.min(100, Math.max(0, parseInt(e.target.value))),
97
- });
98
- } }))),
99
- React.createElement("div", { className: "row" },
100
- React.createElement("div", { className: "col" },
101
- React.createElement("label", { htmlFor: "measurementDisplayPadYTo" }, "Pad Y to"),
102
- React.createElement("input", { id: "measurementDisplayPadYTo", type: "number", className: "form-control", min: 0, max: 100, disabled: !(display === null || display === void 0 ? void 0 : display.showY), name: "padYTo", value: (display === null || display === void 0 ? void 0 : display.padYTo) || "", onChange: (e) => {
103
- onChange({
104
- padYTo: Math.max(0, parseInt(e.target.value)),
105
- });
106
- } })),
107
- React.createElement("div", { className: "col" },
108
- React.createElement("label", { htmlFor: "measurementDisplayPadYChar" }, "Pad Y character"),
109
- React.createElement("input", { type: "text", id: "measurementDisplayPadYChar", className: "form-control", name: "padYChar", maxLength: 1, disabled: !(display === null || display === void 0 ? void 0 : display.showY), value: !(display === null || display === void 0 ? void 0 : display.padYChar) || display.padYChar === " "
110
- ? ""
111
- : display.padYChar, onChange: (e) => {
112
- onChange({
113
- padYChar: e.target.value || " ",
114
- });
115
- } }))))),
116
- React.createElement("button", { className: "btn btn-primary mr-3", onClick: onClose }, "Ok"),
117
- React.createElement("button", { className: "btn btn-danger", onClick: () => {
118
- onDelete();
119
- onClose();
120
- } }, "Delete")));
121
- };
122
- MeasurementDisplayEditor.Container = (props) => {
123
- const { id, onClose } = props, rest = __rest(props, ["id", "onClose"]);
124
- const dispatch = useDispatch();
125
- const { entitiesSelectors } = useContext(AnnotationsModuleContext);
126
- const display = useSelector((s) => entitiesSelectors.measurementDisplays.selectById(s, id));
127
- const handleChange = (changes) => {
128
- dispatch(updateMeasurementDisplay({ id, changes }));
129
- };
130
- const handleDelete = () => {
131
- dispatch(deleteMeasurementDisplay(id));
132
- };
133
- return (React.createElement(MeasurementDisplayEditor.Component, Object.assign({ display: display, onChange: handleChange, onDelete: handleDelete, onClose: onClose }, rest)));
134
- };
135
- })(MeasurementDisplayEditor || (MeasurementDisplayEditor = {}));
136
- export default MeasurementDisplayEditor;
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import React, { useContext } from "react";
13
+ import { useDispatch, useSelector } from "react-redux";
14
+ import { AnnotationsModuleContext } from "./AnnotationsModuleProvider";
15
+ import { updateMeasurementDisplay, deleteMeasurementDisplay, } from "../redux/measurementDisplays.slice";
16
+ import { useTheme } from "@insync-stageplayer/ui-components";
17
+ import cx from "classnames";
18
+ var MeasurementDisplayEditor;
19
+ (function (MeasurementDisplayEditor) {
20
+ MeasurementDisplayEditor.Component = (props) => {
21
+ const theme = useTheme();
22
+ const { onChange, onClose, onDelete, display, className, style } = props;
23
+ return (React.createElement("form", { className: className, style: style, onSubmit: (e) => {
24
+ e.preventDefault();
25
+ return false;
26
+ } },
27
+ React.createElement("div", { className: cx("card", theme.name === "dark" && "bg-dark", "h-100", "flex-column") },
28
+ React.createElement("div", { className: "card-body" },
29
+ React.createElement("div", { className: "row" },
30
+ React.createElement("div", { className: "col" },
31
+ React.createElement("div", { className: "form-check" },
32
+ React.createElement("input", { type: "checkbox", id: "measurementDisplayShowSignal", className: "form-check-input", name: "showSignal", checked: display === null || display === void 0 ? void 0 : display.showSignal, onChange: (e) => {
33
+ onChange({
34
+ showSignal: e.target.checked,
35
+ });
36
+ } }),
37
+ React.createElement("label", { htmlFor: "measurementDisplayShowSignal", className: "form-check-label" }, "Show Signal Unit"))),
38
+ React.createElement("div", { className: "col" },
39
+ React.createElement("div", { className: "form-check" },
40
+ React.createElement("input", { type: "checkbox", id: "measurementDisplayShowSigColor", className: "form-check-input", name: "showSigColor", checked: display === null || display === void 0 ? void 0 : display.showSigColor, onChange: (e) => {
41
+ onChange({
42
+ showSigColor: e.target.checked,
43
+ });
44
+ } }),
45
+ React.createElement("label", { htmlFor: "measurementDisplayShowSigColor", className: "form-check-label" }, "Show Signal Color")))),
46
+ React.createElement("div", { className: "row" },
47
+ React.createElement("div", { className: "col" },
48
+ React.createElement("div", { className: "form-check" },
49
+ React.createElement("input", { type: "checkbox", id: "measurementDisplayShowX", className: "form-check-input", name: "showX", checked: display === null || display === void 0 ? void 0 : display.showX, onChange: (e) => {
50
+ onChange({
51
+ showX: e.target.checked,
52
+ });
53
+ } }),
54
+ React.createElement("label", { htmlFor: "measurementDisplayShowX", className: "form-check-label" }, "Show X")))),
55
+ React.createElement("div", { className: "row" },
56
+ React.createElement("div", { className: "col" },
57
+ React.createElement("label", { htmlFor: "measurementDisplayDecimalsX" }, "Decimals X"),
58
+ React.createElement("input", { id: "measurementDisplayDecimalsX", type: "number", name: "decimalsX", className: "form-control", min: 0, max: 100, disabled: !(display === null || display === void 0 ? void 0 : display.showX), value: (display === null || display === void 0 ? void 0 : display.decimalsX) || "", onChange: (e) => {
59
+ onChange({
60
+ decimalsX: Math.min(100, Math.max(0, parseInt(e.target.value))),
61
+ });
62
+ } }))),
63
+ React.createElement("div", { className: "row" },
64
+ React.createElement("div", { className: "col" },
65
+ React.createElement("label", { htmlFor: "measurementDisplayPadXTo" }, "Pad X to"),
66
+ React.createElement("input", { id: "measurementDisplayPadXTo", type: "number", className: "form-control", min: 0, max: 100, disabled: !(display === null || display === void 0 ? void 0 : display.showX), name: "padXTo", value: (display === null || display === void 0 ? void 0 : display.padXTo) || "", onChange: (e) => {
67
+ onChange({
68
+ padXTo: Math.max(0, parseInt(e.target.value)),
69
+ });
70
+ } })),
71
+ React.createElement("div", { className: "col" },
72
+ React.createElement("label", { htmlFor: "measurementDisplayPadXChar" }, "Pad X character"),
73
+ React.createElement("input", { type: "text", id: "measurementDisplayPadXChar", className: "form-control", name: "padXChar", maxLength: 1, disabled: !(display === null || display === void 0 ? void 0 : display.showX), value: !(display === null || display === void 0 ? void 0 : display.padXChar) || display.padXChar === " "
74
+ ? ""
75
+ : display.padXChar, onChange: (e) => {
76
+ onChange({
77
+ padXChar: e.target.value || " ",
78
+ });
79
+ } }))))),
80
+ React.createElement("div", { className: cx("card", theme.name === "dark" && "bg-dark", "h-100", "flex-column") },
81
+ React.createElement("div", { className: "card-body" },
82
+ React.createElement("div", { className: "row" },
83
+ React.createElement("div", { className: "col" },
84
+ React.createElement("div", { className: "form-check" },
85
+ React.createElement("input", { id: "measurementDisplayPadTo", className: "form-check-input", type: "checkbox", name: "showY", checked: display === null || display === void 0 ? void 0 : display.showY, onChange: (e) => {
86
+ onChange({
87
+ showY: e.target.checked,
88
+ });
89
+ } }),
90
+ React.createElement("label", { htmlFor: "measurementDisplayPadTo", className: "form-check-label" }, "Show Y")))),
91
+ React.createElement("div", { className: "row" },
92
+ React.createElement("div", { className: "col" },
93
+ React.createElement("label", { htmlFor: "measurementDisplayDecimals" }, "Decimals Y"),
94
+ React.createElement("input", { type: "number", className: "form-control", id: "measurementDisplayDecimals", disabled: !(display === null || display === void 0 ? void 0 : display.showY), name: "decimalsY", min: 0, max: 100, value: (display === null || display === void 0 ? void 0 : display.decimalsY) || "", onChange: (e) => {
95
+ onChange({
96
+ decimalsY: Math.min(100, Math.max(0, parseInt(e.target.value))),
97
+ });
98
+ } }))),
99
+ React.createElement("div", { className: "row" },
100
+ React.createElement("div", { className: "col" },
101
+ React.createElement("label", { htmlFor: "measurementDisplayPadYTo" }, "Pad Y to"),
102
+ React.createElement("input", { id: "measurementDisplayPadYTo", type: "number", className: "form-control", min: 0, max: 100, disabled: !(display === null || display === void 0 ? void 0 : display.showY), name: "padYTo", value: (display === null || display === void 0 ? void 0 : display.padYTo) || "", onChange: (e) => {
103
+ onChange({
104
+ padYTo: Math.max(0, parseInt(e.target.value)),
105
+ });
106
+ } })),
107
+ React.createElement("div", { className: "col" },
108
+ React.createElement("label", { htmlFor: "measurementDisplayPadYChar" }, "Pad Y character"),
109
+ React.createElement("input", { type: "text", id: "measurementDisplayPadYChar", className: "form-control", name: "padYChar", maxLength: 1, disabled: !(display === null || display === void 0 ? void 0 : display.showY), value: !(display === null || display === void 0 ? void 0 : display.padYChar) || display.padYChar === " "
110
+ ? ""
111
+ : display.padYChar, onChange: (e) => {
112
+ onChange({
113
+ padYChar: e.target.value || " ",
114
+ });
115
+ } }))))),
116
+ React.createElement("button", { className: "btn btn-primary mr-3", onClick: onClose }, "Ok"),
117
+ React.createElement("button", { className: "btn btn-danger", onClick: () => {
118
+ onDelete();
119
+ onClose();
120
+ } }, "Delete")));
121
+ };
122
+ MeasurementDisplayEditor.Container = (props) => {
123
+ const { id, onClose } = props, rest = __rest(props, ["id", "onClose"]);
124
+ const dispatch = useDispatch();
125
+ const { entitiesSelectors } = useContext(AnnotationsModuleContext);
126
+ const display = useSelector((s) => entitiesSelectors.measurementDisplays.selectById(s, id));
127
+ const handleChange = (changes) => {
128
+ dispatch(updateMeasurementDisplay({ id, changes }));
129
+ };
130
+ const handleDelete = () => {
131
+ dispatch(deleteMeasurementDisplay(id));
132
+ };
133
+ return (React.createElement(MeasurementDisplayEditor.Component, Object.assign({ display: display, onChange: handleChange, onDelete: handleDelete, onClose: onClose }, rest)));
134
+ };
135
+ })(MeasurementDisplayEditor || (MeasurementDisplayEditor = {}));
136
+ export default MeasurementDisplayEditor;
137
137
  //# sourceMappingURL=MeasurementDisplayEditor.js.map
@@ -1,19 +1,19 @@
1
- import React from "react";
2
- interface MeasurementDisplayElementProps extends React.HTMLAttributes<HTMLSpanElement> {
3
- editable: boolean;
4
- xRange: {
5
- start: number;
6
- duration: number;
7
- };
8
- }
9
- /**
10
- * A component that displays the current value of a measurement.
11
- */
12
- export declare const MeasurementDisplayElement: React.ForwardRefExoticComponent<MeasurementDisplayElementProps & {
13
- /**
14
- * The id of the measurement display being edited.
15
- */
16
- id: string;
17
- } & React.RefAttributes<HTMLSpanElement>>;
18
- export default MeasurementDisplayElement;
1
+ import React from "react";
2
+ interface MeasurementDisplayElementProps extends React.HTMLAttributes<HTMLSpanElement> {
3
+ editable: boolean;
4
+ xRange: {
5
+ start: number;
6
+ duration: number;
7
+ };
8
+ }
9
+ /**
10
+ * A component that displays the current value of a measurement.
11
+ */
12
+ export declare const MeasurementDisplayElement: React.ForwardRefExoticComponent<MeasurementDisplayElementProps & {
13
+ /**
14
+ * The id of the measurement display being edited.
15
+ */
16
+ id: string;
17
+ } & React.RefAttributes<HTMLSpanElement>>;
18
+ export default MeasurementDisplayElement;
19
19
  //# sourceMappingURL=MeasurementDisplayElement.d.ts.map
@@ -1,98 +1,98 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
11
- };
12
- import { useMeasurement } from "@insync-stageplayer/measurements";
13
- import React, { useContext, useEffect } from "react";
14
- import { useSelector } from "react-redux";
15
- import { formatNumber } from "../formatNumber";
16
- import { MeasurementDisplayDataContext } from "./MeasurementDisplayDataContext";
17
- import { AnnotationsModuleContext } from "./AnnotationsModuleProvider";
18
- import { useTheme } from "@insync-stageplayer/ui-components";
19
- /**
20
- * A hook that registers the consuming component in the MeasurementDisplayDataContext.
21
- * @param measurementId
22
- * @returns
23
- */
24
- const useMeasurementDisplayData = (measurementId) => {
25
- const { register, data: allData, loading, error, } = useContext(MeasurementDisplayDataContext);
26
- useEffect(() => {
27
- if (!measurementId)
28
- return;
29
- const unregister = register(measurementId);
30
- return () => {
31
- unregister();
32
- };
33
- }, [register, measurementId]);
34
- const data = measurementId &&
35
- allData &&
36
- allData[measurementId] &&
37
- allData[measurementId][0]
38
- ? {
39
- x: allData[measurementId][0][0],
40
- y: allData[measurementId][0][1],
41
- }
42
- : undefined;
43
- return {
44
- loading,
45
- error,
46
- data,
47
- };
48
- };
49
- /**
50
- * A component that displays the current value of a measurement.
51
- */
52
- export const MeasurementDisplayElement = React.forwardRef((props, ref) => {
53
- const { id, editable, children, xRange } = props, rest = __rest(props, ["id", "editable", "children", "xRange"]);
54
- const theme = useTheme();
55
- const context = useContext(AnnotationsModuleContext);
56
- const display = useSelector((s) => context.entitiesSelectors.measurementDisplays.selectById(s, id));
57
- const { measurement } = useMeasurement(display === null || display === void 0 ? void 0 : display.measurementId);
58
- const { data } = useMeasurementDisplayData(measurement === null || measurement === void 0 ? void 0 : measurement.id);
59
- const padXStart = Math.max(3, (display === null || display === void 0 ? void 0 : display.padXTo) || 0);
60
- const padYStart = Math.max(3, (display === null || display === void 0 ? void 0 : display.padYTo) || 0);
61
- const decimalsX = (display === null || display === void 0 ? void 0 : display.decimalsX) !== undefined ? display.decimalsX : 0;
62
- const decimalsY = (display === null || display === void 0 ? void 0 : display.decimalsY) !== undefined ? display.decimalsY : 0;
63
- const xValue = (display === null || display === void 0 ? void 0 : display.showX) && (data === null || data === void 0 ? void 0 : data.x) !== "NaN"
64
- ? formatNumber({
65
- value: (data === null || data === void 0 ? void 0 : data.x) && data.x > 0 ? data.x / 1000 / 1000 : 0,
66
- decimals: decimalsX,
67
- padStart: padXStart,
68
- padChar: display.padXChar,
69
- })
70
- : undefined;
71
- const yValue = (display === null || display === void 0 ? void 0 : display.showY) && (data === null || data === void 0 ? void 0 : data.y) !== "NaN"
72
- ? formatNumber({
73
- value: data === null || data === void 0 ? void 0 : data.y,
74
- decimals: decimalsY,
75
- padStart: padYStart,
76
- padChar: display.padYChar,
77
- unit: (display === null || display === void 0 ? void 0 : display.showSignal) ? measurement === null || measurement === void 0 ? void 0 : measurement.unit : "",
78
- })
79
- : undefined;
80
- const formattedString = `${xValue ? `${xValue}` : ""}${xValue && yValue ? ":" : ""}${yValue ? yValue : ""}`;
81
- return (React.createElement("span", Object.assign({ className: "badge", role: "button", ref: ref }, rest, { style: {
82
- backgroundColor: "transparent",
83
- cursor: editable ? "pointer" : "text",
84
- fontFamily: "monospace",
85
- fontSize: "16px",
86
- fontWeight: 400,
87
- padding: ".2em",
88
- margin: ".1em",
89
- whiteSpace: "pre",
90
- color: "white",
91
- border: (display === null || display === void 0 ? void 0 : display.showSigColor) ? "1px solid" : "0px solid",
92
- borderColor: (display === null || display === void 0 ? void 0 : display.showSigColor) ? measurement === null || measurement === void 0 ? void 0 : measurement.color : "unset",
93
- } }),
94
- formattedString,
95
- children));
96
- });
97
- export default MeasurementDisplayElement;
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { useMeasurement } from "@insync-stageplayer/measurements";
13
+ import React, { useContext, useEffect } from "react";
14
+ import { useSelector } from "react-redux";
15
+ import { formatNumber } from "../formatNumber";
16
+ import { MeasurementDisplayDataContext } from "./MeasurementDisplayDataContext";
17
+ import { AnnotationsModuleContext } from "./AnnotationsModuleProvider";
18
+ import { useTheme } from "@insync-stageplayer/ui-components";
19
+ /**
20
+ * A hook that registers the consuming component in the MeasurementDisplayDataContext.
21
+ * @param measurementId
22
+ * @returns
23
+ */
24
+ const useMeasurementDisplayData = (measurementId) => {
25
+ const { register, data: allData, loading, error, } = useContext(MeasurementDisplayDataContext);
26
+ useEffect(() => {
27
+ if (!measurementId)
28
+ return;
29
+ const unregister = register(measurementId);
30
+ return () => {
31
+ unregister();
32
+ };
33
+ }, [register, measurementId]);
34
+ const data = measurementId &&
35
+ allData &&
36
+ allData[measurementId] &&
37
+ allData[measurementId][0]
38
+ ? {
39
+ x: allData[measurementId][0][0],
40
+ y: allData[measurementId][0][1],
41
+ }
42
+ : undefined;
43
+ return {
44
+ loading,
45
+ error,
46
+ data,
47
+ };
48
+ };
49
+ /**
50
+ * A component that displays the current value of a measurement.
51
+ */
52
+ export const MeasurementDisplayElement = React.forwardRef((props, ref) => {
53
+ const { id, editable, children, xRange } = props, rest = __rest(props, ["id", "editable", "children", "xRange"]);
54
+ const theme = useTheme();
55
+ const context = useContext(AnnotationsModuleContext);
56
+ const display = useSelector((s) => context.entitiesSelectors.measurementDisplays.selectById(s, id));
57
+ const { measurement } = useMeasurement(display === null || display === void 0 ? void 0 : display.measurementId);
58
+ const { data } = useMeasurementDisplayData(measurement === null || measurement === void 0 ? void 0 : measurement.id);
59
+ const padXStart = Math.max(3, (display === null || display === void 0 ? void 0 : display.padXTo) || 0);
60
+ const padYStart = Math.max(3, (display === null || display === void 0 ? void 0 : display.padYTo) || 0);
61
+ const decimalsX = (display === null || display === void 0 ? void 0 : display.decimalsX) !== undefined ? display.decimalsX : 0;
62
+ const decimalsY = (display === null || display === void 0 ? void 0 : display.decimalsY) !== undefined ? display.decimalsY : 0;
63
+ const xValue = (display === null || display === void 0 ? void 0 : display.showX) && (data === null || data === void 0 ? void 0 : data.x) !== "NaN"
64
+ ? formatNumber({
65
+ value: (data === null || data === void 0 ? void 0 : data.x) && data.x > 0 ? data.x / 1000 / 1000 : 0,
66
+ decimals: decimalsX,
67
+ padStart: padXStart,
68
+ padChar: display.padXChar,
69
+ })
70
+ : undefined;
71
+ const yValue = (display === null || display === void 0 ? void 0 : display.showY) && (data === null || data === void 0 ? void 0 : data.y) !== "NaN"
72
+ ? formatNumber({
73
+ value: data === null || data === void 0 ? void 0 : data.y,
74
+ decimals: decimalsY,
75
+ padStart: padYStart,
76
+ padChar: display.padYChar,
77
+ unit: (display === null || display === void 0 ? void 0 : display.showSignal) ? measurement === null || measurement === void 0 ? void 0 : measurement.unit : "",
78
+ })
79
+ : undefined;
80
+ const formattedString = `${xValue ? `${xValue}` : ""}${xValue && yValue ? ":" : ""}${yValue ? yValue : ""}`;
81
+ return (React.createElement("span", Object.assign({ className: "badge", role: "button", ref: ref }, rest, { style: {
82
+ backgroundColor: "transparent",
83
+ cursor: editable ? "pointer" : "text",
84
+ fontFamily: "monospace",
85
+ fontSize: "16px",
86
+ fontWeight: 400,
87
+ padding: ".2em",
88
+ margin: ".1em",
89
+ whiteSpace: "pre",
90
+ color: "white",
91
+ border: (display === null || display === void 0 ? void 0 : display.showSigColor) ? "1px solid" : "0px solid",
92
+ borderColor: (display === null || display === void 0 ? void 0 : display.showSigColor) ? measurement === null || measurement === void 0 ? void 0 : measurement.color : "unset",
93
+ } }),
94
+ formattedString,
95
+ children));
96
+ });
97
+ export default MeasurementDisplayElement;
98
98
  //# sourceMappingURL=MeasurementDisplayElement.js.map
@@ -1,13 +1,13 @@
1
- import React, { CSSProperties } from "react";
2
- export declare type ModalAnnotationEditorProps = {
3
- title: string;
4
- className?: string;
5
- style?: CSSProperties;
6
- };
7
- /**
8
- * A modal wrapper around AnnotationEditor.
9
- * @param props
10
- * @returns
11
- */
12
- export declare const ModalAnnotationEditor: React.FC<ModalAnnotationEditorProps>;
1
+ import React, { CSSProperties } from "react";
2
+ export declare type ModalAnnotationEditorProps = {
3
+ title: string;
4
+ className?: string;
5
+ style?: CSSProperties;
6
+ };
7
+ /**
8
+ * A modal wrapper around AnnotationEditor.
9
+ * @param props
10
+ * @returns
11
+ */
12
+ export declare const ModalAnnotationEditor: React.FC<ModalAnnotationEditorProps>;
13
13
  //# sourceMappingURL=ModalAnnotationEditor.d.ts.map