@oicl/openbridge-webcomponents 0.0.15-dev-20241119201940 → 0.0.15-dev-20241122185953
Sign up to get free protection for your applications and to get access to all the features.
- package/custom-elements.json +1127 -1127
- package/dist/automation/automation-button/automation-button.js +1 -2
- package/dist/automation/automation-button/automation-button.js.map +1 -1
- package/dist/automation/automation-input-modal/automation-input-modal.js +1 -2
- package/dist/automation/automation-input-modal/automation-input-modal.js.map +1 -1
- package/dist/automation/automation-readout/automation-readout.js +1 -2
- package/dist/automation/automation-readout/automation-readout.js.map +1 -1
- package/dist/automation/automation-tank/automation-tank.js +1 -2
- package/dist/automation/automation-tank/automation-tank.js.map +1 -1
- package/dist/automation/corner-line/corner-line.js +1 -2
- package/dist/automation/corner-line/corner-line.js.map +1 -1
- package/dist/automation/direction-line/direction-line.js +1 -2
- package/dist/automation/direction-line/direction-line.js.map +1 -1
- package/dist/automation/end-point-line/end-point-line.js +1 -2
- package/dist/automation/end-point-line/end-point-line.js.map +1 -1
- package/dist/automation/horizontal-line/horizontal-line.js +1 -2
- package/dist/automation/horizontal-line/horizontal-line.js.map +1 -1
- package/dist/automation/index.js.map +1 -1
- package/dist/automation/line-cross/line-cross.js +1 -2
- package/dist/automation/line-cross/line-cross.js.map +1 -1
- package/dist/automation/line-overlap/line-overlap.js +1 -2
- package/dist/automation/line-overlap/line-overlap.js.map +1 -1
- package/dist/automation/three-way-line/three-way-line.js +1 -2
- package/dist/automation/three-way-line/three-way-line.js.map +1 -1
- package/dist/automation/valve-analog-three-way-icon/valve-analog-three-way-icon.js +1 -2
- package/dist/automation/valve-analog-three-way-icon/valve-analog-three-way-icon.js.map +1 -1
- package/dist/automation/valve-analoge-two-way-icon/valve-analog-two-way-icon.js +1 -2
- package/dist/automation/valve-analoge-two-way-icon/valve-analog-two-way-icon.js.map +1 -1
- package/dist/automation/vertical-line/vertical-line.js +1 -2
- package/dist/automation/vertical-line/vertical-line.js.map +1 -1
- package/dist/components/alert-button/alert-button.js +1 -2
- package/dist/components/alert-button/alert-button.js.map +1 -1
- package/dist/components/alert-icon/alert-icon.js +1 -2
- package/dist/components/alert-icon/alert-icon.js.map +1 -1
- package/dist/components/alert-menu/alert-menu.js +1 -2
- package/dist/components/alert-menu/alert-menu.js.map +1 -1
- package/dist/components/alert-menu-item/alert-menu-item.js +1 -2
- package/dist/components/alert-menu-item/alert-menu-item.js.map +1 -1
- package/dist/components/alert-topbar-element/alert-topbar-element.js +1 -2
- package/dist/components/alert-topbar-element/alert-topbar-element.js.map +1 -1
- package/dist/components/app-button/app-button.js +1 -2
- package/dist/components/app-button/app-button.js.map +1 -1
- package/dist/components/app-menu/app-menu.js +1 -2
- package/dist/components/app-menu/app-menu.js.map +1 -1
- package/dist/components/badge/badge.js +1 -2
- package/dist/components/badge/badge.js.map +1 -1
- package/dist/components/breadcrumb/breadcrumb.js +1 -2
- package/dist/components/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/components/brilliance-menu/brilliance-menu.js +1 -2
- package/dist/components/brilliance-menu/brilliance-menu.js.map +1 -1
- package/dist/components/button/button.js +1 -2
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/card-list-button/card-list-button.js +1 -2
- package/dist/components/card-list-button/card-list-button.js.map +1 -1
- package/dist/components/clock/clock.js +1 -2
- package/dist/components/clock/clock.js.map +1 -1
- package/dist/components/context-menu/context-menu.js +1 -2
- package/dist/components/context-menu/context-menu.js.map +1 -1
- package/dist/components/divider/divider.js +1 -2
- package/dist/components/divider/divider.js.map +1 -1
- package/dist/components/icon-button/icon-button.js +1 -2
- package/dist/components/icon-button/icon-button.js.map +1 -1
- package/dist/components/input/input.js +1 -2
- package/dist/components/input/input.js.map +1 -1
- package/dist/components/navigation-item/navigation-item.js +1 -2
- package/dist/components/navigation-item/navigation-item.js.map +1 -1
- package/dist/components/navigation-menu/navigation-menu.js +1 -2
- package/dist/components/navigation-menu/navigation-menu.js.map +1 -1
- package/dist/components/notification-button/notification-button.js +1 -2
- package/dist/components/notification-button/notification-button.js.map +1 -1
- package/dist/components/notification-message/notification-message.js +1 -2
- package/dist/components/notification-message/notification-message.js.map +1 -1
- package/dist/components/notification-message-item/notification-message-item.js +1 -2
- package/dist/components/notification-message-item/notification-message-item.js.map +1 -1
- package/dist/components/poi-target-button/poi-target-button.js +1 -2
- package/dist/components/poi-target-button/poi-target-button.js.map +1 -1
- package/dist/components/rich-button/rich-button.js +1 -2
- package/dist/components/rich-button/rich-button.js.map +1 -1
- package/dist/components/scrollbar/scrollbar.js +1 -2
- package/dist/components/scrollbar/scrollbar.js.map +1 -1
- package/dist/components/slider/slider.js +1 -2
- package/dist/components/slider/slider.js.map +1 -1
- package/dist/components/table/table.js +1 -2
- package/dist/components/table/table.js.map +1 -1
- package/dist/components/toggle-button-group/toggle-button-group.js +1 -2
- package/dist/components/toggle-button-group/toggle-button-group.js.map +1 -1
- package/dist/components/toggle-button-option/toggle-button-option.js +1 -2
- package/dist/components/toggle-button-option/toggle-button-option.js.map +1 -1
- package/dist/components/toggle-switch/toggle-switch.js +1 -2
- package/dist/components/toggle-switch/toggle-switch.js.map +1 -1
- package/dist/components/tooltip/tooltip.js +1 -2
- package/dist/components/tooltip/tooltip.js.map +1 -1
- package/dist/components/top-bar/top-bar.js +1 -2
- package/dist/components/top-bar/top-bar.js.map +1 -1
- package/dist/components/vendor-button/vendor-button.js +1 -2
- package/dist/components/vendor-button/vendor-button.js.map +1 -1
- package/dist/icons/icon-01-add.js +1 -2
- package/dist/icons/icon-01-add.js.map +1 -1
- package/dist/icons/icon-01-application-open.js +1 -2
- package/dist/icons/icon-01-application-open.js.map +1 -1
- package/dist/icons/icon-01-apps.js +1 -2
- package/dist/icons/icon-01-apps.js.map +1 -1
- package/dist/icons/icon-01-check.js +1 -2
- package/dist/icons/icon-01-check.js.map +1 -1
- package/dist/icons/icon-01-checkbox-checked.js +1 -2
- package/dist/icons/icon-01-checkbox-checked.js.map +1 -1
- package/dist/icons/icon-01-checkbox-uncheck.js +1 -2
- package/dist/icons/icon-01-checkbox-uncheck.js.map +1 -1
- package/dist/icons/icon-01-close.js +1 -2
- package/dist/icons/icon-01-close.js.map +1 -1
- package/dist/icons/icon-01-content-copy.js +1 -2
- package/dist/icons/icon-01-content-copy.js.map +1 -1
- package/dist/icons/icon-01-content-cut.js +1 -2
- package/dist/icons/icon-01-content-cut.js.map +1 -1
- package/dist/icons/icon-01-content-paste.js +1 -2
- package/dist/icons/icon-01-content-paste.js.map +1 -1
- package/dist/icons/icon-01-delete.js +1 -2
- package/dist/icons/icon-01-delete.js.map +1 -1
- package/dist/icons/icon-01-edit.js +1 -2
- package/dist/icons/icon-01-edit.js.map +1 -1
- package/dist/icons/icon-01-expanditem.js +1 -2
- package/dist/icons/icon-01-expanditem.js.map +1 -1
- package/dist/icons/icon-01-file-download.js +1 -2
- package/dist/icons/icon-01-file-download.js.map +1 -1
- package/dist/icons/icon-01-file-export.js +1 -2
- package/dist/icons/icon-01-file-export.js.map +1 -1
- package/dist/icons/icon-01-file-upload.js +1 -2
- package/dist/icons/icon-01-file-upload.js.map +1 -1
- package/dist/icons/icon-01-log-add.js +1 -2
- package/dist/icons/icon-01-log-add.js.map +1 -1
- package/dist/icons/icon-01-log-edit.js +1 -2
- package/dist/icons/icon-01-log-edit.js.map +1 -1
- package/dist/icons/icon-01-log-open.js +1 -2
- package/dist/icons/icon-01-log-open.js.map +1 -1
- package/dist/icons/icon-01-megamenu.js +1 -2
- package/dist/icons/icon-01-megamenu.js.map +1 -1
- package/dist/icons/icon-01-menu.js +1 -2
- package/dist/icons/icon-01-menu.js.map +1 -1
- package/dist/icons/icon-01-mixed.js +1 -2
- package/dist/icons/icon-01-mixed.js.map +1 -1
- package/dist/icons/icon-01-more-vertical.js +1 -2
- package/dist/icons/icon-01-more-vertical.js.map +1 -1
- package/dist/icons/icon-01-more.js +1 -2
- package/dist/icons/icon-01-more.js.map +1 -1
- package/dist/icons/icon-01-note-edit.js +1 -2
- package/dist/icons/icon-01-note-edit.js.map +1 -1
- package/dist/icons/icon-01-off.js +1 -2
- package/dist/icons/icon-01-off.js.map +1 -1
- package/dist/icons/icon-01-on.js +1 -2
- package/dist/icons/icon-01-on.js.map +1 -1
- package/dist/icons/icon-01-open-full.js +1 -2
- package/dist/icons/icon-01-open-full.js.map +1 -1
- package/dist/icons/icon-01-placeholder-device-off.js +1 -2
- package/dist/icons/icon-01-placeholder-device-off.js.map +1 -1
- package/dist/icons/icon-01-placeholder-device-on.js +1 -2
- package/dist/icons/icon-01-placeholder-device-on.js.map +1 -1
- package/dist/icons/icon-01-placeholder-device-static.js +1 -2
- package/dist/icons/icon-01-placeholder-device-static.js.map +1 -1
- package/dist/icons/icon-01-placeholder.js +1 -2
- package/dist/icons/icon-01-placeholder.js.map +1 -1
- package/dist/icons/icon-01-play.js +1 -2
- package/dist/icons/icon-01-play.js.map +1 -1
- package/dist/icons/icon-01-print.js +1 -2
- package/dist/icons/icon-01-print.js.map +1 -1
- package/dist/icons/icon-01-redo.js +1 -2
- package/dist/icons/icon-01-redo.js.map +1 -1
- package/dist/icons/icon-01-refresh.js +1 -2
- package/dist/icons/icon-01-refresh.js.map +1 -1
- package/dist/icons/icon-01-remove.js +1 -2
- package/dist/icons/icon-01-remove.js.map +1 -1
- package/dist/icons/icon-01-reorder.js +1 -2
- package/dist/icons/icon-01-reorder.js.map +1 -1
- package/dist/icons/icon-01-save.js +1 -2
- package/dist/icons/icon-01-save.js.map +1 -1
- package/dist/icons/icon-01-search.js +1 -2
- package/dist/icons/icon-01-search.js.map +1 -1
- package/dist/icons/icon-01-sort.js +1 -2
- package/dist/icons/icon-01-sort.js.map +1 -1
- package/dist/icons/icon-01-standby.js +1 -2
- package/dist/icons/icon-01-standby.js.map +1 -1
- package/dist/icons/icon-01-stop.js +1 -2
- package/dist/icons/icon-01-stop.js.map +1 -1
- package/dist/icons/icon-01-sync.js +1 -2
- package/dist/icons/icon-01-sync.js.map +1 -1
- package/dist/icons/icon-01-text.js +1 -2
- package/dist/icons/icon-01-text.js.map +1 -1
- package/dist/icons/icon-01-undo.js +1 -2
- package/dist/icons/icon-01-undo.js.map +1 -1
- package/dist/icons/icon-01-visibility-off.js +1 -2
- package/dist/icons/icon-01-visibility-off.js.map +1 -1
- package/dist/icons/icon-01-visibility.js +1 -2
- package/dist/icons/icon-01-visibility.js.map +1 -1
- package/dist/icons/icon-01-widget-add.js +1 -2
- package/dist/icons/icon-01-widget-add.js.map +1 -1
- package/dist/icons/icon-02-arrow-back.js +1 -2
- package/dist/icons/icon-02-arrow-back.js.map +1 -1
- package/dist/icons/icon-02-arrow-down.js +1 -2
- package/dist/icons/icon-02-arrow-down.js.map +1 -1
- package/dist/icons/icon-02-arrow-drop-down.js +1 -2
- package/dist/icons/icon-02-arrow-drop-down.js.map +1 -1
- package/dist/icons/icon-02-arrow-flyout.js +1 -2
- package/dist/icons/icon-02-arrow-flyout.js.map +1 -1
- package/dist/icons/icon-02-arrow-forward.js +1 -2
- package/dist/icons/icon-02-arrow-forward.js.map +1 -1
- package/dist/icons/icon-02-arrow-up.js +1 -2
- package/dist/icons/icon-02-arrow-up.js.map +1 -1
- package/dist/icons/icon-02-chevron-double-down.js +1 -2
- package/dist/icons/icon-02-chevron-double-down.js.map +1 -1
- package/dist/icons/icon-02-chevron-double-left.js +1 -2
- package/dist/icons/icon-02-chevron-double-left.js.map +1 -1
- package/dist/icons/icon-02-chevron-double-right.js +1 -2
- package/dist/icons/icon-02-chevron-double-right.js.map +1 -1
- package/dist/icons/icon-02-chevron-double-up.js +1 -2
- package/dist/icons/icon-02-chevron-double-up.js.map +1 -1
- package/dist/icons/icon-02-chevron-down.js +1 -2
- package/dist/icons/icon-02-chevron-down.js.map +1 -1
- package/dist/icons/icon-02-chevron-left.js +1 -2
- package/dist/icons/icon-02-chevron-left.js.map +1 -1
- package/dist/icons/icon-02-chevron-right.js +1 -2
- package/dist/icons/icon-02-chevron-right.js.map +1 -1
- package/dist/icons/icon-02-chevron-up.js +1 -2
- package/dist/icons/icon-02-chevron-up.js.map +1 -1
- package/dist/icons/icon-02-collapse-content.js +1 -2
- package/dist/icons/icon-02-collapse-content.js.map +1 -1
- package/dist/icons/icon-02-dock-bottom.js +1 -2
- package/dist/icons/icon-02-dock-bottom.js.map +1 -1
- package/dist/icons/icon-02-dock-left.js +1 -2
- package/dist/icons/icon-02-dock-left.js.map +1 -1
- package/dist/icons/icon-02-dock-right.js +1 -2
- package/dist/icons/icon-02-dock-right.js.map +1 -1
- package/dist/icons/icon-02-drop-down.js +1 -2
- package/dist/icons/icon-02-drop-down.js.map +1 -1
- package/dist/icons/icon-02-expand-content.js +1 -2
- package/dist/icons/icon-02-expand-content.js.map +1 -1
- package/dist/icons/icon-02-page-first.js +1 -2
- package/dist/icons/icon-02-page-first.js.map +1 -1
- package/dist/icons/icon-02-page-last.js +1 -2
- package/dist/icons/icon-02-page-last.js.map +1 -1
- package/dist/icons/icon-02-resize-bottom.js +1 -2
- package/dist/icons/icon-02-resize-bottom.js.map +1 -1
- package/dist/icons/icon-02-resize-corner.js +1 -2
- package/dist/icons/icon-02-resize-corner.js.map +1 -1
- package/dist/icons/icon-02-resize-top.js +1 -2
- package/dist/icons/icon-02-resize-top.js.map +1 -1
- package/dist/icons/icon-02-resize_center.js +1 -2
- package/dist/icons/icon-02-resize_center.js.map +1 -1
- package/dist/icons/icon-02-set-point.js +1 -2
- package/dist/icons/icon-02-set-point.js.map +1 -1
- package/dist/icons/icon-02-slide-left.js +1 -2
- package/dist/icons/icon-02-slide-left.js.map +1 -1
- package/dist/icons/icon-02-slide-right.js +1 -2
- package/dist/icons/icon-02-slide-right.js.map +1 -1
- package/dist/icons/icon-02-unfold-less.js +1 -2
- package/dist/icons/icon-02-unfold-less.js.map +1 -1
- package/dist/icons/icon-02-unfold-more.js +1 -2
- package/dist/icons/icon-02-unfold-more.js.map +1 -1
- package/dist/icons/icon-03-configure.js +1 -2
- package/dist/icons/icon-03-configure.js.map +1 -1
- package/dist/icons/icon-03-diagnostic.js +1 -2
- package/dist/icons/icon-03-diagnostic.js.map +1 -1
- package/dist/icons/icon-03-filter.js +1 -2
- package/dist/icons/icon-03-filter.js.map +1 -1
- package/dist/icons/icon-03-info.js +1 -2
- package/dist/icons/icon-03-info.js.map +1 -1
- package/dist/icons/icon-03-license.js +1 -2
- package/dist/icons/icon-03-license.js.map +1 -1
- package/dist/icons/icon-03-monitoring.js +1 -2
- package/dist/icons/icon-03-monitoring.js.map +1 -1
- package/dist/icons/icon-03-pin-checked.js +1 -2
- package/dist/icons/icon-03-pin-checked.js.map +1 -1
- package/dist/icons/icon-03-pin-unchecked.js +1 -2
- package/dist/icons/icon-03-pin-unchecked.js.map +1 -1
- package/dist/icons/icon-03-printscreen.js +1 -2
- package/dist/icons/icon-03-printscreen.js.map +1 -1
- package/dist/icons/icon-03-settings-default-alt1.js +1 -2
- package/dist/icons/icon-03-settings-default-alt1.js.map +1 -1
- package/dist/icons/icon-03-settings-default-alt2.js +1 -2
- package/dist/icons/icon-03-settings-default-alt2.js.map +1 -1
- package/dist/icons/icon-03-settings-default.js +1 -2
- package/dist/icons/icon-03-settings-default.js.map +1 -1
- package/dist/icons/icon-03-settings.js +1 -2
- package/dist/icons/icon-03-settings.js.map +1 -1
- package/dist/icons/icon-03-split-left.js +1 -2
- package/dist/icons/icon-03-split-left.js.map +1 -1
- package/dist/icons/icon-03-split-right.js +1 -2
- package/dist/icons/icon-03-split-right.js.map +1 -1
- package/dist/icons/icon-03-star-checked.js +1 -2
- package/dist/icons/icon-03-star-checked.js.map +1 -1
- package/dist/icons/icon-03-star-unchecked.js +1 -2
- package/dist/icons/icon-03-star-unchecked.js.map +1 -1
- package/dist/icons/icon-03-support.js +1 -2
- package/dist/icons/icon-03-support.js.map +1 -1
- package/dist/icons/icon-03-table.js +1 -2
- package/dist/icons/icon-03-table.js.map +1 -1
- package/dist/icons/icon-03-volume-high.js +1 -2
- package/dist/icons/icon-03-volume-high.js.map +1 -1
- package/dist/icons/icon-03-volume-low.js +1 -2
- package/dist/icons/icon-03-volume-low.js.map +1 -1
- package/dist/icons/icon-03-volume-off.js +1 -2
- package/dist/icons/icon-03-volume-off.js.map +1 -1
- package/dist/icons/icon-04-brilliance-high.js +1 -2
- package/dist/icons/icon-04-brilliance-high.js.map +1 -1
- package/dist/icons/icon-04-brilliance-low.js +1 -2
- package/dist/icons/icon-04-brilliance-low.js.map +1 -1
- package/dist/icons/icon-04-colorcalibrated.js +1 -2
- package/dist/icons/icon-04-colorcalibrated.js.map +1 -1
- package/dist/icons/icon-04-day-bright.js +1 -2
- package/dist/icons/icon-04-day-bright.js.map +1 -1
- package/dist/icons/icon-04-day.js +1 -2
- package/dist/icons/icon-04-day.js.map +1 -1
- package/dist/icons/icon-04-daynight.js +1 -2
- package/dist/icons/icon-04-daynight.js.map +1 -1
- package/dist/icons/icon-04-dimming.js +1 -2
- package/dist/icons/icon-04-dimming.js.map +1 -1
- package/dist/icons/icon-04-dusk.js +1 -2
- package/dist/icons/icon-04-dusk.js.map +1 -1
- package/dist/icons/icon-04-illumination-high.js +1 -2
- package/dist/icons/icon-04-illumination-high.js.map +1 -1
- package/dist/icons/icon-04-illumination-low.js +1 -2
- package/dist/icons/icon-04-illumination-low.js.map +1 -1
- package/dist/icons/icon-04-night.js +1 -2
- package/dist/icons/icon-04-night.js.map +1 -1
- package/dist/icons/icon-05-fullscreen-exit.js +1 -2
- package/dist/icons/icon-05-fullscreen-exit.js.map +1 -1
- package/dist/icons/icon-05-fullscreen.js +1 -2
- package/dist/icons/icon-05-fullscreen.js.map +1 -1
- package/dist/icons/icon-05-input-keyboard.js +1 -2
- package/dist/icons/icon-05-input-keyboard.js.map +1 -1
- package/dist/icons/icon-05-input-keyboard_onscreen.js +1 -2
- package/dist/icons/icon-05-input-keyboard_onscreen.js.map +1 -1
- package/dist/icons/icon-05-input-mouse.js +1 -2
- package/dist/icons/icon-05-input-mouse.js.map +1 -1
- package/dist/icons/icon-05-input-touchpad_mouse.js +1 -2
- package/dist/icons/icon-05-input-touchpad_mouse.js.map +1 -1
- package/dist/icons/icon-05-pc.js +1 -2
- package/dist/icons/icon-05-pc.js.map +1 -1
- package/dist/icons/icon-05-people.js +1 -2
- package/dist/icons/icon-05-people.js.map +1 -1
- package/dist/icons/icon-05-screen-desk.js +1 -2
- package/dist/icons/icon-05-screen-desk.js.map +1 -1
- package/dist/icons/icon-05-screen-full.js +1 -2
- package/dist/icons/icon-05-screen-full.js.map +1 -1
- package/dist/icons/icon-05-screen-pad.js +1 -2
- package/dist/icons/icon-05-screen-pad.js.map +1 -1
- package/dist/icons/icon-05-screen-quad.js +1 -2
- package/dist/icons/icon-05-screen-quad.js.map +1 -1
- package/dist/icons/icon-05-screen-split-left.js +1 -2
- package/dist/icons/icon-05-screen-split-left.js.map +1 -1
- package/dist/icons/icon-05-screen-split-right.js +1 -2
- package/dist/icons/icon-05-screen-split-right.js.map +1 -1
- package/dist/icons/icon-05-server.js +1 -2
- package/dist/icons/icon-05-server.js.map +1 -1
- package/dist/icons/icon-05-user.js +1 -2
- package/dist/icons/icon-05-user.js.map +1 -1
- package/dist/icons/icon-06-calendar.js +1 -2
- package/dist/icons/icon-06-calendar.js.map +1 -1
- package/dist/icons/icon-06-cam.js +1 -2
- package/dist/icons/icon-06-cam.js.map +1 -1
- package/dist/icons/icon-06-cctv.js +1 -2
- package/dist/icons/icon-06-cctv.js.map +1 -1
- package/dist/icons/icon-06-com.js +1 -2
- package/dist/icons/icon-06-com.js.map +1 -1
- package/dist/icons/icon-06-conning.js +1 -2
- package/dist/icons/icon-06-conning.js.map +1 -1
- package/dist/icons/icon-06-dashboard-outline.js +1 -2
- package/dist/icons/icon-06-dashboard-outline.js.map +1 -1
- package/dist/icons/icon-06-dashboard.js +1 -2
- package/dist/icons/icon-06-dashboard.js.map +1 -1
- package/dist/icons/icon-06-date.js +1 -2
- package/dist/icons/icon-06-date.js.map +1 -1
- package/dist/icons/icon-06-ecdis-simple.js +1 -2
- package/dist/icons/icon-06-ecdis-simple.js.map +1 -1
- package/dist/icons/icon-06-ecdis.js +1 -2
- package/dist/icons/icon-06-ecdis.js.map +1 -1
- package/dist/icons/icon-06-home.js +1 -2
- package/dist/icons/icon-06-home.js.map +1 -1
- package/dist/icons/icon-06-ias.js +1 -2
- package/dist/icons/icon-06-ias.js.map +1 -1
- package/dist/icons/icon-06-lantern.js +1 -2
- package/dist/icons/icon-06-lantern.js.map +1 -1
- package/dist/icons/icon-06-link-remove.js +1 -2
- package/dist/icons/icon-06-link-remove.js.map +1 -1
- package/dist/icons/icon-06-link.js +1 -2
- package/dist/icons/icon-06-link.js.map +1 -1
- package/dist/icons/icon-06-logo-company.js +1 -2
- package/dist/icons/icon-06-logo-company.js.map +1 -1
- package/dist/icons/icon-06-logo-oicl.js +1 -2
- package/dist/icons/icon-06-logo-oicl.js.map +1 -1
- package/dist/icons/icon-06-openbridge.js +1 -2
- package/dist/icons/icon-06-openbridge.js.map +1 -1
- package/dist/icons/icon-06-radar.js +1 -2
- package/dist/icons/icon-06-radar.js.map +1 -1
- package/dist/icons/icon-06-screens.js +1 -2
- package/dist/icons/icon-06-screens.js.map +1 -1
- package/dist/icons/icon-06-ship.js +1 -2
- package/dist/icons/icon-06-ship.js.map +1 -1
- package/dist/icons/icon-06-time.js +1 -2
- package/dist/icons/icon-06-time.js.map +1 -1
- package/dist/icons/icon-06-wipers.js +1 -2
- package/dist/icons/icon-06-wipers.js.map +1 -1
- package/dist/icons/icon-07-ais.js +1 -2
- package/dist/icons/icon-07-ais.js.map +1 -1
- package/dist/icons/icon-07-anchorwatch.js +1 -2
- package/dist/icons/icon-07-anchorwatch.js.map +1 -1
- package/dist/icons/icon-07-catzoc.js +1 -2
- package/dist/icons/icon-07-catzoc.js.map +1 -1
- package/dist/icons/icon-07-centre-off.js +1 -2
- package/dist/icons/icon-07-centre-off.js.map +1 -1
- package/dist/icons/icon-07-centre-on.js +1 -2
- package/dist/icons/icon-07-centre-on.js.map +1 -1
- package/dist/icons/icon-07-chart-info.js +1 -2
- package/dist/icons/icon-07-chart-info.js.map +1 -1
- package/dist/icons/icon-07-chart-search.js +1 -2
- package/dist/icons/icon-07-chart-search.js.map +1 -1
- package/dist/icons/icon-07-chart-settings.js +1 -2
- package/dist/icons/icon-07-chart-settings.js.map +1 -1
- package/dist/icons/icon-07-chart-styles.js +1 -2
- package/dist/icons/icon-07-chart-styles.js.map +1 -1
- package/dist/icons/icon-07-chart.js +1 -2
- package/dist/icons/icon-07-chart.js.map +1 -1
- package/dist/icons/icon-07-coordinate.js +1 -2
- package/dist/icons/icon-07-coordinate.js.map +1 -1
- package/dist/icons/icon-07-ebl.js +1 -2
- package/dist/icons/icon-07-ebl.js.map +1 -1
- package/dist/icons/icon-07-erbl.js +1 -2
- package/dist/icons/icon-07-erbl.js.map +1 -1
- package/dist/icons/icon-07-event-record.js +1 -2
- package/dist/icons/icon-07-event-record.js.map +1 -1
- package/dist/icons/icon-07-grid-off.js +1 -2
- package/dist/icons/icon-07-grid-off.js.map +1 -1
- package/dist/icons/icon-07-grid-on.js +1 -2
- package/dist/icons/icon-07-grid-on.js.map +1 -1
- package/dist/icons/icon-07-headingline-off.js +1 -2
- package/dist/icons/icon-07-headingline-off.js.map +1 -1
- package/dist/icons/icon-07-layers.js +1 -2
- package/dist/icons/icon-07-layers.js.map +1 -1
- package/dist/icons/icon-07-location-1.js +1 -2
- package/dist/icons/icon-07-location-1.js.map +1 -1
- package/dist/icons/icon-07-location-2.js +1 -2
- package/dist/icons/icon-07-location-2.js.map +1 -1
- package/dist/icons/icon-07-location-3.js +1 -2
- package/dist/icons/icon-07-location-3.js.map +1 -1
- package/dist/icons/icon-07-measure.js +1 -2
- package/dist/icons/icon-07-measure.js.map +1 -1
- package/dist/icons/icon-07-radar-overlay.js +1 -2
- package/dist/icons/icon-07-radar-overlay.js.map +1 -1
- package/dist/icons/icon-07-range.js +1 -2
- package/dist/icons/icon-07-range.js.map +1 -1
- package/dist/icons/icon-07-rangerings.js +1 -2
- package/dist/icons/icon-07-rangerings.js.map +1 -1
- package/dist/icons/icon-07-relativemotion-variant.js +1 -2
- package/dist/icons/icon-07-relativemotion-variant.js.map +1 -1
- package/dist/icons/icon-07-relativemotion.js +1 -2
- package/dist/icons/icon-07-relativemotion.js.map +1 -1
- package/dist/icons/icon-07-report-info.js +1 -2
- package/dist/icons/icon-07-report-info.js.map +1 -1
- package/dist/icons/icon-07-route-planning.js +1 -2
- package/dist/icons/icon-07-route-planning.js.map +1 -1
- package/dist/icons/icon-07-silence.js +1 -2
- package/dist/icons/icon-07-silence.js.map +1 -1
- package/dist/icons/icon-07-smode.js +1 -2
- package/dist/icons/icon-07-smode.js.map +1 -1
- package/dist/icons/icon-07-target-associated-ais-camera.js +1 -2
- package/dist/icons/icon-07-target-associated-ais-camera.js.map +1 -1
- package/dist/icons/icon-07-target-associated-camera-radar.js +1 -2
- package/dist/icons/icon-07-target-associated-camera-radar.js.map +1 -1
- package/dist/icons/icon-07-target-associated-radar-camera.js +1 -2
- package/dist/icons/icon-07-target-associated-radar-camera.js.map +1 -1
- package/dist/icons/icon-07-target-camera.js +1 -2
- package/dist/icons/icon-07-target-camera.js.map +1 -1
- package/dist/icons/icon-07-target-cancel-all.js +1 -2
- package/dist/icons/icon-07-target-cancel-all.js.map +1 -1
- package/dist/icons/icon-07-target-cancel.js +1 -2
- package/dist/icons/icon-07-target-cancel.js.map +1 -1
- package/dist/icons/icon-07-target-select.js +1 -2
- package/dist/icons/icon-07-target-select.js.map +1 -1
- package/dist/icons/icon-07-track-no.js +1 -2
- package/dist/icons/icon-07-track-no.js.map +1 -1
- package/dist/icons/icon-07-track-off-port.js +1 -2
- package/dist/icons/icon-07-track-off-port.js.map +1 -1
- package/dist/icons/icon-07-track-off-strb.js +1 -2
- package/dist/icons/icon-07-track-off-strb.js.map +1 -1
- package/dist/icons/icon-07-track-on.js +1 -2
- package/dist/icons/icon-07-track-on.js.map +1 -1
- package/dist/icons/icon-07-track-route.js +1 -2
- package/dist/icons/icon-07-track-route.js.map +1 -1
- package/dist/icons/icon-07-track.js +1 -2
- package/dist/icons/icon-07-track.js.map +1 -1
- package/dist/icons/icon-07-truemotion-reset.js +1 -2
- package/dist/icons/icon-07-truemotion-reset.js.map +1 -1
- package/dist/icons/icon-07-truemotion-variant.js +1 -2
- package/dist/icons/icon-07-truemotion-variant.js.map +1 -1
- package/dist/icons/icon-07-truemotion.js +1 -2
- package/dist/icons/icon-07-truemotion.js.map +1 -1
- package/dist/icons/icon-07-up-course.js +1 -2
- package/dist/icons/icon-07-up-course.js.map +1 -1
- package/dist/icons/icon-07-up-head.js +1 -2
- package/dist/icons/icon-07-up-head.js.map +1 -1
- package/dist/icons/icon-07-up-north.js +1 -2
- package/dist/icons/icon-07-up-north.js.map +1 -1
- package/dist/icons/icon-07-voyages.js +1 -2
- package/dist/icons/icon-07-voyages.js.map +1 -1
- package/dist/icons/icon-07-vrm.js +1 -2
- package/dist/icons/icon-07-vrm.js.map +1 -1
- package/dist/icons/icon-07-waypoint-add.js +1 -2
- package/dist/icons/icon-07-waypoint-add.js.map +1 -1
- package/dist/icons/icon-07-waypoint-delete.js +1 -2
- package/dist/icons/icon-07-waypoint-delete.js.map +1 -1
- package/dist/icons/icon-07-waypoint-edit.js +1 -2
- package/dist/icons/icon-07-waypoint-edit.js.map +1 -1
- package/dist/icons/icon-08-acdc-converter.js +1 -2
- package/dist/icons/icon-08-acdc-converter.js.map +1 -1
- package/dist/icons/icon-08-auto.js +1 -2
- package/dist/icons/icon-08-auto.js.map +1 -1
- package/dist/icons/icon-08-backward-fast.js +1 -2
- package/dist/icons/icon-08-backward-fast.js.map +1 -1
- package/dist/icons/icon-08-backward-stopped.js +1 -2
- package/dist/icons/icon-08-backward-stopped.js.map +1 -1
- package/dist/icons/icon-08-backward.js +1 -2
- package/dist/icons/icon-08-backward.js.map +1 -1
- package/dist/icons/icon-08-battery-0.js +1 -2
- package/dist/icons/icon-08-battery-0.js.map +1 -1
- package/dist/icons/icon-08-battery-25.js +1 -2
- package/dist/icons/icon-08-battery-25.js.map +1 -1
- package/dist/icons/icon-08-battery-50.js +1 -2
- package/dist/icons/icon-08-battery-50.js.map +1 -1
- package/dist/icons/icon-08-battery-75.js +1 -2
- package/dist/icons/icon-08-battery-75.js.map +1 -1
- package/dist/icons/icon-08-battery-charging.js +1 -2
- package/dist/icons/icon-08-battery-charging.js.map +1 -1
- package/dist/icons/icon-08-battery-pack-0.js +1 -2
- package/dist/icons/icon-08-battery-pack-0.js.map +1 -1
- package/dist/icons/icon-08-battery-pack-100.js +1 -2
- package/dist/icons/icon-08-battery-pack-100.js.map +1 -1
- package/dist/icons/icon-08-battery-pack-25.js +1 -2
- package/dist/icons/icon-08-battery-pack-25.js.map +1 -1
- package/dist/icons/icon-08-battery-pack-50.js +1 -2
- package/dist/icons/icon-08-battery-pack-50.js.map +1 -1
- package/dist/icons/icon-08-battery-pack-70.js +1 -2
- package/dist/icons/icon-08-battery-pack-70.js.map +1 -1
- package/dist/icons/icon-08-battery-pack-charging.js +1 -2
- package/dist/icons/icon-08-battery-pack-charging.js.map +1 -1
- package/dist/icons/icon-08-battery_full.js +1 -2
- package/dist/icons/icon-08-battery_full.js.map +1 -1
- package/dist/icons/icon-08-bilge.js +1 -2
- package/dist/icons/icon-08-bilge.js.map +1 -1
- package/dist/icons/icon-08-blower-off-vertical.js +1 -2
- package/dist/icons/icon-08-blower-off-vertical.js.map +1 -1
- package/dist/icons/icon-08-blower-on-vertical.js +1 -2
- package/dist/icons/icon-08-blower-on-vertical.js.map +1 -1
- package/dist/icons/icon-08-blower-static-vertical.js +1 -2
- package/dist/icons/icon-08-blower-static-vertical.js.map +1 -1
- package/dist/icons/icon-08-connector-cross.js +1 -2
- package/dist/icons/icon-08-connector-cross.js.map +1 -1
- package/dist/icons/icon-08-cooling.js +1 -2
- package/dist/icons/icon-08-cooling.js.map +1 -1
- package/dist/icons/icon-08-dcdc-converter.js +1 -2
- package/dist/icons/icon-08-dcdc-converter.js.map +1 -1
- package/dist/icons/icon-08-duty.js +1 -2
- package/dist/icons/icon-08-duty.js.map +1 -1
- package/dist/icons/icon-08-engine.js +1 -2
- package/dist/icons/icon-08-engine.js.map +1 -1
- package/dist/icons/icon-08-epms.js +1 -2
- package/dist/icons/icon-08-epms.js.map +1 -1
- package/dist/icons/icon-08-ethernet-switch.js +1 -2
- package/dist/icons/icon-08-ethernet-switch.js.map +1 -1
- package/dist/icons/icon-08-fan-off.js +1 -2
- package/dist/icons/icon-08-fan-off.js.map +1 -1
- package/dist/icons/icon-08-fan-on.js +1 -2
- package/dist/icons/icon-08-fan-on.js.map +1 -1
- package/dist/icons/icon-08-fan-static.js +1 -2
- package/dist/icons/icon-08-fan-static.js.map +1 -1
- package/dist/icons/icon-08-filter.js +1 -2
- package/dist/icons/icon-08-filter.js.map +1 -1
- package/dist/icons/icon-08-fire.js +1 -2
- package/dist/icons/icon-08-fire.js.map +1 -1
- package/dist/icons/icon-08-forward-fast.js +1 -2
- package/dist/icons/icon-08-forward-fast.js.map +1 -1
- package/dist/icons/icon-08-forward-stopped.js +1 -2
- package/dist/icons/icon-08-forward-stopped.js.map +1 -1
- package/dist/icons/icon-08-forward.js +1 -2
- package/dist/icons/icon-08-forward.js.map +1 -1
- package/dist/icons/icon-08-generator.js +1 -2
- package/dist/icons/icon-08-generator.js.map +1 -1
- package/dist/icons/icon-08-heat.js +1 -2
- package/dist/icons/icon-08-heat.js.map +1 -1
- package/dist/icons/icon-08-heat_pump_balance.js +1 -2
- package/dist/icons/icon-08-heat_pump_balance.js.map +1 -1
- package/dist/icons/icon-08-heatexhanger.js +1 -2
- package/dist/icons/icon-08-heatexhanger.js.map +1 -1
- package/dist/icons/icon-08-heatpump.js +1 -2
- package/dist/icons/icon-08-heatpump.js.map +1 -1
- package/dist/icons/icon-08-hvac.js +1 -2
- package/dist/icons/icon-08-hvac.js.map +1 -1
- package/dist/icons/icon-08-hydraulic-separator.js +1 -2
- package/dist/icons/icon-08-hydraulic-separator.js.map +1 -1
- package/dist/icons/icon-08-io.js +1 -2
- package/dist/icons/icon-08-io.js.map +1 -1
- package/dist/icons/icon-08-local-only.js +1 -2
- package/dist/icons/icon-08-local-only.js.map +1 -1
- package/dist/icons/icon-08-local.js +1 -2
- package/dist/icons/icon-08-local.js.map +1 -1
- package/dist/icons/icon-08-logger.js +1 -2
- package/dist/icons/icon-08-logger.js.map +1 -1
- package/dist/icons/icon-08-manuel-only.js +1 -2
- package/dist/icons/icon-08-manuel-only.js.map +1 -1
- package/dist/icons/icon-08-manuel.js +1 -2
- package/dist/icons/icon-08-manuel.js.map +1 -1
- package/dist/icons/icon-08-misc.js +1 -2
- package/dist/icons/icon-08-misc.js.map +1 -1
- package/dist/icons/icon-08-motor-off-horisontal.js +1 -2
- package/dist/icons/icon-08-motor-off-horisontal.js.map +1 -1
- package/dist/icons/icon-08-motor-off-vertical.js +1 -2
- package/dist/icons/icon-08-motor-off-vertical.js.map +1 -1
- package/dist/icons/icon-08-motor-on-horisontal.js +1 -2
- package/dist/icons/icon-08-motor-on-horisontal.js.map +1 -1
- package/dist/icons/icon-08-motor-on-vertical.js +1 -2
- package/dist/icons/icon-08-motor-on-vertical.js.map +1 -1
- package/dist/icons/icon-08-motor-static-horisontal.js +1 -2
- package/dist/icons/icon-08-motor-static-horisontal.js.map +1 -1
- package/dist/icons/icon-08-motor-static-vertical.js +1 -2
- package/dist/icons/icon-08-motor-static-vertical.js.map +1 -1
- package/dist/icons/icon-08-off.js +1 -2
- package/dist/icons/icon-08-off.js.map +1 -1
- package/dist/icons/icon-08-on.js +1 -2
- package/dist/icons/icon-08-on.js.map +1 -1
- package/dist/icons/icon-08-pls-component.js +1 -2
- package/dist/icons/icon-08-pls-component.js.map +1 -1
- package/dist/icons/icon-08-pls.js +1 -2
- package/dist/icons/icon-08-pls.js.map +1 -1
- package/dist/icons/icon-08-pump-off-horisontal.js +1 -2
- package/dist/icons/icon-08-pump-off-horisontal.js.map +1 -1
- package/dist/icons/icon-08-pump-off-vertical.js +1 -2
- package/dist/icons/icon-08-pump-off-vertical.js.map +1 -1
- package/dist/icons/icon-08-pump-on-horisontal.js +1 -2
- package/dist/icons/icon-08-pump-on-horisontal.js.map +1 -1
- package/dist/icons/icon-08-pump-on-vertical.js +1 -2
- package/dist/icons/icon-08-pump-on-vertical.js.map +1 -1
- package/dist/icons/icon-08-pump-static-horisontal.js +1 -2
- package/dist/icons/icon-08-pump-static-horisontal.js.map +1 -1
- package/dist/icons/icon-08-pump-static-vertical.js +1 -2
- package/dist/icons/icon-08-pump-static-vertical.js.map +1 -1
- package/dist/icons/icon-08-router.js +1 -2
- package/dist/icons/icon-08-router.js.map +1 -1
- package/dist/icons/icon-08-simulation.js +1 -2
- package/dist/icons/icon-08-simulation.js.map +1 -1
- package/dist/icons/icon-08-standby.js +1 -2
- package/dist/icons/icon-08-standby.js.map +1 -1
- package/dist/icons/icon-08-system.js +1 -2
- package/dist/icons/icon-08-system.js.map +1 -1
- package/dist/icons/icon-08-tank.js +1 -2
- package/dist/icons/icon-08-tank.js.map +1 -1
- package/dist/icons/icon-08-temp-cold.js +1 -2
- package/dist/icons/icon-08-temp-cold.js.map +1 -1
- package/dist/icons/icon-08-temp-hot.js +1 -2
- package/dist/icons/icon-08-temp-hot.js.map +1 -1
- package/dist/icons/icon-08-temp-hotcold.js +1 -2
- package/dist/icons/icon-08-temp-hotcold.js.map +1 -1
- package/dist/icons/icon-08-trend.js +1 -2
- package/dist/icons/icon-08-trend.js.map +1 -1
- package/dist/icons/icon-08-wiper-fluid.js +1 -2
- package/dist/icons/icon-08-wiper-fluid.js.map +1 -1
- package/dist/icons/icon-08-wiper.js +1 -2
- package/dist/icons/icon-08-wiper.js.map +1 -1
- package/dist/icons/icon-09-connector-3way.js +1 -2
- package/dist/icons/icon-09-connector-3way.js.map +1 -1
- package/dist/icons/icon-09-connector-corner.js +1 -2
- package/dist/icons/icon-09-connector-corner.js.map +1 -1
- package/dist/icons/icon-09-connector-straight.js +1 -2
- package/dist/icons/icon-09-connector-straight.js.map +1 -1
- package/dist/icons/icon-09-damper-horizontal-off-large.js +1 -2
- package/dist/icons/icon-09-damper-horizontal-off-large.js.map +1 -1
- package/dist/icons/icon-09-damper-horizontal-off.js +1 -2
- package/dist/icons/icon-09-damper-horizontal-off.js.map +1 -1
- package/dist/icons/icon-09-damper-horizontal-on-large.js +1 -2
- package/dist/icons/icon-09-damper-horizontal-on-large.js.map +1 -1
- package/dist/icons/icon-09-damper-horizontal-on.js +1 -2
- package/dist/icons/icon-09-damper-horizontal-on.js.map +1 -1
- package/dist/icons/icon-09-pipe-3way.js +1 -2
- package/dist/icons/icon-09-pipe-3way.js.map +1 -1
- package/dist/icons/icon-09-pipe-corner.js +1 -2
- package/dist/icons/icon-09-pipe-corner.js.map +1 -1
- package/dist/icons/icon-09-pipe-cross.js +1 -2
- package/dist/icons/icon-09-pipe-cross.js.map +1 -1
- package/dist/icons/icon-09-pipe-direction.js +1 -2
- package/dist/icons/icon-09-pipe-direction.js.map +1 -1
- package/dist/icons/icon-09-pipe-end.js +1 -2
- package/dist/icons/icon-09-pipe-end.js.map +1 -1
- package/dist/icons/icon-09-pipe-straight.js +1 -2
- package/dist/icons/icon-09-pipe-straight.js.map +1 -1
- package/dist/icons/icon-09-switch-horizontal-off-large.js +1 -2
- package/dist/icons/icon-09-switch-horizontal-off-large.js.map +1 -1
- package/dist/icons/icon-09-switch-horizontal-off.js +1 -2
- package/dist/icons/icon-09-switch-horizontal-off.js.map +1 -1
- package/dist/icons/icon-09-switch-horizontal-on-large.js +1 -2
- package/dist/icons/icon-09-switch-horizontal-on-large.js.map +1 -1
- package/dist/icons/icon-09-switch-horizontal-on.js +1 -2
- package/dist/icons/icon-09-switch-horizontal-on.js.map +1 -1
- package/dist/icons/icon-09-threeway-analog-left-0.js +1 -2
- package/dist/icons/icon-09-threeway-analog-left-0.js.map +1 -1
- package/dist/icons/icon-09-threeway-analog-left-100.js +1 -2
- package/dist/icons/icon-09-threeway-analog-left-100.js.map +1 -1
- package/dist/icons/icon-09-threeway-analog-left-25.js +1 -2
- package/dist/icons/icon-09-threeway-analog-left-25.js.map +1 -1
- package/dist/icons/icon-09-threeway-analog-left-50.js +1 -2
- package/dist/icons/icon-09-threeway-analog-left-50.js.map +1 -1
- package/dist/icons/icon-09-threeway-analog-left-75.js +1 -2
- package/dist/icons/icon-09-threeway-analog-left-75.js.map +1 -1
- package/dist/icons/icon-09-threeway-analog-right-0.js +1 -2
- package/dist/icons/icon-09-threeway-analog-right-0.js.map +1 -1
- package/dist/icons/icon-09-threeway-analog-right-100.js +1 -2
- package/dist/icons/icon-09-threeway-analog-right-100.js.map +1 -1
- package/dist/icons/icon-09-threeway-analog-right-25.js +1 -2
- package/dist/icons/icon-09-threeway-analog-right-25.js.map +1 -1
- package/dist/icons/icon-09-threeway-analog-right-50.js +1 -2
- package/dist/icons/icon-09-threeway-analog-right-50.js.map +1 -1
- package/dist/icons/icon-09-threeway-analog-right-75.js +1 -2
- package/dist/icons/icon-09-threeway-analog-right-75.js.map +1 -1
- package/dist/icons/icon-09-threeway-analog-top-0.js +1 -2
- package/dist/icons/icon-09-threeway-analog-top-0.js.map +1 -1
- package/dist/icons/icon-09-threeway-analog-top-100.js +1 -2
- package/dist/icons/icon-09-threeway-analog-top-100.js.map +1 -1
- package/dist/icons/icon-09-threeway-analog-top-25.js +1 -2
- package/dist/icons/icon-09-threeway-analog-top-25.js.map +1 -1
- package/dist/icons/icon-09-threeway-analog-top-50.js +1 -2
- package/dist/icons/icon-09-threeway-analog-top-50.js.map +1 -1
- package/dist/icons/icon-09-threeway-analog-top-75.js +1 -2
- package/dist/icons/icon-09-threeway-analog-top-75.js.map +1 -1
- package/dist/icons/icon-09-threeway-digital-closed-left.js +1 -2
- package/dist/icons/icon-09-threeway-digital-closed-left.js.map +1 -1
- package/dist/icons/icon-09-threeway-digital-closed-right.js +1 -2
- package/dist/icons/icon-09-threeway-digital-closed-right.js.map +1 -1
- package/dist/icons/icon-09-threeway-digital-closed-top.js +1 -2
- package/dist/icons/icon-09-threeway-digital-closed-top.js.map +1 -1
- package/dist/icons/icon-09-threeway-digital-closed.js +1 -2
- package/dist/icons/icon-09-threeway-digital-closed.js.map +1 -1
- package/dist/icons/icon-09-threeway-digital-open.js +1 -2
- package/dist/icons/icon-09-threeway-digital-open.js.map +1 -1
- package/dist/icons/icon-09-threeway-digital-static.js +1 -2
- package/dist/icons/icon-09-threeway-digital-static.js.map +1 -1
- package/dist/icons/icon-09-twoway-analog-closed.js +1 -2
- package/dist/icons/icon-09-twoway-analog-closed.js.map +1 -1
- package/dist/icons/icon-09-twoway-analog-open-25.js +1 -2
- package/dist/icons/icon-09-twoway-analog-open-25.js.map +1 -1
- package/dist/icons/icon-09-twoway-analog-open-5.js +1 -2
- package/dist/icons/icon-09-twoway-analog-open-5.js.map +1 -1
- package/dist/icons/icon-09-twoway-analog-open-50.js +1 -2
- package/dist/icons/icon-09-twoway-analog-open-50.js.map +1 -1
- package/dist/icons/icon-09-twoway-analog-open-75.js +1 -2
- package/dist/icons/icon-09-twoway-analog-open-75.js.map +1 -1
- package/dist/icons/icon-09-twoway-analog-open.js +1 -2
- package/dist/icons/icon-09-twoway-analog-open.js.map +1 -1
- package/dist/icons/icon-09-twoway-digital-closed.js +1 -2
- package/dist/icons/icon-09-twoway-digital-closed.js.map +1 -1
- package/dist/icons/icon-09-twoway-digital-nonreturn.js +1 -2
- package/dist/icons/icon-09-twoway-digital-nonreturn.js.map +1 -1
- package/dist/icons/icon-09-twoway-digital-open.js +1 -2
- package/dist/icons/icon-09-twoway-digital-open.js.map +1 -1
- package/dist/icons/icon-09-twoway-digital-static.js +1 -2
- package/dist/icons/icon-09-twoway-digital-static.js.map +1 -1
- package/dist/icons/icon-10-autonomous.js +1 -2
- package/dist/icons/icon-10-autonomous.js.map +1 -1
- package/dist/icons/icon-10-autopilot.js +1 -2
- package/dist/icons/icon-10-autopilot.js.map +1 -1
- package/dist/icons/icon-10-autotrack.js +1 -2
- package/dist/icons/icon-10-autotrack.js.map +1 -1
- package/dist/icons/icon-10-joystick.js +1 -2
- package/dist/icons/icon-10-joystick.js.map +1 -1
- package/dist/icons/icon-10-keeping-area.js +1 -2
- package/dist/icons/icon-10-keeping-area.js.map +1 -1
- package/dist/icons/icon-10-keeping-station.js +1 -2
- package/dist/icons/icon-10-keeping-station.js.map +1 -1
- package/dist/icons/icon-10-keeping-track.js +1 -2
- package/dist/icons/icon-10-keeping-track.js.map +1 -1
- package/dist/icons/icon-10-monotoring-route.js +1 -2
- package/dist/icons/icon-10-monotoring-route.js.map +1 -1
- package/dist/icons/icon-10-move.js +1 -2
- package/dist/icons/icon-10-move.js.map +1 -1
- package/dist/icons/icon-10-propulsion-static.js +1 -2
- package/dist/icons/icon-10-propulsion-static.js.map +1 -1
- package/dist/icons/icon-10-propulsion.js +1 -2
- package/dist/icons/icon-10-propulsion.js.map +1 -1
- package/dist/icons/icon-10-rotate.js +1 -2
- package/dist/icons/icon-10-rotate.js.map +1 -1
- package/dist/icons/icon-10-rudder.js +1 -2
- package/dist/icons/icon-10-rudder.js.map +1 -1
- package/dist/icons/icon-10-thruster-azimuth.js +1 -2
- package/dist/icons/icon-10-thruster-azimuth.js.map +1 -1
- package/dist/icons/icon-10-thruster-mainengine.js +1 -2
- package/dist/icons/icon-10-thruster-mainengine.js.map +1 -1
- package/dist/icons/icon-10-thruster-tunnel.js +1 -2
- package/dist/icons/icon-10-thruster-tunnel.js.map +1 -1
- package/dist/icons/icon-11-current-1.js +1 -2
- package/dist/icons/icon-11-current-1.js.map +1 -1
- package/dist/icons/icon-11-current-2.js +1 -2
- package/dist/icons/icon-11-current-2.js.map +1 -1
- package/dist/icons/icon-11-current-3.js +1 -2
- package/dist/icons/icon-11-current-3.js.map +1 -1
- package/dist/icons/icon-11-current-4.js +1 -2
- package/dist/icons/icon-11-current-4.js.map +1 -1
- package/dist/icons/icon-11-wind-1.js +1 -2
- package/dist/icons/icon-11-wind-1.js.map +1 -1
- package/dist/icons/icon-11-wind-10.js +1 -2
- package/dist/icons/icon-11-wind-10.js.map +1 -1
- package/dist/icons/icon-11-wind-11.js +1 -2
- package/dist/icons/icon-11-wind-11.js.map +1 -1
- package/dist/icons/icon-11-wind-12.js +1 -2
- package/dist/icons/icon-11-wind-12.js.map +1 -1
- package/dist/icons/icon-11-wind-13.js +1 -2
- package/dist/icons/icon-11-wind-13.js.map +1 -1
- package/dist/icons/icon-11-wind-2.js +1 -2
- package/dist/icons/icon-11-wind-2.js.map +1 -1
- package/dist/icons/icon-11-wind-3.js +1 -2
- package/dist/icons/icon-11-wind-3.js.map +1 -1
- package/dist/icons/icon-11-wind-4.js +1 -2
- package/dist/icons/icon-11-wind-4.js.map +1 -1
- package/dist/icons/icon-11-wind-5.js +1 -2
- package/dist/icons/icon-11-wind-5.js.map +1 -1
- package/dist/icons/icon-11-wind-6.js +1 -2
- package/dist/icons/icon-11-wind-6.js.map +1 -1
- package/dist/icons/icon-11-wind-7.js +1 -2
- package/dist/icons/icon-11-wind-7.js.map +1 -1
- package/dist/icons/icon-11-wind-8.js +1 -2
- package/dist/icons/icon-11-wind-8.js.map +1 -1
- package/dist/icons/icon-11-wind-9.js +1 -2
- package/dist/icons/icon-11-wind-9.js.map +1 -1
- package/dist/icons/icon-12-altitute.js +1 -2
- package/dist/icons/icon-12-altitute.js.map +1 -1
- package/dist/icons/icon-12-cog.js +1 -2
- package/dist/icons/icon-12-cog.js.map +1 -1
- package/dist/icons/icon-12-depth.js +1 -2
- package/dist/icons/icon-12-depth.js.map +1 -1
- package/dist/icons/icon-12-hdg.js +1 -2
- package/dist/icons/icon-12-hdg.js.map +1 -1
- package/dist/icons/icon-12-heave.js +1 -2
- package/dist/icons/icon-12-heave.js.map +1 -1
- package/dist/icons/icon-12-pitch.js +1 -2
- package/dist/icons/icon-12-pitch.js.map +1 -1
- package/dist/icons/icon-12-roll.js +1 -2
- package/dist/icons/icon-12-roll.js.map +1 -1
- package/dist/icons/icon-12-rot.js +1 -2
- package/dist/icons/icon-12-rot.js.map +1 -1
- package/dist/icons/icon-12-sog.js +1 -2
- package/dist/icons/icon-12-sog.js.map +1 -1
- package/dist/icons/icon-12-stw.js +1 -2
- package/dist/icons/icon-12-stw.js.map +1 -1
- package/dist/icons/icon-12-turn.js +1 -2
- package/dist/icons/icon-12-turn.js.map +1 -1
- package/dist/icons/icon-12-yaw.js +1 -2
- package/dist/icons/icon-12-yaw.js.map +1 -1
- package/dist/icons/icon-13-camera-off.js +1 -2
- package/dist/icons/icon-13-camera-off.js.map +1 -1
- package/dist/icons/icon-13-camera-on.js +1 -2
- package/dist/icons/icon-13-camera-on.js.map +1 -1
- package/dist/icons/icon-13-camera-tilt.js +1 -2
- package/dist/icons/icon-13-camera-tilt.js.map +1 -1
- package/dist/icons/icon-13-coffee.js +1 -2
- package/dist/icons/icon-13-coffee.js.map +1 -1
- package/dist/icons/icon-13-container.js +1 -2
- package/dist/icons/icon-13-container.js.map +1 -1
- package/dist/icons/icon-13-crane.js +1 -2
- package/dist/icons/icon-13-crane.js.map +1 -1
- package/dist/icons/icon-13-latched.js +1 -2
- package/dist/icons/icon-13-latched.js.map +1 -1
- package/dist/icons/icon-13-winch.js +1 -2
- package/dist/icons/icon-13-winch.js.map +1 -1
- package/dist/icons/icon-14-alarm-abandon.js +1 -2
- package/dist/icons/icon-14-alarm-abandon.js.map +1 -1
- package/dist/icons/icon-14-alarm-acknowledged.js +1 -2
- package/dist/icons/icon-14-alarm-acknowledged.js.map +1 -1
- package/dist/icons/icon-14-alarm-badge.js +1 -2
- package/dist/icons/icon-14-alarm-badge.js.map +1 -1
- package/dist/icons/icon-14-alarm-emergency.js +1 -2
- package/dist/icons/icon-14-alarm-emergency.js.map +1 -1
- package/dist/icons/icon-14-alarm-fire.js +1 -2
- package/dist/icons/icon-14-alarm-fire.js.map +1 -1
- package/dist/icons/icon-14-alarm-general.js +1 -2
- package/dist/icons/icon-14-alarm-general.js.map +1 -1
- package/dist/icons/icon-14-alarm-noack.js +1 -2
- package/dist/icons/icon-14-alarm-noack.js.map +1 -1
- package/dist/icons/icon-14-alarm-outline.js +1 -2
- package/dist/icons/icon-14-alarm-outline.js.map +1 -1
- package/dist/icons/icon-14-alarm-pob.js +1 -2
- package/dist/icons/icon-14-alarm-pob.js.map +1 -1
- package/dist/icons/icon-14-alarm-rectified.js +1 -2
- package/dist/icons/icon-14-alarm-rectified.js.map +1 -1
- package/dist/icons/icon-14-alarm-silenced.js +1 -2
- package/dist/icons/icon-14-alarm-silenced.js.map +1 -1
- package/dist/icons/icon-14-alarm-transferred.js +1 -2
- package/dist/icons/icon-14-alarm-transferred.js.map +1 -1
- package/dist/icons/icon-14-alarm-trigger.js +1 -2
- package/dist/icons/icon-14-alarm-trigger.js.map +1 -1
- package/dist/icons/icon-14-alarm-unack.js +1 -2
- package/dist/icons/icon-14-alarm-unack.js.map +1 -1
- package/dist/icons/icon-14-alarm.js +1 -2
- package/dist/icons/icon-14-alarm.js.map +1 -1
- package/dist/icons/icon-14-alert-list.js +1 -2
- package/dist/icons/icon-14-alert-list.js.map +1 -1
- package/dist/icons/icon-14-alert-off.js +1 -2
- package/dist/icons/icon-14-alert-off.js.map +1 -1
- package/dist/icons/icon-14-alert-rectified.js +1 -2
- package/dist/icons/icon-14-alert-rectified.js.map +1 -1
- package/dist/icons/icon-14-alertheader-aggregated-large.js +1 -2
- package/dist/icons/icon-14-alertheader-aggregated-large.js.map +1 -1
- package/dist/icons/icon-14-alertheader-aggregated.js +1 -2
- package/dist/icons/icon-14-alertheader-aggregated.js.map +1 -1
- package/dist/icons/icon-14-alertheader-group-large.js +1 -2
- package/dist/icons/icon-14-alertheader-group-large.js.map +1 -1
- package/dist/icons/icon-14-alertheader-group.js +1 -2
- package/dist/icons/icon-14-alertheader-group.js.map +1 -1
- package/dist/icons/icon-14-alerts.js +1 -2
- package/dist/icons/icon-14-alerts.js.map +1 -1
- package/dist/icons/icon-14-audio-low.js +1 -2
- package/dist/icons/icon-14-audio-low.js.map +1 -1
- package/dist/icons/icon-14-audio.js +1 -2
- package/dist/icons/icon-14-audio.js.map +1 -1
- package/dist/icons/icon-14-caution-badge.js +1 -2
- package/dist/icons/icon-14-caution-badge.js.map +1 -1
- package/dist/icons/icon-14-caution-color.js +1 -2
- package/dist/icons/icon-14-caution-color.js.map +1 -1
- package/dist/icons/icon-14-caution-outline.js +1 -2
- package/dist/icons/icon-14-caution-outline.js.map +1 -1
- package/dist/icons/icon-14-caution.js +1 -2
- package/dist/icons/icon-14-caution.js.map +1 -1
- package/dist/icons/icon-14-exclamationmark.js +1 -2
- package/dist/icons/icon-14-exclamationmark.js.map +1 -1
- package/dist/icons/icon-14-message-none.js +1 -2
- package/dist/icons/icon-14-message-none.js.map +1 -1
- package/dist/icons/icon-14-message.js +1 -2
- package/dist/icons/icon-14-message.js.map +1 -1
- package/dist/icons/icon-14-mute.js +1 -2
- package/dist/icons/icon-14-mute.js.map +1 -1
- package/dist/icons/icon-14-notification-empty.js +1 -2
- package/dist/icons/icon-14-notification-empty.js.map +1 -1
- package/dist/icons/icon-14-notification.js +1 -2
- package/dist/icons/icon-14-notification.js.map +1 -1
- package/dist/icons/icon-14-rectified.js +1 -2
- package/dist/icons/icon-14-rectified.js.map +1 -1
- package/dist/icons/icon-14-running-color.js +1 -2
- package/dist/icons/icon-14-running-color.js.map +1 -1
- package/dist/icons/icon-14-running.js +1 -2
- package/dist/icons/icon-14-running.js.map +1 -1
- package/dist/icons/icon-14-shelf.js +1 -2
- package/dist/icons/icon-14-shelf.js.map +1 -1
- package/dist/icons/icon-14-signal-fail.js +1 -2
- package/dist/icons/icon-14-signal-fail.js.map +1 -1
- package/dist/icons/icon-14-warning-acknowledged.js +1 -2
- package/dist/icons/icon-14-warning-acknowledged.js.map +1 -1
- package/dist/icons/icon-14-warning-badge.js +1 -2
- package/dist/icons/icon-14-warning-badge.js.map +1 -1
- package/dist/icons/icon-14-warning-noack.js +1 -2
- package/dist/icons/icon-14-warning-noack.js.map +1 -1
- package/dist/icons/icon-14-warning-outline.js +1 -2
- package/dist/icons/icon-14-warning-outline.js.map +1 -1
- package/dist/icons/icon-14-warning-rectified.js +1 -2
- package/dist/icons/icon-14-warning-rectified.js.map +1 -1
- package/dist/icons/icon-14-warning-silenced.js +1 -2
- package/dist/icons/icon-14-warning-silenced.js.map +1 -1
- package/dist/icons/icon-14-warning-transferred.js +1 -2
- package/dist/icons/icon-14-warning-transferred.js.map +1 -1
- package/dist/icons/icon-14-warning-unacknowledged.js +1 -2
- package/dist/icons/icon-14-warning-unacknowledged.js.map +1 -1
- package/dist/icons/icon-14-warning.js +1 -2
- package/dist/icons/icon-14-warning.js.map +1 -1
- package/dist/icons/icon-15-backwards10s.js +1 -2
- package/dist/icons/icon-15-backwards10s.js.map +1 -1
- package/dist/icons/icon-15-call-active.js +1 -2
- package/dist/icons/icon-15-call-active.js.map +1 -1
- package/dist/icons/icon-15-call-end.js +1 -2
- package/dist/icons/icon-15-call-end.js.map +1 -1
- package/dist/icons/icon-15-call.js +1 -2
- package/dist/icons/icon-15-call.js.map +1 -1
- package/dist/icons/icon-15-contacts.js +1 -2
- package/dist/icons/icon-15-contacts.js.map +1 -1
- package/dist/icons/icon-15-forward10s.js +1 -2
- package/dist/icons/icon-15-forward10s.js.map +1 -1
- package/dist/icons/icon-15-fullscreen.js +1 -2
- package/dist/icons/icon-15-fullscreen.js.map +1 -1
- package/dist/icons/icon-15-galleryview.js +1 -2
- package/dist/icons/icon-15-galleryview.js.map +1 -1
- package/dist/icons/icon-15-history.js +1 -2
- package/dist/icons/icon-15-history.js.map +1 -1
- package/dist/icons/icon-15-live.js +1 -2
- package/dist/icons/icon-15-live.js.map +1 -1
- package/dist/icons/icon-15-loop.js +1 -2
- package/dist/icons/icon-15-loop.js.map +1 -1
- package/dist/icons/icon-15-mic-muted.js +1 -2
- package/dist/icons/icon-15-mic-muted.js.map +1 -1
- package/dist/icons/icon-15-mic.js +1 -2
- package/dist/icons/icon-15-mic.js.map +1 -1
- package/dist/icons/icon-15-pa-list.js +1 -2
- package/dist/icons/icon-15-pa-list.js.map +1 -1
- package/dist/icons/icon-15-pa.js +1 -2
- package/dist/icons/icon-15-pa.js.map +1 -1
- package/dist/icons/icon-15-pause-circle.js +1 -2
- package/dist/icons/icon-15-pause-circle.js.map +1 -1
- package/dist/icons/icon-15-pause.js +1 -2
- package/dist/icons/icon-15-pause.js.map +1 -1
- package/dist/icons/icon-15-play-circle.js +1 -2
- package/dist/icons/icon-15-play-circle.js.map +1 -1
- package/dist/icons/icon-15-play.js +1 -2
- package/dist/icons/icon-15-play.js.map +1 -1
- package/dist/icons/icon-15-radio.js +1 -2
- package/dist/icons/icon-15-radio.js.map +1 -1
- package/dist/icons/icon-15-rank-1.js +1 -2
- package/dist/icons/icon-15-rank-1.js.map +1 -1
- package/dist/icons/icon-15-rank-2.js +1 -2
- package/dist/icons/icon-15-rank-2.js.map +1 -1
- package/dist/icons/icon-15-rank-3.js +1 -2
- package/dist/icons/icon-15-rank-3.js.map +1 -1
- package/dist/icons/icon-15-rank-4.js +1 -2
- package/dist/icons/icon-15-rank-4.js.map +1 -1
- package/dist/icons/icon-15-rank-5.js +1 -2
- package/dist/icons/icon-15-rank-5.js.map +1 -1
- package/dist/icons/icon-15-rank-6.js +1 -2
- package/dist/icons/icon-15-rank-6.js.map +1 -1
- package/dist/icons/icon-15-record.js +1 -2
- package/dist/icons/icon-15-record.js.map +1 -1
- package/dist/icons/icon-15-singleview.js +1 -2
- package/dist/icons/icon-15-singleview.js.map +1 -1
- package/dist/icons/icon-15-skip-next-filled.js +1 -2
- package/dist/icons/icon-15-skip-next-filled.js.map +1 -1
- package/dist/icons/icon-15-skip-next.js +1 -2
- package/dist/icons/icon-15-skip-next.js.map +1 -1
- package/dist/icons/icon-15-skip-previous-filled.js +1 -2
- package/dist/icons/icon-15-skip-previous-filled.js.map +1 -1
- package/dist/icons/icon-15-skip-previous.js +1 -2
- package/dist/icons/icon-15-skip-previous.js.map +1 -1
- package/dist/icons/icon-16-command-available.js +1 -2
- package/dist/icons/icon-16-command-available.js.map +1 -1
- package/dist/icons/icon-16-command-in.js +1 -2
- package/dist/icons/icon-16-command-in.js.map +1 -1
- package/dist/icons/icon-16-command-no.js +1 -2
- package/dist/icons/icon-16-command-no.js.map +1 -1
- package/dist/icons/icon-16-command-partial.js +1 -2
- package/dist/icons/icon-16-command-partial.js.map +1 -1
- package/dist/icons/icon-16-command-request.js +1 -2
- package/dist/icons/icon-16-command-request.js.map +1 -1
- package/dist/icons/icon-16-command-shared.js +1 -2
- package/dist/icons/icon-16-command-shared.js.map +1 -1
- package/dist/icons/icon-16-command-take.js +1 -2
- package/dist/icons/icon-16-command-take.js.map +1 -1
- package/dist/icons/icon-16-lock.js +1 -2
- package/dist/icons/icon-16-lock.js.map +1 -1
- package/dist/icons/icon-17-diver.js +1 -2
- package/dist/icons/icon-17-diver.js.map +1 -1
- package/dist/icons/icon-17-kayaking.js +1 -2
- package/dist/icons/icon-17-kayaking.js.map +1 -1
- package/dist/icons/icon-17-kitesurfing.js +1 -2
- package/dist/icons/icon-17-kitesurfing.js.map +1 -1
- package/dist/icons/icon-17-rowing.js +1 -2
- package/dist/icons/icon-17-rowing.js.map +1 -1
- package/dist/icons/icon-17-ship-bulkcarrier.js +1 -2
- package/dist/icons/icon-17-ship-bulkcarrier.js.map +1 -1
- package/dist/icons/icon-17-ship-carferry.js +1 -2
- package/dist/icons/icon-17-ship-carferry.js.map +1 -1
- package/dist/icons/icon-17-ship-container.js +1 -2
- package/dist/icons/icon-17-ship-container.js.map +1 -1
- package/dist/icons/icon-17-ship-fishing.js +1 -2
- package/dist/icons/icon-17-ship-fishing.js.map +1 -1
- package/dist/icons/icon-17-ship-highspeed.js +1 -2
- package/dist/icons/icon-17-ship-highspeed.js.map +1 -1
- package/dist/icons/icon-17-ship-navy.js +1 -2
- package/dist/icons/icon-17-ship-navy.js.map +1 -1
- package/dist/icons/icon-17-ship-offshore.js +1 -2
- package/dist/icons/icon-17-ship-offshore.js.map +1 -1
- package/dist/icons/icon-17-ship-passenger.js +1 -2
- package/dist/icons/icon-17-ship-passenger.js.map +1 -1
- package/dist/icons/icon-17-ship-sailboat.js +1 -2
- package/dist/icons/icon-17-ship-sailboat.js.map +1 -1
- package/dist/icons/icon-17-ship-sailship.js +1 -2
- package/dist/icons/icon-17-ship-sailship.js.map +1 -1
- package/dist/icons/icon-17-ship-tanker.js +1 -2
- package/dist/icons/icon-17-ship-tanker.js.map +1 -1
- package/dist/icons/icon-17-ship-tugboat.js +1 -2
- package/dist/icons/icon-17-ship-tugboat.js.map +1 -1
- package/dist/icons/icon-17-ship-yacht.js +1 -2
- package/dist/icons/icon-17-ship-yacht.js.map +1 -1
- package/dist/icons/icon-17-surfing.js +1 -2
- package/dist/icons/icon-17-surfing.js.map +1 -1
- package/dist/icons/icon-17-swimming.js +1 -2
- package/dist/icons/icon-17-swimming.js.map +1 -1
- package/dist/icons/icon-18-ais-aground.js +1 -2
- package/dist/icons/icon-18-ais-aground.js.map +1 -1
- package/dist/icons/icon-18-ais-anchor.js +1 -2
- package/dist/icons/icon-18-ais-anchor.js.map +1 -1
- package/dist/icons/icon-18-ais-anchored.js +1 -2
- package/dist/icons/icon-18-ais-anchored.js.map +1 -1
- package/dist/icons/icon-18-ais-fishing.js +1 -2
- package/dist/icons/icon-18-ais-fishing.js.map +1 -1
- package/dist/icons/icon-18-ais-moored.js +1 -2
- package/dist/icons/icon-18-ais-moored.js.map +1 -1
- package/dist/icons/icon-18-ais-notcommand.js +1 -2
- package/dist/icons/icon-18-ais-notcommand.js.map +1 -1
- package/dist/icons/icon-18-ais-notunderway.js +1 -2
- package/dist/icons/icon-18-ais-notunderway.js.map +1 -1
- package/dist/icons/icon-18-ais-underwaysailing.js +1 -2
- package/dist/icons/icon-18-ais-underwaysailing.js.map +1 -1
- package/dist/icons/icon-18-ais-underwayusingengine.js +1 -2
- package/dist/icons/icon-18-ais-underwayusingengine.js.map +1 -1
- package/dist/icons/icon-19-analytics.js +1 -2
- package/dist/icons/icon-19-analytics.js.map +1 -1
- package/dist/icons/icon-19-current.js +1 -2
- package/dist/icons/icon-19-current.js.map +1 -1
- package/dist/icons/icon-19-hide.js +1 -2
- package/dist/icons/icon-19-hide.js.map +1 -1
- package/dist/icons/icon-19-limits-attention.js +1 -2
- package/dist/icons/icon-19-limits-attention.js.map +1 -1
- package/dist/icons/icon-19-limits-improving.js +1 -2
- package/dist/icons/icon-19-limits-improving.js.map +1 -1
- package/dist/icons/icon-19-limits-inside.js +1 -2
- package/dist/icons/icon-19-limits-inside.js.map +1 -1
- package/dist/icons/icon-19-limits-outside-over.js +1 -2
- package/dist/icons/icon-19-limits-outside-over.js.map +1 -1
- package/dist/icons/icon-19-limits-outside-under.js +1 -2
- package/dist/icons/icon-19-limits-outside-under.js.map +1 -1
- package/dist/icons/icon-19-pilot-onboard.js +1 -2
- package/dist/icons/icon-19-pilot-onboard.js.map +1 -1
- package/dist/icons/icon-19-speed-good.js +1 -2
- package/dist/icons/icon-19-speed-good.js.map +1 -1
- package/dist/icons/icon-19-speed-high.js +1 -2
- package/dist/icons/icon-19-speed-high.js.map +1 -1
- package/dist/icons/icon-19-speed-low.js +1 -2
- package/dist/icons/icon-19-speed-low.js.map +1 -1
- package/dist/icons/icon-19-speed.js +1 -2
- package/dist/icons/icon-19-speed.js.map +1 -1
- package/dist/icons/icon-19-swell.js +1 -2
- package/dist/icons/icon-19-swell.js.map +1 -1
- package/dist/icons/icon-19-temperature.js +1 -2
- package/dist/icons/icon-19-temperature.js.map +1 -1
- package/dist/icons/icon-19-time-less.js +1 -2
- package/dist/icons/icon-19-time-less.js.map +1 -1
- package/dist/icons/icon-19-time-more.js +1 -2
- package/dist/icons/icon-19-time-more.js.map +1 -1
- package/dist/icons/icon-19-trend-down.js +1 -2
- package/dist/icons/icon-19-trend-down.js.map +1 -1
- package/dist/icons/icon-19-trend-up.js +1 -2
- package/dist/icons/icon-19-trend-up.js.map +1 -1
- package/dist/icons/icon-19-trophy.js +1 -2
- package/dist/icons/icon-19-trophy.js.map +1 -1
- package/dist/icons/icon-19-view.js +1 -2
- package/dist/icons/icon-19-view.js.map +1 -1
- package/dist/icons/icon-19-wave.js +1 -2
- package/dist/icons/icon-19-wave.js.map +1 -1
- package/dist/icons/icon-19-weather.js +1 -2
- package/dist/icons/icon-19-weather.js.map +1 -1
- package/dist/icons/icon-20-cell-bad.js +1 -2
- package/dist/icons/icon-20-cell-bad.js.map +1 -1
- package/dist/icons/icon-20-cell-full.js +1 -2
- package/dist/icons/icon-20-cell-full.js.map +1 -1
- package/dist/icons/icon-20-cell-low.js +1 -2
- package/dist/icons/icon-20-cell-low.js.map +1 -1
- package/dist/icons/icon-20-cell-medium.js +1 -2
- package/dist/icons/icon-20-cell-medium.js.map +1 -1
- package/dist/icons/icon-20-cell-off.js +1 -2
- package/dist/icons/icon-20-cell-off.js.map +1 -1
- package/dist/icons/icon-20-satellite-full.js +1 -2
- package/dist/icons/icon-20-satellite-full.js.map +1 -1
- package/dist/icons/icon-20-satellite-low.js +1 -2
- package/dist/icons/icon-20-satellite-low.js.map +1 -1
- package/dist/icons/icon-20-satellite-medium.js +1 -2
- package/dist/icons/icon-20-satellite-medium.js.map +1 -1
- package/dist/icons/icon-20-satellite-off.js +1 -2
- package/dist/icons/icon-20-satellite-off.js.map +1 -1
- package/dist/icons/icon-20-sensor-gps-bad.js +1 -2
- package/dist/icons/icon-20-sensor-gps-bad.js.map +1 -1
- package/dist/icons/icon-20-sensor-gps-full.js +1 -2
- package/dist/icons/icon-20-sensor-gps-full.js.map +1 -1
- package/dist/icons/icon-20-sensor-gps-low.js +1 -2
- package/dist/icons/icon-20-sensor-gps-low.js.map +1 -1
- package/dist/icons/icon-20-sensor-gps-medium.js +1 -2
- package/dist/icons/icon-20-sensor-gps-medium.js.map +1 -1
- package/dist/icons/icon-20-sensor-gyro.js +1 -2
- package/dist/icons/icon-20-sensor-gyro.js.map +1 -1
- package/dist/icons/icon-20-sensor-wind.js +1 -2
- package/dist/icons/icon-20-sensor-wind.js.map +1 -1
- package/dist/icons/icon-20-usb.js +1 -2
- package/dist/icons/icon-20-usb.js.map +1 -1
- package/dist/icons/icon-20-wifi-bad.js +1 -2
- package/dist/icons/icon-20-wifi-bad.js.map +1 -1
- package/dist/icons/icon-20-wifi-off.js +1 -2
- package/dist/icons/icon-20-wifi-off.js.map +1 -1
- package/dist/icons/icon-20-wifi-wifi_statusbar_0.js +1 -2
- package/dist/icons/icon-20-wifi-wifi_statusbar_0.js.map +1 -1
- package/dist/icons/icon-20-wifi-wifi_statusbar_1.js +1 -2
- package/dist/icons/icon-20-wifi-wifi_statusbar_1.js.map +1 -1
- package/dist/icons/icon-20-wifi-wifi_statusbar_2.js +1 -2
- package/dist/icons/icon-20-wifi-wifi_statusbar_2.js.map +1 -1
- package/dist/icons/icon-20-wifi-wifi_statusbar_3.js +1 -2
- package/dist/icons/icon-20-wifi-wifi_statusbar_3.js.map +1 -1
- package/dist/icons/icon-20-wifi-wifi_statusbar_4.js +1 -2
- package/dist/icons/icon-20-wifi-wifi_statusbar_4.js.map +1 -1
- package/dist/icons/icon-20-wifi2-off.js +1 -2
- package/dist/icons/icon-20-wifi2-off.js.map +1 -1
- package/dist/icons/icon-20-wifi2.js +1 -2
- package/dist/icons/icon-20-wifi2.js.map +1 -1
- package/dist/icons/icon-frame2622.js +1 -2
- package/dist/icons/icon-frame2622.js.map +1 -1
- package/dist/icons/icon-iec-02-ais-target-activated-selected.js +1 -2
- package/dist/icons/icon-iec-02-ais-target-activated-selected.js.map +1 -1
- package/dist/icons/icon-iec-02-ais-target-activated.js +1 -2
- package/dist/icons/icon-iec-02-ais-target-activated.js.map +1 -1
- package/dist/icons/icon-iec-02-associated-target-ais.js +1 -2
- package/dist/icons/icon-iec-02-associated-target-ais.js.map +1 -1
- package/dist/icons/icon-iec-02-associated-target-radar.js +1 -2
- package/dist/icons/icon-iec-02-associated-target-radar.js.map +1 -1
- package/dist/icons/icon-iec-02-radar-target-tracked-selected.js +1 -2
- package/dist/icons/icon-iec-02-radar-target-tracked-selected.js.map +1 -1
- package/dist/icons/icon-iec-02-radar-target-tracked.js +1 -2
- package/dist/icons/icon-iec-02-radar-target-tracked.js.map +1 -1
- package/dist/icons/icon-temp.js +1 -2
- package/dist/icons/icon-temp.js.map +1 -1
- package/dist/navigation-instruments/azimuth-thruster/azimuth-thruster.js +1 -2
- package/dist/navigation-instruments/azimuth-thruster/azimuth-thruster.js.map +1 -1
- package/dist/navigation-instruments/azimuth-thruster-labeled/azimuth-thruster-labeled.js +1 -2
- package/dist/navigation-instruments/azimuth-thruster-labeled/azimuth-thruster-labeled.js.map +1 -1
- package/dist/navigation-instruments/badge-command/badge-command.js +1 -2
- package/dist/navigation-instruments/badge-command/badge-command.js.map +1 -1
- package/dist/navigation-instruments/compass/arrow.js.map +1 -1
- package/dist/navigation-instruments/compass/compass.js +1 -2
- package/dist/navigation-instruments/compass/compass.js.map +1 -1
- package/dist/navigation-instruments/compass/radial-tickmark.js +1 -2
- package/dist/navigation-instruments/compass/radial-tickmark.js.map +1 -1
- package/dist/navigation-instruments/compass-flat/compass-flat.js +1 -2
- package/dist/navigation-instruments/compass-flat/compass-flat.js.map +1 -1
- package/dist/navigation-instruments/instrument-field/instrument-field.js +1 -2
- package/dist/navigation-instruments/instrument-field/instrument-field.js.map +1 -1
- package/dist/navigation-instruments/main-engine/main-engine.js +1 -2
- package/dist/navigation-instruments/main-engine/main-engine.js.map +1 -1
- package/dist/navigation-instruments/poi-graphic-line/poi-config.js.map +1 -1
- package/dist/navigation-instruments/poi-graphic-line/poi-graphic-line.js +1 -2
- package/dist/navigation-instruments/poi-graphic-line/poi-graphic-line.js.map +1 -1
- package/dist/navigation-instruments/poi-line/poi-line.js +1 -2
- package/dist/navigation-instruments/poi-line/poi-line.js.map +1 -1
- package/dist/navigation-instruments/poi-target/arrow.js +1 -2
- package/dist/navigation-instruments/poi-target/arrow.js.map +1 -1
- package/dist/navigation-instruments/poi-target/poi-target.js +1 -2
- package/dist/navigation-instruments/poi-target/poi-target.js.map +1 -1
- package/dist/navigation-instruments/rudder/rudder.js +1 -2
- package/dist/navigation-instruments/rudder/rudder.js.map +1 -1
- package/dist/navigation-instruments/thruster/advice.js.map +1 -1
- package/dist/navigation-instruments/thruster/propeller.js.map +1 -1
- package/dist/navigation-instruments/thruster/thruster.js +1 -2
- package/dist/navigation-instruments/thruster/thruster.js.map +1 -1
- package/dist/navigation-instruments/thruster/tickmark.js.map +1 -1
- package/dist/navigation-instruments/watch/advice.js.map +1 -1
- package/dist/navigation-instruments/watch/label.js.map +1 -1
- package/dist/navigation-instruments/watch/tickmark.js.map +1 -1
- package/dist/navigation-instruments/watch/watch.js +1 -2
- package/dist/navigation-instruments/watch/watch.js.map +1 -1
- package/dist/navigation-instruments/watch-flat/tickmark-flat.js.map +1 -1
- package/dist/navigation-instruments/watch-flat/watch-flat.js +1 -2
- package/dist/navigation-instruments/watch-flat/watch-flat.js.map +1 -1
- package/dist/storybook-util.js.map +1 -1
- package/dist/svghelpers/circle.js.map +1 -1
- package/dist/svghelpers/rectangular.js.map +1 -1
- package/dist/svghelpers/roundedArch.js.map +1 -1
- package/dist/time.js.map +1 -1
- package/package.json +7 -7
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"poi-target.js","sources":["../../../src/navigation-instruments/poi-target/poi-target.ts"],"sourcesContent":["import {LitElement, html, unsafeCSS} from 'lit';\nimport {customElement, property} from 'lit/decorators.js';\nimport compentStyle from './poi-target.css?inline';\nimport {classMap} from 'lit/directives/class-map.js';\nimport '../poi-line/poi-line';\nimport '../../components/poi-target-button/poi-target-button';\nimport {POIStyle} from '../poi-graphic-line/poi-config';\nimport {pointerArrow} from './arrow';\nimport {PoiTargetButtonValue} from '../../components/poi-target-button/poi-target-button';\n\nexport enum TargetValue {\n enabled = 'enabled',\n checked = 'checked',\n}\n\nfunction valueToPointerStyle(value: TargetValue): POIStyle {\n let style = null;\n switch (value) {\n case TargetValue.enabled:\n style = POIStyle.Normal;\n break;\n case TargetValue.checked:\n style = POIStyle.Enhanced;\n break;\n default:\n throw new Error(`Value has no style: ${style}`);\n }\n return style;\n}\n\nfunction valueToButtonStyle(value: TargetValue): PoiTargetButtonValue {\n switch (value) {\n case TargetValue.enabled:\n return PoiTargetButtonValue.unchecked;\n case 'checked':\n return PoiTargetButtonValue.checked;\n default:\n throw new Error(`Value has no style: ${value}`);\n }\n}\n\nexport enum Pointer {\n Line = 'line',\n ArrowLeft = 'arrow-left',\n ArrowRight = 'arrow-right',\n None = 'null',\n}\n\n@customElement('obc-poi-target')\nexport class ObcPoiTarget extends LitElement {\n @property({type: Number}) height: number = 188;\n @property({type: String}) value: TargetValue = TargetValue.enabled;\n @property({type: String}) pointerType: Pointer = Pointer.Line;\n @property({type: Number}) relativeDirection = 0;\n\n override render() {\n let pointer = null;\n let hasArrowPointer = false;\n switch (this.pointerType) {\n case Pointer.Line:\n pointer = html`<obc-poi-line\n height=${this.height}\n lineStyle=${valueToPointerStyle(this.value)}\n ></obc-poi-line>`;\n break;\n case Pointer.ArrowLeft:\n pointer = pointerArrow(this.pointerType, this.value);\n hasArrowPointer = true;\n break;\n case Pointer.ArrowRight:\n pointer = pointerArrow(this.pointerType, this.value);\n hasArrowPointer = true;\n break;\n case Pointer.None:\n pointer = null;\n break;\n default:\n throw new Error(`Pointer type ${this.pointerType} not supported`);\n }\n\n return html`\n <div\n class=${classMap({\n wrapper: true,\n ['type-' + this.pointerType]: true,\n })}\n >\n <obc-poi-target-button\n .value=${valueToButtonStyle(this.value)}\n .hasPointer=${hasArrowPointer}\n .relativeDirection=${this.relativeDirection}\n ></obc-poi-target-button>\n ${pointer}\n </div>\n `;\n }\n\n static override styles = unsafeCSS(compentStyle);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'obc-poi-target': ObcPoiTarget;\n }\n}\n"],"names":["TargetValue","Pointer"],"mappings":"
|
1
|
+
{"version":3,"file":"poi-target.js","sources":["../../../src/navigation-instruments/poi-target/poi-target.ts"],"sourcesContent":["import {LitElement, html, unsafeCSS} from 'lit';\nimport {customElement, property} from 'lit/decorators.js';\nimport compentStyle from './poi-target.css?inline';\nimport {classMap} from 'lit/directives/class-map.js';\nimport '../poi-line/poi-line';\nimport '../../components/poi-target-button/poi-target-button';\nimport {POIStyle} from '../poi-graphic-line/poi-config';\nimport {pointerArrow} from './arrow';\nimport {PoiTargetButtonValue} from '../../components/poi-target-button/poi-target-button';\n\nexport enum TargetValue {\n enabled = 'enabled',\n checked = 'checked',\n}\n\nfunction valueToPointerStyle(value: TargetValue): POIStyle {\n let style = null;\n switch (value) {\n case TargetValue.enabled:\n style = POIStyle.Normal;\n break;\n case TargetValue.checked:\n style = POIStyle.Enhanced;\n break;\n default:\n throw new Error(`Value has no style: ${style}`);\n }\n return style;\n}\n\nfunction valueToButtonStyle(value: TargetValue): PoiTargetButtonValue {\n switch (value) {\n case TargetValue.enabled:\n return PoiTargetButtonValue.unchecked;\n case 'checked':\n return PoiTargetButtonValue.checked;\n default:\n throw new Error(`Value has no style: ${value}`);\n }\n}\n\nexport enum Pointer {\n Line = 'line',\n ArrowLeft = 'arrow-left',\n ArrowRight = 'arrow-right',\n None = 'null',\n}\n\n@customElement('obc-poi-target')\nexport class ObcPoiTarget extends LitElement {\n @property({type: Number}) height: number = 188;\n @property({type: String}) value: TargetValue = TargetValue.enabled;\n @property({type: String}) pointerType: Pointer = Pointer.Line;\n @property({type: Number}) relativeDirection = 0;\n\n override render() {\n let pointer = null;\n let hasArrowPointer = false;\n switch (this.pointerType) {\n case Pointer.Line:\n pointer = html`<obc-poi-line\n height=${this.height}\n lineStyle=${valueToPointerStyle(this.value)}\n ></obc-poi-line>`;\n break;\n case Pointer.ArrowLeft:\n pointer = pointerArrow(this.pointerType, this.value);\n hasArrowPointer = true;\n break;\n case Pointer.ArrowRight:\n pointer = pointerArrow(this.pointerType, this.value);\n hasArrowPointer = true;\n break;\n case Pointer.None:\n pointer = null;\n break;\n default:\n throw new Error(`Pointer type ${this.pointerType} not supported`);\n }\n\n return html`\n <div\n class=${classMap({\n wrapper: true,\n ['type-' + this.pointerType]: true,\n })}\n >\n <obc-poi-target-button\n .value=${valueToButtonStyle(this.value)}\n .hasPointer=${hasArrowPointer}\n .relativeDirection=${this.relativeDirection}\n ></obc-poi-target-button>\n ${pointer}\n </div>\n `;\n }\n\n static override styles = unsafeCSS(compentStyle);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'obc-poi-target': ObcPoiTarget;\n }\n}\n"],"names":["TargetValue","Pointer"],"mappings":";;;;;;;;;;;;;;;;;;AAUY,IAAA,gCAAAA,iBAAL;AACLA,eAAA,SAAU,IAAA;AACVA,eAAA,SAAU,IAAA;AAFAA,SAAAA;AAAA,GAAA,eAAA,CAAA,CAAA;AAKZ,SAAS,oBAAoB,OAA8B;AACzD,MAAI,QAAQ;AACZ,UAAQ,OAAO;AAAA,IACb,KAAK;AACH,cAAQ,SAAS;AACjB;AAAA,IACF,KAAK;AACH,cAAQ,SAAS;AACjB;AAAA,IACF;AACE,YAAM,IAAI,MAAM,uBAAuB,KAAK,EAAE;AAAA,EAAA;AAE3C,SAAA;AACT;AAEA,SAAS,mBAAmB,OAA0C;AACpE,UAAQ,OAAO;AAAA,IACb,KAAK;AACH,aAAO,qBAAqB;AAAA,IAC9B,KAAK;AACH,aAAO,qBAAqB;AAAA,IAC9B;AACE,YAAM,IAAI,MAAM,uBAAuB,KAAK,EAAE;AAAA,EAAA;AAEpD;AAEY,IAAA,4BAAAC,aAAL;AACLA,WAAA,MAAO,IAAA;AACPA,WAAA,WAAY,IAAA;AACZA,WAAA,YAAa,IAAA;AACbA,WAAA,MAAO,IAAA;AAJGA,SAAAA;AAAA,GAAA,WAAA,CAAA,CAAA;AAQC,IAAA,eAAN,cAA2B,WAAW;AAAA,EAAtC,cAAA;AAAA,UAAA,GAAA,SAAA;AACsC,SAAA,SAAA;AACI,SAAA,QAAA;AACE,SAAA,cAAA;AACH,SAAA,oBAAA;AAAA,EAAA;AAAA,EAErC,SAAS;AAChB,QAAI,UAAU;AACd,QAAI,kBAAkB;AACtB,YAAQ,KAAK,aAAa;AAAA,MACxB,KAAK;AACO,kBAAA;AAAA,mBACC,KAAK,MAAM;AAAA,sBACR,oBAAoB,KAAK,KAAK,CAAC;AAAA;AAE7C;AAAA,MACF,KAAK;AACH,kBAAU,aAAa,KAAK,aAAa,KAAK,KAAK;AACjC,0BAAA;AAClB;AAAA,MACF,KAAK;AACH,kBAAU,aAAa,KAAK,aAAa,KAAK,KAAK;AACjC,0BAAA;AAClB;AAAA,MACF,KAAK;AACO,kBAAA;AACV;AAAA,MACF;AACE,cAAM,IAAI,MAAM,gBAAgB,KAAK,WAAW,gBAAgB;AAAA,IAAA;AAG7D,WAAA;AAAA;AAAA,gBAEK,SAAS;AAAA,MACf,SAAS;AAAA,MACT,CAAC,UAAU,KAAK,WAAW,GAAG;AAAA,IAAA,CAC/B,CAAC;AAAA;AAAA;AAAA,mBAGS,mBAAmB,KAAK,KAAK,CAAC;AAAA,wBACzB,eAAe;AAAA,+BACR,KAAK,iBAAiB;AAAA;AAAA,UAE3C,OAAO;AAAA;AAAA;AAAA,EAAA;AAMjB;AAjDa,aAgDK,SAAS,UAAU,YAAY;AA/CrB,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAO,CAAA;AAAA,GADb,aACe,WAAA,UAAA,CAAA;AACA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAO,CAAA;AAAA,GAFb,aAEe,WAAA,SAAA,CAAA;AACA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAO,CAAA;AAAA,GAHb,aAGe,WAAA,eAAA,CAAA;AACA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,OAAO,CAAA;AAAA,GAJb,aAIe,WAAA,qBAAA,CAAA;AAJf,eAAN,gBAAA;AAAA,EADN,cAAc,gBAAgB;AAAA,GAClB,YAAA;"}
|
@@ -10,8 +10,7 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
10
10
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
11
11
|
if (decorator = decorators[i])
|
12
12
|
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
13
|
-
if (kind && result)
|
14
|
-
__defProp(target, key, result);
|
13
|
+
if (kind && result) __defProp(target, key, result);
|
15
14
|
return result;
|
16
15
|
};
|
17
16
|
let ObcRudder = class extends LitElement {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rudder.js","sources":["../../../src/navigation-instruments/rudder/rudder.ts"],"sourcesContent":["import {LitElement, css, html, svg} from 'lit';\nimport {customElement, property} from 'lit/decorators.js';\nimport '../watch/watch';\nimport {roundedArch} from '../../svghelpers/roundedArch';\nimport {Tickmark, TickmarkType} from '../watch/tickmark';\n\n@customElement('obc-rudder')\nexport class ObcRudder extends LitElement {\n @property({type: Number}) angle = 0;\n @property({type: Number}) setpoint: number | undefined;\n @property({type: Boolean}) atSetpoint: boolean = false;\n @property({type: Boolean}) touching: boolean = false;\n @property({type: Boolean}) disableAutoAtSetpoint: boolean = false;\n @property({type: Number}) autoAtSetpointDeadband: number = 2;\n @property({type: Number}) maxAngle = 90;\n\n atSetpointCalc(): boolean {\n if (this.setpoint === undefined) {\n return false;\n }\n\n if (this.touching) {\n return false;\n }\n\n if (!this.disableAutoAtSetpoint) {\n return Math.abs(this.angle - this.setpoint) < this.autoAtSetpointDeadband;\n }\n return this.atSetpoint;\n }\n\n override render() {\n const barStartAngle = this.angle > 0 ? 180 - this.angle : 180;\n const barEndAngle = this.angle > 0 ? 180 : 180 - this.angle;\n const bar = svg`\n <mask id=\"clipBar\">\n <path d=${roundedArch({\n r: 160 - 48,\n R: 160,\n startAngle: 180 - this.maxAngle,\n endAngle: 180 + this.maxAngle,\n roundInsideCut: true,\n roundOutsideCut: false,\n })}\n fill=\"white\"\n stroke=\"white\"\n />\n </mask>\n <path d=${roundedArch({\n r: 160 - 48,\n R: 160,\n startAngle: barStartAngle,\n endAngle: barEndAngle,\n roundInsideCut: false,\n roundOutsideCut: false,\n })} \n fill=\"var(--instrument-enhanced-secondary-color)\"\n stroke=\"var(--instrument-enhanced-secondary-color)\"\n mask=\"url(#clipBar)\"\n />`;\n const setpointAngle =\n this.setpoint !== undefined ? 180 - this.setpoint : undefined;\n\n const tickmarks: Tickmark[] = [\n {angle: 180, type: TickmarkType.primary, text: '0'},\n {\n angle: 180 - this.maxAngle,\n type: TickmarkType.secondary,\n text: this.maxAngle.toFixed(0),\n },\n {\n angle: 180 + this.maxAngle,\n type: TickmarkType.secondary,\n text: (-this.maxAngle).toFixed(0),\n },\n ];\n\n let helpAngle: null | number = null;\n if (this.maxAngle > 70) {\n helpAngle = 45;\n } else if (this.maxAngle > 50) {\n helpAngle = 30;\n } else if (this.maxAngle > 40) {\n helpAngle = 22.5;\n }\n\n if (helpAngle !== null) {\n tickmarks.push({angle: 180 - helpAngle, type: TickmarkType.primary});\n tickmarks.push({angle: 180 + helpAngle, type: TickmarkType.primary});\n }\n\n return html`\n <div class=\"container\">\n <obc-watch\n .cutAngleStart=${180 - this.maxAngle}\n .cutAngleEnd=${180 + this.maxAngle}\n .angleSetpoint=${setpointAngle}\n .atAngleSetpoint=${this.atSetpointCalc()}\n .padding=${48}\n .tickmarks=${tickmarks}\n roundOutsideCut\n ></obc-watch>\n <svg class=\"rudder\" viewBox=\"-224 -224 448 448\">\n <path\n d=${roundedArch({\n r: 160 - 48,\n R: 160,\n startAngle: 180 - this.maxAngle,\n endAngle: 180 + this.maxAngle,\n roundInsideCut: true,\n roundOutsideCut: false,\n })}\n fill=\"var(--instrument-frame-secondary-color)\"\n stroke=\"var(--instrument-frame-tertiary-color)\"\n vector-effect=\"non-scaling-stroke\"\n stroke-width=\"1\"\n ></path>\n ${bar}\n </svg>\n </div>\n `;\n }\n\n static override styles = css`\n * {\n box-sizing: border-box;\n }\n\n .container {\n position: relative;\n width: 100%;\n height: 100%;\n }\n\n .container > * {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n `;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'obc-rudder': ObcRudder;\n }\n}\n"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"rudder.js","sources":["../../../src/navigation-instruments/rudder/rudder.ts"],"sourcesContent":["import {LitElement, css, html, svg} from 'lit';\nimport {customElement, property} from 'lit/decorators.js';\nimport '../watch/watch';\nimport {roundedArch} from '../../svghelpers/roundedArch';\nimport {Tickmark, TickmarkType} from '../watch/tickmark';\n\n@customElement('obc-rudder')\nexport class ObcRudder extends LitElement {\n @property({type: Number}) angle = 0;\n @property({type: Number}) setpoint: number | undefined;\n @property({type: Boolean}) atSetpoint: boolean = false;\n @property({type: Boolean}) touching: boolean = false;\n @property({type: Boolean}) disableAutoAtSetpoint: boolean = false;\n @property({type: Number}) autoAtSetpointDeadband: number = 2;\n @property({type: Number}) maxAngle = 90;\n\n atSetpointCalc(): boolean {\n if (this.setpoint === undefined) {\n return false;\n }\n\n if (this.touching) {\n return false;\n }\n\n if (!this.disableAutoAtSetpoint) {\n return Math.abs(this.angle - this.setpoint) < this.autoAtSetpointDeadband;\n }\n return this.atSetpoint;\n }\n\n override render() {\n const barStartAngle = this.angle > 0 ? 180 - this.angle : 180;\n const barEndAngle = this.angle > 0 ? 180 : 180 - this.angle;\n const bar = svg`\n <mask id=\"clipBar\">\n <path d=${roundedArch({\n r: 160 - 48,\n R: 160,\n startAngle: 180 - this.maxAngle,\n endAngle: 180 + this.maxAngle,\n roundInsideCut: true,\n roundOutsideCut: false,\n })}\n fill=\"white\"\n stroke=\"white\"\n />\n </mask>\n <path d=${roundedArch({\n r: 160 - 48,\n R: 160,\n startAngle: barStartAngle,\n endAngle: barEndAngle,\n roundInsideCut: false,\n roundOutsideCut: false,\n })} \n fill=\"var(--instrument-enhanced-secondary-color)\"\n stroke=\"var(--instrument-enhanced-secondary-color)\"\n mask=\"url(#clipBar)\"\n />`;\n const setpointAngle =\n this.setpoint !== undefined ? 180 - this.setpoint : undefined;\n\n const tickmarks: Tickmark[] = [\n {angle: 180, type: TickmarkType.primary, text: '0'},\n {\n angle: 180 - this.maxAngle,\n type: TickmarkType.secondary,\n text: this.maxAngle.toFixed(0),\n },\n {\n angle: 180 + this.maxAngle,\n type: TickmarkType.secondary,\n text: (-this.maxAngle).toFixed(0),\n },\n ];\n\n let helpAngle: null | number = null;\n if (this.maxAngle > 70) {\n helpAngle = 45;\n } else if (this.maxAngle > 50) {\n helpAngle = 30;\n } else if (this.maxAngle > 40) {\n helpAngle = 22.5;\n }\n\n if (helpAngle !== null) {\n tickmarks.push({angle: 180 - helpAngle, type: TickmarkType.primary});\n tickmarks.push({angle: 180 + helpAngle, type: TickmarkType.primary});\n }\n\n return html`\n <div class=\"container\">\n <obc-watch\n .cutAngleStart=${180 - this.maxAngle}\n .cutAngleEnd=${180 + this.maxAngle}\n .angleSetpoint=${setpointAngle}\n .atAngleSetpoint=${this.atSetpointCalc()}\n .padding=${48}\n .tickmarks=${tickmarks}\n roundOutsideCut\n ></obc-watch>\n <svg class=\"rudder\" viewBox=\"-224 -224 448 448\">\n <path\n d=${roundedArch({\n r: 160 - 48,\n R: 160,\n startAngle: 180 - this.maxAngle,\n endAngle: 180 + this.maxAngle,\n roundInsideCut: true,\n roundOutsideCut: false,\n })}\n fill=\"var(--instrument-frame-secondary-color)\"\n stroke=\"var(--instrument-frame-tertiary-color)\"\n vector-effect=\"non-scaling-stroke\"\n stroke-width=\"1\"\n ></path>\n ${bar}\n </svg>\n </div>\n `;\n }\n\n static override styles = css`\n * {\n box-sizing: border-box;\n }\n\n .container {\n position: relative;\n width: 100%;\n height: 100%;\n }\n\n .container > * {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n `;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'obc-rudder': ObcRudder;\n }\n}\n"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"advice.js","sources":["../../../src/navigation-instruments/thruster/advice.ts"],"sourcesContent":["import {SVGTemplateResult, nothing, svg} from 'lit';\nimport {AdviceState, AdviceType} from '../watch/advice';\nimport {TickmarkStyle} from '../watch/tickmark';\nimport {singleSidedTickmark} from './tickmark';\n\nexport interface LinearAdviceRaw {\n min: number;\n max: number;\n type: AdviceType;\n state: AdviceState;\n}\n\nexport interface LinearAdvice {\n min: number;\n max: number;\n type: AdviceType;\n hinted: boolean;\n}\n\nfunction adviceMask(\n height: number,\n min: number,\n max: number,\n fill: string,\n stroke: string\n): SVGTemplateResult {\n const width = 8;\n const x1 = 12;\n const x2 = x1 + width;\n const r = width / 2;\n const yL = (-min * height) / 100 - 2 * r - 2;\n const yH = (-max * height) / 100 + 2 * r - 2;\n\n const path = `M ${x1} ${yL} \n A ${r} ${r} 0 0 0 ${x2} ${yL}\n V ${yH}\n A ${r} ${r} 0 0 0 ${x1} ${yH}\n Z`;\n return svg`<path d=${path} fill=${fill} stroke=${stroke} stroke-width=\"1\" vector-effect=\"non-scaling-stroke\" />`;\n}\n\nexport function renderAdvice(\n height: number,\n advice: LinearAdviceRaw,\n flipDirection: boolean\n): SVGTemplateResult {\n if (advice.type === AdviceType.caution) {\n let mainColor;\n let fillColor: string | null = null;\n if (advice.state === AdviceState.hinted) {\n mainColor = 'var(--instrument-frame-tertiary-color)';\n } else if (advice.state === AdviceState.regular) {\n mainColor = 'var(--instrument-tick-mark-tertiary-color)';\n } else {\n mainColor = 'var(--on-caution-active-color)';\n fillColor = 'var(--alert-caution-color)';\n }\n const pattern = [];\n const ypattern = flipDirection ? 50 : -50;\n for (let i = -100; i < 300; i += 16) {\n pattern.push(svg`<g transform=\"translate(0 ${-i}) \">\n <path d=\"M 50 0 L 0 ${ypattern}\" stroke=${mainColor} stroke-width=\"6\"/>\n </g>\n `);\n }\n const maskId = `adviceMask-${advice.min}-${advice.max}`;\n let tickmarkStyle = TickmarkStyle.hinted;\n if (advice.state === AdviceState.regular) {\n tickmarkStyle = TickmarkStyle.regular;\n } else if (advice.state === AdviceState.triggered) {\n tickmarkStyle = TickmarkStyle.enhanced;\n }\n\n return svg`\n <mask id=${maskId}>\n ${adviceMask(height, advice.min, advice.max, 'white', 'black')}\n </mask>\n <g mask=\"url(#${maskId})\">\n ${fillColor ? svg`<rect x=\"-256\" y=\"-512\" width=\"512\" height=\"1024\" fill=\"${fillColor}\"/>` : nothing}\n ${pattern}\n </g>\n ${adviceMask(height, advice.min, advice.max, 'none', mainColor)}\n ${singleSidedTickmark(height, advice.min, tickmarkStyle)}\n ${singleSidedTickmark(height, advice.max, tickmarkStyle)}\n `;\n } else {\n let strokeColor;\n let tickmarkStyle;\n let fillColor: string;\n if (advice.state === AdviceState.hinted) {\n strokeColor = 'var(--instrument-frame-tertiary-color)';\n fillColor = 'none';\n tickmarkStyle = TickmarkStyle.hinted;\n } else if (advice.state === AdviceState.regular) {\n strokeColor = 'var(--instrument-regular-secondary-color)';\n fillColor = 'none';\n tickmarkStyle = TickmarkStyle.regular;\n } else {\n strokeColor = 'var(--instrument-enhanced-secondary-color)';\n fillColor = strokeColor;\n tickmarkStyle = TickmarkStyle.regular;\n }\n return svg`\n ${adviceMask(height, advice.min, advice.max, fillColor, strokeColor)}\n ${singleSidedTickmark(height, advice.min, tickmarkStyle)}\n ${singleSidedTickmark(height, advice.max, tickmarkStyle)}\n `;\n }\n}\n"],"names":[],"mappings":";;;;AAmBA,SAAS,WACP,QACA,KACA,KACA,MACA,QACmB;AACnB,QAAM,QAAQ;AACd,QAAM,KAAK;AACX,QAAM,KAAK,KAAK;AAChB,QAAM,IAAI,QAAQ;AAClB,QAAM,KAAM,CAAC,MAAM,SAAU,MAAM,IAAI,IAAI;AAC3C,QAAM,KAAM,CAAC,MAAM,SAAU,MAAM,IAAI,IAAI;AAE3C,QAAM,OAAO,KAAK,EAAE,IAAI,EAAE;AAAA,wBACJ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE;AAAA,wBACxB,EAAE;AAAA,wBACF,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE;AAAA;AAE9C,SAAO,cAAc,IAAI,SAAS,IAAI,WAAW,MAAM;AACzD;AAEgB,SAAA,aACd,QACA,QACA,eACmB;AACf,MAAA,OAAO,SAAS,WAAW,SAAS;AAClC,QAAA;AACJ,QAAI,YAA2B;AAC3B,QAAA,OAAO,UAAU,YAAY,QAAQ;AAC3B,kBAAA;AAAA,IACH,WAAA,OAAO,UAAU,YAAY,SAAS;AACnC,kBAAA;AAAA,IAAA,OACP;AACO,kBAAA;AACA,kBAAA;AAAA,
|
1
|
+
{"version":3,"file":"advice.js","sources":["../../../src/navigation-instruments/thruster/advice.ts"],"sourcesContent":["import {SVGTemplateResult, nothing, svg} from 'lit';\nimport {AdviceState, AdviceType} from '../watch/advice';\nimport {TickmarkStyle} from '../watch/tickmark';\nimport {singleSidedTickmark} from './tickmark';\n\nexport interface LinearAdviceRaw {\n min: number;\n max: number;\n type: AdviceType;\n state: AdviceState;\n}\n\nexport interface LinearAdvice {\n min: number;\n max: number;\n type: AdviceType;\n hinted: boolean;\n}\n\nfunction adviceMask(\n height: number,\n min: number,\n max: number,\n fill: string,\n stroke: string\n): SVGTemplateResult {\n const width = 8;\n const x1 = 12;\n const x2 = x1 + width;\n const r = width / 2;\n const yL = (-min * height) / 100 - 2 * r - 2;\n const yH = (-max * height) / 100 + 2 * r - 2;\n\n const path = `M ${x1} ${yL} \n A ${r} ${r} 0 0 0 ${x2} ${yL}\n V ${yH}\n A ${r} ${r} 0 0 0 ${x1} ${yH}\n Z`;\n return svg`<path d=${path} fill=${fill} stroke=${stroke} stroke-width=\"1\" vector-effect=\"non-scaling-stroke\" />`;\n}\n\nexport function renderAdvice(\n height: number,\n advice: LinearAdviceRaw,\n flipDirection: boolean\n): SVGTemplateResult {\n if (advice.type === AdviceType.caution) {\n let mainColor;\n let fillColor: string | null = null;\n if (advice.state === AdviceState.hinted) {\n mainColor = 'var(--instrument-frame-tertiary-color)';\n } else if (advice.state === AdviceState.regular) {\n mainColor = 'var(--instrument-tick-mark-tertiary-color)';\n } else {\n mainColor = 'var(--on-caution-active-color)';\n fillColor = 'var(--alert-caution-color)';\n }\n const pattern = [];\n const ypattern = flipDirection ? 50 : -50;\n for (let i = -100; i < 300; i += 16) {\n pattern.push(svg`<g transform=\"translate(0 ${-i}) \">\n <path d=\"M 50 0 L 0 ${ypattern}\" stroke=${mainColor} stroke-width=\"6\"/>\n </g>\n `);\n }\n const maskId = `adviceMask-${advice.min}-${advice.max}`;\n let tickmarkStyle = TickmarkStyle.hinted;\n if (advice.state === AdviceState.regular) {\n tickmarkStyle = TickmarkStyle.regular;\n } else if (advice.state === AdviceState.triggered) {\n tickmarkStyle = TickmarkStyle.enhanced;\n }\n\n return svg`\n <mask id=${maskId}>\n ${adviceMask(height, advice.min, advice.max, 'white', 'black')}\n </mask>\n <g mask=\"url(#${maskId})\">\n ${fillColor ? svg`<rect x=\"-256\" y=\"-512\" width=\"512\" height=\"1024\" fill=\"${fillColor}\"/>` : nothing}\n ${pattern}\n </g>\n ${adviceMask(height, advice.min, advice.max, 'none', mainColor)}\n ${singleSidedTickmark(height, advice.min, tickmarkStyle)}\n ${singleSidedTickmark(height, advice.max, tickmarkStyle)}\n `;\n } else {\n let strokeColor;\n let tickmarkStyle;\n let fillColor: string;\n if (advice.state === AdviceState.hinted) {\n strokeColor = 'var(--instrument-frame-tertiary-color)';\n fillColor = 'none';\n tickmarkStyle = TickmarkStyle.hinted;\n } else if (advice.state === AdviceState.regular) {\n strokeColor = 'var(--instrument-regular-secondary-color)';\n fillColor = 'none';\n tickmarkStyle = TickmarkStyle.regular;\n } else {\n strokeColor = 'var(--instrument-enhanced-secondary-color)';\n fillColor = strokeColor;\n tickmarkStyle = TickmarkStyle.regular;\n }\n return svg`\n ${adviceMask(height, advice.min, advice.max, fillColor, strokeColor)}\n ${singleSidedTickmark(height, advice.min, tickmarkStyle)}\n ${singleSidedTickmark(height, advice.max, tickmarkStyle)}\n `;\n }\n}\n"],"names":[],"mappings":";;;;AAmBA,SAAS,WACP,QACA,KACA,KACA,MACA,QACmB;AACnB,QAAM,QAAQ;AACd,QAAM,KAAK;AACX,QAAM,KAAK,KAAK;AAChB,QAAM,IAAI,QAAQ;AAClB,QAAM,KAAM,CAAC,MAAM,SAAU,MAAM,IAAI,IAAI;AAC3C,QAAM,KAAM,CAAC,MAAM,SAAU,MAAM,IAAI,IAAI;AAE3C,QAAM,OAAO,KAAK,EAAE,IAAI,EAAE;AAAA,wBACJ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE;AAAA,wBACxB,EAAE;AAAA,wBACF,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE;AAAA;AAE9C,SAAO,cAAc,IAAI,SAAS,IAAI,WAAW,MAAM;AACzD;AAEgB,SAAA,aACd,QACA,QACA,eACmB;AACf,MAAA,OAAO,SAAS,WAAW,SAAS;AAClC,QAAA;AACJ,QAAI,YAA2B;AAC3B,QAAA,OAAO,UAAU,YAAY,QAAQ;AAC3B,kBAAA;AAAA,IACH,WAAA,OAAO,UAAU,YAAY,SAAS;AACnC,kBAAA;AAAA,IAAA,OACP;AACO,kBAAA;AACA,kBAAA;AAAA,IAAA;AAEd,UAAM,UAAU,CAAC;AACX,UAAA,WAAW,gBAAgB,KAAK;AACtC,aAAS,IAAI,MAAM,IAAI,KAAK,KAAK,IAAI;AAC3B,cAAA,KAAK,gCAAgC,CAAC,CAAC;AAAA,kCACnB,QAAQ,YAAY,SAAS;AAAA;AAAA,aAElD;AAAA,IAAA;AAET,UAAM,SAAS,cAAc,OAAO,GAAG,IAAI,OAAO,GAAG;AACrD,QAAI,gBAAgB,cAAc;AAC9B,QAAA,OAAO,UAAU,YAAY,SAAS;AACxC,sBAAgB,cAAc;AAAA,IACrB,WAAA,OAAO,UAAU,YAAY,WAAW;AACjD,sBAAgB,cAAc;AAAA,IAAA;AAGzB,WAAA;AAAA,uBACY,MAAM;AAAA,kBACX,WAAW,QAAQ,OAAO,KAAK,OAAO,KAAK,SAAS,OAAO,CAAC;AAAA;AAAA,4BAElD,MAAM;AAAA,kBAChB,YAAY,8DAA8D,SAAS,QAAQ,OAAO;AAAA,kBAClG,OAAO;AAAA;AAAA,cAEX,WAAW,QAAQ,OAAO,KAAK,OAAO,KAAK,QAAQ,SAAS,CAAC;AAAA,cAC7D,oBAAoB,QAAQ,OAAO,KAAK,aAAa,CAAC;AAAA,cACtD,oBAAoB,QAAQ,OAAO,KAAK,aAAa,CAAC;AAAA;AAAA,EAAA,OAE3D;AACD,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA,OAAO,UAAU,YAAY,QAAQ;AACzB,oBAAA;AACF,kBAAA;AACZ,sBAAgB,cAAc;AAAA,IACrB,WAAA,OAAO,UAAU,YAAY,SAAS;AACjC,oBAAA;AACF,kBAAA;AACZ,sBAAgB,cAAc;AAAA,IAAA,OACzB;AACS,oBAAA;AACF,kBAAA;AACZ,sBAAgB,cAAc;AAAA,IAAA;AAEzB,WAAA;AAAA,cACG,WAAW,QAAQ,OAAO,KAAK,OAAO,KAAK,WAAW,WAAW,CAAC;AAAA,cAClE,oBAAoB,QAAQ,OAAO,KAAK,aAAa,CAAC;AAAA,cACtD,oBAAoB,QAAQ,OAAO,KAAK,aAAa,CAAC;AAAA;AAAA,EAAA;AAGpE;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"propeller.js","sources":["../../../src/navigation-instruments/thruster/propeller.ts"],"sourcesContent":["import {SVGTemplateResult, svg} from 'lit';\n\nexport enum PropellerType {\n none = 'none',\n cap = 'cap',\n single = 'single',\n}\n\nfunction arrowTop(height: number, arrowColor: string) {\n const y = -height - 22;\n return svg`\n <path transform=\"translate(-15 ${y})\" d=\"M0.707007 14.2929L14.9999 0L29.2928 14.2929C29.9228 14.9229 29.4766 16 28.5857 16H1.41412C0.523211 16 0.0770419 14.9229 0.707007 14.2929Z\" fill=${arrowColor}/>`;\n}\n\nexport function topPropeller(\n height: number,\n arrowColor: string,\n type: PropellerType\n): SVGTemplateResult | null {\n if (type === PropellerType.none) {\n return arrowTop(height, arrowColor);\n } else if (type === PropellerType.cap) {\n const y = -height - 50 - 1;\n return svg`\n <g transform=\"translate(-80 ${y})\">\n <path d=\"M60.0016 49L60.001 37.0005C60.0004 25.9547 68.9547 17 80.0005 17C91.0459 17 100 25.9541 100 36.9995V49H60.0016Z\" stroke=\"var(--instrument-frame-tertiary-color)\" fill=\"var(--instrument-frame-primary-color)\" vector-effect=\"non-scaling-stroke\"/>\n <path d=\"M90.3784 10.889L79.9991 1.00391L69.6198 10.889C68.3125 12.1341 69.1937 14.3372 70.9991 14.3372H88.9991C90.8046 14.3372 91.6858 12.1341 90.3784 10.889Z\" fill=${arrowColor} stroke-linecap=\"square\"/>\n </g>`;\n } else if (type === PropellerType.single) {\n const y = -height - 50 - 1;\n return svg`\n <g transform=\"translate(-80 ${y})\">\n<path d=\"M60.0016 49L60.0016 23C60.0007 19.6866 62.6865 17 66 17L94 17C97.3137 17 100 19.6863 100 23L100 49L60.0016 49Z\" fill=\"var(--instrument-frame-primary-color)\" stroke=\"var(--instrument-frame-tertiary-color)\" vector-effect=\"non-scaling-stroke\"/>\n<path d=\"M9 33.2643C9.00007 42.0397 60.2667 45 60.2667 45C60.2667 37.2905 62.8316 29.87 67.4405 24.2456L70.1 21C56.8343 21 8.99993 24.489 9 33.2643Z\" fill=\"var(--instrument-frame-primary-color)\" stroke=\"var(--instrument-frame-tertiary-color)\" vector-effect=\"non-scaling-stroke\"/>\n<path d=\"M151 32.7357C151 23.9604 99.7333 21 99.7333 21C99.7333 28.7095 97.1684 36.1301 92.5595 41.7544L89.9 45C103.166 45 151 41.511 151 32.7357Z\" stroke=\"var(--instrument-frame-tertiary-color)\" fill=\"var(--instrument-frame-primary-color)\" vector-effect=\"non-scaling-stroke\"/>\n<path d=\"M90.3784 10.889L79.9991 1.00391L69.6198 10.889C68.3125 12.1341 69.1937 14.3372 70.9991 14.3372H88.9991C90.8046 14.3372 91.6858 12.1341 90.3784 10.889Z\" fill=${arrowColor} stroke-linecap=\"square\" vector-effect=\"non-scaling-stroke\"/>\n</g>\n`;\n } else {\n return null;\n }\n}\n\nexport function bottomPropeller(\n height: number,\n type: PropellerType\n): SVGTemplateResult | null {\n if (type === PropellerType.none) {\n return null;\n } else if (type === PropellerType.cap) {\n const y = height + 1;\n return svg`\n <g transform=\"translate(-80 ${y})\">\n<path d=\"M60.0016 1C60.0006 17.7823 67.4013 33.9132 80 45C92.5988 33.9131 100 17.7824 100 1L60.0016 1Z\" stroke=\"var(--instrument-frame-tertiary-color)\" fill=\"var(--instrument-frame-primary-color)\" vector-effect=\"non-scaling-stroke\"/>\n</g>`;\n } else if (type === PropellerType.single) {\n const y = height + 1;\n return svg`\n <g transform=\"translate(-80 ${y})\">\n <svg width=\"160\" height=\"49\" viewBox=\"0 0 160 49\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M60.0016 1C60.0006 17.7823 67.4013 33.9132 80 45C92.5988 33.9131 100 17.7824 100 1L60.0016 1Z\" stroke=\"var(--instrument-frame-tertiary-color)\" fill=\"var(--instrument-frame-primary-color)\" vector-effect=\"non-scaling-stroke\" />\n<path d=\"M151 16.7357C151 7.96035 99.7333 5 99.7333 5C98.5 13.5 92 24 81.9 29C95.1657 29 151 25.511 151 16.7357Z\" stroke=\"var(--instrument-frame-tertiary-color)\" fill=\"var(--instrument-frame-primary-color)\" vector-effect=\"non-scaling-stroke\" />\n<path d=\"M9 17.2643C9.00007 26.0397 67.2667 29 67.2667 29C63.5 22 69.5 8.5 82.1 5C68.8343 5 8.99993 8.48898 9 17.2643Z\" stroke=\"var(--instrument-frame-tertiary-color)\" fill=\"var(--instrument-frame-primary-color)\" vector-effect=\"non-scaling-stroke\" />\n</g>`;\n } else {\n return null;\n }\n}\n"],"names":["PropellerType"],"mappings":";AAEY,IAAA,kCAAAA,mBAAL;AACLA,iBAAA,MAAO,IAAA;AACPA,iBAAA,KAAM,IAAA;AACNA,iBAAA,QAAS,IAAA;AAHCA,SAAAA;AAAA,GAAA,iBAAA,CAAA,CAAA;AAMZ,SAAS,SAAS,QAAgB,YAAoB;AAC9C,QAAA,IAAI,CAAC,SAAS;AACb,SAAA;AAAA,mCAC0B,CAAC,yJAAyJ,UAAU;AACvM;AAEgB,SAAA,aACd,QACA,YACA,MAC0B;AAC1B,MAAI,SAAS,QAAoB;AACxB,WAAA,SAAS,QAAQ,UAAU;AAAA,EAAA,WACzB,SAAS,OAAmB;AAC/B,UAAA,IAAI,CAAC,SAAS,KAAK;AAClB,WAAA;AAAA,sCAC2B,CAAC;AAAA;AAAA,gLAEyI,UAAU;AAAA;AAAA,EAAA,WAE7K,SAAS,UAAsB;AAClC,UAAA,IAAI,CAAC,SAAS,KAAK;AAClB,WAAA;AAAA,sCAC2B,CAAC;AAAA;AAAA;AAAA;AAAA,wKAIiI,UAAU;AAAA;AAAA;AAAA,EAAA,OAGzK;AACE,WAAA;AAAA,
|
1
|
+
{"version":3,"file":"propeller.js","sources":["../../../src/navigation-instruments/thruster/propeller.ts"],"sourcesContent":["import {SVGTemplateResult, svg} from 'lit';\n\nexport enum PropellerType {\n none = 'none',\n cap = 'cap',\n single = 'single',\n}\n\nfunction arrowTop(height: number, arrowColor: string) {\n const y = -height - 22;\n return svg`\n <path transform=\"translate(-15 ${y})\" d=\"M0.707007 14.2929L14.9999 0L29.2928 14.2929C29.9228 14.9229 29.4766 16 28.5857 16H1.41412C0.523211 16 0.0770419 14.9229 0.707007 14.2929Z\" fill=${arrowColor}/>`;\n}\n\nexport function topPropeller(\n height: number,\n arrowColor: string,\n type: PropellerType\n): SVGTemplateResult | null {\n if (type === PropellerType.none) {\n return arrowTop(height, arrowColor);\n } else if (type === PropellerType.cap) {\n const y = -height - 50 - 1;\n return svg`\n <g transform=\"translate(-80 ${y})\">\n <path d=\"M60.0016 49L60.001 37.0005C60.0004 25.9547 68.9547 17 80.0005 17C91.0459 17 100 25.9541 100 36.9995V49H60.0016Z\" stroke=\"var(--instrument-frame-tertiary-color)\" fill=\"var(--instrument-frame-primary-color)\" vector-effect=\"non-scaling-stroke\"/>\n <path d=\"M90.3784 10.889L79.9991 1.00391L69.6198 10.889C68.3125 12.1341 69.1937 14.3372 70.9991 14.3372H88.9991C90.8046 14.3372 91.6858 12.1341 90.3784 10.889Z\" fill=${arrowColor} stroke-linecap=\"square\"/>\n </g>`;\n } else if (type === PropellerType.single) {\n const y = -height - 50 - 1;\n return svg`\n <g transform=\"translate(-80 ${y})\">\n<path d=\"M60.0016 49L60.0016 23C60.0007 19.6866 62.6865 17 66 17L94 17C97.3137 17 100 19.6863 100 23L100 49L60.0016 49Z\" fill=\"var(--instrument-frame-primary-color)\" stroke=\"var(--instrument-frame-tertiary-color)\" vector-effect=\"non-scaling-stroke\"/>\n<path d=\"M9 33.2643C9.00007 42.0397 60.2667 45 60.2667 45C60.2667 37.2905 62.8316 29.87 67.4405 24.2456L70.1 21C56.8343 21 8.99993 24.489 9 33.2643Z\" fill=\"var(--instrument-frame-primary-color)\" stroke=\"var(--instrument-frame-tertiary-color)\" vector-effect=\"non-scaling-stroke\"/>\n<path d=\"M151 32.7357C151 23.9604 99.7333 21 99.7333 21C99.7333 28.7095 97.1684 36.1301 92.5595 41.7544L89.9 45C103.166 45 151 41.511 151 32.7357Z\" stroke=\"var(--instrument-frame-tertiary-color)\" fill=\"var(--instrument-frame-primary-color)\" vector-effect=\"non-scaling-stroke\"/>\n<path d=\"M90.3784 10.889L79.9991 1.00391L69.6198 10.889C68.3125 12.1341 69.1937 14.3372 70.9991 14.3372H88.9991C90.8046 14.3372 91.6858 12.1341 90.3784 10.889Z\" fill=${arrowColor} stroke-linecap=\"square\" vector-effect=\"non-scaling-stroke\"/>\n</g>\n`;\n } else {\n return null;\n }\n}\n\nexport function bottomPropeller(\n height: number,\n type: PropellerType\n): SVGTemplateResult | null {\n if (type === PropellerType.none) {\n return null;\n } else if (type === PropellerType.cap) {\n const y = height + 1;\n return svg`\n <g transform=\"translate(-80 ${y})\">\n<path d=\"M60.0016 1C60.0006 17.7823 67.4013 33.9132 80 45C92.5988 33.9131 100 17.7824 100 1L60.0016 1Z\" stroke=\"var(--instrument-frame-tertiary-color)\" fill=\"var(--instrument-frame-primary-color)\" vector-effect=\"non-scaling-stroke\"/>\n</g>`;\n } else if (type === PropellerType.single) {\n const y = height + 1;\n return svg`\n <g transform=\"translate(-80 ${y})\">\n <svg width=\"160\" height=\"49\" viewBox=\"0 0 160 49\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M60.0016 1C60.0006 17.7823 67.4013 33.9132 80 45C92.5988 33.9131 100 17.7824 100 1L60.0016 1Z\" stroke=\"var(--instrument-frame-tertiary-color)\" fill=\"var(--instrument-frame-primary-color)\" vector-effect=\"non-scaling-stroke\" />\n<path d=\"M151 16.7357C151 7.96035 99.7333 5 99.7333 5C98.5 13.5 92 24 81.9 29C95.1657 29 151 25.511 151 16.7357Z\" stroke=\"var(--instrument-frame-tertiary-color)\" fill=\"var(--instrument-frame-primary-color)\" vector-effect=\"non-scaling-stroke\" />\n<path d=\"M9 17.2643C9.00007 26.0397 67.2667 29 67.2667 29C63.5 22 69.5 8.5 82.1 5C68.8343 5 8.99993 8.48898 9 17.2643Z\" stroke=\"var(--instrument-frame-tertiary-color)\" fill=\"var(--instrument-frame-primary-color)\" vector-effect=\"non-scaling-stroke\" />\n</g>`;\n } else {\n return null;\n }\n}\n"],"names":["PropellerType"],"mappings":";AAEY,IAAA,kCAAAA,mBAAL;AACLA,iBAAA,MAAO,IAAA;AACPA,iBAAA,KAAM,IAAA;AACNA,iBAAA,QAAS,IAAA;AAHCA,SAAAA;AAAA,GAAA,iBAAA,CAAA,CAAA;AAMZ,SAAS,SAAS,QAAgB,YAAoB;AAC9C,QAAA,IAAI,CAAC,SAAS;AACb,SAAA;AAAA,mCAC0B,CAAC,yJAAyJ,UAAU;AACvM;AAEgB,SAAA,aACd,QACA,YACA,MAC0B;AAC1B,MAAI,SAAS,QAAoB;AACxB,WAAA,SAAS,QAAQ,UAAU;AAAA,EAAA,WACzB,SAAS,OAAmB;AAC/B,UAAA,IAAI,CAAC,SAAS,KAAK;AAClB,WAAA;AAAA,sCAC2B,CAAC;AAAA;AAAA,gLAEyI,UAAU;AAAA;AAAA,EAAA,WAE7K,SAAS,UAAsB;AAClC,UAAA,IAAI,CAAC,SAAS,KAAK;AAClB,WAAA;AAAA,sCAC2B,CAAC;AAAA;AAAA;AAAA;AAAA,wKAIiI,UAAU;AAAA;AAAA;AAAA,EAAA,OAGzK;AACE,WAAA;AAAA,EAAA;AAEX;AAEgB,SAAA,gBACd,QACA,MAC0B;AAC1B,MAAI,SAAS,QAAoB;AACxB,WAAA;AAAA,EAAA,WACE,SAAS,OAAmB;AACrC,UAAM,IAAI,SAAS;AACZ,WAAA;AAAA,sCAC2B,CAAC;AAAA;AAAA;AAAA,EAAA,WAG1B,SAAS,UAAsB;AACxC,UAAM,IAAI,SAAS;AACZ,WAAA;AAAA,sCAC2B,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAA,OAM9B;AACE,WAAA;AAAA,EAAA;AAEX;"}
|
@@ -13,8 +13,7 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
13
13
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
14
14
|
if (decorator = decorators[i])
|
15
15
|
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
16
|
-
if (kind && result)
|
17
|
-
__defProp(target, key, result);
|
16
|
+
if (kind && result) __defProp(target, key, result);
|
18
17
|
return result;
|
19
18
|
};
|
20
19
|
let ObcThruster = class extends LitElement {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"thruster.js","sources":["../../../src/navigation-instruments/thruster/thruster.ts"],"sourcesContent":["import {LitElement, svg, html, css, nothing} from 'lit';\nimport {customElement, property} from 'lit/decorators.js';\nimport {InstrumentState} from '../types';\nimport {LinearAdvice, LinearAdviceRaw, renderAdvice} from './advice';\nimport {AdviceState} from '../watch/advice';\nimport {TickmarkStyle} from '../watch/tickmark';\nimport {singleSidedTickmark} from './tickmark';\nimport {PropellerType, bottomPropeller, topPropeller} from './propeller';\n\n/**\n * @element obc-thruster\n *\n * @prop {number} thrust - The thrust of the thruster in percent (-100 - +100)\n * @prop {boolean} touching - Highlight the thruster when the lever is being touched\n */\n@customElement('obc-thruster')\nexport class ObcThruster extends LitElement {\n @property({type: Number}) thrust: number = 0;\n @property({type: Number}) setpoint: number | undefined;\n @property({type: Boolean}) touching: boolean = false;\n @property({type: Boolean}) atSetpoint: boolean = false;\n @property({type: Boolean}) disableAutoAtSetpoint: boolean = false;\n @property({type: Number}) autoAtSetpointDeadband: number = 1;\n @property({type: Number}) setpointAtZeroDeadband: number = 0.5;\n @property({type: String}) state: InstrumentState = InstrumentState.inCommand;\n @property({type: Boolean}) tunnel: boolean = false;\n @property({type: Boolean}) singleSided: boolean = false;\n @property({type: Boolean}) singleDirection: boolean = false;\n @property({type: Boolean}) singleDirectionHalfSize: boolean = false;\n @property({type: Array}) advices: LinearAdvice[] = [];\n @property({type: String}) topPropeller: PropellerType = PropellerType.none;\n @property({type: String}) bottomPropeller: PropellerType = PropellerType.none;\n\n override render() {\n return html`<div class=\"container\">\n ${thruster(this.thrust, this.setpoint, this.state, {\n atSetpoint: this.atSetpoint,\n tunnel: this.tunnel,\n setpointAtZeroDeadband: this.setpointAtZeroDeadband,\n autoAtSetpoint: !this.disableAutoAtSetpoint,\n autoSetpointDeadband: this.autoAtSetpointDeadband,\n touching: this.touching,\n singleSided: this.singleSided,\n advices: this.advices,\n singleDirection: this.singleDirection,\n singleDirectionHalfSize: this.singleDirectionHalfSize,\n topPropeller: this.topPropeller,\n bottomPropeller: this.bottomPropeller,\n narrow: !this.tunnel,\n })}\n </div>`;\n }\n\n static override styles = css`\n .container {\n height: 100%;\n width: 100%;\n }\n\n .container > svg {\n height: 100%;\n width: 100%;\n }\n `;\n}\n\nexport function thrusterTop(\n height: number,\n value: number,\n colors: {box: string; container: string},\n options: {hideTicks: boolean; hideContainer: boolean}\n) {\n const container = svg`\n <path transform=\"translate(0 -2)\" d=\"M -44 0 v -${height - 8} a 8 8 0 0 1 8 -8 h 72 a 8 8 0 0 1 8 8 V 0 Z\" fill=${colors.container} stroke=\"var(--instrument-frame-tertiary-color)\" vector-effect=\"non-scaling-stroke\"/>\n `;\n const track = svg`<rect width=\"40\" height=${height} x=\"-20\" y=${-2 - height} fill=\"var(--instrument-frame-secondary-color)\" stroke=\"var(--instrument-frame-tertiary-color)\" vector-effect=\"non-scaling-stroke\"/>`;\n\n const tickmarks = [];\n\n const nTicks = 2;\n const delta = height / nTicks;\n if (!options.hideTicks) {\n for (let i = 1; i < nTicks; i++) {\n tickmarks.push(\n svg`<line x1=\"-24\" x2=\"-44\" y1=${-i * delta - 2} y2=${\n -i * delta - 2\n } stroke=\"var(--instrument-frame-tertiary-color)\" stroke-width=\"1\" vector-effect=\"non-scaling-stroke\"/>`\n );\n tickmarks.push(\n svg`<line x1=\"24\" x2=\"44\" y1=${-i * delta - 2} y2=${\n -i * delta - 2\n } stroke=\"var(--instrument-frame-tertiary-color)\" stroke-width=\"1\" vector-effect=\"non-scaling-stroke\"/>`\n );\n }\n }\n\n const barHeight = (height * value) / 100;\n const barY = -2 - barHeight;\n const bar = svg`<rect width=\"40\" height=${barHeight} x=\"-20\" y=${barY} fill=${colors.box} stroke=${colors.box} vector-effect=\"non-scaling-stroke\"/>`;\n if (options.hideContainer) {\n return [track, tickmarks, bar];\n } else {\n return [container, track, tickmarks, bar];\n }\n}\n\nexport function thrusterTopSingleSided(\n height: number,\n value: number,\n colors: {box: string; container: string},\n options: {\n hideTicks: boolean;\n flipAdicePattern: boolean;\n hideContainer: boolean;\n narrow: boolean;\n },\n advice: LinearAdviceRaw[]\n) {\n const container = options.narrow\n ? svg`\n <path transform=\"translate(0 -2)\" d=\"M -32 0 v -${height - 8} a 8 8 0 0 1 8 -8 h 48 a 8 8 0 0 1 8 8 V 0 Z\" fill=${colors.container} stroke=\"var(--instrument-frame-tertiary-color)\" vector-effect=\"non-scaling-stroke\"/>\n `\n : svg`\n <path transform=\"translate(0 -2)\" d=\"M -40 0 v -${height - 8} a 8 8 0 0 1 8 -8 h 56 a 8 8 0 0 1 8 8 V 0 Z\" fill=${colors.container} stroke=\"var(--instrument-frame-tertiary-color)\" vector-effect=\"non-scaling-stroke\"/>\n `;\n const track = options.narrow\n ? svg`\n <path transform=\"translate(0 -2)\" d=\"M -32 0 v -${height - 8} a 8 8 0 0 1 8 -8 h 32 V 0 Z\" fill=\"var(--instrument-frame-secondary-color)\" stroke=\"var(--instrument-frame-tertiary-color)\" vector-effect=\"non-scaling-stroke\"/>\n `\n : svg`\n <path transform=\"translate(0 -2)\" d=\"M -40 0 v -${height - 8} a 8 8 0 0 1 8 -8 h 40 V 0 Z\" fill=\"var(--instrument-frame-secondary-color)\" stroke=\"var(--instrument-frame-tertiary-color)\" vector-effect=\"non-scaling-stroke\"/>\n `;\n\n const tickmarks = options.hideTicks\n ? []\n : [singleSidedTickmark(height, 50, TickmarkStyle.hinted)];\n\n const barHeight = (height * value) / 100;\n const barWidth = options.narrow ? 40 : 48;\n const barX = options.narrow ? -32 : -40;\n const barY = -2 - barHeight;\n const maskId = options.flipAdicePattern\n ? 'thrusterBarMask1'\n : 'thrusterBarMask2';\n // The mask is used to clip the bar to the container shape\n const mask = options.hideContainer\n ? nothing\n : svg`\n <defs>\n <mask id=${maskId}>\n <path transform=\"translate(0 -2)\" d=\"M ${barX} 0 v -${height - 8} a 8 8 0 0 1 8 -8 h ${barWidth} V 0 Z\" fill=\"white\" stroke=\"white\" vector-effect=\"non-scaling-stroke\"/>\n </defs>`;\n const maskAttr = options.hideContainer ? '' : `mask=\"url(#${maskId})\"`;\n const bar = svg`\n ${mask}\n <rect ${maskAttr} width=${barWidth} height=${barHeight} x=${barX} y=${barY} fill=${colors.box} stroke=${colors.box} vector-effect=\"non-scaling-stroke\"/>`;\n const advicesSvg = advice.map((a) =>\n renderAdvice(height, a, options.flipAdicePattern)\n );\n const all = [tickmarks, bar, advicesSvg];\n if (!options.hideContainer) {\n all.splice(0, 0, [container, track]);\n }\n if (!options.narrow) {\n return svg`<g transform=\"translate(4 0)\">${all}</g>`;\n } else {\n return all;\n }\n}\n\nexport function thrusterBottom(\n height: number,\n value: number,\n colors: {box: string; container: string},\n options: {hideTicks: boolean; hideContainer: boolean}\n) {\n const container = svg`\n <g transform=\"rotate(180)\">\n ${thrusterTop(height, value, colors, options)}\n </g>\n `;\n return container;\n}\n\nfunction thrusterBottomSingleSided(\n height: number,\n value: number,\n colors: {box: string; container: string},\n options: {\n hideTicks: boolean;\n flipAdicePattern: boolean;\n hideContainer: boolean;\n narrow: boolean;\n },\n advice: LinearAdviceRaw[]\n) {\n const container = svg`\n <g transform=\"rotate(180) scale(-1,1)\">\n ${thrusterTopSingleSided(height, value, colors, {hideTicks: options.hideTicks, flipAdicePattern: options.flipAdicePattern, hideContainer: options.hideContainer, narrow: options.narrow}, advice)}\n </g>\n `;\n return container;\n}\n\nexport function setpointSvg(\n height: number,\n value: number,\n setpointAtZero: boolean,\n colors: {fill: string; stroke: string},\n options: {\n inCommand: boolean;\n singleSided: boolean;\n narrow: boolean;\n }\n) {\n const y = -(setpointAtZero\n ? 0\n : Math.sign(value) * ((height * Math.abs(value)) / 100 + 2));\n const extra = (options.singleSided ? -12 : 0) + (options.narrow ? 0 : 4);\n let path;\n if (options.inCommand) {\n path =\n 'M23.5119 8C24.6981 6.35191 23.5696 4 21.5926 4L2.39959 4C0.422598 4 -0.705911 6.35191 0.480283 8L11.9961 24L23.5119 8Z';\n } else {\n path =\n 'M18.5836 8L5.4086 8L11.9961 17.1526L18.5836 8ZM23.5119 8C24.6981 6.35191 23.5696 4 21.5926 4L2.39959 4C0.422598 4 -0.705911 6.35191 0.480283 8L11.9961 24L23.5119 8Z';\n }\n return svg`\n <defs>\n <g id=\"thrusterSetpoint\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" transform=\"translate(24 -12) rotate(90)\" d=${path} vector-effect=\"non-scaling-stroke\"/>\n </g>\n <mask id=\"thrusterSetpointMask\">\n <rect x=\"-20\" y=\"-20\" width=\"50\" height=\"50\" fill=\"white\" />\n <use href=\"#thrusterSetpoint\" fill=\"black\" />\n </mask>\n </defs>\n <g transform=\"translate(0 ${y})\">\n <use href=\"#thrusterSetpoint\" fill=${colors.fill} stroke=\"none\" transform=\"translate(${28 + extra} 0)\"/>\n <use href=\"#thrusterSetpoint\" mask=\"url(#thrusterSetpointMask)\" transform=\"translate(${28 + extra} 0)\" fill=\"none\" stroke=${colors.stroke} stroke-width=\"2\" stroke-linejoin=\"round\" vector-effect=\"non-scaling-stroke\"/>\n ${\n options.singleSided\n ? null\n : svg`\n <use href=\"#thrusterSetpoint\" transform=\"rotate(180) translate(28 0)\" fill=${colors.fill} stroke=\"none\"/>\n <use href=\"#thrusterSetpoint\" transform=\"rotate(180) translate(28 0)\" mask=\"url(#thrusterSetpointMask)\" fill=\"none\" stroke=${colors.stroke} stroke-width=\"2\" stroke-linejoin=\"round\" vector-effect=\"non-scaling-stroke\"/>\n `\n }\n </g>\n `;\n}\n\nexport function atSetpoint(\n thrust: number,\n setpoint: number | undefined,\n options: {\n autoAtSetpoint: boolean;\n autoSetpointDeadband: number;\n touching: boolean;\n atSetpoint: boolean;\n }\n): boolean {\n if (options.touching) {\n return false;\n }\n\n if (options.autoAtSetpoint && setpoint !== undefined) {\n return Math.abs(thrust - setpoint) < options.autoSetpointDeadband;\n }\n\n return options.atSetpoint;\n}\n\nexport function thruster(\n thrust: number,\n setpoint: number | undefined,\n state: InstrumentState,\n options: {\n atSetpoint: boolean;\n tunnel: boolean;\n singleSided: boolean;\n singleDirection: boolean;\n singleDirectionHalfSize: boolean;\n setpointAtZeroDeadband: number;\n autoAtSetpoint: boolean;\n autoSetpointDeadband: number;\n touching: boolean;\n advices: LinearAdvice[];\n topPropeller: PropellerType;\n bottomPropeller: PropellerType;\n narrow: boolean;\n }\n) {\n if (options.tunnel) {\n thrust = -thrust;\n setpoint = setpoint === undefined ? undefined : -setpoint;\n }\n\n if (!options.singleSided && options.advices.length > 0) {\n throw new Error('Double sided thruster does not support advice');\n }\n\n options.atSetpoint = atSetpoint(thrust, setpoint, options);\n\n const tc = thrusterColors(options, state);\n\n let centerLine = svg`\n <rect x=\"-44\" y=\"-2\" width=\"88\" height=\"4\" stroke-width=\"1\" fill=${tc.zeroLineColor} stroke=${tc.zeroLineColor} vector-effect=\"non-scaling-stroke\"/>\n `;\n if (options.singleSided) {\n const width = options.narrow ? 64 : 72;\n const x = options.narrow ? -32 : -36;\n centerLine = svg`<rect x=${x} y=\"-2\" width=${width} height=\"4\" stroke-width=\"1\" fill=${tc.zeroLineColor} stroke=${tc.zeroLineColor} vector-effect=\"non-scaling-stroke\"/>`;\n }\n\n const setpointAtZero =\n Math.abs(setpoint || 0) < options.setpointAtZeroDeadband;\n\n const {topAdvices, bottomAdvices} = convertThrustAdvices(\n options.advices,\n thrust\n );\n\n const thrusterSvg = [];\n const baseheight = options.topPropeller === PropellerType.none ? 134 : 106;\n const height = options.singleDirection ? baseheight * 2 : baseheight;\n if (options.singleSided) {\n thrusterSvg.push(\n thrusterTopSingleSided(\n height,\n Math.max(thrust, 0),\n {box: tc.boxColor, container: tc.containerBackgroundColor},\n {\n hideTicks: tc.hideTicks,\n flipAdicePattern: false,\n hideContainer: false,\n narrow: options.narrow,\n },\n topAdvices\n )\n );\n if (!(options.singleDirection || options.singleDirectionHalfSize)) {\n thrusterSvg.push(\n thrusterBottomSingleSided(\n height,\n Math.max(-thrust, 0),\n {box: tc.boxColor, container: tc.containerBackgroundColor},\n {\n hideTicks: tc.hideTicks,\n flipAdicePattern: true,\n hideContainer: false,\n narrow: options.narrow,\n },\n bottomAdvices\n )\n );\n }\n thrusterSvg.push(centerLine);\n } else {\n thrusterSvg.push(\n thrusterTop(\n height,\n Math.max(thrust, 0),\n {box: tc.boxColor, container: tc.containerBackgroundColor},\n {hideTicks: tc.hideTicks, hideContainer: false}\n )\n );\n if (!options.singleDirection) {\n thrusterSvg.push(\n thrusterBottom(\n height,\n Math.max(-thrust, 0),\n {box: tc.boxColor, container: tc.containerBackgroundColor},\n {hideTicks: tc.hideTicks, hideContainer: false}\n )\n );\n }\n thrusterSvg.push(centerLine);\n }\n if (setpoint !== undefined) {\n thrusterSvg.push(\n setpointSvg(\n height,\n setpoint,\n setpointAtZero,\n {\n fill: tc.setPointColor,\n stroke: 'var(--border-silhouette-color)',\n },\n {\n inCommand: state === InstrumentState.inCommand,\n singleSided: options.singleSided,\n narrow: options.narrow,\n }\n )\n );\n }\n\n if (options.tunnel) {\n return svg`\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-160 -64 320 128\" x=\"-160\" y=\"-64\">\n <g transform=\"rotate(-90)\">\n ${thrusterSvg}\n </g>\n </svg>`;\n } else {\n let viewBox = '-80 -160 160 320';\n let y = -160;\n if (options.singleDirection) {\n viewBox = '-80 -300 160 320';\n y = -320;\n }\n const top = topPropeller(height, tc.arrowColor, options.topPropeller);\n const bottom = bottomPropeller(\n options.singleDirectionHalfSize ? 0.5 : height,\n options.bottomPropeller\n );\n return svg`\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=${viewBox} x=\"-80\" y=${y} width=\"160\" height=\"320\">\n ${top}\n ${bottom}\n ${thrusterSvg}\n </svg>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'obc-thruster': ObcThruster;\n }\n}\n\nexport function convertThrustAdvices(\n advices: LinearAdvice[],\n thrust: number\n): {topAdvices: LinearAdviceRaw[]; bottomAdvices: LinearAdviceRaw[]} {\n const rawAdvices: LinearAdviceRaw[] = advices.map((a) => {\n const triggered = thrust >= a.min && thrust <= a.max;\n let state: AdviceState;\n if (triggered) {\n state = AdviceState.triggered;\n } else if (a.hinted) {\n state = AdviceState.hinted;\n } else {\n state = AdviceState.regular;\n }\n return {\n min: a.min,\n max: a.max,\n type: a.type,\n state,\n hinted: a.hinted,\n };\n });\n\n const topAdvices = rawAdvices.filter((a) => a.min >= 0);\n const bottomAdvices = rawAdvices\n .filter((a) => a.max <= 0)\n .map((a) => ({...a, min: -a.max, max: -a.min}));\n return {topAdvices, bottomAdvices};\n}\n\nexport function thrusterColors(\n options: {atSetpoint: boolean; touching: boolean},\n state: InstrumentState\n) {\n let boxColor = 'var(--instrument-enhanced-secondary-color)';\n let setPointColor = 'var(--instrument-enhanced-primary-color)';\n let arrowColor = 'var(--instrument-regular-secondary-color)';\n let containerBackgroundColor = 'var(--instrument-frame-primary-color)';\n let zeroLineColor = 'var(--instrument-enhanced-secondary-color)';\n let hideTicks = false;\n if (options.atSetpoint) {\n setPointColor = boxColor;\n }\n if (state === InstrumentState.active) {\n boxColor = 'var(--instrument-regular-secondary-color)';\n zeroLineColor = 'var(--instrument-regular-secondary-color)';\n setPointColor = 'var(--instrument-regular-primary-color)';\n arrowColor = 'var(--instrument-regular-secondary-color)';\n if (options.atSetpoint) {\n setPointColor = boxColor;\n }\n } else if (state === InstrumentState.loading) {\n boxColor = 'transparent';\n setPointColor = 'var(--instrument-frame-tertiary-color)';\n zeroLineColor = 'var(--instrument-frame-tertiary-color)';\n arrowColor = 'var(--instrument-regular-secondary-color)';\n hideTicks = true;\n } else if (state === InstrumentState.off) {\n boxColor = 'transparent';\n setPointColor = 'var(--instrument-frame-tertiary-color)';\n arrowColor = 'var(--instrument-frame-tertiary-color)';\n zeroLineColor = 'var(--instrument-frame-tertiary-color)';\n hideTicks = true;\n containerBackgroundColor = 'transparent';\n }\n return {\n zeroLineColor,\n boxColor,\n containerBackgroundColor,\n hideTicks,\n setPointColor,\n arrowColor,\n };\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAgBa,IAAA,cAAN,cAA0B,WAAW;AAAA,EAArC,cAAA;AAAA,UAAA,GAAA,SAAA;AACsC,SAAA,SAAA;AAEI,SAAA,WAAA;AACE,SAAA,aAAA;AACW,SAAA,wBAAA;AACD,SAAA,yBAAA;AACA,SAAA,yBAAA;AACjC,SAAA,QAAyB,gBAAgB;AACtB,SAAA,SAAA;AACK,SAAA,cAAA;AACI,SAAA,kBAAA;AACQ,SAAA,0BAAA;AACrC,SAAA,UAA0B;AACzB,SAAA,eAA8B,cAAc;AAC5C,SAAA,kBAAiC,cAAc;AAAA,EAAA;AAAA,EAEhE,SAAS;AACT,WAAA;AAAA,QACH,SAAS,KAAK,QAAQ,KAAK,UAAU,KAAK,OAAO;AAAA,MACjD,YAAY,KAAK;AAAA,MACjB,QAAQ,KAAK;AAAA,MACb,wBAAwB,KAAK;AAAA,MAC7B,gBAAgB,CAAC,KAAK;AAAA,MACtB,sBAAsB,KAAK;AAAA,MAC3B,UAAU,KAAK;AAAA,MACf,aAAa,KAAK;AAAA,MAClB,SAAS,KAAK;AAAA,MACd,iBAAiB,KAAK;AAAA,MACtB,yBAAyB,KAAK;AAAA,MAC9B,cAAc,KAAK;AAAA,MACnB,iBAAiB,KAAK;AAAA,MACtB,QAAQ,CAAC,KAAK;AAAA,IAAA,CACf,CAAC;AAAA;AAAA,EAEN;AAaF;AAhDa,YAqCK,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AApCC,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,QAAO;AAAA,GADb,YACe,WAAA,UAAA,CAAA;AACA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,QAAO;AAAA,GAFb,YAEe,WAAA,YAAA,CAAA;AACC,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,SAAQ;AAAA,GAHd,YAGgB,WAAA,YAAA,CAAA;AACA,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,SAAQ;AAAA,GAJd,YAIgB,WAAA,cAAA,CAAA;AACA,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,SAAQ;AAAA,GALd,YAKgB,WAAA,yBAAA,CAAA;AACD,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,QAAO;AAAA,GANb,YAMe,WAAA,0BAAA,CAAA;AACA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,QAAO;AAAA,GAPb,YAOe,WAAA,0BAAA,CAAA;AACA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,QAAO;AAAA,GARb,YAQe,WAAA,SAAA,CAAA;AACC,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,SAAQ;AAAA,GATd,YASgB,WAAA,UAAA,CAAA;AACA,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,SAAQ;AAAA,GAVd,YAUgB,WAAA,eAAA,CAAA;AACA,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,SAAQ;AAAA,GAXd,YAWgB,WAAA,mBAAA,CAAA;AACA,gBAAA;AAAA,EAA1B,SAAS,EAAC,MAAM,SAAQ;AAAA,GAZd,YAYgB,WAAA,2BAAA,CAAA;AACF,gBAAA;AAAA,EAAxB,SAAS,EAAC,MAAM,OAAM;AAAA,GAbZ,YAac,WAAA,WAAA,CAAA;AACC,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,QAAO;AAAA,GAdb,YAce,WAAA,gBAAA,CAAA;AACA,gBAAA;AAAA,EAAzB,SAAS,EAAC,MAAM,QAAO;AAAA,GAfb,YAee,WAAA,mBAAA,CAAA;AAff,cAAN,gBAAA;AAAA,EADN,cAAc,cAAc;AAAA,GAChB,WAAA;AAkDN,SAAS,YACd,QACA,OACA,QACA,SACA;AACA,QAAM,YAAY;AAAA,yDACqC,SAAS,CAAC,uDAAuD,OAAO,SAAS;AAAA;AAExI,QAAM,QAAQ,8BAA8B,MAAM,cAAc,KAAK,MAAM;AAE3E,QAAM,YAAY,CAAA;AAElB,QAAM,SAAS;AACf,QAAM,QAAQ,SAAS;AACnB,MAAA,CAAC,QAAQ,WAAW;AACtB,aAAS,IAAI,GAAG,IAAI,QAAQ,KAAK;AACrB,gBAAA;AAAA,QACR,iCAAiC,CAAC,IAAI,QAAQ,CAAC,QAC7C,CAAC,IAAI,QAAQ,CACf;AAAA,MAAA;AAEQ,gBAAA;AAAA,QACR,iCAAiC,CAAC,IAAI,QAAQ,CAAC,QAC7C,CAAC,IAAI,QAAQ,CACf;AAAA,MAAA;AAAA,IAEJ;AAAA,EACF;AAEM,QAAA,YAAa,SAAS,QAAS;AACrC,QAAM,OAAO,KAAK;AACZ,QAAA,MAAM,8BAA8B,SAAS,cAAc,IAAI,SAAS,OAAO,GAAG,WAAW,OAAO,GAAG;AAC7G,MAAI,QAAQ,eAAe;AAClB,WAAA,CAAC,OAAO,WAAW,GAAG;AAAA,EAAA,OACxB;AACL,WAAO,CAAC,WAAW,OAAO,WAAW,GAAG;AAAA,EAC1C;AACF;AAEO,SAAS,uBACd,QACA,OACA,QACA,SAMA,QACA;AACM,QAAA,YAAY,QAAQ,SACtB;AAAA,yDACmD,SAAS,CAAC,uDAAuD,OAAO,SAAS;AAAA,MAEpI;AAAA,yDACmD,SAAS,CAAC,uDAAuD,OAAO,SAAS;AAAA;AAElI,QAAA,QAAQ,QAAQ,SAClB;AAAA,yDACmD,SAAS,CAAC;AAAA,MAE7D;AAAA,yDACmD,SAAS,CAAC;AAAA;AAG3D,QAAA,YAAY,QAAQ,YACtB,KACA,CAAC,oBAAoB,QAAQ,IAAI,cAAc,MAAM,CAAC;AAEpD,QAAA,YAAa,SAAS,QAAS;AAC/B,QAAA,WAAW,QAAQ,SAAS,KAAK;AACjC,QAAA,OAAO,QAAQ,SAAS,MAAM;AACpC,QAAM,OAAO,KAAK;AACZ,QAAA,SAAS,QAAQ,mBACnB,qBACA;AAEE,QAAA,OAAO,QAAQ,gBACjB,UACA;AAAA;AAAA,aAEO,MAAM;AAAA,2CACwB,IAAI,UAAU,SAAS,CAAC,wBAAwB,QAAQ;AAAA;AAEjG,QAAM,WAAW,QAAQ,gBAAgB,KAAK,cAAc,MAAM;AAClE,QAAM,MAAM;AAAA,MACR,IAAI;AAAA,YACE,QAAQ,UAAU,QAAQ,WAAW,SAAS,MAAM,IAAI,MAAM,IAAI,SAAS,OAAO,GAAG,WAAW,OAAO,GAAG;AACpH,QAAM,aAAa,OAAO;AAAA,IAAI,CAAC,MAC7B,aAAa,QAAQ,GAAG,QAAQ,gBAAgB;AAAA,EAAA;AAElD,QAAM,MAAM,CAAC,WAAW,KAAK,UAAU;AACnC,MAAA,CAAC,QAAQ,eAAe;AAC1B,QAAI,OAAO,GAAG,GAAG,CAAC,WAAW,KAAK,CAAC;AAAA,EACrC;AACI,MAAA,CAAC,QAAQ,QAAQ;AACnB,WAAO,oCAAoC,GAAG;AAAA,EAAA,OACzC;AACE,WAAA;AAAA,EACT;AACF;AAEO,SAAS,eACd,QACA,OACA,QACA,SACA;AACA,QAAM,YAAY;AAAA;AAAA,UAEV,YAAY,QAAQ,OAAO,QAAQ,OAAO,CAAC;AAAA;AAAA;AAG5C,SAAA;AACT;AAEA,SAAS,0BACP,QACA,OACA,QACA,SAMA,QACA;AACA,QAAM,YAAY;AAAA;AAAA,UAEV,uBAAuB,QAAQ,OAAO,QAAQ,EAAC,WAAW,QAAQ,WAAW,kBAAkB,QAAQ,kBAAkB,eAAe,QAAQ,eAAe,QAAQ,QAAQ,UAAS,MAAM,CAAC;AAAA;AAAA;AAGhM,SAAA;AACT;AAEO,SAAS,YACd,QACA,OACA,gBACA,QACA,SAKA;AACA,QAAM,IAAI,EAAE,iBACR,IACA,KAAK,KAAK,KAAK,KAAM,SAAS,KAAK,IAAI,KAAK,IAAK,MAAM;AAC3D,QAAM,SAAS,QAAQ,cAAc,MAAM,MAAM,QAAQ,SAAS,IAAI;AAClE,MAAA;AACJ,MAAI,QAAQ,WAAW;AAEnB,WAAA;AAAA,EAAA,OACG;AAEH,WAAA;AAAA,EACJ;AACO,SAAA;AAAA;AAAA;AAAA,mGAG0F,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAOzE,CAAC;AAAA,yCACU,OAAO,IAAI,uCAAuC,KAAK,KAAK;AAAA,2FACV,KAAK,KAAK,2BAA2B,OAAO,MAAM;AAAA,MAEvI,QAAQ,cACJ,OACA;AAAA,iFACuE,OAAO,IAAI;AAAA,iIACqC,OAAO,MAAM;AAAA,OAE1I;AAAA;AAAA;AAGJ;AAEgB,SAAA,WACd,QACA,UACA,SAMS;AACT,MAAI,QAAQ,UAAU;AACb,WAAA;AAAA,EACT;AAEI,MAAA,QAAQ,kBAAkB,aAAa,QAAW;AACpD,WAAO,KAAK,IAAI,SAAS,QAAQ,IAAI,QAAQ;AAAA,EAC/C;AAEA,SAAO,QAAQ;AACjB;AAEO,SAAS,SACd,QACA,UACA,OACA,SAeA;AACA,MAAI,QAAQ,QAAQ;AAClB,aAAS,CAAC;AACC,eAAA,aAAa,SAAY,SAAY,CAAC;AAAA,EACnD;AAEA,MAAI,CAAC,QAAQ,eAAe,QAAQ,QAAQ,SAAS,GAAG;AAChD,UAAA,IAAI,MAAM,+CAA+C;AAAA,EACjE;AAEA,UAAQ,aAAa,WAAW,QAAQ,UAAU,OAAO;AAEnD,QAAA,KAAK,eAAe,SAAS,KAAK;AAExC,MAAI,aAAa;AAAA,uEACoD,GAAG,aAAa,WAAW,GAAG,aAAa;AAAA;AAEhH,MAAI,QAAQ,aAAa;AACjB,UAAA,QAAQ,QAAQ,SAAS,KAAK;AAC9B,UAAA,IAAI,QAAQ,SAAS,MAAM;AACpB,iBAAA,cAAc,CAAC,iBAAiB,KAAK,qCAAqC,GAAG,aAAa,WAAW,GAAG,aAAa;AAAA,EACpI;AAEA,QAAM,iBACJ,KAAK,IAAI,YAAY,CAAC,IAAI,QAAQ;AAE9B,QAAA,EAAC,YAAY,cAAA,IAAiB;AAAA,IAClC,QAAQ;AAAA,IACR;AAAA,EAAA;AAGF,QAAM,cAAc,CAAA;AACpB,QAAM,aAAa,QAAQ,iBAAiB,cAAc,OAAO,MAAM;AACvE,QAAM,SAAS,QAAQ,kBAAkB,aAAa,IAAI;AAC1D,MAAI,QAAQ,aAAa;AACX,gBAAA;AAAA,MACV;AAAA,QACE;AAAA,QACA,KAAK,IAAI,QAAQ,CAAC;AAAA,QAClB,EAAC,KAAK,GAAG,UAAU,WAAW,GAAG,yBAAwB;AAAA,QACzD;AAAA,UACE,WAAW,GAAG;AAAA,UACd,kBAAkB;AAAA,UAClB,eAAe;AAAA,UACf,QAAQ,QAAQ;AAAA,QAClB;AAAA,QACA;AAAA,MACF;AAAA,IAAA;AAEF,QAAI,EAAE,QAAQ,mBAAmB,QAAQ,0BAA0B;AACrD,kBAAA;AAAA,QACV;AAAA,UACE;AAAA,UACA,KAAK,IAAI,CAAC,QAAQ,CAAC;AAAA,UACnB,EAAC,KAAK,GAAG,UAAU,WAAW,GAAG,yBAAwB;AAAA,UACzD;AAAA,YACE,WAAW,GAAG;AAAA,YACd,kBAAkB;AAAA,YAClB,eAAe;AAAA,YACf,QAAQ,QAAQ;AAAA,UAClB;AAAA,UACA;AAAA,QACF;AAAA,MAAA;AAAA,IAEJ;AACA,gBAAY,KAAK,UAAU;AAAA,EAAA,OACtB;AACO,gBAAA;AAAA,MACV;AAAA,QACE;AAAA,QACA,KAAK,IAAI,QAAQ,CAAC;AAAA,QAClB,EAAC,KAAK,GAAG,UAAU,WAAW,GAAG,yBAAwB;AAAA,QACzD,EAAC,WAAW,GAAG,WAAW,eAAe,MAAK;AAAA,MAChD;AAAA,IAAA;AAEE,QAAA,CAAC,QAAQ,iBAAiB;AAChB,kBAAA;AAAA,QACV;AAAA,UACE;AAAA,UACA,KAAK,IAAI,CAAC,QAAQ,CAAC;AAAA,UACnB,EAAC,KAAK,GAAG,UAAU,WAAW,GAAG,yBAAwB;AAAA,UACzD,EAAC,WAAW,GAAG,WAAW,eAAe,MAAK;AAAA,QAChD;AAAA,MAAA;AAAA,IAEJ;AACA,gBAAY,KAAK,UAAU;AAAA,EAC7B;AACA,MAAI,aAAa,QAAW;AACd,gBAAA;AAAA,MACV;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,UACE,MAAM,GAAG;AAAA,UACT,QAAQ;AAAA,QACV;AAAA,QACA;AAAA,UACE,WAAW,UAAU,gBAAgB;AAAA,UACrC,aAAa,QAAQ;AAAA,UACrB,QAAQ,QAAQ;AAAA,QAClB;AAAA,MACF;AAAA,IAAA;AAAA,EAEJ;AAEA,MAAI,QAAQ,QAAQ;AACX,WAAA;AAAA;AAAA;AAAA,YAGC,WAAW;AAAA;AAAA;AAAA,EAAA,OAGd;AACL,QAAI,UAAU;AACd,QAAI,IAAI;AACR,QAAI,QAAQ,iBAAiB;AACjB,gBAAA;AACN,UAAA;AAAA,IACN;AACA,UAAM,MAAM,aAAa,QAAQ,GAAG,YAAY,QAAQ,YAAY;AACpE,UAAM,SAAS;AAAA,MACb,QAAQ,0BAA0B,MAAM;AAAA,MACxC,QAAQ;AAAA,IAAA;AAEH,WAAA;AAAA,sDAC2C,OAAO,cAAc,CAAC;AAAA,QACpE,GAAG;AAAA,QACH,MAAM;AAAA,QACN,WAAW;AAAA;AAAA;AAAA,EAGjB;AACF;AAQgB,SAAA,qBACd,SACA,QACmE;AACnE,QAAM,aAAgC,QAAQ,IAAI,CAAC,MAAM;AACvD,UAAM,YAAY,UAAU,EAAE,OAAO,UAAU,EAAE;AAC7C,QAAA;AACJ,QAAI,WAAW;AACb,cAAQ,YAAY;AAAA,IAAA,WACX,EAAE,QAAQ;AACnB,cAAQ,YAAY;AAAA,IAAA,OACf;AACL,cAAQ,YAAY;AAAA,IACtB;AACO,WAAA;AAAA,MACL,KAAK,EAAE;AAAA,MACP,KAAK,EAAE;AAAA,MACP,MAAM,EAAE;AAAA,MACR;AAAA,MACA,QAAQ,EAAE;AAAA,IAAA;AAAA,EACZ,CACD;AAED,QAAM,aAAa,WAAW,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;AAChD,QAAA,gBAAgB,WACnB,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EACxB,IAAI,CAAC,OAAO,EAAC,GAAG,GAAG,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,IAAK,EAAA;AACzC,SAAA,EAAC,YAAY;AACtB;AAEgB,SAAA,eACd,SACA,OACA;AACA,MAAI,WAAW;AACf,MAAI,gBAAgB;AACpB,MAAI,aAAa;AACjB,MAAI,2BAA2B;AAC/B,MAAI,gBAAgB;AACpB,MAAI,YAAY;AAChB,MAAI,QAAQ,YAAY;AACN,oBAAA;AAAA,EAClB;AACI,MAAA,UAAU,gBAAgB,QAAQ;AACzB,eAAA;AACK,oBAAA;AACA,oBAAA;AACH,iBAAA;AACb,QAAI,QAAQ,YAAY;AACN,sBAAA;AAAA,IAClB;AAAA,EAAA,WACS,UAAU,gBAAgB,SAAS;AACjC,eAAA;AACK,oBAAA;AACA,oBAAA;AACH,iBAAA;AACD,gBAAA;AAAA,EAAA,WACH,UAAU,gBAAgB,KAAK;AAC7B,eAAA;AACK,oBAAA;AACH,iBAAA;AACG,oBAAA;AACJ,gBAAA;AACe,+BAAA;AAAA,EAC7B;AACO,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;"}
|
1
|
+
{"version":3,"file":"thruster.js","sources":["../../../src/navigation-instruments/thruster/thruster.ts"],"sourcesContent":["import {LitElement, svg, html, css, nothing} from 'lit';\nimport {customElement, property} from 'lit/decorators.js';\nimport {InstrumentState} from '../types';\nimport {LinearAdvice, LinearAdviceRaw, renderAdvice} from './advice';\nimport {AdviceState} from '../watch/advice';\nimport {TickmarkStyle} from '../watch/tickmark';\nimport {singleSidedTickmark} from './tickmark';\nimport {PropellerType, bottomPropeller, topPropeller} from './propeller';\n\n/**\n * @element obc-thruster\n *\n * @prop {number} thrust - The thrust of the thruster in percent (-100 - +100)\n * @prop {boolean} touching - Highlight the thruster when the lever is being touched\n */\n@customElement('obc-thruster')\nexport class ObcThruster extends LitElement {\n @property({type: Number}) thrust: number = 0;\n @property({type: Number}) setpoint: number | undefined;\n @property({type: Boolean}) touching: boolean = false;\n @property({type: Boolean}) atSetpoint: boolean = false;\n @property({type: Boolean}) disableAutoAtSetpoint: boolean = false;\n @property({type: Number}) autoAtSetpointDeadband: number = 1;\n @property({type: Number}) setpointAtZeroDeadband: number = 0.5;\n @property({type: String}) state: InstrumentState = InstrumentState.inCommand;\n @property({type: Boolean}) tunnel: boolean = false;\n @property({type: Boolean}) singleSided: boolean = false;\n @property({type: Boolean}) singleDirection: boolean = false;\n @property({type: Boolean}) singleDirectionHalfSize: boolean = false;\n @property({type: Array}) advices: LinearAdvice[] = [];\n @property({type: String}) topPropeller: PropellerType = PropellerType.none;\n @property({type: String}) bottomPropeller: PropellerType = PropellerType.none;\n\n override render() {\n return html`<div class=\"container\">\n ${thruster(this.thrust, this.setpoint, this.state, {\n atSetpoint: this.atSetpoint,\n tunnel: this.tunnel,\n setpointAtZeroDeadband: this.setpointAtZeroDeadband,\n autoAtSetpoint: !this.disableAutoAtSetpoint,\n autoSetpointDeadband: this.autoAtSetpointDeadband,\n touching: this.touching,\n singleSided: this.singleSided,\n advices: this.advices,\n singleDirection: this.singleDirection,\n singleDirectionHalfSize: this.singleDirectionHalfSize,\n topPropeller: this.topPropeller,\n bottomPropeller: this.bottomPropeller,\n narrow: !this.tunnel,\n })}\n </div>`;\n }\n\n static override styles = css`\n .container {\n height: 100%;\n width: 100%;\n }\n\n .container > svg {\n height: 100%;\n width: 100%;\n }\n `;\n}\n\nexport function thrusterTop(\n height: number,\n value: number,\n colors: {box: string; container: string},\n options: {hideTicks: boolean; hideContainer: boolean}\n) {\n const container = svg`\n <path transform=\"translate(0 -2)\" d=\"M -44 0 v -${height - 8} a 8 8 0 0 1 8 -8 h 72 a 8 8 0 0 1 8 8 V 0 Z\" fill=${colors.container} stroke=\"var(--instrument-frame-tertiary-color)\" vector-effect=\"non-scaling-stroke\"/>\n `;\n const track = svg`<rect width=\"40\" height=${height} x=\"-20\" y=${-2 - height} fill=\"var(--instrument-frame-secondary-color)\" stroke=\"var(--instrument-frame-tertiary-color)\" vector-effect=\"non-scaling-stroke\"/>`;\n\n const tickmarks = [];\n\n const nTicks = 2;\n const delta = height / nTicks;\n if (!options.hideTicks) {\n for (let i = 1; i < nTicks; i++) {\n tickmarks.push(\n svg`<line x1=\"-24\" x2=\"-44\" y1=${-i * delta - 2} y2=${\n -i * delta - 2\n } stroke=\"var(--instrument-frame-tertiary-color)\" stroke-width=\"1\" vector-effect=\"non-scaling-stroke\"/>`\n );\n tickmarks.push(\n svg`<line x1=\"24\" x2=\"44\" y1=${-i * delta - 2} y2=${\n -i * delta - 2\n } stroke=\"var(--instrument-frame-tertiary-color)\" stroke-width=\"1\" vector-effect=\"non-scaling-stroke\"/>`\n );\n }\n }\n\n const barHeight = (height * value) / 100;\n const barY = -2 - barHeight;\n const bar = svg`<rect width=\"40\" height=${barHeight} x=\"-20\" y=${barY} fill=${colors.box} stroke=${colors.box} vector-effect=\"non-scaling-stroke\"/>`;\n if (options.hideContainer) {\n return [track, tickmarks, bar];\n } else {\n return [container, track, tickmarks, bar];\n }\n}\n\nexport function thrusterTopSingleSided(\n height: number,\n value: number,\n colors: {box: string; container: string},\n options: {\n hideTicks: boolean;\n flipAdicePattern: boolean;\n hideContainer: boolean;\n narrow: boolean;\n },\n advice: LinearAdviceRaw[]\n) {\n const container = options.narrow\n ? svg`\n <path transform=\"translate(0 -2)\" d=\"M -32 0 v -${height - 8} a 8 8 0 0 1 8 -8 h 48 a 8 8 0 0 1 8 8 V 0 Z\" fill=${colors.container} stroke=\"var(--instrument-frame-tertiary-color)\" vector-effect=\"non-scaling-stroke\"/>\n `\n : svg`\n <path transform=\"translate(0 -2)\" d=\"M -40 0 v -${height - 8} a 8 8 0 0 1 8 -8 h 56 a 8 8 0 0 1 8 8 V 0 Z\" fill=${colors.container} stroke=\"var(--instrument-frame-tertiary-color)\" vector-effect=\"non-scaling-stroke\"/>\n `;\n const track = options.narrow\n ? svg`\n <path transform=\"translate(0 -2)\" d=\"M -32 0 v -${height - 8} a 8 8 0 0 1 8 -8 h 32 V 0 Z\" fill=\"var(--instrument-frame-secondary-color)\" stroke=\"var(--instrument-frame-tertiary-color)\" vector-effect=\"non-scaling-stroke\"/>\n `\n : svg`\n <path transform=\"translate(0 -2)\" d=\"M -40 0 v -${height - 8} a 8 8 0 0 1 8 -8 h 40 V 0 Z\" fill=\"var(--instrument-frame-secondary-color)\" stroke=\"var(--instrument-frame-tertiary-color)\" vector-effect=\"non-scaling-stroke\"/>\n `;\n\n const tickmarks = options.hideTicks\n ? []\n : [singleSidedTickmark(height, 50, TickmarkStyle.hinted)];\n\n const barHeight = (height * value) / 100;\n const barWidth = options.narrow ? 40 : 48;\n const barX = options.narrow ? -32 : -40;\n const barY = -2 - barHeight;\n const maskId = options.flipAdicePattern\n ? 'thrusterBarMask1'\n : 'thrusterBarMask2';\n // The mask is used to clip the bar to the container shape\n const mask = options.hideContainer\n ? nothing\n : svg`\n <defs>\n <mask id=${maskId}>\n <path transform=\"translate(0 -2)\" d=\"M ${barX} 0 v -${height - 8} a 8 8 0 0 1 8 -8 h ${barWidth} V 0 Z\" fill=\"white\" stroke=\"white\" vector-effect=\"non-scaling-stroke\"/>\n </defs>`;\n const maskAttr = options.hideContainer ? '' : `mask=\"url(#${maskId})\"`;\n const bar = svg`\n ${mask}\n <rect ${maskAttr} width=${barWidth} height=${barHeight} x=${barX} y=${barY} fill=${colors.box} stroke=${colors.box} vector-effect=\"non-scaling-stroke\"/>`;\n const advicesSvg = advice.map((a) =>\n renderAdvice(height, a, options.flipAdicePattern)\n );\n const all = [tickmarks, bar, advicesSvg];\n if (!options.hideContainer) {\n all.splice(0, 0, [container, track]);\n }\n if (!options.narrow) {\n return svg`<g transform=\"translate(4 0)\">${all}</g>`;\n } else {\n return all;\n }\n}\n\nexport function thrusterBottom(\n height: number,\n value: number,\n colors: {box: string; container: string},\n options: {hideTicks: boolean; hideContainer: boolean}\n) {\n const container = svg`\n <g transform=\"rotate(180)\">\n ${thrusterTop(height, value, colors, options)}\n </g>\n `;\n return container;\n}\n\nfunction thrusterBottomSingleSided(\n height: number,\n value: number,\n colors: {box: string; container: string},\n options: {\n hideTicks: boolean;\n flipAdicePattern: boolean;\n hideContainer: boolean;\n narrow: boolean;\n },\n advice: LinearAdviceRaw[]\n) {\n const container = svg`\n <g transform=\"rotate(180) scale(-1,1)\">\n ${thrusterTopSingleSided(height, value, colors, {hideTicks: options.hideTicks, flipAdicePattern: options.flipAdicePattern, hideContainer: options.hideContainer, narrow: options.narrow}, advice)}\n </g>\n `;\n return container;\n}\n\nexport function setpointSvg(\n height: number,\n value: number,\n setpointAtZero: boolean,\n colors: {fill: string; stroke: string},\n options: {\n inCommand: boolean;\n singleSided: boolean;\n narrow: boolean;\n }\n) {\n const y = -(setpointAtZero\n ? 0\n : Math.sign(value) * ((height * Math.abs(value)) / 100 + 2));\n const extra = (options.singleSided ? -12 : 0) + (options.narrow ? 0 : 4);\n let path;\n if (options.inCommand) {\n path =\n 'M23.5119 8C24.6981 6.35191 23.5696 4 21.5926 4L2.39959 4C0.422598 4 -0.705911 6.35191 0.480283 8L11.9961 24L23.5119 8Z';\n } else {\n path =\n 'M18.5836 8L5.4086 8L11.9961 17.1526L18.5836 8ZM23.5119 8C24.6981 6.35191 23.5696 4 21.5926 4L2.39959 4C0.422598 4 -0.705911 6.35191 0.480283 8L11.9961 24L23.5119 8Z';\n }\n return svg`\n <defs>\n <g id=\"thrusterSetpoint\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" transform=\"translate(24 -12) rotate(90)\" d=${path} vector-effect=\"non-scaling-stroke\"/>\n </g>\n <mask id=\"thrusterSetpointMask\">\n <rect x=\"-20\" y=\"-20\" width=\"50\" height=\"50\" fill=\"white\" />\n <use href=\"#thrusterSetpoint\" fill=\"black\" />\n </mask>\n </defs>\n <g transform=\"translate(0 ${y})\">\n <use href=\"#thrusterSetpoint\" fill=${colors.fill} stroke=\"none\" transform=\"translate(${28 + extra} 0)\"/>\n <use href=\"#thrusterSetpoint\" mask=\"url(#thrusterSetpointMask)\" transform=\"translate(${28 + extra} 0)\" fill=\"none\" stroke=${colors.stroke} stroke-width=\"2\" stroke-linejoin=\"round\" vector-effect=\"non-scaling-stroke\"/>\n ${\n options.singleSided\n ? null\n : svg`\n <use href=\"#thrusterSetpoint\" transform=\"rotate(180) translate(28 0)\" fill=${colors.fill} stroke=\"none\"/>\n <use href=\"#thrusterSetpoint\" transform=\"rotate(180) translate(28 0)\" mask=\"url(#thrusterSetpointMask)\" fill=\"none\" stroke=${colors.stroke} stroke-width=\"2\" stroke-linejoin=\"round\" vector-effect=\"non-scaling-stroke\"/>\n `\n }\n </g>\n `;\n}\n\nexport function atSetpoint(\n thrust: number,\n setpoint: number | undefined,\n options: {\n autoAtSetpoint: boolean;\n autoSetpointDeadband: number;\n touching: boolean;\n atSetpoint: boolean;\n }\n): boolean {\n if (options.touching) {\n return false;\n }\n\n if (options.autoAtSetpoint && setpoint !== undefined) {\n return Math.abs(thrust - setpoint) < options.autoSetpointDeadband;\n }\n\n return options.atSetpoint;\n}\n\nexport function thruster(\n thrust: number,\n setpoint: number | undefined,\n state: InstrumentState,\n options: {\n atSetpoint: boolean;\n tunnel: boolean;\n singleSided: boolean;\n singleDirection: boolean;\n singleDirectionHalfSize: boolean;\n setpointAtZeroDeadband: number;\n autoAtSetpoint: boolean;\n autoSetpointDeadband: number;\n touching: boolean;\n advices: LinearAdvice[];\n topPropeller: PropellerType;\n bottomPropeller: PropellerType;\n narrow: boolean;\n }\n) {\n if (options.tunnel) {\n thrust = -thrust;\n setpoint = setpoint === undefined ? undefined : -setpoint;\n }\n\n if (!options.singleSided && options.advices.length > 0) {\n throw new Error('Double sided thruster does not support advice');\n }\n\n options.atSetpoint = atSetpoint(thrust, setpoint, options);\n\n const tc = thrusterColors(options, state);\n\n let centerLine = svg`\n <rect x=\"-44\" y=\"-2\" width=\"88\" height=\"4\" stroke-width=\"1\" fill=${tc.zeroLineColor} stroke=${tc.zeroLineColor} vector-effect=\"non-scaling-stroke\"/>\n `;\n if (options.singleSided) {\n const width = options.narrow ? 64 : 72;\n const x = options.narrow ? -32 : -36;\n centerLine = svg`<rect x=${x} y=\"-2\" width=${width} height=\"4\" stroke-width=\"1\" fill=${tc.zeroLineColor} stroke=${tc.zeroLineColor} vector-effect=\"non-scaling-stroke\"/>`;\n }\n\n const setpointAtZero =\n Math.abs(setpoint || 0) < options.setpointAtZeroDeadband;\n\n const {topAdvices, bottomAdvices} = convertThrustAdvices(\n options.advices,\n thrust\n );\n\n const thrusterSvg = [];\n const baseheight = options.topPropeller === PropellerType.none ? 134 : 106;\n const height = options.singleDirection ? baseheight * 2 : baseheight;\n if (options.singleSided) {\n thrusterSvg.push(\n thrusterTopSingleSided(\n height,\n Math.max(thrust, 0),\n {box: tc.boxColor, container: tc.containerBackgroundColor},\n {\n hideTicks: tc.hideTicks,\n flipAdicePattern: false,\n hideContainer: false,\n narrow: options.narrow,\n },\n topAdvices\n )\n );\n if (!(options.singleDirection || options.singleDirectionHalfSize)) {\n thrusterSvg.push(\n thrusterBottomSingleSided(\n height,\n Math.max(-thrust, 0),\n {box: tc.boxColor, container: tc.containerBackgroundColor},\n {\n hideTicks: tc.hideTicks,\n flipAdicePattern: true,\n hideContainer: false,\n narrow: options.narrow,\n },\n bottomAdvices\n )\n );\n }\n thrusterSvg.push(centerLine);\n } else {\n thrusterSvg.push(\n thrusterTop(\n height,\n Math.max(thrust, 0),\n {box: tc.boxColor, container: tc.containerBackgroundColor},\n {hideTicks: tc.hideTicks, hideContainer: false}\n )\n );\n if (!options.singleDirection) {\n thrusterSvg.push(\n thrusterBottom(\n height,\n Math.max(-thrust, 0),\n {box: tc.boxColor, container: tc.containerBackgroundColor},\n {hideTicks: tc.hideTicks, hideContainer: false}\n )\n );\n }\n thrusterSvg.push(centerLine);\n }\n if (setpoint !== undefined) {\n thrusterSvg.push(\n setpointSvg(\n height,\n setpoint,\n setpointAtZero,\n {\n fill: tc.setPointColor,\n stroke: 'var(--border-silhouette-color)',\n },\n {\n inCommand: state === InstrumentState.inCommand,\n singleSided: options.singleSided,\n narrow: options.narrow,\n }\n )\n );\n }\n\n if (options.tunnel) {\n return svg`\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-160 -64 320 128\" x=\"-160\" y=\"-64\">\n <g transform=\"rotate(-90)\">\n ${thrusterSvg}\n </g>\n </svg>`;\n } else {\n let viewBox = '-80 -160 160 320';\n let y = -160;\n if (options.singleDirection) {\n viewBox = '-80 -300 160 320';\n y = -320;\n }\n const top = topPropeller(height, tc.arrowColor, options.topPropeller);\n const bottom = bottomPropeller(\n options.singleDirectionHalfSize ? 0.5 : height,\n options.bottomPropeller\n );\n return svg`\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=${viewBox} x=\"-80\" y=${y} width=\"160\" height=\"320\">\n ${top}\n ${bottom}\n ${thrusterSvg}\n </svg>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'obc-thruster': ObcThruster;\n }\n}\n\nexport function convertThrustAdvices(\n advices: LinearAdvice[],\n thrust: number\n): {topAdvices: LinearAdviceRaw[]; bottomAdvices: LinearAdviceRaw[]} {\n const rawAdvices: LinearAdviceRaw[] = advices.map((a) => {\n const triggered = thrust >= a.min && thrust <= a.max;\n let state: AdviceState;\n if (triggered) {\n state = AdviceState.triggered;\n } else if (a.hinted) {\n state = AdviceState.hinted;\n } else {\n state = AdviceState.regular;\n }\n return {\n min: a.min,\n max: a.max,\n type: a.type,\n state,\n hinted: a.hinted,\n };\n });\n\n const topAdvices = rawAdvices.filter((a) => a.min >= 0);\n const bottomAdvices = rawAdvices\n .filter((a) => a.max <= 0)\n .map((a) => ({...a, min: -a.max, max: -a.min}));\n return {topAdvices, bottomAdvices};\n}\n\nexport function thrusterColors(\n options: {atSetpoint: boolean; touching: boolean},\n state: InstrumentState\n) {\n let boxColor = 'var(--instrument-enhanced-secondary-color)';\n let setPointColor = 'var(--instrument-enhanced-primary-color)';\n let arrowColor = 'var(--instrument-regular-secondary-color)';\n let containerBackgroundColor = 'var(--instrument-frame-primary-color)';\n let zeroLineColor = 'var(--instrument-enhanced-secondary-color)';\n let hideTicks = false;\n if (options.atSetpoint) {\n setPointColor = boxColor;\n }\n if (state === InstrumentState.active) {\n boxColor = 'var(--instrument-regular-secondary-color)';\n zeroLineColor = 'var(--instrument-regular-secondary-color)';\n setPointColor = 'var(--instrument-regular-primary-color)';\n arrowColor = 'var(--instrument-regular-secondary-color)';\n if (options.atSetpoint) {\n setPointColor = boxColor;\n }\n } else if (state === InstrumentState.loading) {\n boxColor = 'transparent';\n setPointColor = 'var(--instrument-frame-tertiary-color)';\n zeroLineColor = 'var(--instrument-frame-tertiary-color)';\n arrowColor = 'var(--instrument-regular-secondary-color)';\n hideTicks = true;\n } else if (state === InstrumentState.off) {\n boxColor = 'transparent';\n setPointColor = 'var(--instrument-frame-tertiary-color)';\n arrowColor = 'var(--instrument-frame-tertiary-color)';\n zeroLineColor = 'var(--instrument-frame-tertiary-color)';\n hideTicks = true;\n containerBackgroundColor = 'transparent';\n }\n return {\n zeroLineColor,\n boxColor,\n containerBackgroundColor,\n hideTicks,\n setPointColor,\n arrowColor,\n };\n}\n"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"tickmark.js","sources":["../../../src/navigation-instruments/thruster/tickmark.ts"],"sourcesContent":["import {svg} from 'lit';\nimport {TickmarkStyle, tickmarkColor} from '../watch/tickmark';\n\nexport function singleSidedTickmark(\n height: number,\n value: number,\n style: TickmarkStyle\n) {\n if (value >= 100) {\n return null;\n }\n const color = tickmarkColor(style);\n const y = (-value * height) / 100 - 2;\n return svg`<line x1=\"12\" x2=\"32\" y1=${y} y2=${y} stroke=${color} stroke-width=\"1\" vector-effect=\"non-scaling-stroke\"/>`;\n}\n"],"names":[],"mappings":";;AAGgB,SAAA,oBACd,QACA,OACA,OACA;AACA,MAAI,SAAS,KAAK;AACT,WAAA;AAAA,
|
1
|
+
{"version":3,"file":"tickmark.js","sources":["../../../src/navigation-instruments/thruster/tickmark.ts"],"sourcesContent":["import {svg} from 'lit';\nimport {TickmarkStyle, tickmarkColor} from '../watch/tickmark';\n\nexport function singleSidedTickmark(\n height: number,\n value: number,\n style: TickmarkStyle\n) {\n if (value >= 100) {\n return null;\n }\n const color = tickmarkColor(style);\n const y = (-value * height) / 100 - 2;\n return svg`<line x1=\"12\" x2=\"32\" y1=${y} y2=${y} stroke=${color} stroke-width=\"1\" vector-effect=\"non-scaling-stroke\"/>`;\n}\n"],"names":[],"mappings":";;AAGgB,SAAA,oBACd,QACA,OACA,OACA;AACA,MAAI,SAAS,KAAK;AACT,WAAA;AAAA,EAAA;AAEH,QAAA,QAAQ,cAAc,KAAK;AACjC,QAAM,IAAK,CAAC,QAAQ,SAAU,MAAM;AACpC,SAAO,+BAA+B,CAAC,QAAQ,CAAC,WAAW,KAAK;AAClE;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"advice.js","sources":["../../../src/navigation-instruments/watch/advice.ts"],"sourcesContent":["import {SVGTemplateResult, nothing, svg} from 'lit';\nimport {TickmarkStyle, TickmarkType, tickmark} from './tickmark';\n\nexport enum AdviceType {\n advice = 'advice',\n caution = 'caution',\n}\n\nexport enum AdviceState {\n regular = 'regular',\n hinted = 'hinted',\n triggered = 'triggered',\n}\n\nexport interface AngleAdviceRaw {\n minAngle: number;\n maxAngle: number;\n type: AdviceType;\n state: AdviceState;\n}\n\nexport interface AngleAdvice {\n minAngle: number;\n maxAngle: number;\n type: AdviceType;\n hinted: boolean;\n}\n\nconst margin = (344 - 328) / 2 + 8;\nconst deltaAngle = Math.atan2(margin, (344 + 328) / 2);\n\nfunction adviceMask(\n minAngle: number,\n maxAngle: number,\n fill: string,\n stroke: string\n): SVGTemplateResult {\n const radl = (minAngle * Math.PI) / 180 + deltaAngle;\n const radh = (maxAngle * Math.PI) / 180 - deltaAngle;\n const r1 = 328 / 2;\n const r2 = 344 / 2;\n const R = (r2 - r1) / 2;\n const x1l = Math.sin(radl) * r1;\n const y1l = -Math.cos(radl) * r1;\n const x2l = Math.sin(radl) * r2;\n const y2l = -Math.cos(radl) * r2;\n\n const x1h = Math.sin(radh) * r1;\n const y1h = -Math.cos(radh) * r1;\n const x2h = Math.sin(radh) * r2;\n const y2h = -Math.cos(radh) * r2;\n\n const path = `M ${x1l} ${y1l} \n A ${r1} ${r1} 0 0 1 ${x1h} ${y1h}\n A ${R} ${R} 0 0 0 ${x2h} ${y2h}\n A ${r2} ${r2} 0 0 0 ${x2l} ${y2l}\n A ${R} ${R} 0 0 0 ${x1l} ${y1l}\n Z`;\n return svg`<path d=${path} fill=${fill} stroke=${stroke} stroke-width=\"1\" vector-effect=\"non-scaling-stroke\" />`;\n}\n\nexport function renderAdvice(advice: AngleAdviceRaw): SVGTemplateResult {\n if (advice.type === AdviceType.caution) {\n let mainColor;\n let fillColor: string | null = null;\n if (advice.state === AdviceState.hinted) {\n mainColor = 'var(--instrument-frame-tertiary-color)';\n } else if (advice.state === AdviceState.regular) {\n mainColor = 'var(--instrument-tick-mark-tertiary-color)';\n } else {\n mainColor = 'var(--on-caution-active-color)';\n fillColor = 'var(--alert-caution-color)';\n }\n const radialPattern = [];\n for (let i = 0; i < 180; i += 4) {\n radialPattern.push(svg`<g transform=\"rotate(${i}) translate(-256 -256) \">\n <path d=\"M369.167 64.7317L144 194.732L142 191.268L367.167 61.2676L369.167 64.7317ZM369.167 320.732L144 450.732L142 447.267L367.167 317.267L369.167 320.732Z\" fill=${mainColor}/>\n </g>\n `);\n }\n const maskId = `adviceMask-${advice.minAngle}-${advice.maxAngle}`;\n let tickmarkStyle = TickmarkStyle.hinted;\n if (advice.state === AdviceState.regular) {\n tickmarkStyle = TickmarkStyle.regular;\n } else if (advice.state === AdviceState.triggered) {\n tickmarkStyle = TickmarkStyle.enhanced;\n }\n\n return svg`\n <mask id=${maskId}>\n ${adviceMask(advice.minAngle, advice.maxAngle, 'white', 'black')}\n </mask>\n <g mask=\"url(#${maskId})\">\n ${fillColor ? svg`<rect x=\"-256\" y=\"-256\" width=\"512\" height=\"512\" fill=\"${fillColor}\"/>` : nothing}\n ${radialPattern}\n </g>\n ${adviceMask(advice.minAngle, advice.maxAngle, 'none', mainColor)}\n ${tickmark(advice.minAngle, TickmarkType.primary, tickmarkStyle, 1)}\n ${tickmark(advice.maxAngle, TickmarkType.primary, tickmarkStyle, 1)}\n `;\n } else {\n let mainColor;\n let tickmarkStyle;\n if (advice.state === AdviceState.hinted) {\n mainColor = 'var(--instrument-frame-tertiary-color)';\n tickmarkStyle = TickmarkStyle.hinted;\n } else if (advice.state === AdviceState.regular) {\n mainColor = 'var(--instrument-regular-secondary-color)';\n tickmarkStyle = TickmarkStyle.regular;\n } else {\n mainColor = 'var(--instrument-enhanced-secondary-color)';\n tickmarkStyle = TickmarkStyle.regular;\n }\n return svg`\n ${adviceMask(advice.minAngle, advice.maxAngle, advice.state === AdviceState.triggered ? mainColor : 'none', mainColor)}\n ${tickmark(advice.minAngle, TickmarkType.primary, tickmarkStyle, 1)}\n ${tickmark(advice.maxAngle, TickmarkType.primary, tickmarkStyle, 1)}\n `;\n }\n}\n"],"names":["AdviceType","AdviceState"],"mappings":";;AAGY,IAAA,+BAAAA,gBAAL;AACLA,cAAA,QAAS,IAAA;AACTA,cAAA,SAAU,IAAA;AAFAA,SAAAA;AAAA,GAAA,cAAA,CAAA,CAAA;AAKA,IAAA,gCAAAC,iBAAL;AACLA,eAAA,SAAU,IAAA;AACVA,eAAA,QAAS,IAAA;AACTA,eAAA,WAAY,IAAA;AAHFA,SAAAA;AAAA,GAAA,eAAA,CAAA,CAAA;AAoBZ,MAAM,UAAU,MAAM,OAAO,IAAI;AACjC,MAAM,aAAa,KAAK,MAAM,SAAS,MAAM,OAAO,CAAC;AAErD,SAAS,WACP,UACA,UACA,MACA,QACmB;AACnB,QAAM,OAAQ,WAAW,KAAK,KAAM,MAAM;AAC1C,QAAM,OAAQ,WAAW,KAAK,KAAM,MAAM;AAC1C,QAAM,KAAK,MAAM;AACjB,QAAM,KAAK,MAAM;AACX,QAAA,KAAK,KAAK,MAAM;AACtB,QAAM,MAAM,KAAK,IAAI,IAAI,IAAI;AAC7B,QAAM,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI;AAC9B,QAAM,MAAM,KAAK,IAAI,IAAI,IAAI;AAC7B,QAAM,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI;AAE9B,QAAM,MAAM,KAAK,IAAI,IAAI,IAAI;AAC7B,QAAM,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI;AAC9B,QAAM,MAAM,KAAK,IAAI,IAAI,IAAI;AAC7B,QAAM,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI;AAE9B,QAAM,OAAO,KAAK,GAAG,IAAI,GAAG;AAAA,wBACN,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG;AAAA,wBAC5B,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG;AAAA,wBAC1B,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG;AAAA,wBAC5B,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG;AAAA;AAEhD,SAAO,cAAc,IAAI,SAAS,IAAI,WAAW,MAAM;AACzD;AAEO,SAAS,aAAa,QAA2C;AAClE,MAAA,OAAO,SAAS,WAAoB;AAClC,QAAA;AACJ,QAAI,YAA2B;AAC3B,QAAA,OAAO,UAAU,UAAoB;AAC3B,kBAAA;AAAA,IAAA,WACH,OAAO,UAAU,WAAqB;AACnC,kBAAA;AAAA,IAAA,OACP;AACO,kBAAA;AACA,kBAAA;AAAA,
|
1
|
+
{"version":3,"file":"advice.js","sources":["../../../src/navigation-instruments/watch/advice.ts"],"sourcesContent":["import {SVGTemplateResult, nothing, svg} from 'lit';\nimport {TickmarkStyle, TickmarkType, tickmark} from './tickmark';\n\nexport enum AdviceType {\n advice = 'advice',\n caution = 'caution',\n}\n\nexport enum AdviceState {\n regular = 'regular',\n hinted = 'hinted',\n triggered = 'triggered',\n}\n\nexport interface AngleAdviceRaw {\n minAngle: number;\n maxAngle: number;\n type: AdviceType;\n state: AdviceState;\n}\n\nexport interface AngleAdvice {\n minAngle: number;\n maxAngle: number;\n type: AdviceType;\n hinted: boolean;\n}\n\nconst margin = (344 - 328) / 2 + 8;\nconst deltaAngle = Math.atan2(margin, (344 + 328) / 2);\n\nfunction adviceMask(\n minAngle: number,\n maxAngle: number,\n fill: string,\n stroke: string\n): SVGTemplateResult {\n const radl = (minAngle * Math.PI) / 180 + deltaAngle;\n const radh = (maxAngle * Math.PI) / 180 - deltaAngle;\n const r1 = 328 / 2;\n const r2 = 344 / 2;\n const R = (r2 - r1) / 2;\n const x1l = Math.sin(radl) * r1;\n const y1l = -Math.cos(radl) * r1;\n const x2l = Math.sin(radl) * r2;\n const y2l = -Math.cos(radl) * r2;\n\n const x1h = Math.sin(radh) * r1;\n const y1h = -Math.cos(radh) * r1;\n const x2h = Math.sin(radh) * r2;\n const y2h = -Math.cos(radh) * r2;\n\n const path = `M ${x1l} ${y1l} \n A ${r1} ${r1} 0 0 1 ${x1h} ${y1h}\n A ${R} ${R} 0 0 0 ${x2h} ${y2h}\n A ${r2} ${r2} 0 0 0 ${x2l} ${y2l}\n A ${R} ${R} 0 0 0 ${x1l} ${y1l}\n Z`;\n return svg`<path d=${path} fill=${fill} stroke=${stroke} stroke-width=\"1\" vector-effect=\"non-scaling-stroke\" />`;\n}\n\nexport function renderAdvice(advice: AngleAdviceRaw): SVGTemplateResult {\n if (advice.type === AdviceType.caution) {\n let mainColor;\n let fillColor: string | null = null;\n if (advice.state === AdviceState.hinted) {\n mainColor = 'var(--instrument-frame-tertiary-color)';\n } else if (advice.state === AdviceState.regular) {\n mainColor = 'var(--instrument-tick-mark-tertiary-color)';\n } else {\n mainColor = 'var(--on-caution-active-color)';\n fillColor = 'var(--alert-caution-color)';\n }\n const radialPattern = [];\n for (let i = 0; i < 180; i += 4) {\n radialPattern.push(svg`<g transform=\"rotate(${i}) translate(-256 -256) \">\n <path d=\"M369.167 64.7317L144 194.732L142 191.268L367.167 61.2676L369.167 64.7317ZM369.167 320.732L144 450.732L142 447.267L367.167 317.267L369.167 320.732Z\" fill=${mainColor}/>\n </g>\n `);\n }\n const maskId = `adviceMask-${advice.minAngle}-${advice.maxAngle}`;\n let tickmarkStyle = TickmarkStyle.hinted;\n if (advice.state === AdviceState.regular) {\n tickmarkStyle = TickmarkStyle.regular;\n } else if (advice.state === AdviceState.triggered) {\n tickmarkStyle = TickmarkStyle.enhanced;\n }\n\n return svg`\n <mask id=${maskId}>\n ${adviceMask(advice.minAngle, advice.maxAngle, 'white', 'black')}\n </mask>\n <g mask=\"url(#${maskId})\">\n ${fillColor ? svg`<rect x=\"-256\" y=\"-256\" width=\"512\" height=\"512\" fill=\"${fillColor}\"/>` : nothing}\n ${radialPattern}\n </g>\n ${adviceMask(advice.minAngle, advice.maxAngle, 'none', mainColor)}\n ${tickmark(advice.minAngle, TickmarkType.primary, tickmarkStyle, 1)}\n ${tickmark(advice.maxAngle, TickmarkType.primary, tickmarkStyle, 1)}\n `;\n } else {\n let mainColor;\n let tickmarkStyle;\n if (advice.state === AdviceState.hinted) {\n mainColor = 'var(--instrument-frame-tertiary-color)';\n tickmarkStyle = TickmarkStyle.hinted;\n } else if (advice.state === AdviceState.regular) {\n mainColor = 'var(--instrument-regular-secondary-color)';\n tickmarkStyle = TickmarkStyle.regular;\n } else {\n mainColor = 'var(--instrument-enhanced-secondary-color)';\n tickmarkStyle = TickmarkStyle.regular;\n }\n return svg`\n ${adviceMask(advice.minAngle, advice.maxAngle, advice.state === AdviceState.triggered ? mainColor : 'none', mainColor)}\n ${tickmark(advice.minAngle, TickmarkType.primary, tickmarkStyle, 1)}\n ${tickmark(advice.maxAngle, TickmarkType.primary, tickmarkStyle, 1)}\n `;\n }\n}\n"],"names":["AdviceType","AdviceState"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"label.js","sources":["../../../src/navigation-instruments/watch/label.ts"],"sourcesContent":["import {svg, SVGTemplateResult} from 'lit-html';\n\nexport function renderLabels(scale: number): SVGTemplateResult {\n const labelWidth = 32;\n const gap = 8;\n const radius: number = 368 / 2;\n const labels = [\n {\n label: 'E',\n x: radius + gap / scale + labelWidth / 2,\n y: 0,\n class: 'label',\n },\n {\n label: 'S',\n x: 0,\n y: radius + gap / scale + labelWidth / 2,\n class: 'label',\n },\n {\n label: 'W',\n x: -(radius + gap / scale + labelWidth / 2),\n y: 0,\n class: 'label',\n },\n ];\n\n let arrow = svg`<defs>\n <mask id=\"circleMask\">\n <rect x=\"-${radius}\" y=\"-${radius}\" width=\"${radius * 2}\" height=\"${radius * 2}\" fill=\"black\"/>\n <circle cx=\"0\" cy=\"0\" r=\"${radius}\" fill=\"white\"/>\n </mask>\n </defs>\n <g mask=\"url(#circleMask)\" transform=\"translate(0, ${-(radius + 45 / scale)}) scale(${1 / scale}, ${1 / scale})\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M-32.04 42.7192 0 0 32.039 42.7192C21.627 40.9314 10.922 40 0 40-10.922 40-21.627 40.9314-32.04 42.7192Z\" \n fill=\"var(--instrument-tick-mark-secondary-color)\"/>\n <path d=\"M5.003 29H2.091L-3.013 20.264H-3.077C-3.066 20.52-3.056 20.7813-3.045 21.048-3.034 21.3147-3.024 21.5867-3.013 21.864-2.992 22.1307-2.976 22.4027-2.965 22.68-2.954 22.9573-2.944 23.2347-2.933 23.512V29H-4.997V17.576H-2.101L2.987 26.232H3.035C3.024 25.9867 3.014 25.736 3.003 25.48 2.992 25.2133 2.982 24.952 2.971 24.696 2.971 24.4293 2.966 24.1627 2.955 23.896 2.944 23.6293 2.934 23.3627 2.923 23.096V17.576H5.003V29Z\" fill=\"var(--element-active-inverted-color)\"/>\n </g>`;\n\n if (scale < 0.58) {\n arrow = svg`\n <g mask=\"url(#circleMask)\" transform=\"translate(0, ${-radius})\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M-17.8457 24.984 0 0 17.8458 24.984C11.9868 24.3338 6.0324 24 0 24-6.0323 24-11.9867 24.3338-17.8457 24.984Z\" fill=\"var(--instrument-frame-tertiary-color)\"/>\n </g>`;\n\n labels.push({\n label: 'N',\n x: 0,\n y: -(radius + gap / scale + labelWidth / 2),\n class: 'label',\n });\n }\n\n return svg`\n ${arrow}\n\n ${labels.map(\n (l) => svg`\n <text\n x=\"${l.x}\"\n y=\"${l.y}\"\n class=\"${l.class}\"\n >\n ${l.label}\n </text>\n `\n )}\n `;\n}\n"],"names":[],"mappings":";AAEO,SAAS,aAAa,OAAkC;AAC7D,QAAM,aAAa;AACnB,QAAM,MAAM;AACZ,QAAM,SAAiB,MAAM;AAC7B,QAAM,SAAS;AAAA,IACb;AAAA,MACE,OAAO;AAAA,MACP,GAAG,SAAS,MAAM,QAAQ,aAAa;AAAA,MACvC,GAAG;AAAA,MACH,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,GAAG;AAAA,MACH,GAAG,SAAS,MAAM,QAAQ,aAAa;AAAA,MACvC,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,GAAG,EAAE,SAAS,MAAM,QAAQ,aAAa;AAAA,MACzC,GAAG;AAAA,MACH,OAAO;AAAA,
|
1
|
+
{"version":3,"file":"label.js","sources":["../../../src/navigation-instruments/watch/label.ts"],"sourcesContent":["import {svg, SVGTemplateResult} from 'lit-html';\n\nexport function renderLabels(scale: number): SVGTemplateResult {\n const labelWidth = 32;\n const gap = 8;\n const radius: number = 368 / 2;\n const labels = [\n {\n label: 'E',\n x: radius + gap / scale + labelWidth / 2,\n y: 0,\n class: 'label',\n },\n {\n label: 'S',\n x: 0,\n y: radius + gap / scale + labelWidth / 2,\n class: 'label',\n },\n {\n label: 'W',\n x: -(radius + gap / scale + labelWidth / 2),\n y: 0,\n class: 'label',\n },\n ];\n\n let arrow = svg`<defs>\n <mask id=\"circleMask\">\n <rect x=\"-${radius}\" y=\"-${radius}\" width=\"${radius * 2}\" height=\"${radius * 2}\" fill=\"black\"/>\n <circle cx=\"0\" cy=\"0\" r=\"${radius}\" fill=\"white\"/>\n </mask>\n </defs>\n <g mask=\"url(#circleMask)\" transform=\"translate(0, ${-(radius + 45 / scale)}) scale(${1 / scale}, ${1 / scale})\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M-32.04 42.7192 0 0 32.039 42.7192C21.627 40.9314 10.922 40 0 40-10.922 40-21.627 40.9314-32.04 42.7192Z\" \n fill=\"var(--instrument-tick-mark-secondary-color)\"/>\n <path d=\"M5.003 29H2.091L-3.013 20.264H-3.077C-3.066 20.52-3.056 20.7813-3.045 21.048-3.034 21.3147-3.024 21.5867-3.013 21.864-2.992 22.1307-2.976 22.4027-2.965 22.68-2.954 22.9573-2.944 23.2347-2.933 23.512V29H-4.997V17.576H-2.101L2.987 26.232H3.035C3.024 25.9867 3.014 25.736 3.003 25.48 2.992 25.2133 2.982 24.952 2.971 24.696 2.971 24.4293 2.966 24.1627 2.955 23.896 2.944 23.6293 2.934 23.3627 2.923 23.096V17.576H5.003V29Z\" fill=\"var(--element-active-inverted-color)\"/>\n </g>`;\n\n if (scale < 0.58) {\n arrow = svg`\n <g mask=\"url(#circleMask)\" transform=\"translate(0, ${-radius})\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M-17.8457 24.984 0 0 17.8458 24.984C11.9868 24.3338 6.0324 24 0 24-6.0323 24-11.9867 24.3338-17.8457 24.984Z\" fill=\"var(--instrument-frame-tertiary-color)\"/>\n </g>`;\n\n labels.push({\n label: 'N',\n x: 0,\n y: -(radius + gap / scale + labelWidth / 2),\n class: 'label',\n });\n }\n\n return svg`\n ${arrow}\n\n ${labels.map(\n (l) => svg`\n <text\n x=\"${l.x}\"\n y=\"${l.y}\"\n class=\"${l.class}\"\n >\n ${l.label}\n </text>\n `\n )}\n `;\n}\n"],"names":[],"mappings":";AAEO,SAAS,aAAa,OAAkC;AAC7D,QAAM,aAAa;AACnB,QAAM,MAAM;AACZ,QAAM,SAAiB,MAAM;AAC7B,QAAM,SAAS;AAAA,IACb;AAAA,MACE,OAAO;AAAA,MACP,GAAG,SAAS,MAAM,QAAQ,aAAa;AAAA,MACvC,GAAG;AAAA,MACH,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,GAAG;AAAA,MACH,GAAG,SAAS,MAAM,QAAQ,aAAa;AAAA,MACvC,OAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,GAAG,EAAE,SAAS,MAAM,QAAQ,aAAa;AAAA,MACzC,GAAG;AAAA,MACH,OAAO;AAAA,IAAA;AAAA,EAEX;AAEA,MAAI,QAAQ;AAAA;AAAA,wBAEU,MAAM,SAAS,MAAM,YAAY,SAAS,CAAC,aAAa,SAAS,CAAC;AAAA,uCACnD,MAAM;AAAA;AAAA;AAAA,yDAGY,EAAE,SAAS,KAAK,MAAM,WAAW,IAAI,KAAK,KAAK,IAAI,KAAK;AAAA;AAAA;AAAA;AAAA;AAM/G,MAAI,QAAQ,MAAM;AACR,YAAA;AAAA,2DAC+C,CAAC,MAAM;AAAA;AAAA;AAI9D,WAAO,KAAK;AAAA,MACV,OAAO;AAAA,MACP,GAAG;AAAA,MACH,GAAG,EAAE,SAAS,MAAM,QAAQ,aAAa;AAAA,MACzC,OAAO;AAAA,IAAA,CACR;AAAA,EAAA;AAGI,SAAA;AAAA,MACH,KAAK;AAAA;AAAA,MAEL,OAAO;AAAA,IACP,CAAC,MAAM;AAAA;AAAA,eAEE,EAAE,CAAC;AAAA,eACH,EAAE,CAAC;AAAA,mBACC,EAAE,KAAK;AAAA;AAAA,YAEd,EAAE,KAAK;AAAA;AAAA;AAAA,EAGd,CAAA;AAAA;AAEL;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"tickmark.js","sources":["../../../src/navigation-instruments/watch/tickmark.ts"],"sourcesContent":["import {SVGTemplateResult, svg} from 'lit';\n\nexport interface Tickmark {\n angle: number;\n type: TickmarkType;\n text?: string;\n}\n\nexport enum TickmarkType {\n main = 'main',\n primary = 'primary',\n secondary = 'secondary',\n tertiary = 'tertiary',\n}\n\nexport enum TickmarkStyle {\n hinted = 'hinted',\n regular = 'regular',\n enhanced = 'enhanced',\n}\n\nexport function tickmarkColor(style: TickmarkStyle): string {\n if (style === TickmarkStyle.hinted) {\n return 'var(--instrument-frame-tertiary-color)';\n } else if (style === TickmarkStyle.regular) {\n return 'var(--instrument-tick-mark-tertiary-color)';\n } else {\n return 'var(--instrument-tick-mark-primary-color)';\n }\n}\n\nexport function tickmark(\n angle: number,\n tickmarkSize: TickmarkType,\n style: TickmarkStyle,\n scale: number,\n text?: string\n): SVGTemplateResult | SVGTemplateResult[] {\n let innerRadius: number = 328 / 2;\n let outerRadius: number = 368 / 2;\n const textRadius = outerRadius + 18 / scale;\n if (tickmarkSize === TickmarkType.secondary) {\n innerRadius = 164.5;\n outerRadius = 172.5;\n } else if (tickmarkSize === TickmarkType.main) {\n innerRadius = 320 / 2;\n outerRadius = 368 / 2;\n } else if (tickmarkSize === TickmarkType.tertiary) {\n throw new Error('Tertiary tickmarks are not supported');\n }\n const colorName = tickmarkColor(style);\n\n const rad = (angle * Math.PI) / 180;\n const x1 = Math.sin(rad) * innerRadius;\n const y1 = -Math.cos(rad) * innerRadius;\n const x2 = Math.sin(rad) * outerRadius;\n const y2 = -Math.cos(rad) * outerRadius;\n const tick = svg`<line x1=${x1} y1=${y1} x2=${x2} y2=${y2} stroke=${colorName} stroke-width=\"1\" vector-effect=\"non-scaling-stroke\"/>`;\n if (text) {\n const textX = Math.sin(rad) * textRadius;\n const textY = -Math.cos(rad) * textRadius;\n return [\n tick,\n svg`<text x=${textX} y=${textY} class=\"label\">${text}</text>`,\n ];\n }\n return tick;\n}\n"],"names":["TickmarkType","TickmarkStyle"],"mappings":";AAQY,IAAA,iCAAAA,kBAAL;AACLA,gBAAA,MAAO,IAAA;AACPA,gBAAA,SAAU,IAAA;AACVA,gBAAA,WAAY,IAAA;AACZA,gBAAA,UAAW,IAAA;AAJDA,SAAAA;AAAA,GAAA,gBAAA,CAAA,CAAA;AAOA,IAAA,kCAAAC,mBAAL;AACLA,iBAAA,QAAS,IAAA;AACTA,iBAAA,SAAU,IAAA;AACVA,iBAAA,UAAW,IAAA;AAHDA,SAAAA;AAAA,GAAA,iBAAA,CAAA,CAAA;AAML,SAAS,cAAc,OAA8B;AAC1D,MAAI,UAAU,UAAsB;AAC3B,WAAA;AAAA,EAAA,WACE,UAAU,WAAuB;AACnC,WAAA;AAAA,EAAA,OACF;AACE,WAAA;AAAA,
|
1
|
+
{"version":3,"file":"tickmark.js","sources":["../../../src/navigation-instruments/watch/tickmark.ts"],"sourcesContent":["import {SVGTemplateResult, svg} from 'lit';\n\nexport interface Tickmark {\n angle: number;\n type: TickmarkType;\n text?: string;\n}\n\nexport enum TickmarkType {\n main = 'main',\n primary = 'primary',\n secondary = 'secondary',\n tertiary = 'tertiary',\n}\n\nexport enum TickmarkStyle {\n hinted = 'hinted',\n regular = 'regular',\n enhanced = 'enhanced',\n}\n\nexport function tickmarkColor(style: TickmarkStyle): string {\n if (style === TickmarkStyle.hinted) {\n return 'var(--instrument-frame-tertiary-color)';\n } else if (style === TickmarkStyle.regular) {\n return 'var(--instrument-tick-mark-tertiary-color)';\n } else {\n return 'var(--instrument-tick-mark-primary-color)';\n }\n}\n\nexport function tickmark(\n angle: number,\n tickmarkSize: TickmarkType,\n style: TickmarkStyle,\n scale: number,\n text?: string\n): SVGTemplateResult | SVGTemplateResult[] {\n let innerRadius: number = 328 / 2;\n let outerRadius: number = 368 / 2;\n const textRadius = outerRadius + 18 / scale;\n if (tickmarkSize === TickmarkType.secondary) {\n innerRadius = 164.5;\n outerRadius = 172.5;\n } else if (tickmarkSize === TickmarkType.main) {\n innerRadius = 320 / 2;\n outerRadius = 368 / 2;\n } else if (tickmarkSize === TickmarkType.tertiary) {\n throw new Error('Tertiary tickmarks are not supported');\n }\n const colorName = tickmarkColor(style);\n\n const rad = (angle * Math.PI) / 180;\n const x1 = Math.sin(rad) * innerRadius;\n const y1 = -Math.cos(rad) * innerRadius;\n const x2 = Math.sin(rad) * outerRadius;\n const y2 = -Math.cos(rad) * outerRadius;\n const tick = svg`<line x1=${x1} y1=${y1} x2=${x2} y2=${y2} stroke=${colorName} stroke-width=\"1\" vector-effect=\"non-scaling-stroke\"/>`;\n if (text) {\n const textX = Math.sin(rad) * textRadius;\n const textY = -Math.cos(rad) * textRadius;\n return [\n tick,\n svg`<text x=${textX} y=${textY} class=\"label\">${text}</text>`,\n ];\n }\n return tick;\n}\n"],"names":["TickmarkType","TickmarkStyle"],"mappings":";AAQY,IAAA,iCAAAA,kBAAL;AACLA,gBAAA,MAAO,IAAA;AACPA,gBAAA,SAAU,IAAA;AACVA,gBAAA,WAAY,IAAA;AACZA,gBAAA,UAAW,IAAA;AAJDA,SAAAA;AAAA,GAAA,gBAAA,CAAA,CAAA;AAOA,IAAA,kCAAAC,mBAAL;AACLA,iBAAA,QAAS,IAAA;AACTA,iBAAA,SAAU,IAAA;AACVA,iBAAA,UAAW,IAAA;AAHDA,SAAAA;AAAA,GAAA,iBAAA,CAAA,CAAA;AAML,SAAS,cAAc,OAA8B;AAC1D,MAAI,UAAU,UAAsB;AAC3B,WAAA;AAAA,EAAA,WACE,UAAU,WAAuB;AACnC,WAAA;AAAA,EAAA,OACF;AACE,WAAA;AAAA,EAAA;AAEX;AAEO,SAAS,SACd,OACA,cACA,OACA,OACA,MACyC;AACzC,MAAI,cAAsB,MAAM;AAChC,MAAI,cAAsB,MAAM;AAC1B,QAAA,aAAa,cAAc,KAAK;AACtC,MAAI,iBAAiB,aAAwB;AAC7B,kBAAA;AACA,kBAAA;AAAA,EAAA,WACL,iBAAiB,QAAmB;AAC7C,kBAAc,MAAM;AACpB,kBAAc,MAAM;AAAA,EAAA,WACX,iBAAiB,YAAuB;AAC3C,UAAA,IAAI,MAAM,sCAAsC;AAAA,EAAA;AAElD,QAAA,YAAY,cAAc,KAAK;AAE/B,QAAA,MAAO,QAAQ,KAAK,KAAM;AAChC,QAAM,KAAK,KAAK,IAAI,GAAG,IAAI;AAC3B,QAAM,KAAK,CAAC,KAAK,IAAI,GAAG,IAAI;AAC5B,QAAM,KAAK,KAAK,IAAI,GAAG,IAAI;AAC3B,QAAM,KAAK,CAAC,KAAK,IAAI,GAAG,IAAI;AACtB,QAAA,OAAO,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,SAAS;AAC7E,MAAI,MAAM;AACR,UAAM,QAAQ,KAAK,IAAI,GAAG,IAAI;AAC9B,UAAM,QAAQ,CAAC,KAAK,IAAI,GAAG,IAAI;AACxB,WAAA;AAAA,MACL;AAAA,MACA,cAAc,KAAK,MAAM,KAAK,kBAAkB,IAAI;AAAA,IACtD;AAAA,EAAA;AAEK,SAAA;AACT;"}
|
@@ -15,8 +15,7 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
15
15
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
16
16
|
if (decorator = decorators[i])
|
17
17
|
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
18
|
-
if (kind && result)
|
19
|
-
__defProp(target, key, result);
|
18
|
+
if (kind && result) __defProp(target, key, result);
|
20
19
|
return result;
|
21
20
|
};
|
22
21
|
let ObcWatch = class extends LitElement {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"watch.js","sources":["../../../src/navigation-instruments/watch/watch.ts"],"sourcesContent":["import {\n LitElement,\n SVGTemplateResult,\n html,\n nothing,\n svg,\n unsafeCSS,\n} from 'lit';\nimport {customElement, property} from 'lit/decorators.js';\nimport {circle} from '../../svghelpers';\nimport {roundedArch} from '../../svghelpers/roundedArch';\nimport {InstrumentState} from '../types';\nimport compentStyle from './watch.css?inline';\nimport {ResizeController} from '@lit-labs/observers/resize-controller.js';\nimport {AngleAdviceRaw, renderAdvice} from './advice';\nimport {Tickmark, TickmarkStyle, tickmark} from './tickmark';\nimport {renderLabels} from './label';\n\n@customElement('obc-watch')\nexport class ObcWatch extends LitElement {\n @property({type: String}) state: InstrumentState = InstrumentState.inCommand;\n @property({type: Number}) angleSetpoint: number | undefined;\n @property({type: Boolean}) atAngleSetpoint: boolean = false;\n @property({type: Number}) padding = 24;\n @property({type: Number}) cutAngleStart: number | null = null;\n @property({type: Number}) cutAngleEnd: number | null = null;\n @property({type: Boolean}) roundOutsideCut = false;\n @property({type: Boolean}) roundInsideCut = false;\n @property({type: Array, attribute: false}) tickmarks: Tickmark[] = [];\n @property({type: Array, attribute: false}) advices: AngleAdviceRaw[] = [];\n @property({type: Boolean}) crosshairEnabled: boolean = false;\n @property({type: Boolean}) labelFrameEnabled: boolean = false;\n\n // @ts-expect-error TS6133: The controller ensures that the render\n // function is called on resize of the element\n private _resizeController = new ResizeController(this, {});\n\n private watchCircle(): SVGTemplateResult {\n if (this.cutAngleStart === null || this.cutAngleEnd === null) {\n return svg`\n <defs>\n <mask id=\"mask1\" x=\"0\" y=\"0\" width=\"100%\" height=\"100%\">\n <rect x=\"-200\" y=\"-200\" width=\"400\" height=\"400\" fill=\"white\" />\n <circle cx=\"0\" cy=\"0\" r=\"160\" fill=\"black\" />\n </mask>\n </defs>\n ${\n this.state === InstrumentState.off\n ? null\n : svg`\n <circle\n cx=\"0\"\n cy=\"0\"\n r=\"184\"\n fill=\"var(--instrument-frame-primary-color)\"\n mask=\"url(#mask1)\"\n />`\n }\n ${circle('innerRing', {\n radius: 320 / 2,\n strokeWidth: 1,\n strokeColor: 'var(--instrument-frame-tertiary-color)',\n strokePosition: 'center',\n fillColor: 'none',\n })}\n ${\n this.state === InstrumentState.off\n ? null\n : circle('outerRing', {\n radius: 368 / 2,\n strokeWidth: 1,\n strokeColor: 'var(--instrument-frame-tertiary-color)',\n strokePosition: 'center',\n fillColor: 'none',\n })\n }\n `;\n } else {\n const R = 184;\n const r = 160;\n const svgPath = roundedArch({\n startAngle: this.cutAngleStart,\n endAngle: this.cutAngleEnd,\n R,\n r,\n roundOutsideCut: this.roundOutsideCut,\n roundInsideCut: this.roundInsideCut,\n });\n return svg`\n <path d=${svgPath} fill=\"var(--instrument-frame-primary-color)\" \n stroke=\"var(--instrument-frame-tertiary-color)\"\n vector-effect=\"non-scaling-stroke\"/>\n `;\n }\n }\n\n private renderCrosshair(radius: number): SVGTemplateResult {\n return svg`\n <line\n x1=\"-${radius}\"\n y1=\"0\"\n x2=\"${radius}\"\n y2=\"0\"\n stroke=\"var(--instrument-frame-tertiary-color)\"\n stroke-width=\"1\"\n vector-effect=\"non-scaling-stroke\"\n />\n <line\n x1=\"0\"\n y1=\"-${radius}\"\n x2=\"0\"\n y2=\"${radius}\"\n stroke=\"var(--instrument-frame-tertiary-color)\"\n stroke-width=\"1\"\n vector-effect=\"non-scaling-stroke\"\n />\n `;\n }\n\n override render() {\n const width = (176 + this.padding) * 2;\n const viewBox = `-${width / 2} -${width / 2} ${width} ${width}`;\n const angleSetpoint = this.renderSetpoint();\n const scale = Math.min(this.clientWidth, this.clientHeight) / width;\n const tickmarks = this.tickmarks.map((t) =>\n tickmark(t.angle, t.type, TickmarkStyle.hinted, scale, t.text)\n );\n const advices = this.advices\n ? this.advices.map((a) => renderAdvice(a))\n : nothing;\n const labels = this.labelFrameEnabled ? renderLabels(scale) : nothing;\n\n return html`\n <svg\n width=\"100%\"\n height=\"100%\"\n viewBox=${viewBox}\n style=\"--scale: ${scale}\"\n >\n ${this.watchCircle()} ${tickmarks} ${advices} ${angleSetpoint} ${labels}\n ${this.crosshairEnabled ? this.renderCrosshair(320 / 2) : nothing}\n </svg>\n `;\n }\n\n private renderSetpoint(): SVGTemplateResult | typeof nothing {\n let setPointColor = 'var(--instrument-enhanced-primary-color)';\n if (this.atAngleSetpoint) {\n setPointColor = 'var(--instrument-enhanced-secondary-color)';\n }\n if (this.state === InstrumentState.active) {\n setPointColor = 'var(--instrument-regular-primary-color)';\n if (this.atAngleSetpoint) {\n setPointColor = 'var(--instrument-regular-secondary-color)';\n }\n } else if (this.state === InstrumentState.loading) {\n setPointColor = 'var(--instrument-frame-tertiary-color)';\n } else if (this.state === InstrumentState.off) {\n setPointColor = 'var(--instrument-frame-tertiary-color)';\n }\n\n if (this.angleSetpoint === undefined) {\n return nothing;\n } else {\n let path;\n if (this.state === InstrumentState.inCommand) {\n path =\n 'M23.5119 8C24.6981 6.35191 23.5696 4 21.5926 4L2.39959 4C0.422598 4 -0.705911 6.35191 0.480283 8L11.9961 24L23.5119 8Z';\n } else {\n path =\n 'M18.5836 8L5.4086 8L11.9961 17.1526L18.5836 8ZM23.5119 8C24.6981 6.35191 23.5696 4 21.5926 4L2.39959 4C0.422598 4 -0.705911 6.35191 0.480283 8L11.9961 24L23.5119 8Z';\n }\n return svg`\n <defs>\n <g id=\"setpoint\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" transform=\"translate(-24 12) rotate(-90)\" d=${path} vector-effect=\"non-scaling-stroke\"/>\n </g>\n <mask id=\"setpointMask\">\n <rect x=\"-20\" y=\"-20\" width=\"50\" height=\"50\" fill=\"white\" />\n <use href=\"#setpoint\" fill=\"black\" />\n </mask>\n </defs>\n <g transform=\"rotate(${this.angleSetpoint + 90}) translate(-168 0) \">\n <use href=\"#setpoint\" fill=${setPointColor} stroke-width=\"0\" />\n \n <use href=\"#setpoint\" vector-effect=\"non-scaling-stroke\" fill=\"none\" stroke=\"var(--border-silhouette-color)\" stroke-width=\"2\" stroke-linejoin=\"round\" mask=\"url(#setpointMask)\" />\n </g>\n `;\n }\n }\n\n static override styles = unsafeCSS(compentStyle);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'obc-watch': ObcWatch;\n }\n}\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"watch.js","sources":["../../../src/navigation-instruments/watch/watch.ts"],"sourcesContent":["import {\n LitElement,\n SVGTemplateResult,\n html,\n nothing,\n svg,\n unsafeCSS,\n} from 'lit';\nimport {customElement, property} from 'lit/decorators.js';\nimport {circle} from '../../svghelpers';\nimport {roundedArch} from '../../svghelpers/roundedArch';\nimport {InstrumentState} from '../types';\nimport compentStyle from './watch.css?inline';\nimport {ResizeController} from '@lit-labs/observers/resize-controller.js';\nimport {AngleAdviceRaw, renderAdvice} from './advice';\nimport {Tickmark, TickmarkStyle, tickmark} from './tickmark';\nimport {renderLabels} from './label';\n\n@customElement('obc-watch')\nexport class ObcWatch extends LitElement {\n @property({type: String}) state: InstrumentState = InstrumentState.inCommand;\n @property({type: Number}) angleSetpoint: number | undefined;\n @property({type: Boolean}) atAngleSetpoint: boolean = false;\n @property({type: Number}) padding = 24;\n @property({type: Number}) cutAngleStart: number | null = null;\n @property({type: Number}) cutAngleEnd: number | null = null;\n @property({type: Boolean}) roundOutsideCut = false;\n @property({type: Boolean}) roundInsideCut = false;\n @property({type: Array, attribute: false}) tickmarks: Tickmark[] = [];\n @property({type: Array, attribute: false}) advices: AngleAdviceRaw[] = [];\n @property({type: Boolean}) crosshairEnabled: boolean = false;\n @property({type: Boolean}) labelFrameEnabled: boolean = false;\n\n // @ts-expect-error TS6133: The controller ensures that the render\n // function is called on resize of the element\n private _resizeController = new ResizeController(this, {});\n\n private watchCircle(): SVGTemplateResult {\n if (this.cutAngleStart === null || this.cutAngleEnd === null) {\n return svg`\n <defs>\n <mask id=\"mask1\" x=\"0\" y=\"0\" width=\"100%\" height=\"100%\">\n <rect x=\"-200\" y=\"-200\" width=\"400\" height=\"400\" fill=\"white\" />\n <circle cx=\"0\" cy=\"0\" r=\"160\" fill=\"black\" />\n </mask>\n </defs>\n ${\n this.state === InstrumentState.off\n ? null\n : svg`\n <circle\n cx=\"0\"\n cy=\"0\"\n r=\"184\"\n fill=\"var(--instrument-frame-primary-color)\"\n mask=\"url(#mask1)\"\n />`\n }\n ${circle('innerRing', {\n radius: 320 / 2,\n strokeWidth: 1,\n strokeColor: 'var(--instrument-frame-tertiary-color)',\n strokePosition: 'center',\n fillColor: 'none',\n })}\n ${\n this.state === InstrumentState.off\n ? null\n : circle('outerRing', {\n radius: 368 / 2,\n strokeWidth: 1,\n strokeColor: 'var(--instrument-frame-tertiary-color)',\n strokePosition: 'center',\n fillColor: 'none',\n })\n }\n `;\n } else {\n const R = 184;\n const r = 160;\n const svgPath = roundedArch({\n startAngle: this.cutAngleStart,\n endAngle: this.cutAngleEnd,\n R,\n r,\n roundOutsideCut: this.roundOutsideCut,\n roundInsideCut: this.roundInsideCut,\n });\n return svg`\n <path d=${svgPath} fill=\"var(--instrument-frame-primary-color)\" \n stroke=\"var(--instrument-frame-tertiary-color)\"\n vector-effect=\"non-scaling-stroke\"/>\n `;\n }\n }\n\n private renderCrosshair(radius: number): SVGTemplateResult {\n return svg`\n <line\n x1=\"-${radius}\"\n y1=\"0\"\n x2=\"${radius}\"\n y2=\"0\"\n stroke=\"var(--instrument-frame-tertiary-color)\"\n stroke-width=\"1\"\n vector-effect=\"non-scaling-stroke\"\n />\n <line\n x1=\"0\"\n y1=\"-${radius}\"\n x2=\"0\"\n y2=\"${radius}\"\n stroke=\"var(--instrument-frame-tertiary-color)\"\n stroke-width=\"1\"\n vector-effect=\"non-scaling-stroke\"\n />\n `;\n }\n\n override render() {\n const width = (176 + this.padding) * 2;\n const viewBox = `-${width / 2} -${width / 2} ${width} ${width}`;\n const angleSetpoint = this.renderSetpoint();\n const scale = Math.min(this.clientWidth, this.clientHeight) / width;\n const tickmarks = this.tickmarks.map((t) =>\n tickmark(t.angle, t.type, TickmarkStyle.hinted, scale, t.text)\n );\n const advices = this.advices\n ? this.advices.map((a) => renderAdvice(a))\n : nothing;\n const labels = this.labelFrameEnabled ? renderLabels(scale) : nothing;\n\n return html`\n <svg\n width=\"100%\"\n height=\"100%\"\n viewBox=${viewBox}\n style=\"--scale: ${scale}\"\n >\n ${this.watchCircle()} ${tickmarks} ${advices} ${angleSetpoint} ${labels}\n ${this.crosshairEnabled ? this.renderCrosshair(320 / 2) : nothing}\n </svg>\n `;\n }\n\n private renderSetpoint(): SVGTemplateResult | typeof nothing {\n let setPointColor = 'var(--instrument-enhanced-primary-color)';\n if (this.atAngleSetpoint) {\n setPointColor = 'var(--instrument-enhanced-secondary-color)';\n }\n if (this.state === InstrumentState.active) {\n setPointColor = 'var(--instrument-regular-primary-color)';\n if (this.atAngleSetpoint) {\n setPointColor = 'var(--instrument-regular-secondary-color)';\n }\n } else if (this.state === InstrumentState.loading) {\n setPointColor = 'var(--instrument-frame-tertiary-color)';\n } else if (this.state === InstrumentState.off) {\n setPointColor = 'var(--instrument-frame-tertiary-color)';\n }\n\n if (this.angleSetpoint === undefined) {\n return nothing;\n } else {\n let path;\n if (this.state === InstrumentState.inCommand) {\n path =\n 'M23.5119 8C24.6981 6.35191 23.5696 4 21.5926 4L2.39959 4C0.422598 4 -0.705911 6.35191 0.480283 8L11.9961 24L23.5119 8Z';\n } else {\n path =\n 'M18.5836 8L5.4086 8L11.9961 17.1526L18.5836 8ZM23.5119 8C24.6981 6.35191 23.5696 4 21.5926 4L2.39959 4C0.422598 4 -0.705911 6.35191 0.480283 8L11.9961 24L23.5119 8Z';\n }\n return svg`\n <defs>\n <g id=\"setpoint\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" transform=\"translate(-24 12) rotate(-90)\" d=${path} vector-effect=\"non-scaling-stroke\"/>\n </g>\n <mask id=\"setpointMask\">\n <rect x=\"-20\" y=\"-20\" width=\"50\" height=\"50\" fill=\"white\" />\n <use href=\"#setpoint\" fill=\"black\" />\n </mask>\n </defs>\n <g transform=\"rotate(${this.angleSetpoint + 90}) translate(-168 0) \">\n <use href=\"#setpoint\" fill=${setPointColor} stroke-width=\"0\" />\n \n <use href=\"#setpoint\" vector-effect=\"non-scaling-stroke\" fill=\"none\" stroke=\"var(--border-silhouette-color)\" stroke-width=\"2\" stroke-linejoin=\"round\" mask=\"url(#setpointMask)\" />\n </g>\n `;\n }\n }\n\n static override styles = unsafeCSS(compentStyle);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'obc-watch': ObcWatch;\n }\n}\n"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"tickmark-flat.js","sources":["../../../src/navigation-instruments/watch-flat/tickmark-flat.ts"],"sourcesContent":["import {SVGTemplateResult, svg} from 'lit';\n\nexport interface Tickmark {\n angle: number;\n type: TickmarkType;\n text?: string;\n}\n\nexport enum TickmarkType {\n main = 'main',\n primary = 'primary',\n secondary = 'secondary',\n tertiary = 'tertiary',\n}\n\nexport enum TickmarkStyle {\n hinted = 'hinted',\n regular = 'regular',\n enhanced = 'enhanced',\n}\n\nexport function tickmarkColor(style: TickmarkStyle): string {\n if (style === TickmarkStyle.hinted) {\n return 'var(--instrument-frame-tertiary-color)';\n } else if (style === TickmarkStyle.regular) {\n return 'var(--instrument-tick-mark-secondary-color)';\n } else {\n return 'var(--instrument-tick-mark-primary-color)';\n }\n}\n\nexport function tickmark(\n angle: number,\n tickmarkSize: TickmarkType,\n style: TickmarkStyle,\n text?: string\n): SVGTemplateResult | SVGTemplateResult[] {\n const textHeight = -32;\n let lineStartY: number = -35;\n let lineEndY: number = -34;\n\n if (tickmarkSize === TickmarkType.secondary) {\n lineStartY = -24;\n lineEndY = lineStartY + 8;\n } else if (tickmarkSize === TickmarkType.main) {\n lineEndY = lineStartY + 20;\n } else if (tickmarkSize === TickmarkType.tertiary) {\n throw new Error('Tertiary tickmarks are not supported');\n }\n\n const colorName = tickmarkColor(style);\n const tick = svg`<line x1=${angle} y1=${lineStartY} x2=${angle} y2=${lineEndY} stroke=${colorName} stroke-width=\"1\" vector-effect=\"non-scaling-stroke\"/>`;\n if (text) {\n const textY = lineEndY + textHeight;\n return [\n tick,\n svg`<text x=${angle} y=${textY} class=\"label\" text-anchor=\"middle\">${text}</text>`,\n ];\n }\n\n return tick;\n}\n"],"names":["TickmarkType","TickmarkStyle"],"mappings":";AAQY,IAAA,iCAAAA,kBAAL;AACLA,gBAAA,MAAO,IAAA;AACPA,gBAAA,SAAU,IAAA;AACVA,gBAAA,WAAY,IAAA;AACZA,gBAAA,UAAW,IAAA;AAJDA,SAAAA;AAAA,GAAA,gBAAA,CAAA,CAAA;AAOA,IAAA,kCAAAC,mBAAL;AACLA,iBAAA,QAAS,IAAA;AACTA,iBAAA,SAAU,IAAA;AACVA,iBAAA,UAAW,IAAA;AAHDA,SAAAA;AAAA,GAAA,iBAAA,CAAA,CAAA;AAML,SAAS,cAAc,OAA8B;AAC1D,MAAI,UAAU,UAAsB;AAC3B,WAAA;AAAA,EAAA,WACE,UAAU,WAAuB;AACnC,WAAA;AAAA,EAAA,OACF;AACE,WAAA;AAAA,
|
1
|
+
{"version":3,"file":"tickmark-flat.js","sources":["../../../src/navigation-instruments/watch-flat/tickmark-flat.ts"],"sourcesContent":["import {SVGTemplateResult, svg} from 'lit';\n\nexport interface Tickmark {\n angle: number;\n type: TickmarkType;\n text?: string;\n}\n\nexport enum TickmarkType {\n main = 'main',\n primary = 'primary',\n secondary = 'secondary',\n tertiary = 'tertiary',\n}\n\nexport enum TickmarkStyle {\n hinted = 'hinted',\n regular = 'regular',\n enhanced = 'enhanced',\n}\n\nexport function tickmarkColor(style: TickmarkStyle): string {\n if (style === TickmarkStyle.hinted) {\n return 'var(--instrument-frame-tertiary-color)';\n } else if (style === TickmarkStyle.regular) {\n return 'var(--instrument-tick-mark-secondary-color)';\n } else {\n return 'var(--instrument-tick-mark-primary-color)';\n }\n}\n\nexport function tickmark(\n angle: number,\n tickmarkSize: TickmarkType,\n style: TickmarkStyle,\n text?: string\n): SVGTemplateResult | SVGTemplateResult[] {\n const textHeight = -32;\n let lineStartY: number = -35;\n let lineEndY: number = -34;\n\n if (tickmarkSize === TickmarkType.secondary) {\n lineStartY = -24;\n lineEndY = lineStartY + 8;\n } else if (tickmarkSize === TickmarkType.main) {\n lineEndY = lineStartY + 20;\n } else if (tickmarkSize === TickmarkType.tertiary) {\n throw new Error('Tertiary tickmarks are not supported');\n }\n\n const colorName = tickmarkColor(style);\n const tick = svg`<line x1=${angle} y1=${lineStartY} x2=${angle} y2=${lineEndY} stroke=${colorName} stroke-width=\"1\" vector-effect=\"non-scaling-stroke\"/>`;\n if (text) {\n const textY = lineEndY + textHeight;\n return [\n tick,\n svg`<text x=${angle} y=${textY} class=\"label\" text-anchor=\"middle\">${text}</text>`,\n ];\n }\n\n return tick;\n}\n"],"names":["TickmarkType","TickmarkStyle"],"mappings":";AAQY,IAAA,iCAAAA,kBAAL;AACLA,gBAAA,MAAO,IAAA;AACPA,gBAAA,SAAU,IAAA;AACVA,gBAAA,WAAY,IAAA;AACZA,gBAAA,UAAW,IAAA;AAJDA,SAAAA;AAAA,GAAA,gBAAA,CAAA,CAAA;AAOA,IAAA,kCAAAC,mBAAL;AACLA,iBAAA,QAAS,IAAA;AACTA,iBAAA,SAAU,IAAA;AACVA,iBAAA,UAAW,IAAA;AAHDA,SAAAA;AAAA,GAAA,iBAAA,CAAA,CAAA;AAML,SAAS,cAAc,OAA8B;AAC1D,MAAI,UAAU,UAAsB;AAC3B,WAAA;AAAA,EAAA,WACE,UAAU,WAAuB;AACnC,WAAA;AAAA,EAAA,OACF;AACE,WAAA;AAAA,EAAA;AAEX;AAEO,SAAS,SACd,OACA,cACA,OACA,MACyC;AACzC,QAAM,aAAa;AACnB,MAAI,aAAqB;AACzB,MAAI,WAAmB;AAEvB,MAAI,iBAAiB,aAAwB;AAC9B,iBAAA;AACb,eAAW,aAAa;AAAA,EAAA,WACf,iBAAiB,QAAmB;AAC7C,eAAW,aAAa;AAAA,EAAA,WACf,iBAAiB,YAAuB;AAC3C,UAAA,IAAI,MAAM,sCAAsC;AAAA,EAAA;AAGlD,QAAA,YAAY,cAAc,KAAK;AAC/B,QAAA,OAAO,eAAe,KAAK,OAAO,UAAU,OAAO,KAAK,OAAO,QAAQ,WAAW,SAAS;AACjG,MAAI,MAAM;AACR,UAAM,QAAQ,WAAW;AAClB,WAAA;AAAA,MACL;AAAA,MACA,cAAc,KAAK,MAAM,KAAK,uCAAuC,IAAI;AAAA,IAC3E;AAAA,EAAA;AAGK,SAAA;AACT;"}
|
@@ -10,8 +10,7 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
10
10
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
11
11
|
if (decorator = decorators[i])
|
12
12
|
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
13
|
-
if (kind && result)
|
14
|
-
__defProp(target, key, result);
|
13
|
+
if (kind && result) __defProp(target, key, result);
|
15
14
|
return result;
|
16
15
|
};
|
17
16
|
let ObcWatchFlat = class extends LitElement {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"watch-flat.js","sources":["../../../src/navigation-instruments/watch-flat/watch-flat.ts"],"sourcesContent":["import {LitElement, SVGTemplateResult, html, svg, unsafeCSS} from 'lit';\nimport {customElement, property} from 'lit/decorators.js';\nimport compentStyle from './watch-flat.css?inline';\nimport {Tickmark, TickmarkStyle, tickmark} from './tickmark-flat';\nimport {rect} from '../../svghelpers/rectangular';\nimport {Label} from '../compass-flat/compass-flat';\n\n@customElement('obc-watch-flat')\nexport class ObcWatchFlat extends LitElement {\n @property({type: Number}) width = 352;\n @property({type: Number}) height = 72;\n @property({type: Number}) padding = 0;\n @property({type: Number}) rotation = 0;\n @property({type: Number}) tickmarkSpacing = 0;\n @property({type: Number}) angleSetpoint: number | undefined;\n @property({type: Array, attribute: false}) tickmarks: Tickmark[] = [];\n @property({type: Array, attribute: false}) labels: Label[] = [];\n @property({type: Array, attribute: false}) FOVIndicator: SVGTemplateResult[] =\n [];\n @property({type: Number}) trackHeight = (2 / 3) * this.height;\n @property({type: Number}) ticksHeight = this.height - this.trackHeight;\n @property({type: Number}) borderRadius = 8;\n\n private renderClipPath(offsetY: number = 0): SVGTemplateResult {\n return svg`\n <clipPath id=\"frameClipPath${offsetY === 0 ? '' : 'Tickmarks'}\">\n <rect x=\"${-this.width / 2}\" y=\"${-this.height / 2 + offsetY}\" \n width=\"${this.width}\" height=\"${this.height}\" \n rx=\"${this.borderRadius}\" />\n </clipPath>\n `;\n }\n\n private renderLabelMask(): SVGTemplateResult {\n return svg`\n <mask id=\"labelMask\">\n <rect x=\"${-this.width / 2}\" y=\"${-70}\" \n width=\"${this.width}\" height=\"${32}\"\n />\n <linearGradient id=\"fadeGradient\" gradientUnits=\"userSpaceOnUse\"\n x1=\"${-this.width / 2}\" y1=\"0\" x2=\"${this.width / 2}\" y2=\"0\">\n <stop offset=\"0%\" style=\"stop-color:black; stop-opacity:1;\" />\n <stop offset=\"10%\" style=\"stop-color:white; stop-opacity:1;\" />\n <stop offset=\"50%\" style=\"stop-color:white; stop-opacity:1;\" />\n <stop offset=\"90%\" style=\"stop-color:white; stop-opacity:1;\" />\n <stop offset=\"100%\" style=\"stop-color:black; stop-opacity:1;\" />\n </linearGradient>\n <rect x=\"${-this.width / 2}\" y=\"${-70}\" \n width=\"${this.width}\" height=\"${32}\"\n fill=\"url(#fadeGradient)\" />\n </mask>\n `;\n }\n\n private renderLabels(scale: number): SVGTemplateResult[] {\n const labels: SVGTemplateResult[] = [];\n\n for (const l of this.labels) {\n labels.push(\n svg`<g transform=\"translate(${-this.rotation * this.tickmarkSpacing}, ${-6 / scale})\">\n <text x=${l.x} y=${l.y} class=\"label\" fill=${'var(--instrument-tick-mark-secondary-color)'}>\n ${l.text}\n </text>\n </g>`\n );\n }\n\n return labels;\n }\n\n private watchFace(): SVGTemplateResult {\n const strokeWidth = 1;\n\n return svg`\n ${this.renderClipPath()}\n ${this.renderClipPath(-40)}\n <g clip-path=\"url(#frameClipPath)\">\n ${rect('frame-track', {\n width: this.width,\n height: this.trackHeight,\n y: this.height / 2 - this.trackHeight,\n strokeWidth: strokeWidth,\n strokeColor: 'var(--instrument-frame-secondary-color)',\n strokePosition: 'inside',\n fillColor: 'var(--instrument-frame-secondary-color)',\n borderRadius: 0,\n })}\n ${rect('frame-ticks', {\n width: this.width,\n height: this.ticksHeight,\n y: this.height / 2 - this.trackHeight - this.ticksHeight,\n strokeWidth: strokeWidth,\n strokeColor: 'var(--instrument-frame-primary-color)',\n strokePosition: 'inside',\n fillColor: 'var(--instrument-frame-primary-color)',\n borderRadius: 0,\n })}\n </g>\n ${rect('frame-outline', {\n width: this.width,\n height: this.height,\n strokeWidth: strokeWidth,\n strokeColor: 'var(--instrument-frame-tertiary-color)',\n strokePosition: 'inside',\n fillColor: 'none',\n borderRadius: this.borderRadius,\n })}\n `;\n }\n\n override render() {\n const width = (this.width / 2 + this.padding) * 2;\n const viewBox = `-${width / 2} -${this.height / 2} ${width} ${this.height}`;\n const scale = this.clientWidth / width;\n\n return html`\n <svg\n width=\"100%\"\n height=\"100%\"\n viewBox=${viewBox}\n style=\"--scale: ${scale}\"\n >\n ${this.watchFace()} ${this.renderLabelMask()} ${this.FOVIndicator}\n\n <g clip-path=\"url(#frameClipPath)\">\n ${this.tickmarks.map(\n (t) => svg`\n <g transform=\"translate(${-this.rotation * this.tickmarkSpacing}, 0)\">\n ${tickmark(t.angle, t.type, TickmarkStyle.hinted)}\n </g>\n `\n )}\n </g>\n\n <g mask=\"url(#labelMask)\">\n ${this.renderLabels(scale)}\n </svg>\n `;\n }\n\n static override styles = unsafeCSS(compentStyle);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'obc-watch-flat': ObcWatchFlat;\n }\n}\n"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"watch-flat.js","sources":["../../../src/navigation-instruments/watch-flat/watch-flat.ts"],"sourcesContent":["import {LitElement, SVGTemplateResult, html, svg, unsafeCSS} from 'lit';\nimport {customElement, property} from 'lit/decorators.js';\nimport compentStyle from './watch-flat.css?inline';\nimport {Tickmark, TickmarkStyle, tickmark} from './tickmark-flat';\nimport {rect} from '../../svghelpers/rectangular';\nimport {Label} from '../compass-flat/compass-flat';\n\n@customElement('obc-watch-flat')\nexport class ObcWatchFlat extends LitElement {\n @property({type: Number}) width = 352;\n @property({type: Number}) height = 72;\n @property({type: Number}) padding = 0;\n @property({type: Number}) rotation = 0;\n @property({type: Number}) tickmarkSpacing = 0;\n @property({type: Number}) angleSetpoint: number | undefined;\n @property({type: Array, attribute: false}) tickmarks: Tickmark[] = [];\n @property({type: Array, attribute: false}) labels: Label[] = [];\n @property({type: Array, attribute: false}) FOVIndicator: SVGTemplateResult[] =\n [];\n @property({type: Number}) trackHeight = (2 / 3) * this.height;\n @property({type: Number}) ticksHeight = this.height - this.trackHeight;\n @property({type: Number}) borderRadius = 8;\n\n private renderClipPath(offsetY: number = 0): SVGTemplateResult {\n return svg`\n <clipPath id=\"frameClipPath${offsetY === 0 ? '' : 'Tickmarks'}\">\n <rect x=\"${-this.width / 2}\" y=\"${-this.height / 2 + offsetY}\" \n width=\"${this.width}\" height=\"${this.height}\" \n rx=\"${this.borderRadius}\" />\n </clipPath>\n `;\n }\n\n private renderLabelMask(): SVGTemplateResult {\n return svg`\n <mask id=\"labelMask\">\n <rect x=\"${-this.width / 2}\" y=\"${-70}\" \n width=\"${this.width}\" height=\"${32}\"\n />\n <linearGradient id=\"fadeGradient\" gradientUnits=\"userSpaceOnUse\"\n x1=\"${-this.width / 2}\" y1=\"0\" x2=\"${this.width / 2}\" y2=\"0\">\n <stop offset=\"0%\" style=\"stop-color:black; stop-opacity:1;\" />\n <stop offset=\"10%\" style=\"stop-color:white; stop-opacity:1;\" />\n <stop offset=\"50%\" style=\"stop-color:white; stop-opacity:1;\" />\n <stop offset=\"90%\" style=\"stop-color:white; stop-opacity:1;\" />\n <stop offset=\"100%\" style=\"stop-color:black; stop-opacity:1;\" />\n </linearGradient>\n <rect x=\"${-this.width / 2}\" y=\"${-70}\" \n width=\"${this.width}\" height=\"${32}\"\n fill=\"url(#fadeGradient)\" />\n </mask>\n `;\n }\n\n private renderLabels(scale: number): SVGTemplateResult[] {\n const labels: SVGTemplateResult[] = [];\n\n for (const l of this.labels) {\n labels.push(\n svg`<g transform=\"translate(${-this.rotation * this.tickmarkSpacing}, ${-6 / scale})\">\n <text x=${l.x} y=${l.y} class=\"label\" fill=${'var(--instrument-tick-mark-secondary-color)'}>\n ${l.text}\n </text>\n </g>`\n );\n }\n\n return labels;\n }\n\n private watchFace(): SVGTemplateResult {\n const strokeWidth = 1;\n\n return svg`\n ${this.renderClipPath()}\n ${this.renderClipPath(-40)}\n <g clip-path=\"url(#frameClipPath)\">\n ${rect('frame-track', {\n width: this.width,\n height: this.trackHeight,\n y: this.height / 2 - this.trackHeight,\n strokeWidth: strokeWidth,\n strokeColor: 'var(--instrument-frame-secondary-color)',\n strokePosition: 'inside',\n fillColor: 'var(--instrument-frame-secondary-color)',\n borderRadius: 0,\n })}\n ${rect('frame-ticks', {\n width: this.width,\n height: this.ticksHeight,\n y: this.height / 2 - this.trackHeight - this.ticksHeight,\n strokeWidth: strokeWidth,\n strokeColor: 'var(--instrument-frame-primary-color)',\n strokePosition: 'inside',\n fillColor: 'var(--instrument-frame-primary-color)',\n borderRadius: 0,\n })}\n </g>\n ${rect('frame-outline', {\n width: this.width,\n height: this.height,\n strokeWidth: strokeWidth,\n strokeColor: 'var(--instrument-frame-tertiary-color)',\n strokePosition: 'inside',\n fillColor: 'none',\n borderRadius: this.borderRadius,\n })}\n `;\n }\n\n override render() {\n const width = (this.width / 2 + this.padding) * 2;\n const viewBox = `-${width / 2} -${this.height / 2} ${width} ${this.height}`;\n const scale = this.clientWidth / width;\n\n return html`\n <svg\n width=\"100%\"\n height=\"100%\"\n viewBox=${viewBox}\n style=\"--scale: ${scale}\"\n >\n ${this.watchFace()} ${this.renderLabelMask()} ${this.FOVIndicator}\n\n <g clip-path=\"url(#frameClipPath)\">\n ${this.tickmarks.map(\n (t) => svg`\n <g transform=\"translate(${-this.rotation * this.tickmarkSpacing}, 0)\">\n ${tickmark(t.angle, t.type, TickmarkStyle.hinted)}\n </g>\n `\n )}\n </g>\n\n <g mask=\"url(#labelMask)\">\n ${this.renderLabels(scale)}\n </svg>\n `;\n }\n\n static override styles = unsafeCSS(compentStyle);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'obc-watch-flat': ObcWatchFlat;\n }\n}\n"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"storybook-util.js","sources":["../src/storybook-util.ts"],"sourcesContent":["import './icons/icon-01-placeholder';\nimport './icons/icon-01-search';\nimport './icons/icon-06-radar';\nimport './icons/icon-04-day';\nimport './icons/icon-04-brilliance-low';\nimport './icons/icon-04-brilliance-high';\nimport './icons/icon-06-ship';\nimport {HTMLTemplateResult, TemplateResult, html} from 'lit';\nimport {spread} from '@open-wc/lit-helpers';\n\nexport const iconIds = [\n '01-placeholder',\n '01-search',\n '04-brilliance-low',\n '04-brilliance-high',\n '06-radar',\n '04-day',\n '06-ship',\n].sort();\n\nexport function iconIdToIconHtml(\n id: string,\n attributes: Record<string, string> = {}\n): TemplateResult {\n switch (id) {\n case '01-placeholder':\n return html`<obi-01-placeholder\n ${spread(attributes)}\n ></obi-01-placeholder>`;\n case '01-search':\n return html`<obi-01-search ${spread(attributes)}></obi-01-search>`;\n case '04-day':\n return html`<obi-04-day ${spread(attributes)}></obi-04-day>`;\n case '04-brilliance-low':\n return html`<obi-04-brilliance-low\n ${spread(attributes)}\n ></obi-04-brilliance-low>`;\n case '04-brilliance-high':\n return html`<obi-04-brilliance-high\n ${spread(attributes)}\n ></obi-04-brilliance-high>`;\n case '06-radar':\n return html`<obi-06-radar ${spread(attributes)}></obi-06-radar>`;\n case '06-ship':\n return html`<obi-06-ship ${spread(attributes)}></obi-06-ship>`;\n default:\n throw new Error(`Unknown icon id: ${id}`);\n }\n}\n\nexport function crossDecorator(story: () => unknown): HTMLTemplateResult {\n return html` <style>\n .wrapper {\n width: 100%;\n height: 100vh;\n position: relative;\n }\n\n .wrapper > * {\n position: absolute;\n top: 50%;\n left: 50%;\n }\n\n .wrapper::before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n bottom: 0;\n width: 1px;\n left: calc(50% - 0.5px);\n background-color: rgb(0, 0, 0, 0.3);\n }\n\n .wrapper::after {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n height: 1px;\n top: calc(50% - 0.5px);\n background-color: rgb(0, 0, 0, 0.3);\n z-index: -100;\n }\n </style>\n <div class=\"wrapper\">${story()}</div>`;\n}\n\nexport function widthDecorator(\n story: () => unknown,\n context: {args: {width: number; height?: number}}\n): HTMLTemplateResult {\n const width = context.args.width;\n const height = context.args.height ?? width;\n return html` <div\n class=\"wrapper\"\n style=\"width: ${width}px; height: ${height}px\"\n >\n ${story()}\n </div>`;\n}\n"],"names":[],"mappings":";;;;;;;;;AAUO,MAAM,UAAU;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,EAAE,KAAK;AAEA,SAAS,iBACd,IACA,aAAqC,IACrB;AAChB,UAAQ,IAAI;AAAA,IACV,KAAK;AACI,aAAA;AAAA,UACH,OAAO,UAAU,CAAC;AAAA;AAAA,IAExB,KAAK;AACI,aAAA,sBAAsB,OAAO,UAAU,CAAC;AAAA,IACjD,KAAK;AACI,aAAA,mBAAmB,OAAO,UAAU,CAAC;AAAA,IAC9C,KAAK;AACI,aAAA;AAAA,UACH,OAAO,UAAU,CAAC;AAAA;AAAA,IAExB,KAAK;AACI,aAAA;AAAA,UACH,OAAO,UAAU,CAAC;AAAA;AAAA,IAExB,KAAK;AACI,aAAA,qBAAqB,OAAO,UAAU,CAAC;AAAA,IAChD,KAAK;AACI,aAAA,oBAAoB,OAAO,UAAU,CAAC;AAAA,IAC/C;AACE,YAAM,IAAI,MAAM,oBAAoB,EAAE,EAAE;AAAA,
|
1
|
+
{"version":3,"file":"storybook-util.js","sources":["../src/storybook-util.ts"],"sourcesContent":["import './icons/icon-01-placeholder';\nimport './icons/icon-01-search';\nimport './icons/icon-06-radar';\nimport './icons/icon-04-day';\nimport './icons/icon-04-brilliance-low';\nimport './icons/icon-04-brilliance-high';\nimport './icons/icon-06-ship';\nimport {HTMLTemplateResult, TemplateResult, html} from 'lit';\nimport {spread} from '@open-wc/lit-helpers';\n\nexport const iconIds = [\n '01-placeholder',\n '01-search',\n '04-brilliance-low',\n '04-brilliance-high',\n '06-radar',\n '04-day',\n '06-ship',\n].sort();\n\nexport function iconIdToIconHtml(\n id: string,\n attributes: Record<string, string> = {}\n): TemplateResult {\n switch (id) {\n case '01-placeholder':\n return html`<obi-01-placeholder\n ${spread(attributes)}\n ></obi-01-placeholder>`;\n case '01-search':\n return html`<obi-01-search ${spread(attributes)}></obi-01-search>`;\n case '04-day':\n return html`<obi-04-day ${spread(attributes)}></obi-04-day>`;\n case '04-brilliance-low':\n return html`<obi-04-brilliance-low\n ${spread(attributes)}\n ></obi-04-brilliance-low>`;\n case '04-brilliance-high':\n return html`<obi-04-brilliance-high\n ${spread(attributes)}\n ></obi-04-brilliance-high>`;\n case '06-radar':\n return html`<obi-06-radar ${spread(attributes)}></obi-06-radar>`;\n case '06-ship':\n return html`<obi-06-ship ${spread(attributes)}></obi-06-ship>`;\n default:\n throw new Error(`Unknown icon id: ${id}`);\n }\n}\n\nexport function crossDecorator(story: () => unknown): HTMLTemplateResult {\n return html` <style>\n .wrapper {\n width: 100%;\n height: 100vh;\n position: relative;\n }\n\n .wrapper > * {\n position: absolute;\n top: 50%;\n left: 50%;\n }\n\n .wrapper::before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n bottom: 0;\n width: 1px;\n left: calc(50% - 0.5px);\n background-color: rgb(0, 0, 0, 0.3);\n }\n\n .wrapper::after {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n height: 1px;\n top: calc(50% - 0.5px);\n background-color: rgb(0, 0, 0, 0.3);\n z-index: -100;\n }\n </style>\n <div class=\"wrapper\">${story()}</div>`;\n}\n\nexport function widthDecorator(\n story: () => unknown,\n context: {args: {width: number; height?: number}}\n): HTMLTemplateResult {\n const width = context.args.width;\n const height = context.args.height ?? width;\n return html` <div\n class=\"wrapper\"\n style=\"width: ${width}px; height: ${height}px\"\n >\n ${story()}\n </div>`;\n}\n"],"names":[],"mappings":";;;;;;;;;AAUO,MAAM,UAAU;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,EAAE,KAAK;AAEA,SAAS,iBACd,IACA,aAAqC,IACrB;AAChB,UAAQ,IAAI;AAAA,IACV,KAAK;AACI,aAAA;AAAA,UACH,OAAO,UAAU,CAAC;AAAA;AAAA,IAExB,KAAK;AACI,aAAA,sBAAsB,OAAO,UAAU,CAAC;AAAA,IACjD,KAAK;AACI,aAAA,mBAAmB,OAAO,UAAU,CAAC;AAAA,IAC9C,KAAK;AACI,aAAA;AAAA,UACH,OAAO,UAAU,CAAC;AAAA;AAAA,IAExB,KAAK;AACI,aAAA;AAAA,UACH,OAAO,UAAU,CAAC;AAAA;AAAA,IAExB,KAAK;AACI,aAAA,qBAAqB,OAAO,UAAU,CAAC;AAAA,IAChD,KAAK;AACI,aAAA,oBAAoB,OAAO,UAAU,CAAC;AAAA,IAC/C;AACE,YAAM,IAAI,MAAM,oBAAoB,EAAE,EAAE;AAAA,EAAA;AAE9C;AAEO,SAAS,eAAe,OAA0C;AAChE,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAoCkB,MAAO,CAAA;AAClC;AAEgB,SAAA,eACd,OACA,SACoB;AACd,QAAA,QAAQ,QAAQ,KAAK;AACrB,QAAA,SAAS,QAAQ,KAAK,UAAU;AAC/B,SAAA;AAAA;AAAA,oBAEW,KAAK,eAAe,MAAM;AAAA;AAAA,MAExC,MAAO,CAAA;AAAA;AAEb;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"circle.js","sources":["../../src/svghelpers/circle.ts"],"sourcesContent":["import {svg} from 'lit';\n\nexport function circle(\n id: string,\n data: {\n radius: number;\n strokeWidth: number;\n strokeColor: string;\n strokePosition: 'inside' | 'outside' | 'center';\n fillColor: string;\n }\n) {\n if (data.strokePosition === 'center') {\n return svg`<circle id=${id} cx=\"0\" cy=\"0\" \n r=${data.radius} vector-effect=\"non-scaling-stroke\" \n stroke=${data.strokeColor} stroke-width=${data.strokeWidth} \n fill=${data.fillColor}>`;\n } else if (data.strokePosition === 'inside') {\n return svg`\n\t\t<defs>\n\t\t\t<clipPath id=\"clip${id}\">\n\t\t\t\t<circle id=${id} cx=\"0\" cy=\"0\" r=${\n data.radius\n } vector-effect=\"non-scaling-stroke\" />\n\t\t\t</clipPath>\n\t\t</defs>\n\t\t<g>\n\t\t\t<circle id=${id} cx=\"0\" cy=\"0\" r=${\n data.radius\n } vector-effect=\"non-scaling-stroke\" stroke=${\n data.strokeColor\n } stroke-width=${data.strokeWidth * 2} fill=${\n data.fillColor\n } clip-path=\"url(#clip${id})\"/>\n\t\t</g>\n `;\n } else {\n return svg`\n\t\t<circle id=${id} cx=\"0\" cy=\"0\" r=${\n data.radius\n } vector-effect=\"non-scaling-stroke\" stroke=${\n data.strokeColor\n } stroke-width=${data.strokeWidth * 2} fill=${data.fillColor}/>\n\t\t `;\n }\n}\n\nexport function ringOutside(\n id: string,\n data: {radius: number; strokeWidth: number; strokeColor: string}\n) {\n return svg`\n\t\t<defs>\n\t\t\t\t<mask id=\"${id}\">\n\t\t\t\t\t<rect x=\"-50%\" y=\"-50%\" width=\"100%\" height=\"100%\" fill=\"white\" />\n\t\t\t\t\t<circle cx=\"0\" cy=\"0\" r=${data.radius} fill=\"black\" />\n\t\t\t\t</mask>\n\t\t</defs>\n \t\t<circle cx=\"0\" cy=\"0\" r=${data.radius} stroke-width=${\n data.strokeWidth * 2\n } fill=\"none\" stroke=${\n data.strokeColor\n } vector-effect=\"non-scaling-stroke\" mask=\"url(#${id})\" />\n\t`;\n}\n"],"names":[],"mappings":";AAEgB,SAAA,OACd,IACA,MAOA;AACI,MAAA,KAAK,mBAAmB,UAAU;AACpC,WAAO,iBAAiB,EAAE;AAAA,UACpB,KAAK,MAAM;AAAA,eACN,KAAK,WAAW,kBAAkB,KAAK,WAAW;AAAA,aACpD,KAAK,SAAS;AAAA,EAAA,WACd,KAAK,mBAAmB,UAAU;AACpC,WAAA;AAAA;AAAA,uBAEY,EAAE;AAAA,iBACR,EAAE,oBACT,KAAK,MACP;AAAA;AAAA;AAAA;AAAA,gBAIQ,EAAE,oBACV,KAAK,MACP,8CACE,KAAK,WACP,kBAAkB,KAAK,cAAc,CAAC,SACpC,KAAK,SACP,wBAAwB,EAAE;AAAA;AAAA;AAAA,EAAA,OAGvB;AACE,WAAA;AAAA,eACI,EAAE,oBACX,KAAK,MACP,8CACE,KAAK,WACP,iBAAiB,KAAK,cAAc,CAAC,SAAS,KAAK,SAAS;AAAA;AAAA,
|
1
|
+
{"version":3,"file":"circle.js","sources":["../../src/svghelpers/circle.ts"],"sourcesContent":["import {svg} from 'lit';\n\nexport function circle(\n id: string,\n data: {\n radius: number;\n strokeWidth: number;\n strokeColor: string;\n strokePosition: 'inside' | 'outside' | 'center';\n fillColor: string;\n }\n) {\n if (data.strokePosition === 'center') {\n return svg`<circle id=${id} cx=\"0\" cy=\"0\" \n r=${data.radius} vector-effect=\"non-scaling-stroke\" \n stroke=${data.strokeColor} stroke-width=${data.strokeWidth} \n fill=${data.fillColor}>`;\n } else if (data.strokePosition === 'inside') {\n return svg`\n\t\t<defs>\n\t\t\t<clipPath id=\"clip${id}\">\n\t\t\t\t<circle id=${id} cx=\"0\" cy=\"0\" r=${\n data.radius\n } vector-effect=\"non-scaling-stroke\" />\n\t\t\t</clipPath>\n\t\t</defs>\n\t\t<g>\n\t\t\t<circle id=${id} cx=\"0\" cy=\"0\" r=${\n data.radius\n } vector-effect=\"non-scaling-stroke\" stroke=${\n data.strokeColor\n } stroke-width=${data.strokeWidth * 2} fill=${\n data.fillColor\n } clip-path=\"url(#clip${id})\"/>\n\t\t</g>\n `;\n } else {\n return svg`\n\t\t<circle id=${id} cx=\"0\" cy=\"0\" r=${\n data.radius\n } vector-effect=\"non-scaling-stroke\" stroke=${\n data.strokeColor\n } stroke-width=${data.strokeWidth * 2} fill=${data.fillColor}/>\n\t\t `;\n }\n}\n\nexport function ringOutside(\n id: string,\n data: {radius: number; strokeWidth: number; strokeColor: string}\n) {\n return svg`\n\t\t<defs>\n\t\t\t\t<mask id=\"${id}\">\n\t\t\t\t\t<rect x=\"-50%\" y=\"-50%\" width=\"100%\" height=\"100%\" fill=\"white\" />\n\t\t\t\t\t<circle cx=\"0\" cy=\"0\" r=${data.radius} fill=\"black\" />\n\t\t\t\t</mask>\n\t\t</defs>\n \t\t<circle cx=\"0\" cy=\"0\" r=${data.radius} stroke-width=${\n data.strokeWidth * 2\n } fill=\"none\" stroke=${\n data.strokeColor\n } vector-effect=\"non-scaling-stroke\" mask=\"url(#${id})\" />\n\t`;\n}\n"],"names":[],"mappings":";AAEgB,SAAA,OACd,IACA,MAOA;AACI,MAAA,KAAK,mBAAmB,UAAU;AACpC,WAAO,iBAAiB,EAAE;AAAA,UACpB,KAAK,MAAM;AAAA,eACN,KAAK,WAAW,kBAAkB,KAAK,WAAW;AAAA,aACpD,KAAK,SAAS;AAAA,EAAA,WACd,KAAK,mBAAmB,UAAU;AACpC,WAAA;AAAA;AAAA,uBAEY,EAAE;AAAA,iBACR,EAAE,oBACT,KAAK,MACP;AAAA;AAAA;AAAA;AAAA,gBAIQ,EAAE,oBACV,KAAK,MACP,8CACE,KAAK,WACP,kBAAkB,KAAK,cAAc,CAAC,SACpC,KAAK,SACP,wBAAwB,EAAE;AAAA;AAAA;AAAA,EAAA,OAGvB;AACE,WAAA;AAAA,eACI,EAAE,oBACX,KAAK,MACP,8CACE,KAAK,WACP,iBAAiB,KAAK,cAAc,CAAC,SAAS,KAAK,SAAS;AAAA;AAAA,EAAA;AAGhE;AAEgB,SAAA,YACd,IACA,MACA;AACO,SAAA;AAAA;AAAA,gBAEO,EAAE;AAAA;AAAA,+BAEa,KAAK,MAAM;AAAA;AAAA;AAAA,+BAGX,KAAK,MAAM,iBAClC,KAAK,cAAc,CACrB,uBACE,KAAK,WACP,mDAAmD,EAAE;AAAA;AAE3D;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rectangular.js","sources":["../../src/svghelpers/rectangular.ts"],"sourcesContent":["import {svg} from 'lit';\n\nexport function rect(\n id: string,\n data: {\n width: number;\n height: number;\n strokeWidth: number;\n strokeColor: string;\n fillColor: string;\n borderRadius: number;\n strokePosition: 'inside' | 'outside';\n y?: number;\n }\n) {\n const yPosition = data.y !== undefined ? data.y : -data.height / 2;\n\n if (data.strokePosition === 'inside') {\n return svg`\n\t\t<defs>\n\t\t\t<clipPath id=\"clip${id}\">\n\t\t\t\t<rect id=${id} x=${-data.width / 2} y=${yPosition} width=${\n data.width\n } height=${data.height} rx=${\n data.borderRadius\n } vector-effect=\"non-scaling-stroke\" />\n\t\t\t</clipPath>\n\t\t</defs>\n\t\t<rect id=${id} x=${-data.width / 2} y=${yPosition} width=${\n data.width\n } height=${data.height} rx=${\n data.borderRadius\n } vector-effect=\"non-scaling-stroke\" stroke=${\n data.strokeColor\n } stroke-width=${data.strokeWidth * 2} fill=${\n data.fillColor\n } clip-path=\"url(#clip${id})\"/> \n\t\t `;\n } else {\n return null;\n }\n}\n"],"names":[],"mappings":";AAEgB,SAAA,KACd,IACA,MAUA;AACM,QAAA,YAAY,KAAK,MAAM,SAAY,KAAK,IAAI,CAAC,KAAK,SAAS;AAE7D,MAAA,KAAK,mBAAmB,UAAU;AAC7B,WAAA;AAAA;AAAA,uBAEY,EAAE;AAAA,eACV,EAAE,MAAM,CAAC,KAAK,QAAQ,CAAC,MAAM,SAAS,UAC3C,KAAK,KACP,WAAW,KAAK,MAAM,OACpB,KAAK,YACP;AAAA;AAAA;AAAA,aAGK,EAAE,MAAM,CAAC,KAAK,QAAQ,CAAC,MAAM,SAAS,UAC7C,KAAK,KACP,WAAW,KAAK,MAAM,OACpB,KAAK,YACP,8CACE,KAAK,WACP,kBAAkB,KAAK,cAAc,CAAC,SACpC,KAAK,SACP,wBAAwB,EAAE;AAAA;AAAA,EAAA,OAErB;AACE,WAAA;AAAA,
|
1
|
+
{"version":3,"file":"rectangular.js","sources":["../../src/svghelpers/rectangular.ts"],"sourcesContent":["import {svg} from 'lit';\n\nexport function rect(\n id: string,\n data: {\n width: number;\n height: number;\n strokeWidth: number;\n strokeColor: string;\n fillColor: string;\n borderRadius: number;\n strokePosition: 'inside' | 'outside';\n y?: number;\n }\n) {\n const yPosition = data.y !== undefined ? data.y : -data.height / 2;\n\n if (data.strokePosition === 'inside') {\n return svg`\n\t\t<defs>\n\t\t\t<clipPath id=\"clip${id}\">\n\t\t\t\t<rect id=${id} x=${-data.width / 2} y=${yPosition} width=${\n data.width\n } height=${data.height} rx=${\n data.borderRadius\n } vector-effect=\"non-scaling-stroke\" />\n\t\t\t</clipPath>\n\t\t</defs>\n\t\t<rect id=${id} x=${-data.width / 2} y=${yPosition} width=${\n data.width\n } height=${data.height} rx=${\n data.borderRadius\n } vector-effect=\"non-scaling-stroke\" stroke=${\n data.strokeColor\n } stroke-width=${data.strokeWidth * 2} fill=${\n data.fillColor\n } clip-path=\"url(#clip${id})\"/> \n\t\t `;\n } else {\n return null;\n }\n}\n"],"names":[],"mappings":";AAEgB,SAAA,KACd,IACA,MAUA;AACM,QAAA,YAAY,KAAK,MAAM,SAAY,KAAK,IAAI,CAAC,KAAK,SAAS;AAE7D,MAAA,KAAK,mBAAmB,UAAU;AAC7B,WAAA;AAAA;AAAA,uBAEY,EAAE;AAAA,eACV,EAAE,MAAM,CAAC,KAAK,QAAQ,CAAC,MAAM,SAAS,UAC3C,KAAK,KACP,WAAW,KAAK,MAAM,OACpB,KAAK,YACP;AAAA;AAAA;AAAA,aAGK,EAAE,MAAM,CAAC,KAAK,QAAQ,CAAC,MAAM,SAAS,UAC7C,KAAK,KACP,WAAW,KAAK,MAAM,OACpB,KAAK,YACP,8CACE,KAAK,WACP,kBAAkB,KAAK,cAAc,CAAC,SACpC,KAAK,SACP,wBAAwB,EAAE;AAAA;AAAA,EAAA,OAErB;AACE,WAAA;AAAA,EAAA;AAEX;"}
|