![require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages](https://cdn.sanity.io/images/cgdhsj6q/production/be8ab80c8efa5907bc341c6fefe9aa20d239d890-1600x1097.png?w=400&fit=max&auto=format)
Security News
require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
@fboes/horizontal-situation-indicator
Advanced tools
A Vanilla JavaScript web component which displays a self-contained Horizontal Situation Indicator
A Vanilla JavaScript web component which displays a self-contained Horizontal Situation Indicator, an airplane cockpit instrument used for instrument navigation.
For a demo see https://3960.org/webcomponent-hsi/.
Either download the horizontal-situation-indicator.js
to a sensible location in your web project, or do a NPM installation:
npm install @fboes/horizontal-situation-indicator --save
Instead of a local installation you may also load the library from https://unpkg.com/. Beware: This makes https://unpkg.com/ a dependency of your project and may pose data protection issues.
<script type="module" src="https://unpkg.com/@fboes/horizontal-situation-indicator@latest/horizontal-situation-indicator.js"></script>
Everything required for the frontend functionality of this web component is contained in horizontal-situation-indicator.js
.
Loading the library prior to use:
<!-- load element library -->
<script type="module" src="horizontal-situation-indicator.js"></script>
Invoke a new instance by placing this into your HTML source code:
<!-- use element -->
<horizontal-situation-indicator heading="45.0" heading-select="0.0"></horizontal-situation-indicator>
<horizontal-situation-indicator heading="45.0" heading-select="0.0"></horizontal-situation-indicator>
<horizontal-situation-indicator heading="45.0" heading-select="0.0"
nav1-bearing="10.0"></horizontal-situation-indicator>
<horizontal-situation-indicator heading="45.0" heading-select="0.0"
nav2-course="0.0" nav2-deviation="0.0" nav2-to="-1"></horizontal-situation-indicator>
Properties can be set on initialization via HTML attributes, or selecting the DOM node via JavaScript and setting the properties of the DOM node.
If a property is not set or unset, the corresponding HSI component will be hidden.
Name | Type | Default | Description |
---|---|---|---|
heading | ?degree | null | |
heading-select | ?degree | null | |
nav1-label | ?string | null | |
nav1-course | ?degree | null | |
nav1-deviation | ?deviation | null | Only visible when nav1-course is set. |
nav1-bearing | ?degree | null | This will also set nav1-to and nav1-deviation accordingly. |
nav1-to | ?switch | null | If set to 1 will show the TO-flag, if set to -1 will show the FROM-flag. |
nav2-label | ?string | null | |
nav2-course | ?degree | null | |
nav2-deviation | ?deviation | null | Only visible when nav2-course is set. |
nav2-bearing | ?degree | null | This will also set nav2-to and nav2-deviation accordingly. |
nav2-to | ?switch | null | If set to 1 will show the TO-flag, if set to -1 will show the FROM-flag. |
fix-north | ?switch | null | If set to 1 the compass card will be locked to north, while the plane and lubber line rotate. |
Types prefixed with ?
allow setting value to null
as well.
Special types:
Type | Description |
---|---|
degree | A float number with 0 ≤ degree < 360. degree out of this range will be converted to a corresponding value in this range, e.g. -1.0 will be 359.0 . |
deviation | A float number with -180 ≤ deviation < 180. deviation out of this range will be converted to a corresponding value in this range. deviation > 0 showing the the chosen course to be right / above, deviation < 0 showing the the chosen course to be left / below. A value of ±5.0 (±175 ) will move the marker to the first dot, a value of ±10.0 (±170 ) will move the marker to the second dot. |
There are no public methods.
There are no events.
To change the layout of the HSI component use CSS variables. There is a set of defined CSS variables which you may use:
horizontal-situation-indicator {
--background-outer-color: black;
--background-color: black;
--foreground-color: white;
--lubber-color: darkorange;
--heading-select-color: cyan;
--nav1-color: magenta;
--nav1-bearing-color: var(--nav1-color);
--nav2-color: cyan;
--nav2-bearing-color: var(--nav2-color);
--stroke-width: 0.5;
}
See compatibility chart:
If you need extended compatibility, search for Web Components Polyfills.
npm run build
to copy files from src
directory into main JavaScript file.npm run serve
to launch a development web server.debug="1"
will activate additional output to console
.Author: Frank Boës
Copyright & license: See LICENSE.txt
FAQs
A Vanilla JavaScript web component which displays a self-contained Horizontal Situation Indicator
We found that @fboes/horizontal-situation-indicator demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
Security News
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.