Skip to content

feat(weather): add tidal currents overlay with time-stepping controls#491

Open
marcelrv wants to merge 2 commits into
SignalK:masterfrom
marcelrv:master
Open

feat(weather): add tidal currents overlay with time-stepping controls#491
marcelrv wants to merge 2 commits into
SignalK:masterfrom
marcelrv:master

Conversation

@marcelrv

@marcelrv marcelrv commented Jul 8, 2026

Copy link
Copy Markdown

Display tidal current arrow field on the map using signalk-tidal-currents plugin data. Includes:

  • TidalCurrentsService: state (scrubTime, play/pause), 24h bar tick/label math, API via SignalKClient
  • TidalCurrentsLayerComponent: OpenLayers vector layer with speed-colored arrows, auditTime(300) pipe
  • Weather panel: clickable/draggable 24h time bar, play/pause/step/reset buttons, pill label
  • Feature flag (tidalApi) gated on plugin detection via /signalk/v2/features
  • Dark/light theme support via app.uiConfig().invertColor
  • Click handling delegated to Freeboard's processMapClick for consistent popovers

Summary by CodeRabbit

  • New Features

    • Added tidal currents support across the weather/map experience, including a tidal layer, 24h time scrub bar, and playback controls.
    • Added a settings toggle to enable/disable tidal currents (and the related UI) plus automatic feature-flag detection for the SignalK plugin.
    • Map clicks now recognize tidal current points and display formatted speed/direction in the popover.
  • Bug Fixes

    • Backfilled missing tidal-currents settings to default to off.
    • Improved “now” time progression so it keeps advancing when not scrubbing.

Display tidal current arrow field on the map using signalk-tidal-currents plugin data. Includes:

- TidalCurrentsService: state (scrubTime, play/pause), 24h bar tick/label math, API via SignalKClient
- TidalCurrentsLayerComponent: OpenLayers vector layer with speed-colored arrows, auditTime(300) pipe
- Weather panel: clickable/draggable 24h time bar, play/pause/step/reset buttons, pill label
- Feature flag (tidalApi) gated on plugin detection via /signalk/v2/features
- Dark/light theme support via app.uiConfig().invertColor
- Click handling delegated to Freeboard's processMapClick for consistent popovers
@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Adds tidal currents feature detection, config support, a grid-data service, an OpenLayers rendering layer, tidal popovers, and weather-list controls for enabling and scrubbing tidal currents.

Changes

Tidal currents feature

Layer / File(s) Summary
Feature flag and config schema
src/app/app.component.ts, src/app/app.facade.ts, src/app/app.config.ts, src/app/types/index.d.ts
Adds tidalApi detection/defaults and tidalCurrentsEnabled config/type defaults and backfills.
Tidal currents service
src/app/modules/map/ol/lib/tidal-currents.service.ts
Adds grid response types, scrub/playback state, computed hour labels/ticks, grid fetches, and step/play controls.
Map layer, popovers, and wiring
src/app/modules/map/ol/lib/resources/tidal-currents-layer.component.ts, src/app/modules/map/ol/index.ts, src/app/modules/map/fb-map.component.ts, src/app/modules/map/fb-map.component.html, src/app/modules/map/fbmap-interact.service.ts, src/app/modules/map/popovers/popover.component.ts, src/app/modules/map/popovers/popover.component.scss
Adds the tidal currents OpenLayers layer, wires it into the map module, formats tidal popovers, and adds compact popover styling.
Weather list time scrubber
src/app/modules/skresources/components/weather/weatherlist.ts, src/app/modules/skresources/components/weather/weatherlist.html
Adds the tidal currents weather section, pointer-drag scrub bar, display helpers, and config persistence.

Estimated code review effort: 4 (Complex) | ~60 minutes

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant WeatherListComponent
  participant TidalCurrentsService
  participant TidalCurrentsLayerComponent
  participant SignalKAPI

  User->>WeatherListComponent: enable tidal currents / drag time bar
  WeatherListComponent->>TidalCurrentsService: update scrubTime
  TidalCurrentsService-->>TidalCurrentsLayerComponent: selectedTime changes
  TidalCurrentsLayerComponent->>TidalCurrentsService: getGridCurrents(bbox, time)
  TidalCurrentsService->>SignalKAPI: fetch /currents/grid
  SignalKAPI-->>TidalCurrentsService: TidalCurrentGridResponse
  TidalCurrentsLayerComponent->>TidalCurrentsLayerComponent: render currents features
  TidalCurrentsLayerComponent-->>WeatherListComponent: map overlay updates
Loading

Possibly related PRs

  • SignalK/freeboard-sk#413 — Touches the same weather UI entrypoints and shared app.config.selections overlay toggling logic.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description summarizes the change but omits the required template sections for problem, approach, testing, and checklist. Add the missing headings and fill in: What problem does this solve?, How does it work?, How was this tested?, and the checklist items.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main user-facing change: adding a tidal currents overlay with time-stepping controls.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

src/app/modules/map/fb-map.component.ts

(node:2) ESLintIgnoreWarning: The ".eslintignore" file is no longer supported. Switch to using the "ignores" property in "eslint.config.js": https://eslint.org/docs/latest/use/configure/migration-guide#ignore-files
(Use node --trace-warnings ... to show where the warning was created)

Oops! Something went wrong! :(

ESLint: 10.6.0

/.eslintrc:2
"root": true,
^

SyntaxError: Unexpected token ':'
at wrapSafe (node:internal/modules/cjs/loader:1763:18)
at Module._compile (node:internal/modules/cjs/loader:1804:20)
at Object..js (node:internal/modules/cjs/loader:1961:10)
at Module.load (node:internal/modules/cjs/loader:1553:32)
at Module._load (node:internal/modules/cjs/loader:1355:12)
at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
at loadCJSModuleWithModuleLoad (node:internal/modules/esm/translators:326:3)
at ModuleWrap. (node:internal/modules/esm/translators:231:7)
at ModuleJob.run (node:internal/modules/esm/module_job:437:25)
at async node:internal/modules/esm/loader:639:26

src/app/modules/map/fbmap-interact.service.ts

(node:2) ESLintIgnoreWarning: The ".eslintignore" file is no longer supported. Switch to using the "ignores" property in "eslint.config.js": https://eslint.org/docs/latest/use/configure/migration-guide#ignore-files
(Use node --trace-warnings ... to show where the warning was created)

Oops! Something went wrong! :(

ESLint: 10.6.0

/.eslintrc:2
"root": true,
^

SyntaxError: Unexpected token ':'
at wrapSafe (node:internal/modules/cjs/loader:1763:18)
at Module._compile (node:internal/modules/cjs/loader:1804:20)
at Object..js (node:internal/modules/cjs/loader:1961:10)
at Module.load (node:internal/modules/cjs/loader:1553:32)
at Module._load (node:internal/modules/cjs/loader:1355:12)
at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
at loadCJSModuleWithModuleLoad (node:internal/modules/esm/translators:326:3)
at ModuleWrap. (node:internal/modules/esm/translators:231:7)
at ModuleJob.run (node:internal/modules/esm/module_job:437:25)
at async node:internal/modules/esm/loader:639:26

src/app/modules/map/ol/lib/resources/tidal-currents-layer.component.ts

(node:2) ESLintIgnoreWarning: The ".eslintignore" file is no longer supported. Switch to using the "ignores" property in "eslint.config.js": https://eslint.org/docs/latest/use/configure/migration-guide#ignore-files
(Use node --trace-warnings ... to show where the warning was created)

Oops! Something went wrong! :(

ESLint: 10.6.0

/.eslintrc:2
"root": true,
^

SyntaxError: Unexpected token ':'
at wrapSafe (node:internal/modules/cjs/loader:1763:18)
at Module._compile (node:internal/modules/cjs/loader:1804:20)
at Object..js (node:internal/modules/cjs/loader:1961:10)
at Module.load (node:internal/modules/cjs/loader:1553:32)
at Module._load (node:internal/modules/cjs/loader:1355:12)
at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
at loadCJSModuleWithModuleLoad (node:internal/modules/esm/translators:326:3)
at ModuleWrap. (node:internal/modules/esm/translators:231:7)
at ModuleJob.run (node:internal/modules/esm/module_job:437:25)
at async node:internal/modules/esm/loader:639:26

  • 3 others

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🧹 Nitpick comments (1)
src/app/modules/map/ol/lib/tidal-currents.service.ts (1)

111-121: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Minor: unencoded query params in getGridCurrents.

bbox and time.toISOString() are interpolated directly into the URL without encodeURIComponent. Low risk today since values are numeric/ISO, but defensively encoding avoids future breakage if formatting changes.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/app/modules/map/ol/lib/tidal-currents.service.ts` around lines 111 - 121,
The query string built in getGridCurrents is interpolating bbox and time
directly into the URL without encoding, so update the URL construction in
TidalCurrentsService#getGridCurrents to wrap each query value with
encodeURIComponent. Keep the same request shape for sk.api.get, but ensure both
the bbox parameter and the optional time.toISOString() value are safely encoded
before concatenation.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/app/modules/map/fb-map.component.ts`:
- Around line 1298-1305: `formatPopover` currently has no `case 'tidal'`, so
tidal clicks still fall through to the default return and never render a popover
even though `processMapClick` routes them there. Add a `case 'tidal'` branch in
`fb-map.component.ts`’s `formatPopover` to populate the tidal overlay data
(using the existing feature name/details flow), and add the matching `@if
(overlay().type === 'tidal')` popover block in `fb-map.component.html` so
single-feature and list selections both display correctly.

In `@src/app/modules/map/ol/lib/resources/tidal-currents-layer.component.ts`:
- Around line 176-234: The current tidal currents rendering bypasses the numeric
formatting guideline for direction and duplicates speed conversion/formatting in
both renderCurrents and currentsStyleFunction. Update renderCurrents to format
point.direction through app.formatValueForDisplay instead of toFixed, and
extract a shared helper for knots-to-m/s conversion plus display formatting so
both renderCurrents and currentsStyleFunction reuse the same logic. Keep the
changes centered around renderCurrents, currentsStyleFunction, and the new
helper to ensure all user-facing numbers go through app.formatValueForDisplay.

In `@src/app/modules/map/ol/lib/tidal-currents.service.ts`:
- Around line 50-107: The real-time “Now” path in tidal-currents.service.ts is
using Date.now() inside hourTicks, hourLabels, and barBgGradient without any
reactive/time-based dependency, so those computed values never refresh while
scrubTime() remains null. Add a periodic clock signal or timer-backed state in
TidalCurrentsService and reference it from those computed getters so they
recompute automatically in the live view, while keeping the existing
scrubTime()-based behavior unchanged.
- Around line 169-186: Pause the tidal playback timer when the panel is hidden
or closed, since toggleTidalCurrents(false) and close() currently only update
state/emit events and do not stop the active interval. Update the flow around
toggleTidalCurrents, close, and the tidal currents service methods (play, pause)
so that currents.pause() is invoked on disable/close, or ensure the timer is
cleared during service teardown. Make sure the existing playTimer lifecycle is
fully reset when playback is dismissed.

In `@src/app/modules/skresources/components/weather/weatherlist.html`:
- Around line 128-136: The tooltip labels on the big step buttons are
inconsistent with the actual behavior of currents.stepBackBig() and
currents.stepForwardBig(), which only move by 1h. Update the matTooltip values
in weatherlist.html to reflect the real 1h jump, or change the
stepBackBig/stepForwardBig implementation so the movement matches the existing
-6h/+6h labels.

---

Nitpick comments:
In `@src/app/modules/map/ol/lib/tidal-currents.service.ts`:
- Around line 111-121: The query string built in getGridCurrents is
interpolating bbox and time directly into the URL without encoding, so update
the URL construction in TidalCurrentsService#getGridCurrents to wrap each query
value with encodeURIComponent. Keep the same request shape for sk.api.get, but
ensure both the bbox parameter and the optional time.toISOString() value are
safely encoded before concatenation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 2f4cc566-b114-4c81-b6de-77d4e7594ba6

📥 Commits

Reviewing files that changed from the base of the PR and between cfd6148 and 2740478.

📒 Files selected for processing (11)
  • src/app/app.component.ts
  • src/app/app.config.ts
  • src/app/app.facade.ts
  • src/app/modules/map/fb-map.component.html
  • src/app/modules/map/fb-map.component.ts
  • src/app/modules/map/ol/index.ts
  • src/app/modules/map/ol/lib/resources/tidal-currents-layer.component.ts
  • src/app/modules/map/ol/lib/tidal-currents.service.ts
  • src/app/modules/skresources/components/weather/weatherlist.html
  • src/app/modules/skresources/components/weather/weatherlist.ts
  • src/app/types/index.d.ts

Comment on lines +1298 to +1305
case 'tidal':
addToFeatureList = true;
icon = {
name: 'water',
svgIcon: undefined
};
text = feature.get('name');
break;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Add a case 'tidal' handler in formatPopover to show a popover when tidal features are clicked.

processMapClick correctly adds tidal features to the feature list, but formatPopover (lines 1391–1600) has no case 'tidal' — it falls through to default: return; at line 1598. This means:

  • Single tidal feature click: formatPopover('tidal.0', coord) is called → default: return; → no popover appears.
  • Multi-feature list: Selecting a tidal feature calls formatPopover('tidal.0', coord) → same default: return; → no popover.

The PR objective states click handling is routed through processMapClick for "consistent popovers," but the popover is never shown. A case 'tidal' in formatPopover and a corresponding popover template in the HTML are needed to complete the flow.

🐛 Proposed fix: add `case 'tidal'` to `formatPopover`
       case 'aircraft':
         if (!this.app.data.aircraft.has(id)) {
           return false;
         }
         poData.type = t[0];
         poData.id = id;
         poData.aircraft = this.app.data.aircraft.get(id);
         poData.position = poData.aircraft.position;
         poData.show = true;
         break;
+      case 'tidal':
+        poData.id = id;
+        poData.type = 'tidal';
+        poData.title = 'Tidal Current';
+        poData.position = coord;
+        poData.show = true;
+        poData.readOnly = true;
+        break;
       case 'region':

A corresponding @if (overlay().type === 'tidal') block will also be needed in fb-map.component.html to render the popover content (e.g., displaying feature.get('name')).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/app/modules/map/fb-map.component.ts` around lines 1298 - 1305,
`formatPopover` currently has no `case 'tidal'`, so tidal clicks still fall
through to the default return and never render a popover even though
`processMapClick` routes them there. Add a `case 'tidal'` branch in
`fb-map.component.ts`’s `formatPopover` to populate the tidal overlay data
(using the existing feature name/details flow), and add the matching `@if
(overlay().type === 'tidal')` popover block in `fb-map.component.html` so
single-feature and list selections both display correctly.

Comment thread src/app/modules/map/ol/lib/tidal-currents.service.ts
Comment thread src/app/modules/map/ol/lib/tidal-currents.service.ts
Comment on lines +128 to +136
<button
mat-icon-button
(click)="currents.stepBackBig()"
matTooltip="-6h"
matTooltipPosition="top"
style="width: 26px; height: 26px; line-height: 26px"
>
<mat-icon style="font-size: 14px">skip_previous</mat-icon>
</button>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Locate the relevant files
git ls-files 'src/app/modules/skresources/components/weather/weatherlist.html' \
             'src/app/modules/skresources/services/tidal-currents.service.ts'

# Show the relevant line ranges with line numbers
echo '--- weatherlist.html ---'
sed -n '120,180p' src/app/modules/skresources/components/weather/weatherlist.html | cat -n

echo '--- tidal-currents.service.ts ---'
sed -n '1,240p' src/app/modules/skresources/services/tidal-currents.service.ts | cat -n

Repository: SignalK/freeboard-sk

Length of output: 3313


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Find the service that defines the big step methods
rg -n "stepBackBig|stepForwardBig" src/app

# If found, show the relevant file with line numbers
service_file=$(rg -l "stepBackBig|stepForwardBig" src/app | head -n 1 || true)
if [ -n "${service_file}" ]; then
  echo "--- ${service_file} ---"
  sed -n '1,240p' "${service_file}" | cat -n
fi

Repository: SignalK/freeboard-sk

Length of output: 7110


Tooltips should match the 1h jump. The -6h/+6h labels are misleading: currents.stepBackBig() and currents.stepForwardBig() only move by 1h. Update the tooltips or the step size.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/app/modules/skresources/components/weather/weatherlist.html` around lines
128 - 136, The tooltip labels on the big step buttons are inconsistent with the
actual behavior of currents.stepBackBig() and currents.stepForwardBig(), which
only move by 1h. Update the matTooltip values in weatherlist.html to reflect the
real 1h jump, or change the stepBackBig/stepForwardBig implementation so the
movement matches the existing -6h/+6h labels.

…erlay

- Show a popover on tidal-current feature clicks (formatPopover was
  missing a case for them), with a compact speed/direction layout
  instead of a verbose sentence
- Route current direction through formatValueForDisplay and dedupe
  speed formatting into a helper
- Keep the 24h time bar advancing in "now" mode instead of freezing
- Pause playback when the tidal panel is hidden or the overlay is
  disabled
- Fix the big step buttons to actually jump 6h, matching their tooltip

Adds an opt-in `compact` mode to the shared popover component (mirrors
the existing `measure` mode) so the tidal popover can be small without
affecting any other popover's width or header.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (2)
src/app/modules/map/fb-map.component.ts (2)

1357-1357: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Reuse the existing grid-point type instead of an inline shape.

tidalFeatures: Record<string, { speedKn: number; direction: number }> re-declares a shape that already exists as part of TidalCurrentGridResponse['points'] in tidal-currents.service.ts. Reusing/importing that type keeps the two files in sync if the grid response shape changes.

As per coding guidelines, "New code should be TypeScript with real types; avoid any and reuse existing types instead of inventing local ones."

♻️ Proposed fix
-  private tidalFeatures: Record<string, { speedKn: number; direction: number }> = {};
+  private tidalFeatures: Record<
+    string,
+    Pick<TidalCurrentGridResponse['points'][number], 'speedKn' | 'direction'>
+  > = {};
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/app/modules/map/fb-map.component.ts` at line 1357, The `tidalFeatures`
field in `FbMapComponent` is duplicating the grid-point shape with an inline
type instead of reusing the existing `TidalCurrentGridResponse['points']` type
from `tidal-currents.service.ts`. Update `FbMapComponent` to import/refer to
that existing type and use it for `tidalFeatures`, so the map component stays
aligned with the service response shape and avoids local type drift.

Source: Coding guidelines


1504-1522: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Duplicated knots→m/s conversion factor.

tf.speedKn / 1.94384 duplicates the same conversion logic the commit history says was consolidated into a formatSpeed helper inside tidal-currents-layer.component.ts (used for the feature's name/list-popover text). This popover path reimplements the magic-number conversion inline instead of reusing that helper, so a future unit-constant fix in one place won't propagate to the other.

♻️ Proposed direction

Move the knots→m/s + formatValueForDisplay formatting into TidalCurrentsService (or export it from the layer component) and call the shared helper from both TidalCurrentsLayerComponent.renderCurrents and fb-map.component.ts's formatPopover.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/app/modules/map/fb-map.component.ts` around lines 1504 - 1522, The tidal
popover in formatPopover is duplicating the knots-to-m/s conversion instead of
reusing the shared formatting logic. Move the conversion plus
formatValueForDisplay behavior into a shared helper in TidalCurrentsService or
export the existing formatSpeed logic from tidal-currents-layer.component.ts,
then use that helper both in TidalCurrentsLayerComponent.renderCurrents and in
fb-map.component.ts when building poData.tidal.speedLabel.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@src/app/modules/map/fb-map.component.ts`:
- Line 1357: The `tidalFeatures` field in `FbMapComponent` is duplicating the
grid-point shape with an inline type instead of reusing the existing
`TidalCurrentGridResponse['points']` type from `tidal-currents.service.ts`.
Update `FbMapComponent` to import/refer to that existing type and use it for
`tidalFeatures`, so the map component stays aligned with the service response
shape and avoids local type drift.
- Around line 1504-1522: The tidal popover in formatPopover is duplicating the
knots-to-m/s conversion instead of reusing the shared formatting logic. Move the
conversion plus formatValueForDisplay behavior into a shared helper in
TidalCurrentsService or export the existing formatSpeed logic from
tidal-currents-layer.component.ts, then use that helper both in
TidalCurrentsLayerComponent.renderCurrents and in fb-map.component.ts when
building poData.tidal.speedLabel.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 548817c2-a429-48af-8b1f-28a6acc840a9

📥 Commits

Reviewing files that changed from the base of the PR and between 2740478 and 218475b.

📒 Files selected for processing (8)
  • src/app/modules/map/fb-map.component.html
  • src/app/modules/map/fb-map.component.ts
  • src/app/modules/map/fbmap-interact.service.ts
  • src/app/modules/map/ol/lib/resources/tidal-currents-layer.component.ts
  • src/app/modules/map/ol/lib/tidal-currents.service.ts
  • src/app/modules/map/popovers/popover.component.scss
  • src/app/modules/map/popovers/popover.component.ts
  • src/app/modules/skresources/components/weather/weatherlist.ts
✅ Files skipped from review due to trivial changes (1)
  • src/app/modules/map/fbmap-interact.service.ts
🚧 Files skipped from review as they are similar to previous changes (2)
  • src/app/modules/skresources/components/weather/weatherlist.ts
  • src/app/modules/map/ol/lib/resources/tidal-currents-layer.component.ts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant