@insync-stageplayer/annotations 0.4.6 → 0.4.7

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 (44) hide show
  1. package/lib/components/AnnotationContent.d.ts +37 -37
  2. package/lib/components/AnnotationContent.d.ts.map +1 -1
  3. package/lib/components/AnnotationContent.js +60 -59
  4. package/lib/components/AnnotationContent.js.map +1 -1
  5. package/lib/components/AnnotationEditForm.d.ts +26 -26
  6. package/lib/components/AnnotationEditForm.js +146 -146
  7. package/lib/components/AnnotationsModuleProvider.d.ts +36 -36
  8. package/lib/components/AnnotationsModuleProvider.js +20 -20
  9. package/lib/components/AnnotationsViewer.d.ts +15 -15
  10. package/lib/components/AnnotationsViewer.js +107 -107
  11. package/lib/components/DraggablePosition.d.ts +31 -31
  12. package/lib/components/DraggablePosition.js +62 -62
  13. package/lib/components/MeasurementDisplayDataContext.d.ts +10 -10
  14. package/lib/components/MeasurementDisplayDataContext.js +2 -2
  15. package/lib/components/MeasurementDisplayDataProvider.d.ts +15 -15
  16. package/lib/components/MeasurementDisplayDataProvider.js +45 -45
  17. package/lib/components/MeasurementDisplayEditor.d.ts +19 -19
  18. package/lib/components/MeasurementDisplayEditor.js +136 -136
  19. package/lib/components/MeasurementDisplayElement.d.ts +18 -18
  20. package/lib/components/MeasurementDisplayElement.js +97 -96
  21. package/lib/components/MeasurementDisplayElement.js.map +1 -1
  22. package/lib/components/ModalAnnotationEditor.d.ts +12 -12
  23. package/lib/components/ModalAnnotationEditor.js +37 -37
  24. package/lib/formatNumber.d.ts +29 -29
  25. package/lib/formatNumber.js +12 -12
  26. package/lib/index.d.ts +7 -7
  27. package/lib/index.js +7 -7
  28. package/lib/redux/actions.d.ts +1 -1
  29. package/lib/redux/actions.js +1 -1
  30. package/lib/redux/annotationEditor.slice.d.ts +37 -37
  31. package/lib/redux/annotationEditor.slice.js +122 -122
  32. package/lib/redux/annotations.slice.d.ts +31 -31
  33. package/lib/redux/annotations.slice.js +65 -65
  34. package/lib/redux/measurementDisplayEditor.slice.d.ts +25 -25
  35. package/lib/redux/measurementDisplayEditor.slice.js +36 -36
  36. package/lib/redux/measurementDisplays.slice.d.ts +25 -25
  37. package/lib/redux/measurementDisplays.slice.js +22 -22
  38. package/lib/redux/reducer.d.ts +51 -51
  39. package/lib/redux/reducer.js +65 -65
  40. package/lib/useBoundingRect.d.ts +8 -8
  41. package/lib/useBoundingRect.js +27 -27
  42. package/lib/util.d.ts +5 -5
  43. package/lib/util.js +7 -7
  44. package/package.json +5 -5
@@ -1,46 +1,46 @@
1
- import { useTimedMeasurementData } from "@insync-stageplayer/measurements";
2
- import React, { useState, useCallback, useMemo } from "react";
3
- import { MeasurementDisplayDataContext } from "./MeasurementDisplayDataContext";
4
- import { createId } from "../util";
5
- /**
6
- * Provides data for measurement displays. Keeps track of all registered measurement displays inside annotations.
7
- * @param props
8
- * @returns
9
- */
10
- export const MeasurementDisplayDataProvider = ({ timer, children }) => {
11
- /**
12
- * Keeps tracks of measurements being used by displays.
13
- */
14
- const [registered, setRegistered] = useState({});
15
- /**
16
- * A function to register a MeasurementDisplay. Returns a function to unregister it.
17
- * The returned function should be used in the consuming component when unmounting.
18
- */
19
- const register = useCallback((measurementId) => {
20
- let registrationId = createId();
21
- setRegistered((registered) => {
22
- return Object.assign(Object.assign({}, registered), { [registrationId]: measurementId });
23
- });
24
- return () => {
25
- setRegistered((registered) => {
26
- let newRegistered = Object.assign({}, registered);
27
- delete newRegistered[registrationId];
28
- return newRegistered;
29
- });
30
- };
31
- }, []);
32
- /**
33
- * The list of unique measurement ids.
34
- */
35
- const uniqRegistered = useMemo(() => {
36
- return [...new Set(Object.values(registered))];
37
- }, [registered]);
38
- const { data, error, loading } = useTimedMeasurementData({
39
- timer,
40
- measurements: uniqRegistered,
41
- rows: 1,
42
- unit: "MICRO",
43
- });
44
- return (React.createElement(MeasurementDisplayDataContext.Provider, { value: { register, data: data === null || data === void 0 ? void 0 : data.measurementData, error, loading } }, children));
45
- };
1
+ import { useTimedMeasurementData } from "@insync-stageplayer/measurements";
2
+ import React, { useState, useCallback, useMemo } from "react";
3
+ import { MeasurementDisplayDataContext } from "./MeasurementDisplayDataContext";
4
+ import { createId } from "../util";
5
+ /**
6
+ * Provides data for measurement displays. Keeps track of all registered measurement displays inside annotations.
7
+ * @param props
8
+ * @returns
9
+ */
10
+ export const MeasurementDisplayDataProvider = ({ timer, children }) => {
11
+ /**
12
+ * Keeps tracks of measurements being used by displays.
13
+ */
14
+ const [registered, setRegistered] = useState({});
15
+ /**
16
+ * A function to register a MeasurementDisplay. Returns a function to unregister it.
17
+ * The returned function should be used in the consuming component when unmounting.
18
+ */
19
+ const register = useCallback((measurementId) => {
20
+ let registrationId = createId();
21
+ setRegistered((registered) => {
22
+ return Object.assign(Object.assign({}, registered), { [registrationId]: measurementId });
23
+ });
24
+ return () => {
25
+ setRegistered((registered) => {
26
+ let newRegistered = Object.assign({}, registered);
27
+ delete newRegistered[registrationId];
28
+ return newRegistered;
29
+ });
30
+ };
31
+ }, []);
32
+ /**
33
+ * The list of unique measurement ids.
34
+ */
35
+ const uniqRegistered = useMemo(() => {
36
+ return [...new Set(Object.values(registered))];
37
+ }, [registered]);
38
+ const { data, error, loading } = useTimedMeasurementData({
39
+ timer,
40
+ measurements: uniqRegistered,
41
+ rows: 1,
42
+ unit: "MICRO",
43
+ });
44
+ return (React.createElement(MeasurementDisplayDataContext.Provider, { value: { register, data: data === null || data === void 0 ? void 0 : data.measurementData, error, loading } }, children));
45
+ };
46
46
  //# sourceMappingURL=MeasurementDisplayDataProvider.js.map
@@ -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