@insync-stageplayer/annotations 0.5.35-beta.1 → 0.5.37

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 (53) 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.d.ts.map +1 -1
  15. package/lib/components/MeasurementDisplayDataProvider.js +45 -45
  16. package/lib/components/MeasurementDisplayDataProvider.js.map +1 -1
  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.d.ts.map +1 -1
  21. package/lib/components/MeasurementDisplayElement.js +97 -65
  22. package/lib/components/MeasurementDisplayElement.js.map +1 -1
  23. package/lib/components/ModalAnnotationEditor.d.ts +12 -12
  24. package/lib/components/ModalAnnotationEditor.js +37 -37
  25. package/lib/formatNumber.d.ts +29 -29
  26. package/lib/formatNumber.js +12 -12
  27. package/lib/hooks/useMeasurementDisplayData.d.ts +14 -14
  28. package/lib/hooks/useMeasurementDisplayData.js +39 -39
  29. package/lib/index.d.ts +7 -8
  30. package/lib/index.d.ts.map +1 -1
  31. package/lib/index.js +7 -8
  32. package/lib/index.js.map +1 -1
  33. package/lib/redux/actions.d.ts +1 -1
  34. package/lib/redux/actions.js +1 -1
  35. package/lib/redux/annotationEditor.slice.d.ts +37 -37
  36. package/lib/redux/annotationEditor.slice.d.ts.map +1 -1
  37. package/lib/redux/annotationEditor.slice.js +122 -122
  38. package/lib/redux/annotations.slice.d.ts +31 -31
  39. package/lib/redux/annotations.slice.d.ts.map +1 -1
  40. package/lib/redux/annotations.slice.js +65 -65
  41. package/lib/redux/measurementDisplayEditor.slice.d.ts +25 -25
  42. package/lib/redux/measurementDisplayEditor.slice.d.ts.map +1 -1
  43. package/lib/redux/measurementDisplayEditor.slice.js +36 -36
  44. package/lib/redux/measurementDisplays.slice.d.ts +25 -25
  45. package/lib/redux/measurementDisplays.slice.d.ts.map +1 -1
  46. package/lib/redux/measurementDisplays.slice.js +22 -22
  47. package/lib/redux/reducer.d.ts +51 -51
  48. package/lib/redux/reducer.js +65 -65
  49. package/lib/useBoundingRect.d.ts +8 -8
  50. package/lib/useBoundingRect.js +27 -27
  51. package/lib/util.d.ts +5 -5
  52. package/lib/util.js +7 -7
  53. 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 +1 @@
1
- {"version":3,"file":"MeasurementDisplayDataProvider.js","sourceRoot":"","sources":["../../src/components/MeasurementDisplayDataProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AASnC;;;;GAIG;AACH,MAAM,CAAC,MAAM,8BAA8B,GACzC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IACtB;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAEzC,EAAE,CAAC,CAAC;IAEP;;;OAGG;IACH,MAAM,QAAQ,GAAG,WAAW,CAC1B,CAAC,aAA4C,EAAE,EAAE;QAC/C,IAAI,cAAc,GAAG,QAAQ,EAAE,CAAC;QAChC,aAAa,CAAC,CAAC,UAAU,EAAE,EAAE;YAC3B,uCACK,UAAU,KACb,CAAC,cAAc,CAAC,EAAE,aAAa,IAC/B;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,aAAa,CAAC,CAAC,UAAU,EAAE,EAAE;gBAC3B,IAAI,aAAa,qBAAQ,UAAU,CAAE,CAAC;gBACtC,OAAO,aAAa,CAAC,cAAc,CAAC,CAAC;gBACrC,OAAO,aAAa,CAAC;YACvB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC,EACD,EAAE,CACH,CAAC;IAEF;;OAEG;IACH,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE;QAClC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,uBAAuB,CAAC;QACvD,KAAK;QACL,YAAY,EAAE,cAAc;QAC5B,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IAEH,OAAO,CACL,oBAAC,6BAA6B,CAAC,QAAQ,IACrC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,IAE/D,QAAQ,CAC8B,CAC1C,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"MeasurementDisplayDataProvider.js","sourceRoot":"","sources":["../../src/components/MeasurementDisplayDataProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AASnC;;;;GAIG;AACH,MAAM,CAAC,MAAM,8BAA8B,GACzC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IACtB;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAEzC,EAAE,CAAC,CAAC;IAEP;;;OAGG;IACH,MAAM,QAAQ,GAAG,WAAW,CAC1B,CAAC,aAA4C,EAAE,EAAE;QAC/C,IAAI,cAAc,GAAG,QAAQ,EAAE,CAAC;QAChC,aAAa,CAAC,CAAC,UAAU,EAAE,EAAE;YAC3B,uCACK,UAAU,KACb,CAAC,cAAc,CAAC,EAAE,aAAa,IAC/B;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,aAAa,CAAC,CAAC,UAAU,EAAE,EAAE;gBAC3B,IAAI,aAAa,qBAAQ,UAAU,CAAE,CAAC;gBACtC,OAAO,aAAa,CAAC,cAAc,CAAC,CAAC;gBACrC,OAAO,aAAa,CAAC;YACvB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC,EACD,EAAE,CACH,CAAC;IAEF;;OAEG;IACH,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE;QAClC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,uBAAuB,CAAC;QACvD,KAAK;QACL,YAAY,EAAE,cAAc;QAC5B,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IAEH,OAAO,CACL,oBAAC,6BAA6B,CAAC,QAAQ,IACrC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,IAE/D,QAAQ,CAC8B,CAC1C,CAAC;AACJ,CAAC,CAAC"}
@@ -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 +1 @@
1
- {"version":3,"file":"MeasurementDisplayElement.d.ts","sourceRoot":"","sources":["../../src/components/MeasurementDisplayElement.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAM1C,UAAU,8BACR,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AASD;;GAEG;AACH,eAAO,MAAM,yBAAyB;IATpC;;OAEG;QACC,MAAM;yCA2EV,CAAC;AAEH,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"MeasurementDisplayElement.d.ts","sourceRoot":"","sources":["../../src/components/MeasurementDisplayElement.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAQrD,UAAU,8BACR,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AAmDD;;GAEG;AACH,eAAO,MAAM,yBAAyB;IAnDpC;;OAEG;QACC,MAAM;yCAsHV,CAAC;AAEH,eAAe,yBAAyB,CAAC"}