@oicl/openbridge-webcomponents-full-bundle 2.0.0-next.49 → 2.0.0-next.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/openbridge-webcomponents.bundle.js +18716 -17343
- package/bundle/openbridge-webcomponents.bundle.js.map +1 -1
- package/custom-elements.json +877 -14
- package/dist/ar/building-blocks/poi-header/poi-header.css.js +8 -4
- package/dist/ar/building-blocks/poi-header/poi-header.css.js.map +1 -1
- package/dist/ar/chart-object-vessel-button/chart-object-vessel-button.css.js +7 -7
- package/dist/ar/poi-card-header/poi-card-header.css.js +12 -6
- package/dist/ar/poi-card-header/poi-card-header.css.js.map +1 -1
- package/dist/automation/automation-tank/automation-tank.css.js +166 -28
- package/dist/automation/automation-tank/automation-tank.css.js.map +1 -1
- package/dist/automation/automation-tank/automation-tank.d.ts +32 -0
- package/dist/automation/automation-tank/automation-tank.d.ts.map +1 -1
- package/dist/automation/automation-tank/automation-tank.js +28 -0
- package/dist/automation/automation-tank/automation-tank.js.map +1 -1
- package/dist/building-blocks/alert-list/alert-list.css.js +4 -2
- package/dist/building-blocks/alert-list/alert-list.css.js.map +1 -1
- package/dist/components/accordion-card/accordion-card.css.js +6 -3
- package/dist/components/accordion-card/accordion-card.css.js.map +1 -1
- package/dist/components/accordion-item/accordion-item.css.js +4 -2
- package/dist/components/accordion-item/accordion-item.css.js.map +1 -1
- package/dist/components/advice-button/advice-button.css.js +2 -1
- package/dist/components/advice-button/advice-button.css.js.map +1 -1
- package/dist/components/alert-button/alert-button.css.js +2 -1
- package/dist/components/alert-button/alert-button.css.js.map +1 -1
- package/dist/components/alert-frame/alert-frame.css.js +7 -3
- package/dist/components/alert-frame/alert-frame.css.js.map +1 -1
- package/dist/components/alert-list-details/alert-list-details.css.js +4 -2
- package/dist/components/alert-list-details/alert-list-details.css.js.map +1 -1
- package/dist/components/alert-menu/alert-menu.css.js +4 -2
- package/dist/components/alert-menu/alert-menu.css.js.map +1 -1
- package/dist/components/app-button/app-button.css.js +8 -4
- package/dist/components/app-button/app-button.css.js.map +1 -1
- package/dist/components/attachment-list-item/attachment-list-item.css.js +8 -4
- package/dist/components/attachment-list-item/attachment-list-item.css.js.map +1 -1
- package/dist/components/badge/badge.css.js +4 -2
- package/dist/components/badge/badge.css.js.map +1 -1
- package/dist/components/breadcrumb/breadcrumb.css.js +4 -2
- package/dist/components/breadcrumb/breadcrumb.css.js.map +1 -1
- package/dist/components/brilliance-menu/brilliance-menu.css.js +2 -1
- package/dist/components/brilliance-menu/brilliance-menu.css.js.map +1 -1
- package/dist/components/calendar/calendar.css.js +5 -3
- package/dist/components/calendar/calendar.css.js.map +1 -1
- package/dist/components/card/card.css.js +2 -1
- package/dist/components/card/card.css.js.map +1 -1
- package/dist/components/chat-message/chat-message.css.js +6 -3
- package/dist/components/chat-message/chat-message.css.js.map +1 -1
- package/dist/components/check-button/check-button.css.js +5 -3
- package/dist/components/check-button/check-button.css.js.map +1 -1
- package/dist/components/checkbox-item/checkbox-item.css.js +4 -2
- package/dist/components/checkbox-item/checkbox-item.css.js.map +1 -1
- package/dist/components/clock/clock.css.js +7 -3
- package/dist/components/clock/clock.css.js.map +1 -1
- package/dist/components/command-menu/command-menu.css.js +6 -3
- package/dist/components/command-menu/command-menu.css.js.map +1 -1
- package/dist/components/communication-table/communication-table.css.js +10 -5
- package/dist/components/communication-table/communication-table.css.js.map +1 -1
- package/dist/components/context-menu-input/context-menu-input.css.js +4 -2
- package/dist/components/context-menu-input/context-menu-input.css.js.map +1 -1
- package/dist/components/date-item/date-item.css.js +16 -8
- package/dist/components/date-item/date-item.css.js.map +1 -1
- package/dist/components/dropdown-button/dropdown-button.css.js +6 -3
- package/dist/components/dropdown-button/dropdown-button.css.js.map +1 -1
- package/dist/components/elevated-card/elevated-card.css.js +8 -4
- package/dist/components/elevated-card/elevated-card.css.js.map +1 -1
- package/dist/components/elevated-card-radio-group/elevated-card-radio-group.css.js +6 -3
- package/dist/components/elevated-card-radio-group/elevated-card-radio-group.css.js.map +1 -1
- package/dist/components/event-item/event-item.css.js +6 -3
- package/dist/components/event-item/event-item.css.js.map +1 -1
- package/dist/components/event-list/event-list.css.js +2 -1
- package/dist/components/event-list/event-list.css.js.map +1 -1
- package/dist/components/filter-chip/filter-chip.css.js +2 -1
- package/dist/components/filter-chip/filter-chip.css.js.map +1 -1
- package/dist/components/floating-item/floating-item.css.js +6 -3
- package/dist/components/floating-item/floating-item.css.js.map +1 -1
- package/dist/components/form-container/form-container.css.js +1 -1
- package/dist/components/form-group/form-group.css.js +4 -2
- package/dist/components/form-group/form-group.css.js.map +1 -1
- package/dist/components/form-item/form-item.css.js +4 -2
- package/dist/components/form-item/form-item.css.js.map +1 -1
- package/dist/components/icon-button/icon-button.css.js +20 -19
- package/dist/components/icon-button/icon-button.css.js.map +1 -1
- package/dist/components/icon-button/icon-button.d.ts +2 -0
- package/dist/components/icon-button/icon-button.d.ts.map +1 -1
- package/dist/components/icon-button/icon-button.js.map +1 -1
- package/dist/components/icon-check-button/icon-check-button.css.js +4 -2
- package/dist/components/icon-check-button/icon-check-button.css.js.map +1 -1
- package/dist/components/input-chip/input-chip.css.js +2 -1
- package/dist/components/input-chip/input-chip.css.js.map +1 -1
- package/dist/components/keyboard-full/keyboard-full.css.js +2 -1
- package/dist/components/keyboard-full/keyboard-full.css.js.map +1 -1
- package/dist/components/keyboard-numeric/keyboard-numeric.css.js +2 -1
- package/dist/components/keyboard-numeric/keyboard-numeric.css.js.map +1 -1
- package/dist/components/menu-button/menu-button.css.js +4 -2
- package/dist/components/menu-button/menu-button.css.js.map +1 -1
- package/dist/components/message-menu-item/message-menu-item.css.js +8 -13
- package/dist/components/message-menu-item/message-menu-item.css.js.map +1 -1
- package/dist/components/modal-window/modal-window.css.js +2 -1
- package/dist/components/modal-window/modal-window.css.js.map +1 -1
- package/dist/components/navigation-item/navigation-item.css.js +9 -4
- package/dist/components/navigation-item/navigation-item.css.js.map +1 -1
- package/dist/components/notification-badge-button/notification-badge-button.css.js +2 -1
- package/dist/components/notification-badge-button/notification-badge-button.css.js.map +1 -1
- package/dist/components/notification-button/notification-button.css.js +2 -1
- package/dist/components/notification-button/notification-button.css.js.map +1 -1
- package/dist/components/number-input-field/number-input-field.css.js +4 -2
- package/dist/components/number-input-field/number-input-field.css.js.map +1 -1
- package/dist/components/pivot-item/pivot-item.css.js +4 -2
- package/dist/components/pivot-item/pivot-item.css.js.map +1 -1
- package/dist/components/progress-bar/progress-bar.css.js +4 -2
- package/dist/components/progress-bar/progress-bar.css.js.map +1 -1
- package/dist/components/progress-button/progress-button.css.js +4 -2
- package/dist/components/progress-button/progress-button.css.js.map +1 -1
- package/dist/components/radio/radio.css.js +4 -2
- package/dist/components/radio/radio.css.js.map +1 -1
- package/dist/components/rich-button/rich-button.css.js +4 -2
- package/dist/components/rich-button/rich-button.css.js.map +1 -1
- package/dist/components/sequence-item/sequence-item.css.js +11 -6
- package/dist/components/sequence-item/sequence-item.css.js.map +1 -1
- package/dist/components/sequence-loading-spinner/sequence-loading-spinner.css.js +3 -3
- package/dist/components/sequence-step/sequence-step.css.js +2 -1
- package/dist/components/sequence-step/sequence-step.css.js.map +1 -1
- package/dist/components/slide-button/slide-button.css.js +2 -1
- package/dist/components/slide-button/slide-button.css.js.map +1 -1
- package/dist/components/slider-double/slider-double.css.js +2 -1
- package/dist/components/slider-double/slider-double.css.js.map +1 -1
- package/dist/components/start-stop-switch/start-stop-switch.css.js +16 -8
- package/dist/components/start-stop-switch/start-stop-switch.css.js.map +1 -1
- package/dist/components/status-indicator/status-indicator.css.js +4 -2
- package/dist/components/status-indicator/status-indicator.css.js.map +1 -1
- package/dist/components/stepper-box/stepper-box.css.js +2 -1
- package/dist/components/stepper-box/stepper-box.css.js.map +1 -1
- package/dist/components/system-menu/system-menu.css.js +26 -13
- package/dist/components/system-menu/system-menu.css.js.map +1 -1
- package/dist/components/tab-item/tab-item.css.js +8 -5
- package/dist/components/tab-item/tab-item.css.js.map +1 -1
- package/dist/components/tabbed-card/tabbed-card.css.js +4 -2
- package/dist/components/tabbed-card/tabbed-card.css.js.map +1 -1
- package/dist/components/table/table.css.js +8 -5
- package/dist/components/table/table.css.js.map +1 -1
- package/dist/components/table-header-item/table-header-item.css.js +2 -1
- package/dist/components/table-header-item/table-header-item.css.js.map +1 -1
- package/dist/components/tag/tag.css.js +4 -2
- package/dist/components/tag/tag.css.js.map +1 -1
- package/dist/components/text-input-field/text-input-field.css.js +6 -3
- package/dist/components/text-input-field/text-input-field.css.js.map +1 -1
- package/dist/components/textarea-field/textarea-field.css.js +6 -3
- package/dist/components/textarea-field/textarea-field.css.js.map +1 -1
- package/dist/components/title-container/title-container.css.js +3 -2
- package/dist/components/title-container/title-container.css.js.map +1 -1
- package/dist/components/toggle-button-option/toggle-button-option.css.js +19 -12
- package/dist/components/toggle-button-option/toggle-button-option.css.js.map +1 -1
- package/dist/components/toggle-button-vertical-option/toggle-button-vertical-option.css.js +4 -2
- package/dist/components/toggle-button-vertical-option/toggle-button-vertical-option.css.js.map +1 -1
- package/dist/components/toggle-switch/toggle-switch.css.js +6 -3
- package/dist/components/toggle-switch/toggle-switch.css.js.map +1 -1
- package/dist/components/toggletip/toggletip.css.js +4 -2
- package/dist/components/toggletip/toggletip.css.js.map +1 -1
- package/dist/components/tooltip/tooltip.css.js +2 -1
- package/dist/components/tooltip/tooltip.css.js.map +1 -1
- package/dist/components/top-bar/top-bar.css.js +4 -2
- package/dist/components/top-bar/top-bar.css.js.map +1 -1
- package/dist/components/topbar-message-item/topbar-message-item.css.js +10 -5
- package/dist/components/topbar-message-item/topbar-message-item.css.js.map +1 -1
- package/dist/components/user-button/user-button.css.js +12 -7
- package/dist/components/user-button/user-button.css.js.map +1 -1
- package/dist/components/user-menu/user-menu.css.js +4 -2
- package/dist/components/user-menu/user-menu.css.js.map +1 -1
- package/dist/integration-systems/integration-bar/integration-bar.css.js +97 -0
- package/dist/integration-systems/integration-bar/integration-bar.css.js.map +1 -0
- package/dist/integration-systems/integration-bar/integration-bar.d.ts +91 -0
- package/dist/integration-systems/integration-bar/integration-bar.d.ts.map +1 -0
- package/dist/integration-systems/integration-bar/integration-bar.js +279 -0
- package/dist/integration-systems/integration-bar/integration-bar.js.map +1 -0
- package/dist/integration-systems/integration-bar-dropdown/integration-bar-dropdown.css.js +2 -1
- package/dist/integration-systems/integration-bar-dropdown/integration-bar-dropdown.css.js.map +1 -1
- package/dist/integration-systems/integration-button/integration-button.css.js +472 -156
- package/dist/integration-systems/integration-button/integration-button.css.js.map +1 -1
- package/dist/integration-systems/integration-button/integration-button.d.ts +37 -1
- package/dist/integration-systems/integration-button/integration-button.d.ts.map +1 -1
- package/dist/integration-systems/integration-button/integration-button.js +202 -36
- package/dist/integration-systems/integration-button/integration-button.js.map +1 -1
- package/dist/integration-systems/integration-dropdown-button/integration-dropdown-button.css.js +17 -6
- package/dist/integration-systems/integration-dropdown-button/integration-dropdown-button.css.js.map +1 -1
- package/dist/integration-systems/integration-fleet-button/integration-fleet-button.css.js +12 -6
- package/dist/integration-systems/integration-fleet-button/integration-fleet-button.css.js.map +1 -1
- package/dist/integration-systems/integration-tabs/integration-tabs.css.js +3 -1
- package/dist/integration-systems/integration-tabs/integration-tabs.css.js.map +1 -1
- package/dist/integration-systems/integration-vessel-menu/integration-vessel-menu.css.js +75 -0
- package/dist/integration-systems/integration-vessel-menu/integration-vessel-menu.css.js.map +1 -0
- package/dist/integration-systems/integration-vessel-menu/integration-vessel-menu.d.ts +37 -0
- package/dist/integration-systems/integration-vessel-menu/integration-vessel-menu.d.ts.map +1 -0
- package/dist/integration-systems/integration-vessel-menu/integration-vessel-menu.js +72 -0
- package/dist/integration-systems/integration-vessel-menu/integration-vessel-menu.js.map +1 -0
- package/dist/integration-systems/integration-vessel-selector/integration-vessel-selector.css.js +21 -8
- package/dist/integration-systems/integration-vessel-selector/integration-vessel-selector.css.js.map +1 -1
- package/dist/integration-systems/integration-vessel-selector/integration-vessel-selector.d.ts +2 -0
- package/dist/integration-systems/integration-vessel-selector/integration-vessel-selector.d.ts.map +1 -1
- package/dist/integration-systems/integration-vessel-selector/integration-vessel-selector.js +5 -0
- package/dist/integration-systems/integration-vessel-selector/integration-vessel-selector.js.map +1 -1
- package/dist/navigation-instruments/azimuth-thruster-labeled/azimuth-thruster-labeled.css.js +3 -1
- package/dist/navigation-instruments/azimuth-thruster-labeled/azimuth-thruster-labeled.css.js.map +1 -1
- package/dist/navigation-instruments/instrument-field/instrument-field.css.js +4 -2
- package/dist/navigation-instruments/instrument-field/instrument-field.css.js.map +1 -1
- package/dist/navigation-instruments/readout/readout.css.js +4 -2
- package/dist/navigation-instruments/readout/readout.css.js.map +1 -1
- package/dist/navigation-instruments/watch/watch.css.js +3 -2
- package/dist/navigation-instruments/watch/watch.css.js.map +1 -1
- package/dist/navigation-instruments/watch-flat/watch-flat.css.js +3 -2
- package/dist/navigation-instruments/watch-flat/watch-flat.css.js.map +1 -1
- package/dist/openbridge.css +4 -2
- package/dist/pages/alert-detail-page/alert-detail-page.css.js +15 -8
- package/dist/pages/alert-detail-page/alert-detail-page.css.js.map +1 -1
- package/package.json +3 -3
- package/postcss.config.mjs +2 -1
- package/script/check-css-variables.ts +9 -30
- package/src/ar/chart-object-vessel-button/chart-object-vessel-button.css +7 -7
- package/src/ar/poi-layer/poi-layer.stories.ts +3 -0
- package/src/automation/automation-tank/automation-tank.css +119 -21
- package/src/automation/automation-tank/automation-tank.stories.ts +38 -0
- package/src/automation/automation-tank/automation-tank.ts +64 -0
- package/src/components/calendar/calendar.css +1 -1
- package/src/components/check-button/check-button.css +1 -1
- package/src/components/icon-button/icon-button.css +1 -1
- package/src/components/icon-button/icon-button.ts +2 -0
- package/src/components/message-menu-item/message-menu-item.css +2 -5
- package/src/components/sequence-item/sequence-item.css +5 -3
- package/src/components/sequence-loading-spinner/sequence-loading-spinner.css +3 -3
- package/src/components/tab-item/tab-item.css +2 -2
- package/src/components/table/table.css +2 -2
- package/src/components/toggle-button-option/toggle-button-option.css +1 -3
- package/src/integration-systems/integration-app-bar/integration-app-bar.stories.ts +1 -1
- package/src/integration-systems/integration-bar/integration-bar.css +86 -0
- package/src/integration-systems/integration-bar/integration-bar.stories.ts +479 -0
- package/src/integration-systems/integration-bar/integration-bar.ts +301 -0
- package/src/integration-systems/integration-bar-dropdown/integration-bar-dropdown.stories.ts +5 -3
- package/src/integration-systems/integration-button/integration-button.css +203 -64
- package/src/integration-systems/integration-button/integration-button.stories.ts +71 -5
- package/src/integration-systems/integration-button/integration-button.ts +242 -43
- package/src/integration-systems/integration-dropdown-button/integration-dropdown-button.css +7 -1
- package/src/integration-systems/integration-dropdown-button/integration-dropdown-button.stories.ts +1 -1
- package/src/integration-systems/integration-fleet-button/integration-fleet-button.stories.ts +1 -1
- package/src/integration-systems/integration-tabs/integration-tabs.stories.ts +1 -1
- package/src/integration-systems/integration-vessel-menu/integration-vessel-menu.css +59 -0
- package/src/integration-systems/integration-vessel-menu/integration-vessel-menu.stories.ts +180 -0
- package/src/integration-systems/integration-vessel-menu/integration-vessel-menu.ts +83 -0
- package/src/integration-systems/integration-vessel-selector/integration-vessel-selector.css +21 -9
- package/src/integration-systems/integration-vessel-selector/integration-vessel-selector.stories.ts +187 -3
- package/src/integration-systems/integration-vessel-selector/integration-vessel-selector.ts +5 -0
- package/src/mixins/alert.css +0 -29
- package/src/mixins/font-extras.css +103 -0
- package/src/mixins/fonts.css +26 -96
- package/src/navigation-instruments/watch/watch.css +1 -1
- package/src/navigation-instruments/watch-flat/watch-flat.css +1 -1
- package/src/pages/alert-detail-page/alert-detail-page.css +1 -1
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import type {Meta, StoryObj} from '@storybook/web-components-vite';
|
|
2
|
+
import {html} from 'lit';
|
|
3
|
+
import type {ObcIntegrationVesselMenu} from './integration-vessel-menu.js';
|
|
4
|
+
import './integration-vessel-menu.js';
|
|
5
|
+
import '../../icons/icon-placeholder.js';
|
|
6
|
+
import {ObcAlertMenuItemStatus} from '../../components/alert-menu-item/alert-menu-item.js';
|
|
7
|
+
import '../../components/alert-menu-item/alert-menu-item.js';
|
|
8
|
+
import '../../icons/icon-caution-color-iec.js';
|
|
9
|
+
|
|
10
|
+
const handleAck = (event: Event) => {
|
|
11
|
+
const alertItem = event.currentTarget as HTMLElement;
|
|
12
|
+
const alertParent = alertItem.parentElement;
|
|
13
|
+
if (alertParent) {
|
|
14
|
+
alertParent.removeChild(alertItem);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const renderAlarms = () => html`
|
|
19
|
+
<obc-alert-menu-item
|
|
20
|
+
slot="alarms"
|
|
21
|
+
.status=${ObcAlertMenuItemStatus.Unacknowledged}
|
|
22
|
+
title="CPA/TCPA Alert"
|
|
23
|
+
description="Risk of collision with vessel MV NORDIC at CPA 0.2nm"
|
|
24
|
+
time="09:12:34"
|
|
25
|
+
@ack-click=${handleAck}
|
|
26
|
+
data-testid="engine-temperature-high-1"
|
|
27
|
+
>
|
|
28
|
+
<obc-alert-icon slot="alert-icon" type="alarm" active></obc-alert-icon>
|
|
29
|
+
</obc-alert-menu-item>
|
|
30
|
+
<obc-alert-menu-item
|
|
31
|
+
slot="alarms"
|
|
32
|
+
.status=${ObcAlertMenuItemStatus.NoAckAlarm}
|
|
33
|
+
title="Off Track Deviation"
|
|
34
|
+
description="Vessel has deviated from planned route by 0.5nm"
|
|
35
|
+
time="09:13:22"
|
|
36
|
+
>
|
|
37
|
+
<obc-alert-icon slot="alert-icon" type="alarm" active></obc-alert-icon>
|
|
38
|
+
</obc-alert-menu-item>
|
|
39
|
+
<obc-alert-menu-item
|
|
40
|
+
slot="alarms"
|
|
41
|
+
.status=${ObcAlertMenuItemStatus.Unacknowledged}
|
|
42
|
+
title="Main Engine Overload"
|
|
43
|
+
description="Port main engine load exceeds 95% of MCR"
|
|
44
|
+
time="09:14:05"
|
|
45
|
+
data-testid="engine-temperature-high-2"
|
|
46
|
+
@ack-click=${handleAck}
|
|
47
|
+
>
|
|
48
|
+
<obc-alert-icon slot="alert-icon" type="alarm" active></obc-alert-icon>
|
|
49
|
+
</obc-alert-menu-item>
|
|
50
|
+
|
|
51
|
+
<obc-alert-menu-item
|
|
52
|
+
slot="alarms"
|
|
53
|
+
.status=${ObcAlertMenuItemStatus.NoAckWarning}
|
|
54
|
+
title="Depth Below Keel"
|
|
55
|
+
description="Under keel clearance below safety margin: 2.5m"
|
|
56
|
+
time="09:15:10"
|
|
57
|
+
>
|
|
58
|
+
<obc-alert-icon slot="alert-icon" type="warning" active></obc-alert-icon>
|
|
59
|
+
</obc-alert-menu-item>
|
|
60
|
+
<obc-alert-menu-item
|
|
61
|
+
slot="alarms"
|
|
62
|
+
.status=${ObcAlertMenuItemStatus.NoAckWarning}
|
|
63
|
+
title="Wind Speed High"
|
|
64
|
+
description="True wind speed 35kts exceeds operational limit"
|
|
65
|
+
time="09:16:00"
|
|
66
|
+
>
|
|
67
|
+
<obc-alert-icon slot="alert-icon" type="warning" active></obc-alert-icon>
|
|
68
|
+
</obc-alert-menu-item>
|
|
69
|
+
<obc-alert-menu-item
|
|
70
|
+
slot="alarms"
|
|
71
|
+
.status=${ObcAlertMenuItemStatus.NoAckWarning}
|
|
72
|
+
title="ECDIS Primary GPS Lost"
|
|
73
|
+
description="Position source switched to secondary GPS"
|
|
74
|
+
time="09:16:45"
|
|
75
|
+
>
|
|
76
|
+
<obc-alert-icon slot="alert-icon" type="warning" active></obc-alert-icon>
|
|
77
|
+
</obc-alert-menu-item>
|
|
78
|
+
|
|
79
|
+
<obc-alert-menu-item
|
|
80
|
+
slot="alarms"
|
|
81
|
+
.status=${ObcAlertMenuItemStatus.Caution}
|
|
82
|
+
title="Fuel Oil Temperature"
|
|
83
|
+
description="HFO temperature approaching lower limit: 115°C"
|
|
84
|
+
time="09:17:20"
|
|
85
|
+
>
|
|
86
|
+
<obi-caution-color-iec
|
|
87
|
+
useCssColor
|
|
88
|
+
slot="alert-icon"
|
|
89
|
+
></obi-caution-color-iec>
|
|
90
|
+
</obc-alert-menu-item>
|
|
91
|
+
<obc-alert-menu-item
|
|
92
|
+
slot="alarms"
|
|
93
|
+
.status=${ObcAlertMenuItemStatus.Caution}
|
|
94
|
+
title="Ballast Tank Level"
|
|
95
|
+
description="No. 3 Port ballast tank level below recommended trim: 45%"
|
|
96
|
+
time="09:17:45"
|
|
97
|
+
>
|
|
98
|
+
<obi-caution-color-iec
|
|
99
|
+
useCssColor
|
|
100
|
+
slot="alert-icon"
|
|
101
|
+
></obi-caution-color-iec>
|
|
102
|
+
</obc-alert-menu-item>
|
|
103
|
+
`;
|
|
104
|
+
|
|
105
|
+
const meta: Meta<ObcIntegrationVesselMenu> = {
|
|
106
|
+
title: 'Integration Systems/Integration Vessel Menu',
|
|
107
|
+
component: 'obc-integration-vessel-menu',
|
|
108
|
+
tags: ['alpha'],
|
|
109
|
+
args: {numberOfButtons: 3},
|
|
110
|
+
argTypes: {
|
|
111
|
+
numberOfButtons: {
|
|
112
|
+
control: 'number',
|
|
113
|
+
min: 0,
|
|
114
|
+
max: 3,
|
|
115
|
+
step: 1,
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
parameters: {
|
|
119
|
+
layout: 'centered',
|
|
120
|
+
},
|
|
121
|
+
decorators: [
|
|
122
|
+
(story) => html`
|
|
123
|
+
<div style="height: 400px; display: flex;">${story()}</div>
|
|
124
|
+
`,
|
|
125
|
+
],
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
export default meta;
|
|
129
|
+
type Story = StoryObj<ObcIntegrationVesselMenu>;
|
|
130
|
+
|
|
131
|
+
interface IntegrationVesselMenuArgs {
|
|
132
|
+
numberOfButtons: number;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
type IntegrationVesselMenuTemplate = (
|
|
136
|
+
args: IntegrationVesselMenuArgs
|
|
137
|
+
) => ReturnType<typeof html>;
|
|
138
|
+
|
|
139
|
+
const template: IntegrationVesselMenuTemplate = (args) => html`
|
|
140
|
+
<obc-integration-vessel-menu
|
|
141
|
+
.numberOfButtons=${args.numberOfButtons}
|
|
142
|
+
@button-1-click=${() => console.log('Button 1 clicked')}
|
|
143
|
+
@button-2-click=${() => console.log('Button 2 clicked')}
|
|
144
|
+
@button-3-click=${() => console.log('Button 3 clicked')}
|
|
145
|
+
>
|
|
146
|
+
<div slot="content" style="padding: 24px;">
|
|
147
|
+
<div style="width: 496px; height: 256;">
|
|
148
|
+
<p>Content area</p>
|
|
149
|
+
</div>
|
|
150
|
+
</div>
|
|
151
|
+
<obi-placeholder slot="button-1-leading-icon"></obi-placeholder>
|
|
152
|
+
<div slot="button-1-label">Action 1</div>
|
|
153
|
+
<obi-placeholder slot="button-2-leading-icon"></obi-placeholder>
|
|
154
|
+
<div slot="button-2-label">Ac. 2</div>
|
|
155
|
+
<obi-placeholder slot="button-3-leading-icon"></obi-placeholder>
|
|
156
|
+
<div slot="button-3-label">Action number 3</div>
|
|
157
|
+
${renderAlarms()}
|
|
158
|
+
</obc-integration-vessel-menu>
|
|
159
|
+
`;
|
|
160
|
+
|
|
161
|
+
const templateWithoutAlarms: IntegrationVesselMenuTemplate = (args) => html`
|
|
162
|
+
<obc-integration-vessel-menu
|
|
163
|
+
.numberOfButtons=${args.numberOfButtons}
|
|
164
|
+
@button-1-click=${() => console.log('Button 1 clicked')}
|
|
165
|
+
@button-2-click=${() => console.log('Button 2 clicked')}
|
|
166
|
+
@button-3-click=${() => console.log('Button 3 clicked')}
|
|
167
|
+
>
|
|
168
|
+
<div slot="content" style="padding: 24px;">
|
|
169
|
+
<p>Add content here</p>
|
|
170
|
+
</div>
|
|
171
|
+
</obc-integration-vessel-menu>
|
|
172
|
+
`;
|
|
173
|
+
|
|
174
|
+
export const Default: Story = {
|
|
175
|
+
render: template,
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
export const WithoutAlarms: Story = {
|
|
179
|
+
render: templateWithoutAlarms,
|
|
180
|
+
};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import {LitElement, html, unsafeCSS} from 'lit';
|
|
2
|
+
import {property} from 'lit/decorators.js';
|
|
3
|
+
import {classMap} from 'lit/directives/class-map.js';
|
|
4
|
+
import {customElement} from '../../decorator.js';
|
|
5
|
+
import componentStyle from './integration-vessel-menu.css?inline';
|
|
6
|
+
|
|
7
|
+
import '../../components/button/button.js';
|
|
8
|
+
import '../../components/icon-button/icon-button.js';
|
|
9
|
+
import '../../icons/icon-placeholder.js';
|
|
10
|
+
import '../../building-blocks/alert-list/alert-list.js';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* `<obc-integration-vessel-menu>` – A menu to be shown when selecting a obc-integration-button from a obc-integration-bar.
|
|
14
|
+
*
|
|
15
|
+
* @slot leading-icon - Icon shown in the header.
|
|
16
|
+
* @slot title - Header title text.
|
|
17
|
+
* @slot button-1-leading-icon - Leading icon for the first button.
|
|
18
|
+
* @slot button-1-label - Label for the first button.
|
|
19
|
+
* @slot button-2-leading-icon - Leading icon for the second button.
|
|
20
|
+
* @slot button-2-label - Label for the second button.
|
|
21
|
+
* @slot button-3-leading-icon - Leading icon for the third button.
|
|
22
|
+
* @slot button-3-label - Label for the third button.
|
|
23
|
+
* @slot content - Main content shown in the content area.
|
|
24
|
+
* @slot alarms - Alarm items rendered inside the alert list.
|
|
25
|
+
*
|
|
26
|
+
* @property {number} numberOfButtons - Number of buttons to render (up to 3).
|
|
27
|
+
*
|
|
28
|
+
* @fires button1-click - Fired when the first button is clicked.
|
|
29
|
+
* @fires button2-click - Fired when the second button is clicked.
|
|
30
|
+
* @fires button3-click - Fired when the third button is clicked.
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
@customElement('obc-integration-vessel-menu')
|
|
34
|
+
export class ObcIntegrationVesselMenu extends LitElement {
|
|
35
|
+
@property({type: Number}) numberOfButtons = 3;
|
|
36
|
+
|
|
37
|
+
private renderButtons() {
|
|
38
|
+
return html`${Array.from({length: this.numberOfButtons}, (_, i) => {
|
|
39
|
+
const buttonNum = i + 1;
|
|
40
|
+
return html`<obc-button
|
|
41
|
+
@click=${() =>
|
|
42
|
+
this.dispatchEvent(new CustomEvent(`button${buttonNum}-click`))}
|
|
43
|
+
?showLeadingIcon=${true}
|
|
44
|
+
?fullWidth=${true}
|
|
45
|
+
class="button"
|
|
46
|
+
>
|
|
47
|
+
<slot
|
|
48
|
+
name="button-${buttonNum}-leading-icon"
|
|
49
|
+
slot="leading-icon"
|
|
50
|
+
></slot>
|
|
51
|
+
<slot name="button-${buttonNum}-label"></slot>
|
|
52
|
+
</obc-button>`;
|
|
53
|
+
})}`;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
protected override render() {
|
|
57
|
+
return html`
|
|
58
|
+
<div
|
|
59
|
+
class=${classMap({
|
|
60
|
+
wrapper: true,
|
|
61
|
+
})}
|
|
62
|
+
>
|
|
63
|
+
<div class="footer-container">${this.renderButtons()}</div>
|
|
64
|
+
<div class="content-area">
|
|
65
|
+
<slot name="content"></slot>
|
|
66
|
+
</div>
|
|
67
|
+
<div class="content-container">
|
|
68
|
+
<obc-alert-list class="alert-list"
|
|
69
|
+
><slot name="alarms"> </slot>
|
|
70
|
+
</obc-alert-list>
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
73
|
+
`;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
static override styles = unsafeCSS(componentStyle);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
declare global {
|
|
80
|
+
interface HTMLElementTagNameMap {
|
|
81
|
+
'obc-integration-vessel-menu': ObcIntegrationVesselMenu;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -10,14 +10,26 @@
|
|
|
10
10
|
background: var(--integration-container-global-color);
|
|
11
11
|
height: 100%;
|
|
12
12
|
width: 100%;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.wrapper .fleet-wrapper,
|
|
16
|
+
.wrapper .vessel-wrapper {
|
|
17
|
+
width: 100%;
|
|
18
|
+
display: flex;
|
|
19
|
+
flex-direction: column;
|
|
20
|
+
align-items: stretch;
|
|
21
|
+
justify-content: stretch;
|
|
22
|
+
}
|
|
13
23
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
24
|
+
.wrapper .fleet-wrapper {
|
|
25
|
+
padding: 4px 0;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.wrapper .vessel-wrapper {
|
|
29
|
+
padding: 0px 4px;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.wrapper .topbar-wrapper {
|
|
33
|
+
display: flex;
|
|
34
|
+
width: 100%;
|
|
23
35
|
}
|
package/src/integration-systems/integration-vessel-selector/integration-vessel-selector.stories.ts
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import type {Meta, StoryObj} from '@storybook/web-components-vite';
|
|
2
2
|
import {ObcIntegrationVesselSelector} from './integration-vessel-selector.js';
|
|
3
3
|
import './integration-vessel-selector.js';
|
|
4
|
+
import '../integration-bar/integration-bar.js';
|
|
4
5
|
import '../integration-button/integration-button.js';
|
|
5
6
|
import '../../icons/icon-placeholder.js';
|
|
6
7
|
import {html} from 'lit';
|
|
8
|
+
import {
|
|
9
|
+
IntegrationButtonType,
|
|
10
|
+
IntegrationButtonVariant,
|
|
11
|
+
} from '../integration-button/integration-button.js';
|
|
7
12
|
|
|
8
13
|
const meta: Meta<typeof ObcIntegrationVesselSelector> = {
|
|
9
14
|
title: 'Integration Systems/Integration Vessel Selector',
|
|
10
|
-
tags: ['
|
|
15
|
+
tags: ['alpha'],
|
|
11
16
|
component: 'obc-integration-vessel-selector',
|
|
12
17
|
args: {},
|
|
13
18
|
parameters: {
|
|
@@ -22,14 +27,49 @@ export const Primary: Story = {
|
|
|
22
27
|
render: () => html`
|
|
23
28
|
<obc-integration-vessel-selector
|
|
24
29
|
style="width: 320px; display: block; height: 100vh;"
|
|
30
|
+
hasFleet
|
|
25
31
|
>
|
|
26
32
|
<obc-integration-button
|
|
33
|
+
slot="fleet"
|
|
27
34
|
hasLeadingIcon
|
|
28
35
|
hasTrailingIcon
|
|
29
36
|
.readouts=${[
|
|
30
37
|
{label: 'Readout 1', value: 'Value 1', unit: 'Unit 1'},
|
|
31
38
|
{label: 'Readout 2', value: 'Value 2', unit: 'Unit 2'},
|
|
32
39
|
]}
|
|
40
|
+
type=${IntegrationButtonType.rich}
|
|
41
|
+
>
|
|
42
|
+
<obi-placeholder slot="leading-icon"></obi-placeholder>
|
|
43
|
+
<obi-placeholder slot="trailing-icon"></obi-placeholder>
|
|
44
|
+
<obi-placeholder slot="trailing-icon2"></obi-placeholder>
|
|
45
|
+
<div slot="label">Fleet</div>
|
|
46
|
+
<div slot="status">Status</div>
|
|
47
|
+
<div slot="info-label">Info Label</div>
|
|
48
|
+
<div slot="info-status">Info Status</div>
|
|
49
|
+
</obc-integration-button>
|
|
50
|
+
<obc-integration-button
|
|
51
|
+
hasLeadingIcon
|
|
52
|
+
.readouts=${[
|
|
53
|
+
{label: 'Readout 1', value: 'Value 1', unit: 'Unit 1'},
|
|
54
|
+
{label: 'Readout 2', value: 'Value 2', unit: 'Unit 2'},
|
|
55
|
+
]}
|
|
56
|
+
variant=${IntegrationButtonVariant.flat}
|
|
57
|
+
>
|
|
58
|
+
<obi-placeholder slot="leading-icon"></obi-placeholder>
|
|
59
|
+
<obi-placeholder slot="trailing-icon"></obi-placeholder>
|
|
60
|
+
<obi-placeholder slot="trailing-icon2"></obi-placeholder>
|
|
61
|
+
<div slot="label">Label</div>
|
|
62
|
+
<div slot="status">Status</div>
|
|
63
|
+
<div slot="info-label">Info Label</div>
|
|
64
|
+
<div slot="info-status">Info Status</div>
|
|
65
|
+
</obc-integration-button>
|
|
66
|
+
<obc-integration-button
|
|
67
|
+
hasLeadingIcon
|
|
68
|
+
.readouts=${[
|
|
69
|
+
{label: 'Readout 1', value: 'Value 1', unit: 'Unit 1'},
|
|
70
|
+
{label: 'Readout 2', value: 'Value 2', unit: 'Unit 2'},
|
|
71
|
+
]}
|
|
72
|
+
variant=${IntegrationButtonVariant.flat}
|
|
33
73
|
>
|
|
34
74
|
<obi-placeholder slot="leading-icon"></obi-placeholder>
|
|
35
75
|
<obi-placeholder slot="trailing-icon"></obi-placeholder>
|
|
@@ -41,12 +81,11 @@ export const Primary: Story = {
|
|
|
41
81
|
</obc-integration-button>
|
|
42
82
|
<obc-integration-button
|
|
43
83
|
hasLeadingIcon
|
|
44
|
-
hasTrailingIcon
|
|
45
84
|
.readouts=${[
|
|
46
85
|
{label: 'Readout 1', value: 'Value 1', unit: 'Unit 1'},
|
|
47
86
|
{label: 'Readout 2', value: 'Value 2', unit: 'Unit 2'},
|
|
48
87
|
]}
|
|
49
|
-
|
|
88
|
+
variant=${IntegrationButtonVariant.flat}
|
|
50
89
|
>
|
|
51
90
|
<obi-placeholder slot="leading-icon"></obi-placeholder>
|
|
52
91
|
<obi-placeholder slot="trailing-icon"></obi-placeholder>
|
|
@@ -56,14 +95,78 @@ export const Primary: Story = {
|
|
|
56
95
|
<div slot="info-label">Info Label</div>
|
|
57
96
|
<div slot="info-status">Info Status</div>
|
|
58
97
|
</obc-integration-button>
|
|
98
|
+
</obc-integration-vessel-selector>
|
|
99
|
+
`,
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
export const Rich: Story = {
|
|
103
|
+
render: () => html`
|
|
104
|
+
<obc-integration-vessel-selector
|
|
105
|
+
style="width: 320px; display: block; height: 100vh;"
|
|
106
|
+
hasFleet
|
|
107
|
+
>
|
|
59
108
|
<obc-integration-button
|
|
109
|
+
slot="fleet"
|
|
60
110
|
hasLeadingIcon
|
|
61
111
|
hasTrailingIcon
|
|
112
|
+
.readouts=${[
|
|
113
|
+
{label: 'Readout 1', value: 'Value 1', unit: 'Unit 1'},
|
|
114
|
+
{label: 'Readout 2', value: 'Value 2', unit: 'Unit 2'},
|
|
115
|
+
]}
|
|
116
|
+
type=${IntegrationButtonType.rich}
|
|
117
|
+
>
|
|
118
|
+
<obi-placeholder slot="leading-icon"></obi-placeholder>
|
|
119
|
+
<obi-placeholder slot="trailing-icon"></obi-placeholder>
|
|
120
|
+
<obi-placeholder slot="trailing-icon2"></obi-placeholder>
|
|
121
|
+
<div slot="label">Fleet</div>
|
|
122
|
+
<div slot="status">Status</div>
|
|
123
|
+
<div slot="info-label">Info Label</div>
|
|
124
|
+
<div slot="info-status">Info Status</div>
|
|
125
|
+
</obc-integration-button>
|
|
126
|
+
<obc-integration-button
|
|
127
|
+
hasLeadingIcon
|
|
128
|
+
.readouts=${[
|
|
129
|
+
{label: 'Readout 1', value: 'Value 1', unit: 'Unit 1'},
|
|
130
|
+
{label: 'Readout 2', value: 'Value 2', unit: 'Unit 2'},
|
|
131
|
+
]}
|
|
132
|
+
variant=${IntegrationButtonVariant.flat}
|
|
133
|
+
type=${IntegrationButtonType.rich}
|
|
134
|
+
dividerBottom
|
|
135
|
+
>
|
|
136
|
+
<obi-placeholder slot="leading-icon"></obi-placeholder>
|
|
137
|
+
<obi-placeholder slot="trailing-icon"></obi-placeholder>
|
|
138
|
+
<obi-placeholder slot="trailing-icon2"></obi-placeholder>
|
|
139
|
+
<div slot="label">Label</div>
|
|
140
|
+
<div slot="status">Status</div>
|
|
141
|
+
<div slot="info-label">Info Label</div>
|
|
142
|
+
<div slot="info-status">Info Status</div>
|
|
143
|
+
</obc-integration-button>
|
|
144
|
+
<obc-integration-button
|
|
145
|
+
hasLeadingIcon
|
|
146
|
+
.readouts=${[
|
|
147
|
+
{label: 'Readout 1', value: 'Value 1', unit: 'Unit 1'},
|
|
148
|
+
{label: 'Readout 2', value: 'Value 2', unit: 'Unit 2'},
|
|
149
|
+
]}
|
|
150
|
+
variant=${IntegrationButtonVariant.flat}
|
|
151
|
+
type=${IntegrationButtonType.rich}
|
|
62
152
|
dividerBottom
|
|
153
|
+
>
|
|
154
|
+
<obi-placeholder slot="leading-icon"></obi-placeholder>
|
|
155
|
+
<obi-placeholder slot="trailing-icon"></obi-placeholder>
|
|
156
|
+
<obi-placeholder slot="trailing-icon2"></obi-placeholder>
|
|
157
|
+
<div slot="label">Label</div>
|
|
158
|
+
<div slot="status">Status</div>
|
|
159
|
+
<div slot="info-label">Info Label</div>
|
|
160
|
+
<div slot="info-status">Info Status</div>
|
|
161
|
+
</obc-integration-button>
|
|
162
|
+
<obc-integration-button
|
|
163
|
+
hasLeadingIcon
|
|
63
164
|
.readouts=${[
|
|
64
165
|
{label: 'Readout 1', value: 'Value 1', unit: 'Unit 1'},
|
|
65
166
|
{label: 'Readout 2', value: 'Value 2', unit: 'Unit 2'},
|
|
66
167
|
]}
|
|
168
|
+
variant=${IntegrationButtonVariant.flat}
|
|
169
|
+
type=${IntegrationButtonType.rich}
|
|
67
170
|
>
|
|
68
171
|
<obi-placeholder slot="leading-icon"></obi-placeholder>
|
|
69
172
|
<obi-placeholder slot="trailing-icon"></obi-placeholder>
|
|
@@ -73,13 +176,94 @@ export const Primary: Story = {
|
|
|
73
176
|
<div slot="info-label">Info Label</div>
|
|
74
177
|
<div slot="info-status">Info Status</div>
|
|
75
178
|
</obc-integration-button>
|
|
179
|
+
</obc-integration-vessel-selector>
|
|
180
|
+
`,
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
export const WithTopbar: Story = {
|
|
184
|
+
render: () => html`
|
|
185
|
+
<obc-integration-vessel-selector
|
|
186
|
+
style="width: 320px; display: block; height: 100vh;"
|
|
187
|
+
hasFleet
|
|
188
|
+
hasTopbar=${true}
|
|
189
|
+
>
|
|
190
|
+
<obc-integration-bar
|
|
191
|
+
slot="topbar"
|
|
192
|
+
.showClock=${true}
|
|
193
|
+
.showUserButton=${true}
|
|
194
|
+
.showDimmingButton=${true}
|
|
195
|
+
.showSystemButton=${false}
|
|
196
|
+
.showAlertButton=${true}
|
|
197
|
+
.showScreenButton=${false}
|
|
198
|
+
.showNotificationButton=${false}
|
|
199
|
+
>
|
|
200
|
+
<obc-clock
|
|
201
|
+
integrationBarMode
|
|
202
|
+
.date=${'2021-01-01T11:11:11.111Z'}
|
|
203
|
+
.showDate=${false}
|
|
204
|
+
slot="clock"
|
|
205
|
+
.showTimezone=${false}
|
|
206
|
+
.timeZoneOffsetHours=${1}
|
|
207
|
+
.blinkOnlyBreakpointPx=${600}
|
|
208
|
+
></obc-clock>
|
|
209
|
+
</obc-integration-bar>
|
|
76
210
|
<obc-integration-button
|
|
211
|
+
slot="fleet"
|
|
77
212
|
hasLeadingIcon
|
|
78
213
|
hasTrailingIcon
|
|
79
214
|
.readouts=${[
|
|
80
215
|
{label: 'Readout 1', value: 'Value 1', unit: 'Unit 1'},
|
|
81
216
|
{label: 'Readout 2', value: 'Value 2', unit: 'Unit 2'},
|
|
82
217
|
]}
|
|
218
|
+
type=${IntegrationButtonType.rich}
|
|
219
|
+
>
|
|
220
|
+
<obi-placeholder slot="leading-icon"></obi-placeholder>
|
|
221
|
+
<obi-placeholder slot="trailing-icon"></obi-placeholder>
|
|
222
|
+
<obi-placeholder slot="trailing-icon2"></obi-placeholder>
|
|
223
|
+
<div slot="label">Fleet</div>
|
|
224
|
+
<div slot="status">Status</div>
|
|
225
|
+
<div slot="info-label">Info Label</div>
|
|
226
|
+
<div slot="info-status">Info Status</div>
|
|
227
|
+
</obc-integration-button>
|
|
228
|
+
<obc-integration-button
|
|
229
|
+
hasLeadingIcon
|
|
230
|
+
.readouts=${[
|
|
231
|
+
{label: 'Readout 1', value: 'Value 1', unit: 'Unit 1'},
|
|
232
|
+
{label: 'Readout 2', value: 'Value 2', unit: 'Unit 2'},
|
|
233
|
+
]}
|
|
234
|
+
variant=${IntegrationButtonVariant.flat}
|
|
235
|
+
>
|
|
236
|
+
<obi-placeholder slot="leading-icon"></obi-placeholder>
|
|
237
|
+
<obi-placeholder slot="trailing-icon"></obi-placeholder>
|
|
238
|
+
<obi-placeholder slot="trailing-icon2"></obi-placeholder>
|
|
239
|
+
<div slot="label">Label</div>
|
|
240
|
+
<div slot="status">Status</div>
|
|
241
|
+
<div slot="info-label">Info Label</div>
|
|
242
|
+
<div slot="info-status">Info Status</div>
|
|
243
|
+
</obc-integration-button>
|
|
244
|
+
<obc-integration-button
|
|
245
|
+
hasLeadingIcon
|
|
246
|
+
.readouts=${[
|
|
247
|
+
{label: 'Readout 1', value: 'Value 1', unit: 'Unit 1'},
|
|
248
|
+
{label: 'Readout 2', value: 'Value 2', unit: 'Unit 2'},
|
|
249
|
+
]}
|
|
250
|
+
variant=${IntegrationButtonVariant.flat}
|
|
251
|
+
>
|
|
252
|
+
<obi-placeholder slot="leading-icon"></obi-placeholder>
|
|
253
|
+
<obi-placeholder slot="trailing-icon"></obi-placeholder>
|
|
254
|
+
<obi-placeholder slot="trailing-icon2"></obi-placeholder>
|
|
255
|
+
<div slot="label">Label</div>
|
|
256
|
+
<div slot="status">Status</div>
|
|
257
|
+
<div slot="info-label">Info Label</div>
|
|
258
|
+
<div slot="info-status">Info Status</div>
|
|
259
|
+
</obc-integration-button>
|
|
260
|
+
<obc-integration-button
|
|
261
|
+
hasLeadingIcon
|
|
262
|
+
.readouts=${[
|
|
263
|
+
{label: 'Readout 1', value: 'Value 1', unit: 'Unit 1'},
|
|
264
|
+
{label: 'Readout 2', value: 'Value 2', unit: 'Unit 2'},
|
|
265
|
+
]}
|
|
266
|
+
variant=${IntegrationButtonVariant.flat}
|
|
83
267
|
>
|
|
84
268
|
<obi-placeholder slot="leading-icon"></obi-placeholder>
|
|
85
269
|
<obi-placeholder slot="trailing-icon"></obi-placeholder>
|
|
@@ -8,14 +8,19 @@ import {property} from 'lit/decorators.js';
|
|
|
8
8
|
*
|
|
9
9
|
* @slot - The vessel to select.
|
|
10
10
|
* @slot fleet - The fleet of vessels.
|
|
11
|
+
* @slot topbar - The top bar, displayed when `hasTopbar` is true.
|
|
11
12
|
*/
|
|
12
13
|
@customElement('obc-integration-vessel-selector')
|
|
13
14
|
export class ObcIntegrationVesselSelector extends LitElement {
|
|
15
|
+
@property({type: Boolean}) hasTopbar = false;
|
|
14
16
|
@property({type: Boolean}) hasFleet = false;
|
|
15
17
|
|
|
16
18
|
override render() {
|
|
17
19
|
return html`
|
|
18
20
|
<div class="wrapper">
|
|
21
|
+
${this.hasTopbar
|
|
22
|
+
? html`<div class="topbar-wrapper"><slot name="topbar"></slot></div>`
|
|
23
|
+
: nothing}
|
|
19
24
|
${this.hasFleet
|
|
20
25
|
? html`<div class="fleet-wrapper">
|
|
21
26
|
<slot name="fleet"></slot>
|
package/src/mixins/alert.css
CHANGED
|
@@ -27,35 +27,6 @@
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
@define-mixin alert-critical $wrapperClass {
|
|
31
|
-
&:focus {
|
|
32
|
-
outline: none;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
& $(wrapperClass) {
|
|
36
|
-
border: 1px solid var(--critical-enabled-border-color);
|
|
37
|
-
background: var(--critical-enabled-background-color);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
&:hover $(wrapperClass) {
|
|
41
|
-
border-color: var(--critical-hover-border-color);
|
|
42
|
-
background-color: var(--critical-hover-background-color);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
&:active $(wrapperClass) {
|
|
46
|
-
border-color: var(--critical-pressed-border-color);
|
|
47
|
-
background-color: var(--critical-pressed-background-color);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
&:focus-visible $(wrapperClass) {
|
|
51
|
-
background-color: var(--critical-focused-background-color);
|
|
52
|
-
border-color: var(--critical-focused-border-color);
|
|
53
|
-
outline-color: var(--border-outline-color);
|
|
54
|
-
outline-width: 4px;
|
|
55
|
-
outline-style: solid;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
30
|
@define-mixin alert-caution $wrapperClass {
|
|
60
31
|
&:focus {
|
|
61
32
|
outline: none;
|