camstreamerlib 4.0.0-beta.3 → 4.0.0-beta.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -2
- package/cjs/CamOverlayAPI.d.ts +47 -26
- package/cjs/CamOverlayAPI.js +171 -88
- package/cjs/CamOverlayDrawingAPI.d.ts +2 -47
- package/cjs/CamOverlayDrawingAPI.js +6 -3
- package/cjs/CamOverlayPainter/Frame.d.ts +8 -37
- package/cjs/CamOverlayPainter/Frame.js +33 -0
- package/cjs/CamOverlayPainter/Painter.d.ts +16 -10
- package/cjs/CamOverlayPainter/Painter.js +6 -5
- package/cjs/CamOverlayPainter/ResourceManager.d.ts +3 -2
- package/cjs/CamOverlayPainter/ResourceManager.js +8 -11
- package/cjs/CamScripterAPI.d.ts +33 -16
- package/cjs/CamScripterAPI.js +50 -41
- package/cjs/CamScripterAPICameraEventsGenerator.d.ts +1 -1
- package/cjs/CamScripterAPICameraEventsGenerator.js +6 -3
- package/cjs/CamStreamerAPI.d.ts +16 -14
- package/cjs/CamStreamerAPI.js +32 -32
- package/cjs/CamSwitcherAPI.d.ts +42 -37
- package/cjs/CamSwitcherAPI.js +123 -114
- package/cjs/CamSwitcherEvents.d.ts +1 -1
- package/cjs/PlaneTrackerAPI.d.ts +42 -0
- package/cjs/PlaneTrackerAPI.js +211 -0
- package/cjs/VapixAPI.d.ts +56 -43
- package/cjs/VapixAPI.js +305 -216
- package/cjs/VapixEvents.d.ts +1 -1
- package/cjs/VapixEvents.js +3 -3
- package/cjs/errors/errors.d.ts +3 -0
- package/cjs/errors/errors.js +8 -1
- package/cjs/events/AxisCameraStationEvents.d.ts +5 -4
- package/cjs/events/AxisCameraStationEvents.js +23 -18
- package/cjs/events/GenetecAgent.d.ts +6 -3
- package/cjs/events/GenetecAgent.js +30 -19
- package/cjs/index.d.ts +14 -1
- package/cjs/index.js +23 -2
- package/cjs/internal/Digest.js +6 -6
- package/cjs/internal/ProxyClient.d.ts +8 -9
- package/cjs/internal/ProxyClient.js +25 -29
- package/cjs/internal/types.d.ts +42 -0
- package/cjs/internal/types.js +2 -0
- package/cjs/internal/utils.d.ts +4 -1
- package/cjs/internal/utils.js +22 -3
- package/cjs/internal/versionCompare.d.ts +2 -2
- package/cjs/node/DefaultClient.d.ts +5 -6
- package/cjs/node/DefaultClient.js +12 -14
- package/cjs/node/HttpRequestSender.d.ts +1 -0
- package/cjs/node/HttpRequestSender.js +13 -3
- package/cjs/node/HttpServer.js +1 -1
- package/cjs/node/WsClient.d.ts +2 -1
- package/cjs/node/WsEventClient.d.ts +1 -1
- package/cjs/node/index.d.ts +2 -0
- package/cjs/node/index.js +18 -1
- package/cjs/types/CamOverlayAPI/CamOverlayAPI.d.ts +3073 -0
- package/cjs/types/CamOverlayAPI/CamOverlayAPI.js +127 -0
- package/cjs/types/CamOverlayAPI/accuweatherSchema.d.ts +114 -0
- package/cjs/types/CamOverlayAPI/accuweatherSchema.js +50 -0
- package/cjs/types/CamOverlayAPI/customGraphicsSchema.d.ts +783 -0
- package/cjs/types/CamOverlayAPI/customGraphicsSchema.js +75 -0
- package/cjs/types/CamOverlayAPI/imagesSchema.d.ts +122 -0
- package/cjs/types/CamOverlayAPI/imagesSchema.js +12 -0
- package/cjs/types/CamOverlayAPI/index.d.ts +9 -0
- package/cjs/types/CamOverlayAPI/index.js +25 -0
- package/cjs/types/CamOverlayAPI/infotickerSchema.d.ts +130 -0
- package/cjs/types/CamOverlayAPI/infotickerSchema.js +29 -0
- package/cjs/types/CamOverlayAPI/pipSchema.d.ts +166 -0
- package/cjs/types/CamOverlayAPI/pipSchema.js +42 -0
- package/cjs/types/CamOverlayAPI/ptzCompassSchema.d.ts +126 -0
- package/cjs/types/CamOverlayAPI/ptzCompassSchema.js +28 -0
- package/cjs/types/CamOverlayAPI/ptzSchema.d.ts +146 -0
- package/cjs/types/CamOverlayAPI/ptzSchema.js +15 -0
- package/cjs/types/CamOverlayAPI/screenSharingSchema.d.ts +79 -0
- package/cjs/types/CamOverlayAPI/screenSharingSchema.js +11 -0
- package/cjs/types/CamOverlayAPI/webCameraSharingSchema.d.ts +79 -0
- package/cjs/types/CamOverlayAPI/webCameraSharingSchema.js +11 -0
- package/cjs/types/CamOverlayDrawingAPI.d.ts +58 -0
- package/cjs/types/CamOverlayDrawingAPI.js +2 -0
- package/cjs/types/CamOverlayPainter.d.ts +74 -0
- package/cjs/types/CamOverlayPainter.js +2 -0
- package/cjs/types/CamScripterAPI.d.ts +82 -17
- package/cjs/types/CamScripterAPI.js +22 -7
- package/cjs/types/CamStreamerAPI.d.ts +16 -5
- package/cjs/types/CamStreamerAPI.js +5 -1
- package/cjs/types/CamSwitcherAPI.d.ts +5 -5
- package/cjs/types/CamSwitcherEvents.d.ts +77 -0
- package/cjs/types/CamSwitcherEvents.js +8 -0
- package/cjs/types/PlaneTrackerAPI.d.ts +8 -0
- package/cjs/types/PlaneTrackerAPI.js +2 -0
- package/cjs/types/VapixAPI.d.ts +636 -519
- package/cjs/types/VapixAPI.js +62 -24
- package/cjs/types/common.d.ts +14 -5
- package/cjs/web/DefaultClient.d.ts +5 -5
- package/cjs/web/DefaultClient.js +22 -10
- package/cjs/web/WsClient.js +2 -2
- package/esm/CamOverlayAPI.d.ts +47 -26
- package/esm/CamOverlayAPI.js +169 -86
- package/esm/CamOverlayDrawingAPI.d.ts +2 -47
- package/esm/CamOverlayDrawingAPI.js +6 -3
- package/esm/CamOverlayPainter/Frame.d.ts +8 -37
- package/esm/CamOverlayPainter/Frame.js +33 -0
- package/esm/CamOverlayPainter/Painter.d.ts +16 -10
- package/esm/CamOverlayPainter/Painter.js +5 -3
- package/esm/CamOverlayPainter/ResourceManager.d.ts +3 -2
- package/esm/CamOverlayPainter/ResourceManager.js +7 -11
- package/esm/CamScripterAPI.d.ts +33 -16
- package/esm/CamScripterAPI.js +46 -37
- package/esm/CamScripterAPICameraEventsGenerator.d.ts +1 -1
- package/esm/CamScripterAPICameraEventsGenerator.js +6 -3
- package/esm/CamStreamerAPI.d.ts +16 -14
- package/esm/CamStreamerAPI.js +32 -32
- package/esm/CamSwitcherAPI.d.ts +42 -37
- package/esm/CamSwitcherAPI.js +116 -107
- package/esm/CamSwitcherEvents.d.ts +1 -1
- package/esm/PlaneTrackerAPI.d.ts +42 -0
- package/esm/PlaneTrackerAPI.js +207 -0
- package/esm/VapixAPI.d.ts +56 -43
- package/esm/VapixAPI.js +297 -208
- package/esm/VapixEvents.d.ts +1 -1
- package/esm/VapixEvents.js +3 -3
- package/esm/errors/errors.d.ts +3 -0
- package/esm/errors/errors.js +6 -0
- package/esm/events/AxisCameraStationEvents.d.ts +5 -4
- package/esm/events/AxisCameraStationEvents.js +18 -13
- package/esm/events/GenetecAgent.d.ts +6 -3
- package/esm/events/GenetecAgent.js +20 -9
- package/esm/index.d.ts +14 -1
- package/esm/index.js +14 -1
- package/esm/internal/Digest.js +6 -6
- package/esm/internal/ProxyClient.d.ts +8 -9
- package/esm/internal/ProxyClient.js +25 -29
- package/esm/internal/types.d.ts +42 -0
- package/esm/internal/types.js +1 -0
- package/esm/internal/utils.d.ts +4 -1
- package/esm/internal/utils.js +17 -1
- package/esm/internal/versionCompare.d.ts +2 -2
- package/esm/node/DefaultClient.d.ts +5 -6
- package/esm/node/DefaultClient.js +12 -14
- package/esm/node/HttpRequestSender.d.ts +1 -0
- package/esm/node/HttpRequestSender.js +13 -3
- package/esm/node/HttpServer.js +1 -1
- package/esm/node/WsClient.d.ts +2 -1
- package/esm/node/WsEventClient.d.ts +1 -1
- package/esm/node/index.d.ts +2 -0
- package/esm/node/index.js +2 -0
- package/esm/types/CamOverlayAPI/CamOverlayAPI.d.ts +3073 -0
- package/esm/types/CamOverlayAPI/CamOverlayAPI.js +124 -0
- package/esm/types/CamOverlayAPI/accuweatherSchema.d.ts +114 -0
- package/esm/types/CamOverlayAPI/accuweatherSchema.js +46 -0
- package/esm/types/CamOverlayAPI/customGraphicsSchema.d.ts +783 -0
- package/esm/types/CamOverlayAPI/customGraphicsSchema.js +71 -0
- package/esm/types/CamOverlayAPI/imagesSchema.d.ts +122 -0
- package/esm/types/CamOverlayAPI/imagesSchema.js +8 -0
- package/esm/types/CamOverlayAPI/index.d.ts +9 -0
- package/esm/types/CamOverlayAPI/index.js +9 -0
- package/esm/types/CamOverlayAPI/infotickerSchema.d.ts +130 -0
- package/esm/types/CamOverlayAPI/infotickerSchema.js +25 -0
- package/esm/types/CamOverlayAPI/pipSchema.d.ts +166 -0
- package/esm/types/CamOverlayAPI/pipSchema.js +38 -0
- package/esm/types/CamOverlayAPI/ptzCompassSchema.d.ts +126 -0
- package/esm/types/CamOverlayAPI/ptzCompassSchema.js +24 -0
- package/esm/types/CamOverlayAPI/ptzSchema.d.ts +146 -0
- package/esm/types/CamOverlayAPI/ptzSchema.js +11 -0
- package/esm/types/CamOverlayAPI/screenSharingSchema.d.ts +79 -0
- package/esm/types/CamOverlayAPI/screenSharingSchema.js +7 -0
- package/esm/types/CamOverlayAPI/webCameraSharingSchema.d.ts +79 -0
- package/esm/types/CamOverlayAPI/webCameraSharingSchema.js +7 -0
- package/esm/types/CamOverlayDrawingAPI.d.ts +58 -0
- package/esm/types/CamOverlayDrawingAPI.js +1 -0
- package/esm/types/CamOverlayPainter.d.ts +74 -0
- package/esm/types/CamOverlayPainter.js +1 -0
- package/esm/types/CamScripterAPI.d.ts +82 -17
- package/esm/types/CamScripterAPI.js +21 -6
- package/esm/types/CamStreamerAPI.d.ts +16 -5
- package/esm/types/CamStreamerAPI.js +4 -0
- package/esm/types/CamSwitcherAPI.d.ts +5 -5
- package/esm/types/CamSwitcherEvents.d.ts +77 -0
- package/esm/types/CamSwitcherEvents.js +8 -0
- package/esm/types/PlaneTrackerAPI.d.ts +8 -0
- package/esm/types/PlaneTrackerAPI.js +1 -0
- package/esm/types/VapixAPI.d.ts +636 -519
- package/esm/types/VapixAPI.js +61 -23
- package/esm/types/common.d.ts +14 -5
- package/esm/web/DefaultClient.d.ts +5 -5
- package/esm/web/DefaultClient.js +22 -10
- package/esm/web/WsClient.js +2 -2
- package/package.json +9 -8
- package/cjs/internal/common.d.ts +0 -39
- package/cjs/internal/common.js +0 -27
- package/cjs/types/CamOverlayAPI.d.ts +0 -188
- package/cjs/types/CamOverlayAPI.js +0 -47
- package/esm/internal/common.d.ts +0 -39
- package/esm/internal/common.js +0 -20
- package/esm/types/CamOverlayAPI.d.ts +0 -188
- package/esm/types/CamOverlayAPI.js +0 -44
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { coordinateSystemSchema, fontSchema, widgetCommonSchema } from './CamOverlayAPI';
|
|
2
|
+
import { allowedWidgetNames } from '../../CamOverlayAPI';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
const mappingZonesCommonSchema = z.object({
|
|
5
|
+
name: z.string(),
|
|
6
|
+
pos_x: z.number(),
|
|
7
|
+
pos_y: z.number(),
|
|
8
|
+
text: z
|
|
9
|
+
.array(z.object({
|
|
10
|
+
source: z.string(),
|
|
11
|
+
active: z.boolean(),
|
|
12
|
+
}))
|
|
13
|
+
.optional(),
|
|
14
|
+
wrapText: z.boolean(),
|
|
15
|
+
textLines: z.number().positive(),
|
|
16
|
+
textWidth: z.number().nonnegative(),
|
|
17
|
+
textAlign: z.union([z.literal('A_LEFT'), z.literal('A_CENTER'), z.literal('A_RIGHT')]),
|
|
18
|
+
textVerticalAlign: z.union([z.literal('VA_TOP'), z.literal('VA_CENTER'), z.literal('VA_BOTTOM')]),
|
|
19
|
+
textColor: z.string(),
|
|
20
|
+
font: fontSchema,
|
|
21
|
+
fontSize: z.number().nonnegative(),
|
|
22
|
+
switchingTime: z.number().nonnegative(),
|
|
23
|
+
});
|
|
24
|
+
export const mappingZonesCountdownSettingsSchema = z.object({
|
|
25
|
+
startDate: z.number().nonnegative(),
|
|
26
|
+
targetDate: z.number().nonnegative(),
|
|
27
|
+
countdown: z.boolean(),
|
|
28
|
+
countup: z.boolean(),
|
|
29
|
+
displayDay: z.boolean(),
|
|
30
|
+
displayHour: z.boolean(),
|
|
31
|
+
displayMinute: z.boolean(),
|
|
32
|
+
displaySeconds: z.boolean(),
|
|
33
|
+
idleText: z.string(),
|
|
34
|
+
hideZeros: z.boolean(),
|
|
35
|
+
delimiter: z.union([z.literal('colon'), z.literal('letters')]),
|
|
36
|
+
suffixSeconds: z.string(),
|
|
37
|
+
suffixMinute: z.string(),
|
|
38
|
+
suffixHour: z.string(),
|
|
39
|
+
suffixDay: z.string(),
|
|
40
|
+
loop: z.boolean(),
|
|
41
|
+
loopPeriod: z.number().nonnegative(),
|
|
42
|
+
waitingPeriod: z.number().nonnegative(),
|
|
43
|
+
});
|
|
44
|
+
const mappingZonePlainSchema = mappingZonesCommonSchema.extend({
|
|
45
|
+
type: z.literal('plain'),
|
|
46
|
+
});
|
|
47
|
+
const mappingZoneCountdownSchema = mappingZonesCommonSchema.extend({
|
|
48
|
+
type: z.literal('countdown'),
|
|
49
|
+
settings: mappingZonesCountdownSettingsSchema,
|
|
50
|
+
});
|
|
51
|
+
export const mappingZoneSchema = z.discriminatedUnion('type', [mappingZonePlainSchema, mappingZoneCountdownSchema]);
|
|
52
|
+
export const customGraphicsSchema = widgetCommonSchema.extend({
|
|
53
|
+
name: z.literal(allowedWidgetNames.customGraphics),
|
|
54
|
+
pos_x: z.number(),
|
|
55
|
+
pos_y: z.number(),
|
|
56
|
+
coordSystem: coordinateSystemSchema,
|
|
57
|
+
clockFormat: z.union([z.literal('12h'), z.literal('24h')]),
|
|
58
|
+
background: z.enum(['custom', 'image']),
|
|
59
|
+
image: z.string(),
|
|
60
|
+
customAreaColor: z.string(),
|
|
61
|
+
customAreaWidth: z.number().nonnegative(),
|
|
62
|
+
customAreaHeight: z.number().nonnegative(),
|
|
63
|
+
customAreaCorners: z.union([z.literal('sharp'), z.literal('rounded')]),
|
|
64
|
+
mappingZones: z.array(mappingZoneSchema),
|
|
65
|
+
});
|
|
66
|
+
export const isCustomGraphics = (widget) => widget.name === 'customGraphics';
|
|
67
|
+
export const fieldSchema = z.object({
|
|
68
|
+
field_name: z.string(),
|
|
69
|
+
text: z.string(),
|
|
70
|
+
color: z.string().optional(),
|
|
71
|
+
});
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { TWidget } from './CamOverlayAPI';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
export declare const imagesSchema: z.ZodObject<{
|
|
4
|
+
id: z.ZodNumber;
|
|
5
|
+
enabled: z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<1>]>;
|
|
6
|
+
automationType: z.ZodUnion<[z.ZodLiteral<"time">, z.ZodLiteral<"manual">, z.ZodLiteral<"schedule">, z.ZodType<`input${number}`, z.ZodTypeDef, `input${number}`>]>;
|
|
7
|
+
invertInput: z.ZodOptional<z.ZodBoolean>;
|
|
8
|
+
cameraList: z.ZodArray<z.ZodNumber, "many">;
|
|
9
|
+
camera: z.ZodOptional<z.ZodNumber>;
|
|
10
|
+
schedule: z.ZodOptional<z.ZodString>;
|
|
11
|
+
customName: z.ZodString;
|
|
12
|
+
zIndex: z.ZodOptional<z.ZodNumber>;
|
|
13
|
+
width: z.ZodNumber;
|
|
14
|
+
height: z.ZodNumber;
|
|
15
|
+
} & {
|
|
16
|
+
name: z.ZodLiteral<"images">;
|
|
17
|
+
overlayList: z.ZodArray<z.ZodObject<{
|
|
18
|
+
active: z.ZodBoolean;
|
|
19
|
+
coordSystem: z.ZodUnion<[z.ZodLiteral<"top_left">, z.ZodLiteral<"top">, z.ZodLiteral<"top_right">, z.ZodLiteral<"left">, z.ZodLiteral<"center">, z.ZodLiteral<"right">, z.ZodLiteral<"bottom_left">, z.ZodLiteral<"bottom">, z.ZodLiteral<"bottom_right">]>;
|
|
20
|
+
pos_x: z.ZodNumber;
|
|
21
|
+
pos_y: z.ZodNumber;
|
|
22
|
+
imgPath: z.ZodString;
|
|
23
|
+
imgName: z.ZodString;
|
|
24
|
+
duration: z.ZodNumber;
|
|
25
|
+
scale: z.ZodNumber;
|
|
26
|
+
fps: z.ZodOptional<z.ZodNumber>;
|
|
27
|
+
}, "strip", z.ZodTypeAny, {
|
|
28
|
+
duration: number;
|
|
29
|
+
pos_x: number;
|
|
30
|
+
pos_y: number;
|
|
31
|
+
active: boolean;
|
|
32
|
+
coordSystem: "top_left" | "top" | "top_right" | "left" | "center" | "right" | "bottom_left" | "bottom" | "bottom_right";
|
|
33
|
+
scale: number;
|
|
34
|
+
imgPath: string;
|
|
35
|
+
imgName: string;
|
|
36
|
+
fps?: number | undefined;
|
|
37
|
+
}, {
|
|
38
|
+
duration: number;
|
|
39
|
+
pos_x: number;
|
|
40
|
+
pos_y: number;
|
|
41
|
+
active: boolean;
|
|
42
|
+
coordSystem: "top_left" | "top" | "top_right" | "left" | "center" | "right" | "bottom_left" | "bottom" | "bottom_right";
|
|
43
|
+
scale: number;
|
|
44
|
+
imgPath: string;
|
|
45
|
+
imgName: string;
|
|
46
|
+
fps?: number | undefined;
|
|
47
|
+
}>, "many">;
|
|
48
|
+
}, "strip", z.ZodTypeAny, {
|
|
49
|
+
name: "images";
|
|
50
|
+
enabled: 0 | 1;
|
|
51
|
+
id: number;
|
|
52
|
+
width: number;
|
|
53
|
+
height: number;
|
|
54
|
+
automationType: "time" | "manual" | "schedule" | `input${number}`;
|
|
55
|
+
cameraList: number[];
|
|
56
|
+
customName: string;
|
|
57
|
+
overlayList: {
|
|
58
|
+
duration: number;
|
|
59
|
+
pos_x: number;
|
|
60
|
+
pos_y: number;
|
|
61
|
+
active: boolean;
|
|
62
|
+
coordSystem: "top_left" | "top" | "top_right" | "left" | "center" | "right" | "bottom_left" | "bottom" | "bottom_right";
|
|
63
|
+
scale: number;
|
|
64
|
+
imgPath: string;
|
|
65
|
+
imgName: string;
|
|
66
|
+
fps?: number | undefined;
|
|
67
|
+
}[];
|
|
68
|
+
camera?: number | undefined;
|
|
69
|
+
schedule?: string | undefined;
|
|
70
|
+
invertInput?: boolean | undefined;
|
|
71
|
+
zIndex?: number | undefined;
|
|
72
|
+
}, {
|
|
73
|
+
name: "images";
|
|
74
|
+
enabled: 0 | 1;
|
|
75
|
+
id: number;
|
|
76
|
+
width: number;
|
|
77
|
+
height: number;
|
|
78
|
+
automationType: "time" | "manual" | "schedule" | `input${number}`;
|
|
79
|
+
cameraList: number[];
|
|
80
|
+
customName: string;
|
|
81
|
+
overlayList: {
|
|
82
|
+
duration: number;
|
|
83
|
+
pos_x: number;
|
|
84
|
+
pos_y: number;
|
|
85
|
+
active: boolean;
|
|
86
|
+
coordSystem: "top_left" | "top" | "top_right" | "left" | "center" | "right" | "bottom_left" | "bottom" | "bottom_right";
|
|
87
|
+
scale: number;
|
|
88
|
+
imgPath: string;
|
|
89
|
+
imgName: string;
|
|
90
|
+
fps?: number | undefined;
|
|
91
|
+
}[];
|
|
92
|
+
camera?: number | undefined;
|
|
93
|
+
schedule?: string | undefined;
|
|
94
|
+
invertInput?: boolean | undefined;
|
|
95
|
+
zIndex?: number | undefined;
|
|
96
|
+
}>;
|
|
97
|
+
export type TImages = z.infer<typeof imagesSchema>;
|
|
98
|
+
export declare const isImages: (widget: TWidget) => widget is {
|
|
99
|
+
name: "images";
|
|
100
|
+
enabled: 0 | 1;
|
|
101
|
+
id: number;
|
|
102
|
+
width: number;
|
|
103
|
+
height: number;
|
|
104
|
+
automationType: "time" | "manual" | "schedule" | `input${number}`;
|
|
105
|
+
cameraList: number[];
|
|
106
|
+
customName: string;
|
|
107
|
+
overlayList: {
|
|
108
|
+
duration: number;
|
|
109
|
+
pos_x: number;
|
|
110
|
+
pos_y: number;
|
|
111
|
+
active: boolean;
|
|
112
|
+
coordSystem: "top_left" | "top" | "top_right" | "left" | "center" | "right" | "bottom_left" | "bottom" | "bottom_right";
|
|
113
|
+
scale: number;
|
|
114
|
+
imgPath: string;
|
|
115
|
+
imgName: string;
|
|
116
|
+
fps?: number | undefined;
|
|
117
|
+
}[];
|
|
118
|
+
camera?: number | undefined;
|
|
119
|
+
schedule?: string | undefined;
|
|
120
|
+
invertInput?: boolean | undefined;
|
|
121
|
+
zIndex?: number | undefined;
|
|
122
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { overlaySchema, widgetCommonSchema } from './CamOverlayAPI';
|
|
2
|
+
import { allowedWidgetNames } from '../../CamOverlayAPI';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
export const imagesSchema = widgetCommonSchema.extend({
|
|
5
|
+
name: z.literal(allowedWidgetNames.images),
|
|
6
|
+
overlayList: z.array(overlaySchema),
|
|
7
|
+
});
|
|
8
|
+
export const isImages = (widget) => widget.name === 'images';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './accuweatherSchema';
|
|
2
|
+
export * from './customGraphicsSchema';
|
|
3
|
+
export * from './imagesSchema';
|
|
4
|
+
export * from './infotickerSchema';
|
|
5
|
+
export * from './pipSchema';
|
|
6
|
+
export * from './ptzCompassSchema';
|
|
7
|
+
export * from './ptzSchema';
|
|
8
|
+
export * from './screenSharingSchema';
|
|
9
|
+
export * from './webCameraSharingSchema';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './accuweatherSchema';
|
|
2
|
+
export * from './customGraphicsSchema';
|
|
3
|
+
export * from './imagesSchema';
|
|
4
|
+
export * from './infotickerSchema';
|
|
5
|
+
export * from './pipSchema';
|
|
6
|
+
export * from './ptzCompassSchema';
|
|
7
|
+
export * from './ptzSchema';
|
|
8
|
+
export * from './screenSharingSchema';
|
|
9
|
+
export * from './webCameraSharingSchema';
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { TWidget } from './CamOverlayAPI';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
export declare const infoTickerSchema: z.ZodObject<{
|
|
4
|
+
id: z.ZodNumber;
|
|
5
|
+
enabled: z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<1>]>;
|
|
6
|
+
automationType: z.ZodUnion<[z.ZodLiteral<"time">, z.ZodLiteral<"manual">, z.ZodLiteral<"schedule">, z.ZodType<`input${number}`, z.ZodTypeDef, `input${number}`>]>;
|
|
7
|
+
invertInput: z.ZodOptional<z.ZodBoolean>;
|
|
8
|
+
cameraList: z.ZodArray<z.ZodNumber, "many">;
|
|
9
|
+
camera: z.ZodOptional<z.ZodNumber>;
|
|
10
|
+
schedule: z.ZodOptional<z.ZodString>;
|
|
11
|
+
customName: z.ZodString;
|
|
12
|
+
zIndex: z.ZodOptional<z.ZodNumber>;
|
|
13
|
+
width: z.ZodNumber;
|
|
14
|
+
height: z.ZodNumber;
|
|
15
|
+
} & {
|
|
16
|
+
name: z.ZodLiteral<"infoticker">;
|
|
17
|
+
showClock: z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<1>]>;
|
|
18
|
+
clockType: z.ZodUnion<[z.ZodLiteral<"12h">, z.ZodLiteral<"24h">]>;
|
|
19
|
+
textColor: z.ZodString;
|
|
20
|
+
bgColor: z.ZodString;
|
|
21
|
+
weatherLocation: z.ZodString;
|
|
22
|
+
weatherLocationName: z.ZodString;
|
|
23
|
+
weatherLang: z.ZodUnion<[z.ZodLiteral<"en-us">, z.ZodLiteral<"fr-fr">, z.ZodLiteral<"ja-jp">, z.ZodLiteral<"pt-pt">, z.ZodLiteral<"es-es">, z.ZodLiteral<"de-de">, z.ZodLiteral<"ko-kr">, z.ZodLiteral<"zh-hk">, z.ZodLiteral<"zh-cn">, z.ZodLiteral<"nl-nl">, z.ZodLiteral<"cs-cz">, z.ZodLiteral<"ru-ru">, z.ZodLiteral<"sv-se">]>;
|
|
24
|
+
weatherUnits: z.ZodUnion<[z.ZodLiteral<"Metric">, z.ZodLiteral<"Imperial">]>;
|
|
25
|
+
numberOfLines: z.ZodNumber;
|
|
26
|
+
switchingTime: z.ZodNumber;
|
|
27
|
+
crawlLeft: z.ZodBoolean;
|
|
28
|
+
crawlSpeed: z.ZodNumber;
|
|
29
|
+
coordSystem: z.ZodUnion<[z.ZodLiteral<"top">, z.ZodLiteral<"bottom">]>;
|
|
30
|
+
pos_y: z.ZodNumber;
|
|
31
|
+
font: z.ZodUnion<[z.ZodLiteral<"classic">, z.ZodLiteral<"digital">, z.ZodType<string, z.ZodTypeDef, string>]>;
|
|
32
|
+
fontSize: z.ZodNumber;
|
|
33
|
+
sourceType: z.ZodUnion<[z.ZodLiteral<"text">, z.ZodLiteral<"url">]>;
|
|
34
|
+
source: z.ZodString;
|
|
35
|
+
}, "strip", z.ZodTypeAny, {
|
|
36
|
+
name: "infoticker";
|
|
37
|
+
enabled: 0 | 1;
|
|
38
|
+
id: number;
|
|
39
|
+
width: number;
|
|
40
|
+
height: number;
|
|
41
|
+
source: string;
|
|
42
|
+
pos_y: number;
|
|
43
|
+
textColor: string;
|
|
44
|
+
font: string;
|
|
45
|
+
fontSize: number;
|
|
46
|
+
switchingTime: number;
|
|
47
|
+
automationType: "time" | "manual" | "schedule" | `input${number}`;
|
|
48
|
+
cameraList: number[];
|
|
49
|
+
customName: string;
|
|
50
|
+
coordSystem: "top" | "bottom";
|
|
51
|
+
showClock: 0 | 1;
|
|
52
|
+
clockType: "12h" | "24h";
|
|
53
|
+
bgColor: string;
|
|
54
|
+
weatherLocation: string;
|
|
55
|
+
weatherLocationName: string;
|
|
56
|
+
weatherLang: "en-us" | "fr-fr" | "ja-jp" | "pt-pt" | "es-es" | "de-de" | "ko-kr" | "zh-hk" | "zh-cn" | "nl-nl" | "cs-cz" | "ru-ru" | "sv-se";
|
|
57
|
+
weatherUnits: "Metric" | "Imperial";
|
|
58
|
+
numberOfLines: number;
|
|
59
|
+
crawlLeft: boolean;
|
|
60
|
+
crawlSpeed: number;
|
|
61
|
+
sourceType: "url" | "text";
|
|
62
|
+
camera?: number | undefined;
|
|
63
|
+
schedule?: string | undefined;
|
|
64
|
+
invertInput?: boolean | undefined;
|
|
65
|
+
zIndex?: number | undefined;
|
|
66
|
+
}, {
|
|
67
|
+
name: "infoticker";
|
|
68
|
+
enabled: 0 | 1;
|
|
69
|
+
id: number;
|
|
70
|
+
width: number;
|
|
71
|
+
height: number;
|
|
72
|
+
source: string;
|
|
73
|
+
pos_y: number;
|
|
74
|
+
textColor: string;
|
|
75
|
+
font: string;
|
|
76
|
+
fontSize: number;
|
|
77
|
+
switchingTime: number;
|
|
78
|
+
automationType: "time" | "manual" | "schedule" | `input${number}`;
|
|
79
|
+
cameraList: number[];
|
|
80
|
+
customName: string;
|
|
81
|
+
coordSystem: "top" | "bottom";
|
|
82
|
+
showClock: 0 | 1;
|
|
83
|
+
clockType: "12h" | "24h";
|
|
84
|
+
bgColor: string;
|
|
85
|
+
weatherLocation: string;
|
|
86
|
+
weatherLocationName: string;
|
|
87
|
+
weatherLang: "en-us" | "fr-fr" | "ja-jp" | "pt-pt" | "es-es" | "de-de" | "ko-kr" | "zh-hk" | "zh-cn" | "nl-nl" | "cs-cz" | "ru-ru" | "sv-se";
|
|
88
|
+
weatherUnits: "Metric" | "Imperial";
|
|
89
|
+
numberOfLines: number;
|
|
90
|
+
crawlLeft: boolean;
|
|
91
|
+
crawlSpeed: number;
|
|
92
|
+
sourceType: "url" | "text";
|
|
93
|
+
camera?: number | undefined;
|
|
94
|
+
schedule?: string | undefined;
|
|
95
|
+
invertInput?: boolean | undefined;
|
|
96
|
+
zIndex?: number | undefined;
|
|
97
|
+
}>;
|
|
98
|
+
export type TInfoticker = z.infer<typeof infoTickerSchema>;
|
|
99
|
+
export declare const isInfoticker: (widget: TWidget) => widget is {
|
|
100
|
+
name: "infoticker";
|
|
101
|
+
enabled: 0 | 1;
|
|
102
|
+
id: number;
|
|
103
|
+
width: number;
|
|
104
|
+
height: number;
|
|
105
|
+
source: string;
|
|
106
|
+
pos_y: number;
|
|
107
|
+
textColor: string;
|
|
108
|
+
font: string;
|
|
109
|
+
fontSize: number;
|
|
110
|
+
switchingTime: number;
|
|
111
|
+
automationType: "time" | "manual" | "schedule" | `input${number}`;
|
|
112
|
+
cameraList: number[];
|
|
113
|
+
customName: string;
|
|
114
|
+
coordSystem: "top" | "bottom";
|
|
115
|
+
showClock: 0 | 1;
|
|
116
|
+
clockType: "12h" | "24h";
|
|
117
|
+
bgColor: string;
|
|
118
|
+
weatherLocation: string;
|
|
119
|
+
weatherLocationName: string;
|
|
120
|
+
weatherLang: "en-us" | "fr-fr" | "ja-jp" | "pt-pt" | "es-es" | "de-de" | "ko-kr" | "zh-hk" | "zh-cn" | "nl-nl" | "cs-cz" | "ru-ru" | "sv-se";
|
|
121
|
+
weatherUnits: "Metric" | "Imperial";
|
|
122
|
+
numberOfLines: number;
|
|
123
|
+
crawlLeft: boolean;
|
|
124
|
+
crawlSpeed: number;
|
|
125
|
+
sourceType: "url" | "text";
|
|
126
|
+
camera?: number | undefined;
|
|
127
|
+
schedule?: string | undefined;
|
|
128
|
+
invertInput?: boolean | undefined;
|
|
129
|
+
zIndex?: number | undefined;
|
|
130
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { fontSchema, languageSchema, weatherUnitSchema, widgetCommonSchema } from './CamOverlayAPI';
|
|
2
|
+
import { allowedWidgetNames } from '../../CamOverlayAPI';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
export const infoTickerSchema = widgetCommonSchema.extend({
|
|
5
|
+
name: z.literal(allowedWidgetNames.infoticker),
|
|
6
|
+
showClock: z.union([z.literal(0), z.literal(1)]),
|
|
7
|
+
clockType: z.union([z.literal('12h'), z.literal('24h')]),
|
|
8
|
+
textColor: z.string(),
|
|
9
|
+
bgColor: z.string(),
|
|
10
|
+
weatherLocation: z.string(),
|
|
11
|
+
weatherLocationName: z.string(),
|
|
12
|
+
weatherLang: languageSchema,
|
|
13
|
+
weatherUnits: weatherUnitSchema,
|
|
14
|
+
numberOfLines: z.number().positive(),
|
|
15
|
+
switchingTime: z.number().nonnegative(),
|
|
16
|
+
crawlLeft: z.boolean(),
|
|
17
|
+
crawlSpeed: z.number(),
|
|
18
|
+
coordSystem: z.union([z.literal('top'), z.literal('bottom')]),
|
|
19
|
+
pos_y: z.number(),
|
|
20
|
+
font: fontSchema,
|
|
21
|
+
fontSize: z.number().nonnegative(),
|
|
22
|
+
sourceType: z.union([z.literal('text'), z.literal('url')]),
|
|
23
|
+
source: z.string(),
|
|
24
|
+
});
|
|
25
|
+
export const isInfoticker = (widget) => widget.name === 'infoticker';
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { TWidget } from './CamOverlayAPI';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
export declare const pipSchema: z.ZodObject<{
|
|
4
|
+
id: z.ZodNumber;
|
|
5
|
+
enabled: z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<1>]>;
|
|
6
|
+
automationType: z.ZodUnion<[z.ZodLiteral<"time">, z.ZodLiteral<"manual">, z.ZodLiteral<"schedule">, z.ZodType<`input${number}`, z.ZodTypeDef, `input${number}`>]>;
|
|
7
|
+
invertInput: z.ZodOptional<z.ZodBoolean>;
|
|
8
|
+
cameraList: z.ZodArray<z.ZodNumber, "many">;
|
|
9
|
+
camera: z.ZodOptional<z.ZodNumber>;
|
|
10
|
+
schedule: z.ZodOptional<z.ZodString>;
|
|
11
|
+
customName: z.ZodString;
|
|
12
|
+
zIndex: z.ZodOptional<z.ZodNumber>;
|
|
13
|
+
width: z.ZodNumber;
|
|
14
|
+
height: z.ZodNumber;
|
|
15
|
+
} & {
|
|
16
|
+
name: z.ZodLiteral<"pip">;
|
|
17
|
+
coordSystem: z.ZodUnion<[z.ZodLiteral<"top_left">, z.ZodLiteral<"top">, z.ZodLiteral<"top_right">, z.ZodLiteral<"left">, z.ZodLiteral<"center">, z.ZodLiteral<"right">, z.ZodLiteral<"bottom_left">, z.ZodLiteral<"bottom">, z.ZodLiteral<"bottom_right">]>;
|
|
18
|
+
pos_x: z.ZodNumber;
|
|
19
|
+
pos_y: z.ZodNumber;
|
|
20
|
+
fps: z.ZodNumber;
|
|
21
|
+
compression: z.ZodNumber;
|
|
22
|
+
screenSize: z.ZodNumber;
|
|
23
|
+
source_type: z.ZodUnion<[z.ZodLiteral<"axis_camera">, z.ZodLiteral<"mjpeg_url">]>;
|
|
24
|
+
mjpeg_url: z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>;
|
|
25
|
+
camera_ip: z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>;
|
|
26
|
+
camera_port: z.ZodNumber;
|
|
27
|
+
camera_user: z.ZodString;
|
|
28
|
+
camera_pass: z.ZodString;
|
|
29
|
+
camera_width: z.ZodNumber;
|
|
30
|
+
camera_height: z.ZodNumber;
|
|
31
|
+
camera_view_area: z.ZodString;
|
|
32
|
+
camera_overlay_params: z.ZodUnion<[z.ZodLiteral<"overlays=off">, z.ZodLiteral<"overlays=all">, z.ZodLiteral<"overlays=text">, z.ZodLiteral<"overlays=image">, z.ZodLiteral<"overlays=application">]>;
|
|
33
|
+
rotate: z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<90>, z.ZodLiteral<180>, z.ZodLiteral<270>]>;
|
|
34
|
+
dewarping: z.ZodObject<{
|
|
35
|
+
enabled: z.ZodBoolean;
|
|
36
|
+
rectangle: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">;
|
|
37
|
+
aspectRatioCorrection: z.ZodNumber;
|
|
38
|
+
}, "strip", z.ZodTypeAny, {
|
|
39
|
+
enabled: boolean;
|
|
40
|
+
rectangle: [number, number][];
|
|
41
|
+
aspectRatioCorrection: number;
|
|
42
|
+
}, {
|
|
43
|
+
enabled: boolean;
|
|
44
|
+
rectangle: [number, number][];
|
|
45
|
+
aspectRatioCorrection: number;
|
|
46
|
+
}>;
|
|
47
|
+
borderColor: z.ZodString;
|
|
48
|
+
borderWidth: z.ZodNumber;
|
|
49
|
+
scale: z.ZodNumber;
|
|
50
|
+
}, "strip", z.ZodTypeAny, {
|
|
51
|
+
name: "pip";
|
|
52
|
+
compression: number;
|
|
53
|
+
enabled: 0 | 1;
|
|
54
|
+
id: number;
|
|
55
|
+
width: number;
|
|
56
|
+
height: number;
|
|
57
|
+
fps: number;
|
|
58
|
+
pos_x: number;
|
|
59
|
+
pos_y: number;
|
|
60
|
+
automationType: "time" | "manual" | "schedule" | `input${number}`;
|
|
61
|
+
cameraList: number[];
|
|
62
|
+
customName: string;
|
|
63
|
+
coordSystem: "top_left" | "top" | "top_right" | "left" | "center" | "right" | "bottom_left" | "bottom" | "bottom_right";
|
|
64
|
+
scale: number;
|
|
65
|
+
screenSize: number;
|
|
66
|
+
source_type: "axis_camera" | "mjpeg_url";
|
|
67
|
+
mjpeg_url: string;
|
|
68
|
+
camera_ip: string;
|
|
69
|
+
camera_port: number;
|
|
70
|
+
camera_user: string;
|
|
71
|
+
camera_pass: string;
|
|
72
|
+
camera_width: number;
|
|
73
|
+
camera_height: number;
|
|
74
|
+
camera_view_area: string;
|
|
75
|
+
camera_overlay_params: "overlays=off" | "overlays=all" | "overlays=text" | "overlays=image" | "overlays=application";
|
|
76
|
+
rotate: 0 | 90 | 180 | 270;
|
|
77
|
+
dewarping: {
|
|
78
|
+
enabled: boolean;
|
|
79
|
+
rectangle: [number, number][];
|
|
80
|
+
aspectRatioCorrection: number;
|
|
81
|
+
};
|
|
82
|
+
borderColor: string;
|
|
83
|
+
borderWidth: number;
|
|
84
|
+
camera?: number | undefined;
|
|
85
|
+
schedule?: string | undefined;
|
|
86
|
+
invertInput?: boolean | undefined;
|
|
87
|
+
zIndex?: number | undefined;
|
|
88
|
+
}, {
|
|
89
|
+
name: "pip";
|
|
90
|
+
compression: number;
|
|
91
|
+
enabled: 0 | 1;
|
|
92
|
+
id: number;
|
|
93
|
+
width: number;
|
|
94
|
+
height: number;
|
|
95
|
+
fps: number;
|
|
96
|
+
pos_x: number;
|
|
97
|
+
pos_y: number;
|
|
98
|
+
automationType: "time" | "manual" | "schedule" | `input${number}`;
|
|
99
|
+
cameraList: number[];
|
|
100
|
+
customName: string;
|
|
101
|
+
coordSystem: "top_left" | "top" | "top_right" | "left" | "center" | "right" | "bottom_left" | "bottom" | "bottom_right";
|
|
102
|
+
scale: number;
|
|
103
|
+
screenSize: number;
|
|
104
|
+
source_type: "axis_camera" | "mjpeg_url";
|
|
105
|
+
mjpeg_url: string;
|
|
106
|
+
camera_ip: string;
|
|
107
|
+
camera_port: number;
|
|
108
|
+
camera_user: string;
|
|
109
|
+
camera_pass: string;
|
|
110
|
+
camera_width: number;
|
|
111
|
+
camera_height: number;
|
|
112
|
+
camera_view_area: string;
|
|
113
|
+
camera_overlay_params: "overlays=off" | "overlays=all" | "overlays=text" | "overlays=image" | "overlays=application";
|
|
114
|
+
rotate: 0 | 90 | 180 | 270;
|
|
115
|
+
dewarping: {
|
|
116
|
+
enabled: boolean;
|
|
117
|
+
rectangle: [number, number][];
|
|
118
|
+
aspectRatioCorrection: number;
|
|
119
|
+
};
|
|
120
|
+
borderColor: string;
|
|
121
|
+
borderWidth: number;
|
|
122
|
+
camera?: number | undefined;
|
|
123
|
+
schedule?: string | undefined;
|
|
124
|
+
invertInput?: boolean | undefined;
|
|
125
|
+
zIndex?: number | undefined;
|
|
126
|
+
}>;
|
|
127
|
+
export type TPip = z.infer<typeof pipSchema>;
|
|
128
|
+
export declare const isPip: (widget: TWidget) => widget is {
|
|
129
|
+
name: "pip";
|
|
130
|
+
compression: number;
|
|
131
|
+
enabled: 0 | 1;
|
|
132
|
+
id: number;
|
|
133
|
+
width: number;
|
|
134
|
+
height: number;
|
|
135
|
+
fps: number;
|
|
136
|
+
pos_x: number;
|
|
137
|
+
pos_y: number;
|
|
138
|
+
automationType: "time" | "manual" | "schedule" | `input${number}`;
|
|
139
|
+
cameraList: number[];
|
|
140
|
+
customName: string;
|
|
141
|
+
coordSystem: "top_left" | "top" | "top_right" | "left" | "center" | "right" | "bottom_left" | "bottom" | "bottom_right";
|
|
142
|
+
scale: number;
|
|
143
|
+
screenSize: number;
|
|
144
|
+
source_type: "axis_camera" | "mjpeg_url";
|
|
145
|
+
mjpeg_url: string;
|
|
146
|
+
camera_ip: string;
|
|
147
|
+
camera_port: number;
|
|
148
|
+
camera_user: string;
|
|
149
|
+
camera_pass: string;
|
|
150
|
+
camera_width: number;
|
|
151
|
+
camera_height: number;
|
|
152
|
+
camera_view_area: string;
|
|
153
|
+
camera_overlay_params: "overlays=off" | "overlays=all" | "overlays=text" | "overlays=image" | "overlays=application";
|
|
154
|
+
rotate: 0 | 90 | 180 | 270;
|
|
155
|
+
dewarping: {
|
|
156
|
+
enabled: boolean;
|
|
157
|
+
rectangle: [number, number][];
|
|
158
|
+
aspectRatioCorrection: number;
|
|
159
|
+
};
|
|
160
|
+
borderColor: string;
|
|
161
|
+
borderWidth: number;
|
|
162
|
+
camera?: number | undefined;
|
|
163
|
+
schedule?: string | undefined;
|
|
164
|
+
invertInput?: boolean | undefined;
|
|
165
|
+
zIndex?: number | undefined;
|
|
166
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { coordinateSystemSchema, widgetCommonSchema } from './CamOverlayAPI';
|
|
2
|
+
import { allowedWidgetNames } from '../../CamOverlayAPI';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
export const pipSchema = widgetCommonSchema.extend({
|
|
5
|
+
name: z.literal(allowedWidgetNames.pip),
|
|
6
|
+
coordSystem: coordinateSystemSchema,
|
|
7
|
+
pos_x: z.number(),
|
|
8
|
+
pos_y: z.number(),
|
|
9
|
+
fps: z.number(),
|
|
10
|
+
compression: z.number().nonnegative(),
|
|
11
|
+
screenSize: z.number().nonnegative(),
|
|
12
|
+
source_type: z.union([z.literal('axis_camera'), z.literal('mjpeg_url')]),
|
|
13
|
+
mjpeg_url: z.union([z.string().url(), z.literal('')]),
|
|
14
|
+
camera_ip: z.union([z.string().ip(), z.literal('')]),
|
|
15
|
+
camera_port: z.number().nonnegative(),
|
|
16
|
+
camera_user: z.string(),
|
|
17
|
+
camera_pass: z.string(),
|
|
18
|
+
camera_width: z.number().nonnegative(),
|
|
19
|
+
camera_height: z.number().nonnegative(),
|
|
20
|
+
camera_view_area: z.string(),
|
|
21
|
+
camera_overlay_params: z.union([
|
|
22
|
+
z.literal('overlays=off'),
|
|
23
|
+
z.literal('overlays=all'),
|
|
24
|
+
z.literal('overlays=text'),
|
|
25
|
+
z.literal('overlays=image'),
|
|
26
|
+
z.literal('overlays=application'),
|
|
27
|
+
]),
|
|
28
|
+
rotate: z.union([z.literal(0), z.literal(90), z.literal(180), z.literal(270)]),
|
|
29
|
+
dewarping: z.object({
|
|
30
|
+
enabled: z.boolean(),
|
|
31
|
+
rectangle: z.array(z.tuple([z.number(), z.number()])),
|
|
32
|
+
aspectRatioCorrection: z.number(),
|
|
33
|
+
}),
|
|
34
|
+
borderColor: z.string(),
|
|
35
|
+
borderWidth: z.number(),
|
|
36
|
+
scale: z.number(),
|
|
37
|
+
});
|
|
38
|
+
export const isPip = (widget) => widget.name === 'pip';
|