@oicl/openbridge-webcomponents-svelte 2.0.0-next.103 → 2.0.0-next.105

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 (27) hide show
  1. package/dist/index.d.ts +5 -0
  2. package/dist/index.js +5 -0
  3. package/dist/navigation-instruments/compass/ObcCompass.svelte +16 -1
  4. package/dist/navigation-instruments/compass/ObcCompass.svelte.d.ts +17 -1
  5. package/dist/navigation-instruments/compass-flat/ObcCompassFlat.svelte +11 -1
  6. package/dist/navigation-instruments/compass-flat/ObcCompassFlat.svelte.d.ts +10 -0
  7. package/dist/navigation-instruments/draft-trim/ObcDraftTrim.svelte +47 -0
  8. package/dist/navigation-instruments/draft-trim/ObcDraftTrim.svelte.d.ts +34 -0
  9. package/dist/navigation-instruments/heading/ObcHeading.svelte +21 -0
  10. package/dist/navigation-instruments/heading/ObcHeading.svelte.d.ts +22 -0
  11. package/dist/navigation-instruments/heave/ObcHeave.svelte +6 -1
  12. package/dist/navigation-instruments/heave/ObcHeave.svelte.d.ts +5 -0
  13. package/dist/navigation-instruments/pitch-roll-heave/ObcPitchRollHeave.svelte +78 -0
  14. package/dist/navigation-instruments/pitch-roll-heave/ObcPitchRollHeave.svelte.d.ts +66 -0
  15. package/dist/navigation-instruments/rate-of-turn/ObcRateOfTurn.svelte +21 -1
  16. package/dist/navigation-instruments/rate-of-turn/ObcRateOfTurn.svelte.d.ts +20 -0
  17. package/dist/navigation-instruments/rot-linear/ObcRotLinear.svelte +50 -0
  18. package/dist/navigation-instruments/rot-linear/ObcRotLinear.svelte.d.ts +37 -0
  19. package/dist/navigation-instruments/speed-directions/ObcSpeedDirections.svelte +56 -0
  20. package/dist/navigation-instruments/speed-directions/ObcSpeedDirections.svelte.d.ts +44 -0
  21. package/dist/navigation-instruments/top-view-propulsion/ObcTopViewPropulsion.svelte +86 -0
  22. package/dist/navigation-instruments/top-view-propulsion/ObcTopViewPropulsion.svelte.d.ts +74 -0
  23. package/dist/navigation-instruments/watch/ObcWatch.svelte +3 -0
  24. package/dist/navigation-instruments/watch/ObcWatch.svelte.d.ts +3 -0
  25. package/dist/navigation-instruments/watch-flat/ObcWatchFlat.svelte +6 -0
  26. package/dist/navigation-instruments/watch-flat/ObcWatchFlat.svelte.d.ts +7 -0
  27. package/package.json +2 -2
package/dist/index.d.ts CHANGED
@@ -2270,6 +2270,7 @@ export { default as ObcCompassIndicator } from './navigation-instruments/compass
2270
2270
  export { default as ObcCompassSector } from './navigation-instruments/compass-sector/ObcCompassSector.svelte';
2271
2271
  export { default as ObcDepthActual } from './navigation-instruments/depth-actual/ObcDepthActual.svelte';
2272
2272
  export { default as ObcDepthIndicator } from './navigation-instruments/depth-indicator/ObcDepthIndicator.svelte';
2273
+ export { default as ObcDraftTrim } from './navigation-instruments/draft-trim/ObcDraftTrim.svelte';
2273
2274
  export { default as ObcGaugeBarIndicator } from './navigation-instruments/gauge-bar-indicator/ObcGaugeBarIndicator.svelte';
2274
2275
  export { default as ObcGaugeHorizontal } from './navigation-instruments/gauge-horizontal/ObcGaugeHorizontal.svelte';
2275
2276
  export { default as ObcGaugeRadial } from './navigation-instruments/gauge-radial/ObcGaugeRadial.svelte';
@@ -2289,6 +2290,7 @@ export { default as ObcMainEngineIndicator } from './navigation-instruments/main
2289
2290
  export { default as ObcPitch } from './navigation-instruments/pitch/ObcPitch.svelte';
2290
2291
  export { default as ObcPitchIndicator } from './navigation-instruments/pitch-indicator/ObcPitchIndicator.svelte';
2291
2292
  export { default as ObcPitchRoll } from './navigation-instruments/pitch-roll/ObcPitchRoll.svelte';
2293
+ export { default as ObcPitchRollHeave } from './navigation-instruments/pitch-roll-heave/ObcPitchRollHeave.svelte';
2292
2294
  export { default as ObcPropulsionAzimuthIndicator } from './navigation-instruments/propulsion-azimuth-indicator/ObcPropulsionAzimuthIndicator.svelte';
2293
2295
  export { default as ObcTunnelThruster } from './navigation-instruments/propulsion-tunnel-thruster/ObcTunnelThruster.svelte';
2294
2296
  export { default as ObcRateOfTurn } from './navigation-instruments/rate-of-turn/ObcRateOfTurn.svelte';
@@ -2298,13 +2300,16 @@ export { default as ObcReadoutListItem } from './navigation-instruments/readout-
2298
2300
  export { default as ObcRoll } from './navigation-instruments/roll/ObcRoll.svelte';
2299
2301
  export { default as ObcRollIndicator } from './navigation-instruments/roll-indicator/ObcRollIndicator.svelte';
2300
2302
  export { default as ObcRotIndicator } from './navigation-instruments/rot-indicator/ObcRotIndicator.svelte';
2303
+ export { default as ObcRotLinear } from './navigation-instruments/rot-linear/ObcRotLinear.svelte';
2301
2304
  export { default as ObcRotSector } from './navigation-instruments/rot-sector/ObcRotSector.svelte';
2302
2305
  export { default as ObcRudder } from './navigation-instruments/rudder/ObcRudder.svelte';
2303
2306
  export { default as ObcRudderIndicator } from './navigation-instruments/rudder-indicator/ObcRudderIndicator.svelte';
2304
2307
  export { default as ObcSpeedArrows } from './navigation-instruments/speed-arrows/ObcSpeedArrows.svelte';
2308
+ export { default as ObcSpeedDirections } from './navigation-instruments/speed-directions/ObcSpeedDirections.svelte';
2305
2309
  export { default as ObcSpeedGauge } from './navigation-instruments/speed-gauge/ObcSpeedGauge.svelte';
2306
2310
  export { default as ObcSpeedIndicator } from './navigation-instruments/speed-indicator/ObcSpeedIndicator.svelte';
2307
2311
  export { default as ObcThruster } from './navigation-instruments/thruster/ObcThruster.svelte';
2312
+ export { default as ObcTopViewPropulsion } from './navigation-instruments/top-view-propulsion/ObcTopViewPropulsion.svelte';
2308
2313
  export { default as ObcVelocityProjectionPlot } from './navigation-instruments/velocity-projection-plot/ObcVelocityProjectionPlot.svelte';
2309
2314
  export { default as ObcWatch } from './navigation-instruments/watch/ObcWatch.svelte';
2310
2315
  export { default as ObcWatchFlat } from './navigation-instruments/watch-flat/ObcWatchFlat.svelte';
package/dist/index.js CHANGED
@@ -2270,6 +2270,7 @@ export { default as ObcCompassIndicator } from './navigation-instruments/compass
2270
2270
  export { default as ObcCompassSector } from './navigation-instruments/compass-sector/ObcCompassSector.svelte';
2271
2271
  export { default as ObcDepthActual } from './navigation-instruments/depth-actual/ObcDepthActual.svelte';
2272
2272
  export { default as ObcDepthIndicator } from './navigation-instruments/depth-indicator/ObcDepthIndicator.svelte';
2273
+ export { default as ObcDraftTrim } from './navigation-instruments/draft-trim/ObcDraftTrim.svelte';
2273
2274
  export { default as ObcGaugeBarIndicator } from './navigation-instruments/gauge-bar-indicator/ObcGaugeBarIndicator.svelte';
2274
2275
  export { default as ObcGaugeHorizontal } from './navigation-instruments/gauge-horizontal/ObcGaugeHorizontal.svelte';
2275
2276
  export { default as ObcGaugeRadial } from './navigation-instruments/gauge-radial/ObcGaugeRadial.svelte';
@@ -2289,6 +2290,7 @@ export { default as ObcMainEngineIndicator } from './navigation-instruments/main
2289
2290
  export { default as ObcPitch } from './navigation-instruments/pitch/ObcPitch.svelte';
2290
2291
  export { default as ObcPitchIndicator } from './navigation-instruments/pitch-indicator/ObcPitchIndicator.svelte';
2291
2292
  export { default as ObcPitchRoll } from './navigation-instruments/pitch-roll/ObcPitchRoll.svelte';
2293
+ export { default as ObcPitchRollHeave } from './navigation-instruments/pitch-roll-heave/ObcPitchRollHeave.svelte';
2292
2294
  export { default as ObcPropulsionAzimuthIndicator } from './navigation-instruments/propulsion-azimuth-indicator/ObcPropulsionAzimuthIndicator.svelte';
2293
2295
  export { default as ObcTunnelThruster } from './navigation-instruments/propulsion-tunnel-thruster/ObcTunnelThruster.svelte';
2294
2296
  export { default as ObcRateOfTurn } from './navigation-instruments/rate-of-turn/ObcRateOfTurn.svelte';
@@ -2298,13 +2300,16 @@ export { default as ObcReadoutListItem } from './navigation-instruments/readout-
2298
2300
  export { default as ObcRoll } from './navigation-instruments/roll/ObcRoll.svelte';
2299
2301
  export { default as ObcRollIndicator } from './navigation-instruments/roll-indicator/ObcRollIndicator.svelte';
2300
2302
  export { default as ObcRotIndicator } from './navigation-instruments/rot-indicator/ObcRotIndicator.svelte';
2303
+ export { default as ObcRotLinear } from './navigation-instruments/rot-linear/ObcRotLinear.svelte';
2301
2304
  export { default as ObcRotSector } from './navigation-instruments/rot-sector/ObcRotSector.svelte';
2302
2305
  export { default as ObcRudder } from './navigation-instruments/rudder/ObcRudder.svelte';
2303
2306
  export { default as ObcRudderIndicator } from './navigation-instruments/rudder-indicator/ObcRudderIndicator.svelte';
2304
2307
  export { default as ObcSpeedArrows } from './navigation-instruments/speed-arrows/ObcSpeedArrows.svelte';
2308
+ export { default as ObcSpeedDirections } from './navigation-instruments/speed-directions/ObcSpeedDirections.svelte';
2305
2309
  export { default as ObcSpeedGauge } from './navigation-instruments/speed-gauge/ObcSpeedGauge.svelte';
2306
2310
  export { default as ObcSpeedIndicator } from './navigation-instruments/speed-indicator/ObcSpeedIndicator.svelte';
2307
2311
  export { default as ObcThruster } from './navigation-instruments/thruster/ObcThruster.svelte';
2312
+ export { default as ObcTopViewPropulsion } from './navigation-instruments/top-view-propulsion/ObcTopViewPropulsion.svelte';
2308
2313
  export { default as ObcVelocityProjectionPlot } from './navigation-instruments/velocity-projection-plot/ObcVelocityProjectionPlot.svelte';
2309
2314
  export { default as ObcWatch } from './navigation-instruments/watch/ObcWatch.svelte';
2310
2315
  export { default as ObcWatchFlat } from './navigation-instruments/watch-flat/ObcWatchFlat.svelte';
@@ -2,12 +2,16 @@
2
2
  <script lang="ts">
3
3
  export type {AngleAdvice} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/advice.js';
4
4
  export type {VesselImage, RotType, RotPosition} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/watch.js';
5
+ export type {CompassCenterReadout} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/readout/center-readout.js';
6
+ export type {HdgArrowStyle, CogArrowStyle} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/course-arrows/course-arrows.js';
5
7
  export type {CompassDirection, CompassPriorityElement} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/compass/compass.js';
6
8
  export type {InstrumentState, Priority} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
7
9
  import '@oicl/openbridge-webcomponents/dist/navigation-instruments/compass/compass.js';
8
10
  import { setProperties } from "../../util.js";
9
11
  import type {AngleAdvice} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/advice.js';
10
12
  import type {VesselImage, RotType, RotPosition} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/watch.js';
13
+ import type {CompassCenterReadout} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/readout/center-readout.js';
14
+ import type {HdgArrowStyle, CogArrowStyle} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/course-arrows/course-arrows.js';
11
15
  import type {CompassDirection, CompassPriorityElement} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/compass/compass.js';
12
16
  import type {InstrumentState, Priority} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
13
17
  import type { Snippet } from 'svelte';
@@ -43,8 +47,19 @@ windFromDirection?: number | null;
43
47
  currentSpeed?: number | null;
44
48
  /** The direction the current is coming from in degrees. */
45
49
  currentFromDirection?: number | null;
46
- /** The image of the vessel. */
50
+ /** The image of the vessel. Hidden while `centerReadouts` is non-empty. */
47
51
  vesselImage?: VesselImage;
52
+ /** Center readouts replacing the vessel: the first entry renders on top,
53
+ the rest side by side below a horizontal divider. Values bind per entry
54
+ `source` (`hdg` → `heading`, `cog` → `courseOverGround`, `rot` →
55
+ `rateOfTurnDegreesPerMinute`, a dash when unset) and colors follow
56
+ `priorityElements`. While non-empty, the crosshair's center is cut out
57
+ so the readouts sit on a clean face. */
58
+ centerReadouts?: CompassCenterReadout[];
59
+ /** HDG arrow style: `arrowHead` (default), `needle`, `vector`, or `beamLine`. */
60
+ hdgArrowStyle?: HdgArrowStyle;
61
+ /** COG arrow style: `arrowHead` (default), `needle`, `vector`, or `velocityVector`. */
62
+ cogArrowStyle?: CogArrowStyle;
48
63
  /** Measured rate of turn in degrees per minute (positive = starboard).
49
64
  Drives both the bar extent and (after multiplication by
50
65
  `rotDotAnimationFactor`) the spinning dot animation.
@@ -1,6 +1,8 @@
1
1
  import '@oicl/openbridge-webcomponents/dist/navigation-instruments/compass/compass.js';
2
2
  import type { AngleAdvice } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/advice.js';
3
3
  import type { VesselImage, RotType, RotPosition } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/watch.js';
4
+ import type { CompassCenterReadout } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/readout/center-readout.js';
5
+ import type { HdgArrowStyle, CogArrowStyle } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/course-arrows/course-arrows.js';
4
6
  import type { CompassDirection, CompassPriorityElement } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/compass/compass.js';
5
7
  import type { InstrumentState, Priority } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
6
8
  import type { Snippet } from 'svelte';
@@ -35,8 +37,19 @@ export interface Props {
35
37
  currentSpeed?: number | null;
36
38
  /** The direction the current is coming from in degrees. */
37
39
  currentFromDirection?: number | null;
38
- /** The image of the vessel. */
40
+ /** The image of the vessel. Hidden while `centerReadouts` is non-empty. */
39
41
  vesselImage?: VesselImage;
42
+ /** Center readouts replacing the vessel: the first entry renders on top,
43
+ the rest side by side below a horizontal divider. Values bind per entry
44
+ `source` (`hdg` → `heading`, `cog` → `courseOverGround`, `rot` →
45
+ `rateOfTurnDegreesPerMinute`, a dash when unset) and colors follow
46
+ `priorityElements`. While non-empty, the crosshair's center is cut out
47
+ so the readouts sit on a clean face. */
48
+ centerReadouts?: CompassCenterReadout[];
49
+ /** HDG arrow style: `arrowHead` (default), `needle`, `vector`, or `beamLine`. */
50
+ hdgArrowStyle?: HdgArrowStyle;
51
+ /** COG arrow style: `arrowHead` (default), `needle`, `vector`, or `velocityVector`. */
52
+ cogArrowStyle?: CogArrowStyle;
40
53
  /** Measured rate of turn in degrees per minute (positive = starboard).
41
54
  Drives both the bar extent and (after multiplication by
42
55
  `rotDotAnimationFactor`) the spinning dot animation.
@@ -93,6 +106,9 @@ declare const ObcCompass: import("svelte").Component<$$ComponentProps, {
93
106
  VesselImage: typeof VesselImage;
94
107
  RotType: typeof RotType;
95
108
  RotPosition: typeof RotPosition;
109
+ CompassCenterReadout: typeof CompassCenterReadout;
110
+ HdgArrowStyle: typeof HdgArrowStyle;
111
+ CogArrowStyle: typeof CogArrowStyle;
96
112
  CompassDirection: typeof CompassDirection;
97
113
  CompassPriorityElement: typeof CompassPriorityElement;
98
114
  InstrumentState: typeof InstrumentState;
@@ -39,7 +39,17 @@ rotMaxValue?: number;
39
39
  /** Degrees of bar arc per max-value ROT (default 60). */
40
40
  rotArcExtent?: number;
41
41
  rotPortStarboard?: boolean;
42
- rotAtZeroDeadband?: number
42
+ rotAtZeroDeadband?: number;
43
+ /** When `true`, shows a centered `<obc-readout>` below the strip displaying
44
+ the heading (label `HDG`, unit `DEG`). The value color follows the HDG
45
+ entry in `priorityElements`. */
46
+ hasReadout?: boolean;
47
+ /** Readout label. Default `HDG`. */
48
+ label?: string;
49
+ /** Readout unit. Default `DEG`. */
50
+ unit?: string;
51
+ /** Number of fraction digits shown in the readout. Default `0`. */
52
+ fractionDigits?: number
43
53
  }
44
54
  export interface Events {
45
55
 
@@ -33,6 +33,16 @@ per ES-TRIN 2025/1 Art. 3.02. */
33
33
  rotArcExtent?: number;
34
34
  rotPortStarboard?: boolean;
35
35
  rotAtZeroDeadband?: number;
36
+ /** When `true`, shows a centered `<obc-readout>` below the strip displaying
37
+ the heading (label `HDG`, unit `DEG`). The value color follows the HDG
38
+ entry in `priorityElements`. */
39
+ hasReadout?: boolean;
40
+ /** Readout label. Default `HDG`. */
41
+ label?: string;
42
+ /** Readout unit. Default `DEG`. */
43
+ unit?: string;
44
+ /** Number of fraction digits shown in the readout. Default `0`. */
45
+ fractionDigits?: number;
36
46
  }
37
47
  export interface Events {
38
48
  }
@@ -0,0 +1,47 @@
1
+
2
+ <script lang="ts">
3
+ export type {LinearAdvice} from '@oicl/openbridge-webcomponents/dist/building-blocks/instrument-linear/advice.js';
4
+ export type {VesselImage} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/watch.js';
5
+ export type {Priority} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
6
+ import '@oicl/openbridge-webcomponents/dist/navigation-instruments/draft-trim/draft-trim.js';
7
+ import { setProperties } from "../../util.js";
8
+ import type {LinearAdvice} from '@oicl/openbridge-webcomponents/dist/building-blocks/instrument-linear/advice.js';
9
+ import type {VesselImage} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/watch.js';
10
+ import type {Priority} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
11
+ import type { Snippet } from 'svelte';
12
+
13
+ export interface Props {
14
+ class?: string;
15
+ style?: string;
16
+ /** Draught at the bow, positive below the waterline. */
17
+ draftFore?: number;
18
+ /** Draught at the stern, positive below the waterline. */
19
+ draftAft?: number;
20
+ /** Half-extent of both scales. Each spans `±instrumentRange` around the
21
+ waterline, so the upper half reads as freeboard. */
22
+ instrumentRange?: number;
23
+ /** Advice zones, in the same positive-below-the-waterline units as the
24
+ draughts. Applied to both scales; each is triggered by its own draught. */
25
+ advice?: LinearAdvice[];
26
+ vesselImage?: VesselImage;
27
+ priority?: Priority
28
+ }
29
+ export interface Events {
30
+
31
+ }
32
+ export interface Slots {
33
+ children?: Snippet
34
+ }
35
+ const { class: className, style, children, ...props} = $props<Props & Events & Slots>();
36
+
37
+ </script>
38
+ <obc-draft-trim
39
+ use:setProperties={props}
40
+ class={className}
41
+ style={style}
42
+ >
43
+
44
+ {#if children}
45
+ {@render children()}
46
+ {/if}
47
+ </obc-draft-trim>
@@ -0,0 +1,34 @@
1
+ import '@oicl/openbridge-webcomponents/dist/navigation-instruments/draft-trim/draft-trim.js';
2
+ import type { LinearAdvice } from '@oicl/openbridge-webcomponents/dist/building-blocks/instrument-linear/advice.js';
3
+ import type { VesselImage } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/watch.js';
4
+ import type { Priority } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
5
+ import type { Snippet } from 'svelte';
6
+ export interface Props {
7
+ class?: string;
8
+ style?: string;
9
+ /** Draught at the bow, positive below the waterline. */
10
+ draftFore?: number;
11
+ /** Draught at the stern, positive below the waterline. */
12
+ draftAft?: number;
13
+ /** Half-extent of both scales. Each spans `±instrumentRange` around the
14
+ waterline, so the upper half reads as freeboard. */
15
+ instrumentRange?: number;
16
+ /** Advice zones, in the same positive-below-the-waterline units as the
17
+ draughts. Applied to both scales; each is triggered by its own draught. */
18
+ advice?: LinearAdvice[];
19
+ vesselImage?: VesselImage;
20
+ priority?: Priority;
21
+ }
22
+ export interface Events {
23
+ }
24
+ export interface Slots {
25
+ children?: Snippet;
26
+ }
27
+ type $$ComponentProps = Props & Events & Slots;
28
+ declare const ObcDraftTrim: import("svelte").Component<$$ComponentProps, {
29
+ LinearAdvice: typeof LinearAdvice;
30
+ VesselImage: typeof VesselImage;
31
+ Priority: typeof Priority;
32
+ }, "">;
33
+ type ObcDraftTrim = ReturnType<typeof ObcDraftTrim>;
34
+ export default ObcDraftTrim;
@@ -3,11 +3,17 @@
3
3
  export type {AngleAdvice} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/advice.js';
4
4
  export type {CompassDirection, HeadingPriorityElement} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/heading/heading.js';
5
5
  export type {Priority} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
6
+ export type {VesselImage} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/watch.js';
7
+ export type {CompassCenterReadout} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/readout/center-readout.js';
8
+ export type {HdgArrowStyle, CogArrowStyle} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/course-arrows/course-arrows.js';
6
9
  import '@oicl/openbridge-webcomponents/dist/navigation-instruments/heading/heading.js';
7
10
  import { setProperties } from "../../util.js";
8
11
  import type {AngleAdvice} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/advice.js';
9
12
  import type {CompassDirection, HeadingPriorityElement} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/heading/heading.js';
10
13
  import type {Priority} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
14
+ import type {VesselImage} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/watch.js';
15
+ import type {CompassCenterReadout} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/readout/center-readout.js';
16
+ import type {HdgArrowStyle, CogArrowStyle} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/course-arrows/course-arrows.js';
11
17
  import type { Snippet } from 'svelte';
12
18
 
13
19
  export interface Props {
@@ -28,6 +34,21 @@ import type {Priority} from '@oicl/openbridge-webcomponents/dist/navigation-inst
28
34
  direction?: CompassDirection;
29
35
  priority?: Priority;
30
36
  priorityElements?: HeadingPriorityElement[];
37
+ /** The vessel silhouette shown in the center, rotating with heading. When
38
+ unset (default) no vessel is shown; hidden while `centerReadouts` is
39
+ non-empty. */
40
+ vesselImage?: VesselImage | undefined;
41
+ /** Center readouts replacing the vessel: the first entry renders on top,
42
+ the rest side by side below a horizontal divider. Values bind per entry
43
+ `source` (`hdg` → `heading`, `cog` → `courseOverGround`; `rot` has no
44
+ input on this instrument and renders a dash) and colors follow
45
+ `priorityElements`. While non-empty, the crosshair's center is cut out
46
+ so the readouts sit on a clean face. */
47
+ centerReadouts?: CompassCenterReadout[];
48
+ /** HDG arrow style: `needle` (default), `arrowHead`, `vector`, or `beamLine`. */
49
+ hdgArrowStyle?: HdgArrowStyle;
50
+ /** COG arrow style: `needle` (default), `arrowHead`, `vector`, or `velocityVector`. */
51
+ cogArrowStyle?: CogArrowStyle;
31
52
  /** Show compass NSEW labels. */
32
53
  showLabels?: boolean;
33
54
  /** When true, labels and north arrow are placed inside the outer ring. */
@@ -2,6 +2,9 @@ import '@oicl/openbridge-webcomponents/dist/navigation-instruments/heading/headi
2
2
  import type { AngleAdvice } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/advice.js';
3
3
  import type { CompassDirection, HeadingPriorityElement } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/heading/heading.js';
4
4
  import type { Priority } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
5
+ import type { VesselImage } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/watch.js';
6
+ import type { CompassCenterReadout } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/readout/center-readout.js';
7
+ import type { HdgArrowStyle, CogArrowStyle } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/course-arrows/course-arrows.js';
5
8
  import type { Snippet } from 'svelte';
6
9
  export interface Props {
7
10
  class?: string;
@@ -21,6 +24,21 @@ export interface Props {
21
24
  direction?: CompassDirection;
22
25
  priority?: Priority;
23
26
  priorityElements?: HeadingPriorityElement[];
27
+ /** The vessel silhouette shown in the center, rotating with heading. When
28
+ unset (default) no vessel is shown; hidden while `centerReadouts` is
29
+ non-empty. */
30
+ vesselImage?: VesselImage | undefined;
31
+ /** Center readouts replacing the vessel: the first entry renders on top,
32
+ the rest side by side below a horizontal divider. Values bind per entry
33
+ `source` (`hdg` → `heading`, `cog` → `courseOverGround`; `rot` has no
34
+ input on this instrument and renders a dash) and colors follow
35
+ `priorityElements`. While non-empty, the crosshair's center is cut out
36
+ so the readouts sit on a clean face. */
37
+ centerReadouts?: CompassCenterReadout[];
38
+ /** HDG arrow style: `needle` (default), `arrowHead`, `vector`, or `beamLine`. */
39
+ hdgArrowStyle?: HdgArrowStyle;
40
+ /** COG arrow style: `needle` (default), `arrowHead`, `vector`, or `velocityVector`. */
41
+ cogArrowStyle?: CogArrowStyle;
24
42
  /** Show compass NSEW labels. */
25
43
  showLabels?: boolean;
26
44
  /** When true, labels and north arrow are placed inside the outer ring. */
@@ -43,6 +61,10 @@ declare const ObcHeading: import("svelte").Component<$$ComponentProps, {
43
61
  CompassDirection: typeof CompassDirection;
44
62
  HeadingPriorityElement: typeof HeadingPriorityElement;
45
63
  Priority: typeof Priority;
64
+ VesselImage: typeof VesselImage;
65
+ CompassCenterReadout: typeof CompassCenterReadout;
66
+ HdgArrowStyle: typeof HdgArrowStyle;
67
+ CogArrowStyle: typeof CogArrowStyle;
46
68
  }, "">;
47
69
  type ObcHeading = ReturnType<typeof ObcHeading>;
48
70
  export default ObcHeading;
@@ -3,11 +3,13 @@
3
3
  export type {LinearAdvice} from '@oicl/openbridge-webcomponents/dist/building-blocks/instrument-linear/advice.js';
4
4
  export type {VesselImage} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/watch.js';
5
5
  export type {Priority} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
6
+ export type {ObcHeaveType} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/heave/heave.js';
6
7
  import '@oicl/openbridge-webcomponents/dist/navigation-instruments/heave/heave.js';
7
8
  import { setProperties } from "../../util.js";
8
9
  import type {LinearAdvice} from '@oicl/openbridge-webcomponents/dist/building-blocks/instrument-linear/advice.js';
9
10
  import type {VesselImage} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/watch.js';
10
11
  import type {Priority} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
12
+ import type {ObcHeaveType} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/heave/heave.js';
11
13
  import type { Snippet } from 'svelte';
12
14
 
13
15
  export interface Props {
@@ -21,7 +23,10 @@ import type {Priority} from '@oicl/openbridge-webcomponents/dist/navigation-inst
21
23
  advice?: LinearAdvice[];
22
24
  instrumentRange?: number;
23
25
  vesselImage?: VesselImage;
24
- priority?: Priority
26
+ priority?: Priority;
27
+ /** `vessel` (default) frames the scale next to a vessel silhouette; `bar`
28
+ renders the scale column on its own. */
29
+ type?: ObcHeaveType
25
30
  }
26
31
  export interface Events {
27
32
 
@@ -2,6 +2,7 @@ import '@oicl/openbridge-webcomponents/dist/navigation-instruments/heave/heave.j
2
2
  import type { LinearAdvice } from '@oicl/openbridge-webcomponents/dist/building-blocks/instrument-linear/advice.js';
3
3
  import type { VesselImage } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/watch.js';
4
4
  import type { Priority } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
5
+ import type { ObcHeaveType } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/heave/heave.js';
5
6
  import type { Snippet } from 'svelte';
6
7
  export interface Props {
7
8
  class?: string;
@@ -15,6 +16,9 @@ export interface Props {
15
16
  instrumentRange?: number;
16
17
  vesselImage?: VesselImage;
17
18
  priority?: Priority;
19
+ /** `vessel` (default) frames the scale next to a vessel silhouette; `bar`
20
+ renders the scale column on its own. */
21
+ type?: ObcHeaveType;
18
22
  }
19
23
  export interface Events {
20
24
  }
@@ -26,6 +30,7 @@ declare const ObcHeave: import("svelte").Component<$$ComponentProps, {
26
30
  LinearAdvice: typeof LinearAdvice;
27
31
  VesselImage: typeof VesselImage;
28
32
  Priority: typeof Priority;
33
+ ObcHeaveType: typeof ObcHeaveType;
29
34
  }, "">;
30
35
  type ObcHeave = ReturnType<typeof ObcHeave>;
31
36
  export default ObcHeave;
@@ -0,0 +1,78 @@
1
+
2
+ <script lang="ts">
3
+ export type {ObcPitchRollHeaveType, PitchRollHeavePriorityElement} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/pitch-roll-heave/pitch-roll-heave.js';
4
+ export type {VesselImage} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/watch.js';
5
+ export type {LinearAdvice} from '@oicl/openbridge-webcomponents/dist/building-blocks/instrument-linear/advice.js';
6
+ export type {Priority} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
7
+ import '@oicl/openbridge-webcomponents/dist/navigation-instruments/pitch-roll-heave/pitch-roll-heave.js';
8
+ import { setProperties } from "../../util.js";
9
+ import type {ObcPitchRollHeaveType, PitchRollHeavePriorityElement} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/pitch-roll-heave/pitch-roll-heave.js';
10
+ import type {VesselImage} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/watch.js';
11
+ import type {LinearAdvice} from '@oicl/openbridge-webcomponents/dist/building-blocks/instrument-linear/advice.js';
12
+ import type {Priority} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
13
+ import type { Snippet } from 'svelte';
14
+
15
+ export interface Props {
16
+ class?: string;
17
+ style?: string;
18
+ type?: ObcPitchRollHeaveType;
19
+ pitch?: number;
20
+ roll?: number;
21
+ heave?: number;
22
+ minAvgPitch?: number;
23
+ maxAvgPitch?: number;
24
+ minAvgRoll?: number;
25
+ maxAvgRoll?: number;
26
+ minTrendHeave?: number;
27
+ maxTrendHeave?: number;
28
+ /** Half-extent of the heave scale in metres; the column spans `±heaveRange`. */
29
+ heaveRange?: number;
30
+ /** Half-extent of the pitch arc in degrees. Also drives the heave column
31
+ height, which is `2 · outerRadius · sin(pitchArcAngle)` so the column's
32
+ edges stay level with the pitch arc's end caps. */
33
+ pitchArcAngle?: number;
34
+ /** Half-extent of the roll arc in degrees. */
35
+ rollArcAngle?: number;
36
+ zoomToFitArc?: boolean;
37
+ /** Replaces the centre content with stacked pitch, roll and heave readouts.
38
+ Ignored when `type` is `dual-scale`, where the heave column occupies the
39
+ centre. */
40
+ hasReadout?: boolean;
41
+ pitchLabel?: string;
42
+ rollLabel?: string;
43
+ heaveLabel?: string;
44
+ /** Unit shown in the pitch and roll readouts. */
45
+ unit?: string;
46
+ /** Unit shown in the heave readout. */
47
+ heaveUnit?: string;
48
+ fractionDigits?: number;
49
+ vesselImageFore?: VesselImage;
50
+ vesselImageSide?: VesselImage;
51
+ scaleForeImage?: number;
52
+ maxPitchAdvice?: number | undefined;
53
+ maxRollAdvice?: number | undefined;
54
+ triggerPitchAdvice?: boolean;
55
+ triggerRollAdvice?: boolean;
56
+ heaveAdvice?: LinearAdvice[];
57
+ priority?: Priority;
58
+ priorityElements?: PitchRollHeavePriorityElement[]
59
+ }
60
+ export interface Events {
61
+
62
+ }
63
+ export interface Slots {
64
+ children?: Snippet
65
+ }
66
+ const { class: className, style, children, ...props} = $props<Props & Events & Slots>();
67
+
68
+ </script>
69
+ <obc-pitch-roll-heave
70
+ use:setProperties={props}
71
+ class={className}
72
+ style={style}
73
+ >
74
+
75
+ {#if children}
76
+ {@render children()}
77
+ {/if}
78
+ </obc-pitch-roll-heave>
@@ -0,0 +1,66 @@
1
+ import '@oicl/openbridge-webcomponents/dist/navigation-instruments/pitch-roll-heave/pitch-roll-heave.js';
2
+ import type { ObcPitchRollHeaveType, PitchRollHeavePriorityElement } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/pitch-roll-heave/pitch-roll-heave.js';
3
+ import type { VesselImage } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/watch.js';
4
+ import type { LinearAdvice } from '@oicl/openbridge-webcomponents/dist/building-blocks/instrument-linear/advice.js';
5
+ import type { Priority } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
6
+ import type { Snippet } from 'svelte';
7
+ export interface Props {
8
+ class?: string;
9
+ style?: string;
10
+ type?: ObcPitchRollHeaveType;
11
+ pitch?: number;
12
+ roll?: number;
13
+ heave?: number;
14
+ minAvgPitch?: number;
15
+ maxAvgPitch?: number;
16
+ minAvgRoll?: number;
17
+ maxAvgRoll?: number;
18
+ minTrendHeave?: number;
19
+ maxTrendHeave?: number;
20
+ /** Half-extent of the heave scale in metres; the column spans `±heaveRange`. */
21
+ heaveRange?: number;
22
+ /** Half-extent of the pitch arc in degrees. Also drives the heave column
23
+ height, which is `2 · outerRadius · sin(pitchArcAngle)` so the column's
24
+ edges stay level with the pitch arc's end caps. */
25
+ pitchArcAngle?: number;
26
+ /** Half-extent of the roll arc in degrees. */
27
+ rollArcAngle?: number;
28
+ zoomToFitArc?: boolean;
29
+ /** Replaces the centre content with stacked pitch, roll and heave readouts.
30
+ Ignored when `type` is `dual-scale`, where the heave column occupies the
31
+ centre. */
32
+ hasReadout?: boolean;
33
+ pitchLabel?: string;
34
+ rollLabel?: string;
35
+ heaveLabel?: string;
36
+ /** Unit shown in the pitch and roll readouts. */
37
+ unit?: string;
38
+ /** Unit shown in the heave readout. */
39
+ heaveUnit?: string;
40
+ fractionDigits?: number;
41
+ vesselImageFore?: VesselImage;
42
+ vesselImageSide?: VesselImage;
43
+ scaleForeImage?: number;
44
+ maxPitchAdvice?: number | undefined;
45
+ maxRollAdvice?: number | undefined;
46
+ triggerPitchAdvice?: boolean;
47
+ triggerRollAdvice?: boolean;
48
+ heaveAdvice?: LinearAdvice[];
49
+ priority?: Priority;
50
+ priorityElements?: PitchRollHeavePriorityElement[];
51
+ }
52
+ export interface Events {
53
+ }
54
+ export interface Slots {
55
+ children?: Snippet;
56
+ }
57
+ type $$ComponentProps = Props & Events & Slots;
58
+ declare const ObcPitchRollHeave: import("svelte").Component<$$ComponentProps, {
59
+ ObcPitchRollHeaveType: typeof ObcPitchRollHeaveType;
60
+ PitchRollHeavePriorityElement: typeof PitchRollHeavePriorityElement;
61
+ VesselImage: typeof VesselImage;
62
+ LinearAdvice: typeof LinearAdvice;
63
+ Priority: typeof Priority;
64
+ }, "">;
65
+ type ObcPitchRollHeave = ReturnType<typeof ObcPitchRollHeave>;
66
+ export default ObcPitchRollHeave;
@@ -25,7 +25,27 @@ rotDotAnimationFactor?: number;
25
25
  barEndAngle?: number;
26
26
  watchCircleType?: WatchCircleType;
27
27
  rotPortStarboard?: boolean;
28
- rotAtZeroDeadband?: number
28
+ rotAtZeroDeadband?: number;
29
+ /** When `true`, shows a bar in the ring band from the twelve o'clock
30
+ position to the measured rate of turn, with a needle marker at its end
31
+ and sector tickmarks. Pairs with `watchCircleType="double"` for the
32
+ banded face. Driven by `rateOfTurnDegreesPerMinute` only. */
33
+ hasTrackBar?: boolean;
34
+ /** Bar-extent reference value in **degrees per minute**: the track bar
35
+ reaches ±`rotArcExtent` when the measured ROT equals ±`rotMaxValue`.
36
+ Default `60` aligns with ES-TRIN 2025/1 Art. 3.02. */
37
+ rotMaxValue?: number;
38
+ /** Arc extent of the track bar in degrees per direction. Default `60`. */
39
+ rotArcExtent?: number;
40
+ /** When `true`, shows a centered `<obc-readout>` with the measured rate of
41
+ turn. Shows a dash while `rateOfTurnDegreesPerMinute` is unset. */
42
+ hasReadout?: boolean;
43
+ /** Readout label. Default `ROT`. */
44
+ label?: string;
45
+ /** Readout unit. Default `DEG/min`. */
46
+ unit?: string;
47
+ /** Number of fraction digits shown in the readout. Default `0`. */
48
+ fractionDigits?: number
29
49
  }
30
50
  export interface Events {
31
51
 
@@ -20,6 +20,26 @@ keeps the legacy visual feel (≈1 rpm at 20°/min). */
20
20
  watchCircleType?: WatchCircleType;
21
21
  rotPortStarboard?: boolean;
22
22
  rotAtZeroDeadband?: number;
23
+ /** When `true`, shows a bar in the ring band from the twelve o'clock
24
+ position to the measured rate of turn, with a needle marker at its end
25
+ and sector tickmarks. Pairs with `watchCircleType="double"` for the
26
+ banded face. Driven by `rateOfTurnDegreesPerMinute` only. */
27
+ hasTrackBar?: boolean;
28
+ /** Bar-extent reference value in **degrees per minute**: the track bar
29
+ reaches ±`rotArcExtent` when the measured ROT equals ±`rotMaxValue`.
30
+ Default `60` aligns with ES-TRIN 2025/1 Art. 3.02. */
31
+ rotMaxValue?: number;
32
+ /** Arc extent of the track bar in degrees per direction. Default `60`. */
33
+ rotArcExtent?: number;
34
+ /** When `true`, shows a centered `<obc-readout>` with the measured rate of
35
+ turn. Shows a dash while `rateOfTurnDegreesPerMinute` is unset. */
36
+ hasReadout?: boolean;
37
+ /** Readout label. Default `ROT`. */
38
+ label?: string;
39
+ /** Readout unit. Default `DEG/min`. */
40
+ unit?: string;
41
+ /** Number of fraction digits shown in the readout. Default `0`. */
42
+ fractionDigits?: number;
23
43
  }
24
44
  export interface Events {
25
45
  }
@@ -0,0 +1,50 @@
1
+
2
+ <script lang="ts">
3
+ export type {Priority} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
4
+ import '@oicl/openbridge-webcomponents/dist/navigation-instruments/rot-linear/rot-linear.js';
5
+ import { setProperties } from "../../util.js";
6
+ import type {Priority} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
7
+ import type { Snippet } from 'svelte';
8
+
9
+ export interface Props {
10
+ class?: string;
11
+ style?: string;
12
+ /** Measured rate of turn in degrees per minute (positive = starboard).
13
+ When unset, no bar is shown and the readout shows a dash. */
14
+ rateOfTurnDegreesPerMinute?: number | undefined;
15
+ /** Scale range in **degrees per minute** per direction. Default `90`. */
16
+ rotMaxValue?: number;
17
+ /** Interval for tickmarks in scale units. Default `5`. */
18
+ tickInterval?: number;
19
+ /** Colors the bar and needle by turn direction (starboard/port palette). */
20
+ rotPortStarboard?: boolean;
21
+ priority?: Priority;
22
+ /** When `true`, shows a centered `<obc-readout>` below the strip with the
23
+ measured rate of turn. */
24
+ hasReadout?: boolean;
25
+ /** Readout label. Default `ROT`. */
26
+ label?: string;
27
+ /** Readout unit. Default `DEG/min`. */
28
+ unit?: string;
29
+ /** Number of fraction digits shown in the readout. Default `0`. */
30
+ fractionDigits?: number
31
+ }
32
+ export interface Events {
33
+
34
+ }
35
+ export interface Slots {
36
+ children?: Snippet
37
+ }
38
+ const { class: className, style, children, ...props} = $props<Props & Events & Slots>();
39
+
40
+ </script>
41
+ <obc-rot-linear
42
+ use:setProperties={props}
43
+ class={className}
44
+ style={style}
45
+ >
46
+
47
+ {#if children}
48
+ {@render children()}
49
+ {/if}
50
+ </obc-rot-linear>
@@ -0,0 +1,37 @@
1
+ import '@oicl/openbridge-webcomponents/dist/navigation-instruments/rot-linear/rot-linear.js';
2
+ import type { Priority } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
3
+ import type { Snippet } from 'svelte';
4
+ export interface Props {
5
+ class?: string;
6
+ style?: string;
7
+ /** Measured rate of turn in degrees per minute (positive = starboard).
8
+ When unset, no bar is shown and the readout shows a dash. */
9
+ rateOfTurnDegreesPerMinute?: number | undefined;
10
+ /** Scale range in **degrees per minute** per direction. Default `90`. */
11
+ rotMaxValue?: number;
12
+ /** Interval for tickmarks in scale units. Default `5`. */
13
+ tickInterval?: number;
14
+ /** Colors the bar and needle by turn direction (starboard/port palette). */
15
+ rotPortStarboard?: boolean;
16
+ priority?: Priority;
17
+ /** When `true`, shows a centered `<obc-readout>` below the strip with the
18
+ measured rate of turn. */
19
+ hasReadout?: boolean;
20
+ /** Readout label. Default `ROT`. */
21
+ label?: string;
22
+ /** Readout unit. Default `DEG/min`. */
23
+ unit?: string;
24
+ /** Number of fraction digits shown in the readout. Default `0`. */
25
+ fractionDigits?: number;
26
+ }
27
+ export interface Events {
28
+ }
29
+ export interface Slots {
30
+ children?: Snippet;
31
+ }
32
+ type $$ComponentProps = Props & Events & Slots;
33
+ declare const ObcRotLinear: import("svelte").Component<$$ComponentProps, {
34
+ Priority: typeof Priority;
35
+ }, "">;
36
+ type ObcRotLinear = ReturnType<typeof ObcRotLinear>;
37
+ export default ObcRotLinear;
@@ -0,0 +1,56 @@
1
+
2
+ <script lang="ts">
3
+ export type {SpeedDirectionsType, SpeedDirectionsFrameStyle} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/speed-directions/speed-directions-geometry.js';
4
+ export type {VesselImage} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/watch.js';
5
+ import '@oicl/openbridge-webcomponents/dist/navigation-instruments/speed-directions/speed-directions.js';
6
+ import { setProperties } from "../../util.js";
7
+ import type {SpeedDirectionsType, SpeedDirectionsFrameStyle} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/speed-directions/speed-directions-geometry.js';
8
+ import type {VesselImage} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/watch.js';
9
+ import type { Snippet } from 'svelte';
10
+
11
+ export interface Props {
12
+ class?: string;
13
+ style?: string;
14
+ type?: SpeedDirectionsType;
15
+ frameStyle?: SpeedDirectionsFrameStyle;
16
+ /** Signed speed along the vessel axis: positive fore, negative aft. */
17
+ speedAlongKnots?: number | undefined;
18
+ /** Signed athwart speed at the bow: positive starboard, negative port. */
19
+ speedAthwartBowKnots?: number | undefined;
20
+ /** Signed athwart speed at the stern: positive starboard, negative port. */
21
+ speedAthwartSternKnots?: number | undefined;
22
+ /** Signed athwart speed at midship: positive starboard, negative port. */
23
+ speedAthwartKnots?: number | undefined;
24
+ /** Knots per chevron step on the along axis. */
25
+ alongSpeedStepKnots?: number;
26
+ /** Knots per chevron step on the athwart axes. */
27
+ athwartSpeedStepKnots?: number;
28
+ /** Along speed mapped to the full bar length. */
29
+ alongMaxSpeedKnots?: number;
30
+ /** Athwart speed mapped to the full bar length. */
31
+ athwartMaxSpeedKnots?: number;
32
+ /** Render inactive chevron bands as a tinted track. */
33
+ tintedArrows?: boolean;
34
+ /** Vessel image for the framed and compass styles; the standalone style
35
+ follows the design's fixed per-type vessel. */
36
+ vesselImage?: VesselImage
37
+ }
38
+ export interface Events {
39
+
40
+ }
41
+ export interface Slots {
42
+ children?: Snippet
43
+ }
44
+ const { class: className, style, children, ...props} = $props<Props & Events & Slots>();
45
+
46
+ </script>
47
+ <obc-speed-directions
48
+ use:setProperties={props}
49
+ class={className}
50
+ style={style}
51
+ >
52
+
53
+ {#if children}
54
+ {@render children()}
55
+ {/if}
56
+ </obc-speed-directions>
@@ -0,0 +1,44 @@
1
+ import '@oicl/openbridge-webcomponents/dist/navigation-instruments/speed-directions/speed-directions.js';
2
+ import type { SpeedDirectionsType, SpeedDirectionsFrameStyle } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/speed-directions/speed-directions-geometry.js';
3
+ import type { VesselImage } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/watch.js';
4
+ import type { Snippet } from 'svelte';
5
+ export interface Props {
6
+ class?: string;
7
+ style?: string;
8
+ type?: SpeedDirectionsType;
9
+ frameStyle?: SpeedDirectionsFrameStyle;
10
+ /** Signed speed along the vessel axis: positive fore, negative aft. */
11
+ speedAlongKnots?: number | undefined;
12
+ /** Signed athwart speed at the bow: positive starboard, negative port. */
13
+ speedAthwartBowKnots?: number | undefined;
14
+ /** Signed athwart speed at the stern: positive starboard, negative port. */
15
+ speedAthwartSternKnots?: number | undefined;
16
+ /** Signed athwart speed at midship: positive starboard, negative port. */
17
+ speedAthwartKnots?: number | undefined;
18
+ /** Knots per chevron step on the along axis. */
19
+ alongSpeedStepKnots?: number;
20
+ /** Knots per chevron step on the athwart axes. */
21
+ athwartSpeedStepKnots?: number;
22
+ /** Along speed mapped to the full bar length. */
23
+ alongMaxSpeedKnots?: number;
24
+ /** Athwart speed mapped to the full bar length. */
25
+ athwartMaxSpeedKnots?: number;
26
+ /** Render inactive chevron bands as a tinted track. */
27
+ tintedArrows?: boolean;
28
+ /** Vessel image for the framed and compass styles; the standalone style
29
+ follows the design's fixed per-type vessel. */
30
+ vesselImage?: VesselImage;
31
+ }
32
+ export interface Events {
33
+ }
34
+ export interface Slots {
35
+ children?: Snippet;
36
+ }
37
+ type $$ComponentProps = Props & Events & Slots;
38
+ declare const ObcSpeedDirections: import("svelte").Component<$$ComponentProps, {
39
+ SpeedDirectionsType: typeof SpeedDirectionsType;
40
+ SpeedDirectionsFrameStyle: typeof SpeedDirectionsFrameStyle;
41
+ VesselImage: typeof VesselImage;
42
+ }, "">;
43
+ type ObcSpeedDirections = ReturnType<typeof ObcSpeedDirections>;
44
+ export default ObcSpeedDirections;
@@ -0,0 +1,86 @@
1
+
2
+ <script lang="ts">
3
+ export type {TopViewPropulsionType} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/top-view-propulsion/top-view-propulsion.js';
4
+ export type {InstrumentState, Priority} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
5
+ export type {TickmarkStyle} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/tickmark.js';
6
+ export type {PropellerImage} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/propeller.js';
7
+ import '@oicl/openbridge-webcomponents/dist/navigation-instruments/top-view-propulsion/top-view-propulsion.js';
8
+ import { setProperties } from "../../util.js";
9
+ import type {TopViewPropulsionType} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/top-view-propulsion/top-view-propulsion.js';
10
+ import type {InstrumentState, Priority} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
11
+ import type {TickmarkStyle} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/tickmark.js';
12
+ import type {PropellerImage} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/propeller.js';
13
+ import type { Snippet } from 'svelte';
14
+
15
+ export interface Props {
16
+ class?: string;
17
+ style?: string;
18
+ type?: TopViewPropulsionType;
19
+ /** Signed power in percent: 0 at the top, positive clockwise, ±100% = ±180°. */
20
+ power?: number;
21
+ powerSetpoint?: number | undefined;
22
+ newPowerSetpoint?: number | undefined;
23
+ atPowerSetpoint?: boolean;
24
+ powerSetpointAtZeroDeadband?: number;
25
+ powerSetpointOverride?: boolean;
26
+ autoAtPowerSetpoint?: boolean;
27
+ autoAtPowerSetpointDeadband?: number;
28
+ /** Signed rpm in percent of the maximum: 0 at the top, positive clockwise,
29
+ ±100% = ±180°. Shown on the primary track. */
30
+ rpm?: number;
31
+ rpmSetpoint?: number | undefined;
32
+ newRpmSetpoint?: number | undefined;
33
+ atRpmSetpoint?: boolean;
34
+ rpmSetpointAtZeroDeadband?: number;
35
+ rpmSetpointOverride?: boolean;
36
+ autoAtRpmSetpoint?: boolean;
37
+ autoAtRpmSetpointDeadband?: number;
38
+ /** Signed pitch in percent: 0 at the top, positive clockwise, ±100% = ±180°.
39
+ Shown as the thin secondary arc. */
40
+ pitch?: number;
41
+ touching?: boolean;
42
+ animateSetpoint?: boolean;
43
+ state?: InstrumentState;
44
+ priority?: Priority;
45
+ /** Loading progress in percent, shown as an arc on the outer ring. */
46
+ loading?: number;
47
+ /** Interval (in degrees) for primary tickmarks.
48
+ When undefined or <= 0, no primary tickmarks are shown (only the zero line). */
49
+ primaryTickmarkInterval?: number | undefined;
50
+ /** Interval (in degrees) for secondary tickmarks.
51
+ When undefined or <= 0, no secondary tickmarks are shown. */
52
+ secondaryTickmarkInterval?: number | undefined;
53
+ /** Interval (in degrees) for tertiary tickmarks.
54
+ When undefined or <= 0, no tertiary tickmarks are shown. */
55
+ tertiaryTickmarkInterval?: number | undefined;
56
+ showLabels?: boolean;
57
+ tickmarksInside?: boolean;
58
+ tickmarkStyle?: TickmarkStyle;
59
+ hasLabelSpacer?: boolean;
60
+ propeller?: PropellerImage;
61
+ /** Outer-ring diameter in CSS pixels. When set, the instrument renders at a
62
+ fixed intrinsic size derived from the ring, arc shape and label reserve —
63
+ so instruments sharing the same value have identical ring circumference
64
+ regardless of label width or arc extent (like obc-donut-chart's
65
+ fixedHeight). When unset (default), the instrument fills its container. */
66
+ faceDiameter?: number | undefined
67
+ }
68
+ export interface Events {
69
+
70
+ }
71
+ export interface Slots {
72
+ children?: Snippet
73
+ }
74
+ const { class: className, style, children, ...props} = $props<Props & Events & Slots>();
75
+
76
+ </script>
77
+ <obc-top-view-propulsion
78
+ use:setProperties={props}
79
+ class={className}
80
+ style={style}
81
+ >
82
+
83
+ {#if children}
84
+ {@render children()}
85
+ {/if}
86
+ </obc-top-view-propulsion>
@@ -0,0 +1,74 @@
1
+ import '@oicl/openbridge-webcomponents/dist/navigation-instruments/top-view-propulsion/top-view-propulsion.js';
2
+ import type { TopViewPropulsionType } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/top-view-propulsion/top-view-propulsion.js';
3
+ import type { InstrumentState, Priority } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
4
+ import type { TickmarkStyle } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/tickmark.js';
5
+ import type { PropellerImage } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch/propeller.js';
6
+ import type { Snippet } from 'svelte';
7
+ export interface Props {
8
+ class?: string;
9
+ style?: string;
10
+ type?: TopViewPropulsionType;
11
+ /** Signed power in percent: 0 at the top, positive clockwise, ±100% = ±180°. */
12
+ power?: number;
13
+ powerSetpoint?: number | undefined;
14
+ newPowerSetpoint?: number | undefined;
15
+ atPowerSetpoint?: boolean;
16
+ powerSetpointAtZeroDeadband?: number;
17
+ powerSetpointOverride?: boolean;
18
+ autoAtPowerSetpoint?: boolean;
19
+ autoAtPowerSetpointDeadband?: number;
20
+ /** Signed rpm in percent of the maximum: 0 at the top, positive clockwise,
21
+ ±100% = ±180°. Shown on the primary track. */
22
+ rpm?: number;
23
+ rpmSetpoint?: number | undefined;
24
+ newRpmSetpoint?: number | undefined;
25
+ atRpmSetpoint?: boolean;
26
+ rpmSetpointAtZeroDeadband?: number;
27
+ rpmSetpointOverride?: boolean;
28
+ autoAtRpmSetpoint?: boolean;
29
+ autoAtRpmSetpointDeadband?: number;
30
+ /** Signed pitch in percent: 0 at the top, positive clockwise, ±100% = ±180°.
31
+ Shown as the thin secondary arc. */
32
+ pitch?: number;
33
+ touching?: boolean;
34
+ animateSetpoint?: boolean;
35
+ state?: InstrumentState;
36
+ priority?: Priority;
37
+ /** Loading progress in percent, shown as an arc on the outer ring. */
38
+ loading?: number;
39
+ /** Interval (in degrees) for primary tickmarks.
40
+ When undefined or <= 0, no primary tickmarks are shown (only the zero line). */
41
+ primaryTickmarkInterval?: number | undefined;
42
+ /** Interval (in degrees) for secondary tickmarks.
43
+ When undefined or <= 0, no secondary tickmarks are shown. */
44
+ secondaryTickmarkInterval?: number | undefined;
45
+ /** Interval (in degrees) for tertiary tickmarks.
46
+ When undefined or <= 0, no tertiary tickmarks are shown. */
47
+ tertiaryTickmarkInterval?: number | undefined;
48
+ showLabels?: boolean;
49
+ tickmarksInside?: boolean;
50
+ tickmarkStyle?: TickmarkStyle;
51
+ hasLabelSpacer?: boolean;
52
+ propeller?: PropellerImage;
53
+ /** Outer-ring diameter in CSS pixels. When set, the instrument renders at a
54
+ fixed intrinsic size derived from the ring, arc shape and label reserve —
55
+ so instruments sharing the same value have identical ring circumference
56
+ regardless of label width or arc extent (like obc-donut-chart's
57
+ fixedHeight). When unset (default), the instrument fills its container. */
58
+ faceDiameter?: number | undefined;
59
+ }
60
+ export interface Events {
61
+ }
62
+ export interface Slots {
63
+ children?: Snippet;
64
+ }
65
+ type $$ComponentProps = Props & Events & Slots;
66
+ declare const ObcTopViewPropulsion: import("svelte").Component<$$ComponentProps, {
67
+ TopViewPropulsionType: typeof TopViewPropulsionType;
68
+ InstrumentState: typeof InstrumentState;
69
+ Priority: typeof Priority;
70
+ TickmarkStyle: typeof TickmarkStyle;
71
+ PropellerImage: typeof PropellerImage;
72
+ }, "">;
73
+ type ObcTopViewPropulsion = ReturnType<typeof ObcTopViewPropulsion>;
74
+ export default ObcTopViewPropulsion;
@@ -56,6 +56,9 @@ faceDiameter?: number | undefined;
56
56
  tickmarkStyle?: TickmarkStyle;
57
57
  advices?: AngleAdviceRaw[];
58
58
  crosshairEnabled?: boolean;
59
+ /** Cuts the crosshair out inside the inner ring, so center content (e.g.
60
+ center readouts) sits on a clean face. */
61
+ crosshairCenterCutout?: boolean;
59
62
  showLabels?: boolean;
60
63
  vessels?: WatchVessel[];
61
64
  windKnots?: number | null;
@@ -46,6 +46,9 @@ fixedHeight). When unset (default), the instrument fills its container. */
46
46
  tickmarkStyle?: TickmarkStyle;
47
47
  advices?: AngleAdviceRaw[];
48
48
  crosshairEnabled?: boolean;
49
+ /** Cuts the crosshair out inside the inner ring, so center content (e.g.
50
+ center readouts) sits on a clean face. */
51
+ crosshairCenterCutout?: boolean;
49
52
  showLabels?: boolean;
50
53
  vessels?: WatchVessel[];
51
54
  windKnots?: number | null;
@@ -3,6 +3,7 @@
3
3
  export type {Tickmark} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch-flat/tickmark-flat.js';
4
4
  export type {Label} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/compass-flat/compass-flat.js';
5
5
  export type {SVGTemplateResult} from 'lit';
6
+ export type {WatchFlatBarArea, WatchFlatNeedle} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch-flat/watch-flat.js';
6
7
  export type {RotType, LinearRotPosition} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/rate-of-turn/rot-renderer.js';
7
8
  export type {Priority} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
8
9
  import '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch-flat/watch-flat.js';
@@ -10,6 +11,7 @@ export type {Priority} from '@oicl/openbridge-webcomponents/dist/navigation-inst
10
11
  import type {Tickmark} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch-flat/tickmark-flat.js';
11
12
  import type {Label} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/compass-flat/compass-flat.js';
12
13
  import type {SVGTemplateResult} from 'lit';
14
+ import type {WatchFlatBarArea, WatchFlatNeedle} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch-flat/watch-flat.js';
13
15
  import type {RotType, LinearRotPosition} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/rate-of-turn/rot-renderer.js';
14
16
  import type {Priority} from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
15
17
  import type { Snippet } from 'svelte';
@@ -30,6 +32,10 @@ import type {Priority} from '@oicl/openbridge-webcomponents/dist/navigation-inst
30
32
  ticksHeight?: number;
31
33
  borderRadius?: number;
32
34
  bottomBar?: boolean;
35
+ /** Filled segments rendered inside the track band (the linear counterpart of the radial bar areas). */
36
+ barAreas?: WatchFlatBarArea[];
37
+ /** Needle markers spanning the track band (the linear counterpart of the radial needles). */
38
+ needles?: WatchFlatNeedle[];
33
39
  rotType?: RotType | undefined;
34
40
  rotPosition?: LinearRotPosition;
35
41
  /** Bar start position in SVG user-space x-coordinates (center-origin). Computed by the parent instrument. */
@@ -2,6 +2,7 @@ import '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch-flat/wa
2
2
  import type { Tickmark } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch-flat/tickmark-flat.js';
3
3
  import type { Label } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/compass-flat/compass-flat.js';
4
4
  import type { SVGTemplateResult } from 'lit';
5
+ import type { WatchFlatBarArea, WatchFlatNeedle } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/watch-flat/watch-flat.js';
5
6
  import type { RotType, LinearRotPosition } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/rate-of-turn/rot-renderer.js';
6
7
  import type { Priority } from '@oicl/openbridge-webcomponents/dist/navigation-instruments/types.js';
7
8
  import type { Snippet } from 'svelte';
@@ -21,6 +22,10 @@ export interface Props {
21
22
  ticksHeight?: number;
22
23
  borderRadius?: number;
23
24
  bottomBar?: boolean;
25
+ /** Filled segments rendered inside the track band (the linear counterpart of the radial bar areas). */
26
+ barAreas?: WatchFlatBarArea[];
27
+ /** Needle markers spanning the track band (the linear counterpart of the radial needles). */
28
+ needles?: WatchFlatNeedle[];
24
29
  rotType?: RotType | undefined;
25
30
  rotPosition?: LinearRotPosition;
26
31
  /** Bar start position in SVG user-space x-coordinates (center-origin). Computed by the parent instrument. */
@@ -48,6 +53,8 @@ declare const ObcWatchFlat: import("svelte").Component<$$ComponentProps, {
48
53
  Tickmark: typeof Tickmark;
49
54
  Label: typeof Label;
50
55
  SVGTemplateResult: typeof SVGTemplateResult;
56
+ WatchFlatBarArea: typeof WatchFlatBarArea;
57
+ WatchFlatNeedle: typeof WatchFlatNeedle;
51
58
  RotType: typeof RotType;
52
59
  LinearRotPosition: typeof LinearRotPosition;
53
60
  Priority: typeof Priority;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oicl/openbridge-webcomponents-svelte",
3
- "version": "2.0.0-next.103",
3
+ "version": "2.0.0-next.105",
4
4
  "scripts": {
5
5
  "dev": "vite dev",
6
6
  "build": "vite build && npm run prepack",
@@ -31,7 +31,7 @@
31
31
  }
32
32
  },
33
33
  "dependencies": {
34
- "@oicl/openbridge-webcomponents": "^2.0.0-next.102"
34
+ "@oicl/openbridge-webcomponents": "^2.0.0-next.104"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "svelte": "^5.0.0"