@oicl/openbridge-webcomponents 2.1.0-next.1 → 2.1.0-next.3
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/README.md +1 -0
- package/bundle/openbridge-webcomponents.bundle.js +390 -301
- package/bundle/openbridge-webcomponents.bundle.js.map +1 -1
- package/custom-elements.json +979 -94
- package/dist/automation/valve-analoge-two-way-icon/valve-analog-two-way-icon.d.ts +25 -1
- package/dist/automation/valve-analoge-two-way-icon/valve-analog-two-way-icon.d.ts.map +1 -1
- package/dist/automation/valve-analoge-two-way-icon/valve-analog-two-way-icon.js +39 -58
- package/dist/automation/valve-analoge-two-way-icon/valve-analog-two-way-icon.js.map +1 -1
- package/dist/building-blocks/alert-list/alert-list-base.d.ts +60 -0
- package/dist/building-blocks/alert-list/alert-list-base.d.ts.map +1 -0
- package/dist/building-blocks/alert-list/alert-list-base.js +191 -0
- package/dist/building-blocks/alert-list/alert-list-base.js.map +1 -0
- package/dist/building-blocks/alert-list/alert-list.css.js.map +1 -1
- package/dist/building-blocks/alert-list/alert-list.d.ts +13 -26
- package/dist/building-blocks/alert-list/alert-list.d.ts.map +1 -1
- package/dist/building-blocks/alert-list/alert-list.js +7 -142
- package/dist/building-blocks/alert-list/alert-list.js.map +1 -1
- package/dist/components/alert-icon/alert-icon.d.ts.map +1 -1
- package/dist/components/alert-icon/alert-icon.js +6 -5
- package/dist/components/alert-icon/alert-icon.js.map +1 -1
- package/dist/components/alert-list-details/alert-list-details.css.js +4 -1
- package/dist/components/alert-list-details/alert-list-details.css.js.map +1 -1
- package/dist/components/alert-menu/alert-menu.css.js +3 -42
- package/dist/components/alert-menu/alert-menu.css.js.map +1 -1
- package/dist/components/alert-menu/alert-menu.d.ts +28 -6
- package/dist/components/alert-menu/alert-menu.d.ts.map +1 -1
- package/dist/components/alert-menu/alert-menu.js +81 -60
- package/dist/components/alert-menu/alert-menu.js.map +1 -1
- package/dist/components/alert-menu-item/alert-menu-item.d.ts +16 -6
- package/dist/components/alert-menu-item/alert-menu-item.d.ts.map +1 -1
- package/dist/components/alert-menu-item/alert-menu-item.js +11 -2
- package/dist/components/alert-menu-item/alert-menu-item.js.map +1 -1
- package/dist/components/number-input-field/number-input-field.css.js +8 -2
- package/dist/components/number-input-field/number-input-field.css.js.map +1 -1
- package/dist/components/number-input-field/number-input-field.d.ts +15 -1
- package/dist/components/number-input-field/number-input-field.d.ts.map +1 -1
- package/dist/components/number-input-field/number-input-field.js +38 -44
- package/dist/components/number-input-field/number-input-field.js.map +1 -1
- package/dist/components/textbox/textbox.css.js +3 -9
- package/dist/components/textbox/textbox.css.js.map +1 -1
- package/dist/components/textbox/textbox.d.ts +3 -0
- package/dist/components/textbox/textbox.d.ts.map +1 -1
- package/dist/components/textbox/textbox.js.map +1 -1
- package/dist/generated/locales/es-419.d.ts +1 -1
- package/dist/generated/locales/es-419.js +1 -1
- package/dist/generated/locales/es-419.js.map +1 -1
- package/dist/navigation-instruments/readout-list-item/readout-list-item.css.js +2 -1
- package/dist/navigation-instruments/readout-list-item/readout-list-item.css.js.map +1 -1
- package/dist/pages/alert-detail-page/alert-detail-page.js +1 -1
- package/dist/pages/alert-detail-page/alert-detail-page.js.map +1 -1
- package/dist/pages/alert-list-page-small/alert-list-page-small-base.d.ts +63 -0
- package/dist/pages/alert-list-page-small/alert-list-page-small-base.d.ts.map +1 -0
- package/dist/pages/alert-list-page-small/alert-list-page-small-base.js +126 -0
- package/dist/pages/alert-list-page-small/alert-list-page-small-base.js.map +1 -0
- package/dist/pages/alert-list-page-small/alert-list-page-small.d.ts +12 -15
- package/dist/pages/alert-list-page-small/alert-list-page-small.d.ts.map +1 -1
- package/dist/pages/alert-list-page-small/alert-list-page-small.js +41 -92
- package/dist/pages/alert-list-page-small/alert-list-page-small.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { CSSResultGroup, LitElement, TemplateResult, nothing } from 'lit';
|
|
2
|
+
import '../../components/icon-button/icon-button.js';
|
|
3
|
+
import '../../components/button/button.js';
|
|
4
|
+
import '../../components/dropdown-button/dropdown-button.js';
|
|
5
|
+
import '../../icons/icon-silence-iec.js';
|
|
6
|
+
/** One entry of the mode dropdown. */
|
|
7
|
+
export interface AlertListPageMode {
|
|
8
|
+
value: string;
|
|
9
|
+
label: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* `ObcAlertListPageSmallBase` – Compact alert list page: a list of alerts over a
|
|
13
|
+
* bar with a mode dropdown, a silence button and "ACK visible".
|
|
14
|
+
*
|
|
15
|
+
* Not registered as an element: the subclasses supply the list and the
|
|
16
|
+
* modes. `obc-alert-list-page-small` renders `obc-alert-list-details`.
|
|
17
|
+
*
|
|
18
|
+
* ### Features
|
|
19
|
+
* - **Modes:** the dropdown offers `modes` and shows `mode`; picking one calls
|
|
20
|
+
* `selectMode()`.
|
|
21
|
+
* - **ACK visible:** enabled while `canAckAll` holds; a click reports the
|
|
22
|
+
* alerts `visibleAlerts()` returns, and the mode, in `ack-all-visible-click`.
|
|
23
|
+
* - **Silence:** the icon button fires `silence-click`.
|
|
24
|
+
*
|
|
25
|
+
* The base holds no alerts: each page declares `alerts` in the alert type it
|
|
26
|
+
* lists.
|
|
27
|
+
*
|
|
28
|
+
* @property hasShelved - Whether the dropdown offers the shelved alerts.
|
|
29
|
+
* @property showTime - Whether the list shows when each alert was raised.
|
|
30
|
+
* @property timeFormatter - Formats the time the list shows.
|
|
31
|
+
* @availableWhen timeFormatter showTime==true
|
|
32
|
+
*/
|
|
33
|
+
export declare class ObcAlertListPageSmallBase extends LitElement {
|
|
34
|
+
/** Whether the dropdown offers the shelved alerts. */
|
|
35
|
+
hasShelved: boolean;
|
|
36
|
+
/** Whether the list shows when each alert was raised. */
|
|
37
|
+
showTime: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Formats the time the list shows.
|
|
40
|
+
*
|
|
41
|
+
* Available when `showTime==true`.
|
|
42
|
+
*/
|
|
43
|
+
timeFormatter: (time: Date) => string;
|
|
44
|
+
/** The dropdown's options, in order. */
|
|
45
|
+
protected get modes(): AlertListPageMode[];
|
|
46
|
+
/** The mode the list filters by and the dropdown shows. */
|
|
47
|
+
protected get mode(): string;
|
|
48
|
+
protected selectMode(_mode: string): void;
|
|
49
|
+
/** Whether an alert the list shows in `mode` can still be acknowledged. */
|
|
50
|
+
protected get canAckAll(): boolean;
|
|
51
|
+
/** Whether the page offers "ACK visible" at all; `canAckAll` enables it. */
|
|
52
|
+
protected get offersAckAll(): boolean;
|
|
53
|
+
/** The alerts in view, which "ACK visible" reports. */
|
|
54
|
+
protected visibleAlerts(): unknown[];
|
|
55
|
+
protected renderList(): TemplateResult | typeof nothing;
|
|
56
|
+
protected dispatchAckClick(alert: unknown): void;
|
|
57
|
+
protected dispatchRowClick(alert: unknown): void;
|
|
58
|
+
private handleAckAllVisibleClick;
|
|
59
|
+
private onModeSelect;
|
|
60
|
+
render(): TemplateResult<1>;
|
|
61
|
+
static styles: CSSResultGroup;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=alert-list-page-small-base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-list-page-small-base.d.ts","sourceRoot":"","sources":["../../../src/pages/alert-list-page-small/alert-list-page-small-base.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,UAAU,EACV,cAAc,EAEd,OAAO,EAER,MAAM,KAAK,CAAC;AAIb,OAAO,6CAA6C,CAAC;AACrD,OAAO,mCAAmC,CAAC;AAE3C,OAAO,qDAAqD,CAAC;AAE7D,OAAO,iCAAiC,CAAC;AAEzC,sCAAsC;AACtC,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,yBAA0B,SAAQ,UAAU;IAC5B,UAAU,EAAE,OAAO,CAAS;IAC5B,QAAQ,EAAE,OAAO,CAAS;IACvB,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAEV;IAEzD,wCAAwC;IACxC,SAAS,KAAK,KAAK,IAAI,iBAAiB,EAAE,CAEzC;IAED,2DAA2D;IAC3D,SAAS,KAAK,IAAI,IAAI,MAAM,CAE3B;IAED,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM;IAElC,2EAA2E;IAC3E,SAAS,KAAK,SAAS,IAAI,OAAO,CAEjC;IAED,4EAA4E;IAC5E,SAAS,KAAK,YAAY,IAAI,OAAO,CAEpC;IAED,uDAAuD;IACvD,SAAS,CAAC,aAAa,IAAI,OAAO,EAAE;IAIpC,SAAS,CAAC,UAAU,IAAI,cAAc,GAAG,OAAO,OAAO;IAIvD,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO;IAIzC,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO;IAIzC,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,YAAY;IAIX,MAAM;IA2Cf,OAAgB,MAAM,EAAE,cAAc,CAA2B;CAClE"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import __decorate from "../../_virtual/_@oxc-project_runtime@0.150.0/helpers/esm/decorate.js";
|
|
2
|
+
import "../../icons/icon-silence-iec.js";
|
|
3
|
+
import "../../components/icon-button/icon-button.js";
|
|
4
|
+
import { ButtonVariant } from "../../components/button/button.js";
|
|
5
|
+
import "../../components/dropdown-button/dropdown-button.js";
|
|
6
|
+
import alert_list_page_small_default from "./alert-list-page-small.css.js";
|
|
7
|
+
import { msg } from "@lit/localize";
|
|
8
|
+
import { LitElement, html, nothing, unsafeCSS } from "lit";
|
|
9
|
+
import { property } from "lit/decorators.js";
|
|
10
|
+
//#region src/pages/alert-list-page-small/alert-list-page-small-base.ts
|
|
11
|
+
/**
|
|
12
|
+
* `ObcAlertListPageSmallBase` – Compact alert list page: a list of alerts over a
|
|
13
|
+
* bar with a mode dropdown, a silence button and "ACK visible".
|
|
14
|
+
*
|
|
15
|
+
* Not registered as an element: the subclasses supply the list and the
|
|
16
|
+
* modes. `obc-alert-list-page-small` renders `obc-alert-list-details`.
|
|
17
|
+
*
|
|
18
|
+
* ### Features
|
|
19
|
+
* - **Modes:** the dropdown offers `modes` and shows `mode`; picking one calls
|
|
20
|
+
* `selectMode()`.
|
|
21
|
+
* - **ACK visible:** enabled while `canAckAll` holds; a click reports the
|
|
22
|
+
* alerts `visibleAlerts()` returns, and the mode, in `ack-all-visible-click`.
|
|
23
|
+
* - **Silence:** the icon button fires `silence-click`.
|
|
24
|
+
*
|
|
25
|
+
* The base holds no alerts: each page declares `alerts` in the alert type it
|
|
26
|
+
* lists.
|
|
27
|
+
*
|
|
28
|
+
* @property hasShelved - Whether the dropdown offers the shelved alerts.
|
|
29
|
+
* @property showTime - Whether the list shows when each alert was raised.
|
|
30
|
+
* @property timeFormatter - Formats the time the list shows.
|
|
31
|
+
* @availableWhen timeFormatter showTime==true
|
|
32
|
+
*/
|
|
33
|
+
var ObcAlertListPageSmallBase = class extends LitElement {
|
|
34
|
+
constructor(..._args) {
|
|
35
|
+
super(..._args);
|
|
36
|
+
this.hasShelved = false;
|
|
37
|
+
this.showTime = false;
|
|
38
|
+
this.timeFormatter = (time) => time.toLocaleTimeString(void 0, { hour12: false });
|
|
39
|
+
}
|
|
40
|
+
/** The dropdown's options, in order. */
|
|
41
|
+
get modes() {
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
/** The mode the list filters by and the dropdown shows. */
|
|
45
|
+
get mode() {
|
|
46
|
+
return "";
|
|
47
|
+
}
|
|
48
|
+
selectMode(_mode) {}
|
|
49
|
+
/** Whether an alert the list shows in `mode` can still be acknowledged. */
|
|
50
|
+
get canAckAll() {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
/** Whether the page offers "ACK visible" at all; `canAckAll` enables it. */
|
|
54
|
+
get offersAckAll() {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
/** The alerts in view, which "ACK visible" reports. */
|
|
58
|
+
visibleAlerts() {
|
|
59
|
+
return [];
|
|
60
|
+
}
|
|
61
|
+
renderList() {
|
|
62
|
+
return nothing;
|
|
63
|
+
}
|
|
64
|
+
dispatchAckClick(alert) {
|
|
65
|
+
this.dispatchEvent(new CustomEvent("ack-click", { detail: { alert } }));
|
|
66
|
+
}
|
|
67
|
+
dispatchRowClick(alert) {
|
|
68
|
+
this.dispatchEvent(new CustomEvent("row-click", { detail: { alert } }));
|
|
69
|
+
}
|
|
70
|
+
handleAckAllVisibleClick() {
|
|
71
|
+
this.dispatchEvent(new CustomEvent("ack-all-visible-click", { detail: {
|
|
72
|
+
alerts: this.visibleAlerts(),
|
|
73
|
+
mode: this.mode
|
|
74
|
+
} }));
|
|
75
|
+
}
|
|
76
|
+
onModeSelect(e) {
|
|
77
|
+
this.selectMode(e.detail.value);
|
|
78
|
+
}
|
|
79
|
+
render() {
|
|
80
|
+
return html`
|
|
81
|
+
<div class="wrapper">
|
|
82
|
+
${this.renderList()}
|
|
83
|
+
<div class="action">
|
|
84
|
+
<div class="btn-group">
|
|
85
|
+
<obc-dropdown-button
|
|
86
|
+
.value=${this.mode}
|
|
87
|
+
@change=${this.onModeSelect}
|
|
88
|
+
.options=${this.modes}
|
|
89
|
+
>
|
|
90
|
+
</obc-dropdown-button>
|
|
91
|
+
</div>
|
|
92
|
+
|
|
93
|
+
<div class="btn-group">
|
|
94
|
+
<obc-icon-button
|
|
95
|
+
variant="normal"
|
|
96
|
+
@click=${() => this.dispatchEvent(new CustomEvent("silence-click"))}
|
|
97
|
+
aria-label=${msg("Silence")}
|
|
98
|
+
>
|
|
99
|
+
<obi-silence-iec></obi-silence-iec>
|
|
100
|
+
</obc-icon-button>
|
|
101
|
+
${this.offersAckAll ? html`<obc-button
|
|
102
|
+
.variant=${ButtonVariant.raised}
|
|
103
|
+
.disabled=${!this.canAckAll}
|
|
104
|
+
fullWidth
|
|
105
|
+
class="btn"
|
|
106
|
+
data-testid="ack-all-visible-button"
|
|
107
|
+
@click=${() => this.handleAckAllVisibleClick()}
|
|
108
|
+
>
|
|
109
|
+
${msg("ACK visible")}
|
|
110
|
+
</obc-button>` : nothing}
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
`;
|
|
115
|
+
}
|
|
116
|
+
static {
|
|
117
|
+
this.styles = unsafeCSS(alert_list_page_small_default);
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
__decorate([property({ type: Boolean })], ObcAlertListPageSmallBase.prototype, "hasShelved", void 0);
|
|
121
|
+
__decorate([property({ type: Boolean })], ObcAlertListPageSmallBase.prototype, "showTime", void 0);
|
|
122
|
+
__decorate([property({ attribute: false })], ObcAlertListPageSmallBase.prototype, "timeFormatter", void 0);
|
|
123
|
+
//#endregion
|
|
124
|
+
export { ObcAlertListPageSmallBase };
|
|
125
|
+
|
|
126
|
+
//# sourceMappingURL=alert-list-page-small-base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-list-page-small-base.js","names":[],"sources":["../../../src/pages/alert-list-page-small/alert-list-page-small-base.ts"],"sourcesContent":["import {\n CSSResultGroup,\n LitElement,\n TemplateResult,\n html,\n nothing,\n unsafeCSS,\n} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport {msg} from '@lit/localize';\nimport compentStyle from './alert-list-page-small.css?inline';\nimport '../../components/icon-button/icon-button.js';\nimport '../../components/button/button.js';\nimport {ButtonVariant} from '../../components/button/button.js';\nimport '../../components/dropdown-button/dropdown-button.js';\nimport {ObcDropdownButtonChangeEvent} from '../../components/dropdown-button/dropdown-button.js';\nimport '../../icons/icon-silence-iec.js';\n\n/** One entry of the mode dropdown. */\nexport interface AlertListPageMode {\n value: string;\n label: string;\n}\n\n/**\n * `ObcAlertListPageSmallBase` – Compact alert list page: a list of alerts over a\n * bar with a mode dropdown, a silence button and \"ACK visible\".\n *\n * Not registered as an element: the subclasses supply the list and the\n * modes. `obc-alert-list-page-small` renders `obc-alert-list-details`.\n *\n * ### Features\n * - **Modes:** the dropdown offers `modes` and shows `mode`; picking one calls\n * `selectMode()`.\n * - **ACK visible:** enabled while `canAckAll` holds; a click reports the\n * alerts `visibleAlerts()` returns, and the mode, in `ack-all-visible-click`.\n * - **Silence:** the icon button fires `silence-click`.\n *\n * The base holds no alerts: each page declares `alerts` in the alert type it\n * lists.\n *\n * @property hasShelved - Whether the dropdown offers the shelved alerts.\n * @property showTime - Whether the list shows when each alert was raised.\n * @property timeFormatter - Formats the time the list shows.\n * @availableWhen timeFormatter showTime==true\n */\nexport class ObcAlertListPageSmallBase extends LitElement {\n @property({type: Boolean}) hasShelved: boolean = false;\n @property({type: Boolean}) showTime: boolean = false;\n @property({attribute: false}) timeFormatter: (time: Date) => string = (\n time: Date\n ) => time.toLocaleTimeString(undefined, {hour12: false});\n\n /** The dropdown's options, in order. */\n protected get modes(): AlertListPageMode[] {\n return [];\n }\n\n /** The mode the list filters by and the dropdown shows. */\n protected get mode(): string {\n return '';\n }\n\n protected selectMode(_mode: string) {}\n\n /** Whether an alert the list shows in `mode` can still be acknowledged. */\n protected get canAckAll(): boolean {\n return false;\n }\n\n /** Whether the page offers \"ACK visible\" at all; `canAckAll` enables it. */\n protected get offersAckAll(): boolean {\n return true;\n }\n\n /** The alerts in view, which \"ACK visible\" reports. */\n protected visibleAlerts(): unknown[] {\n return [];\n }\n\n protected renderList(): TemplateResult | typeof nothing {\n return nothing;\n }\n\n protected dispatchAckClick(alert: unknown) {\n this.dispatchEvent(new CustomEvent('ack-click', {detail: {alert}}));\n }\n\n protected dispatchRowClick(alert: unknown) {\n this.dispatchEvent(new CustomEvent('row-click', {detail: {alert}}));\n }\n\n private handleAckAllVisibleClick() {\n this.dispatchEvent(\n new CustomEvent('ack-all-visible-click', {\n detail: {\n alerts: this.visibleAlerts(),\n mode: this.mode,\n },\n })\n );\n }\n\n private onModeSelect(e: ObcDropdownButtonChangeEvent) {\n this.selectMode(e.detail.value as string);\n }\n\n override render() {\n return html`\n <div class=\"wrapper\">\n ${this.renderList()}\n <div class=\"action\">\n <div class=\"btn-group\">\n <obc-dropdown-button\n .value=${this.mode}\n @change=${this.onModeSelect}\n .options=${this.modes}\n >\n </obc-dropdown-button>\n </div>\n\n <div class=\"btn-group\">\n <obc-icon-button\n variant=\"normal\"\n @click=${() =>\n this.dispatchEvent(new CustomEvent('silence-click'))}\n aria-label=${msg('Silence')}\n >\n <obi-silence-iec></obi-silence-iec>\n </obc-icon-button>\n ${\n this.offersAckAll\n ? html`<obc-button\n .variant=${ButtonVariant.raised}\n .disabled=${!this.canAckAll}\n fullWidth\n class=\"btn\"\n data-testid=\"ack-all-visible-button\"\n @click=${() => this.handleAckAllVisibleClick()}\n >\n ${msg('ACK visible')}\n </obc-button>`\n : nothing\n }\n </div>\n </div>\n </div>\n `;\n }\n\n static override styles: CSSResultGroup = unsafeCSS(compentStyle);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CA,IAAa,4BAAb,cAA+C,WAAW;;;EACP,KAAA,aAAA;EACF,KAAA,WAAA;EAE7C,KAAA,iBAAA,SACG,KAAK,mBAAmB,KAAA,GAAW,EAAC,QAAQ,MAAK,CAAC;;;CAGvD,IAAc,QAA6B;EACzC,OAAO,CAAC;CACV;;CAGA,IAAc,OAAe;EAC3B,OAAO;CACT;CAEA,WAAqB,OAAe,CAAC;;CAGrC,IAAc,YAAqB;EACjC,OAAO;CACT;;CAGA,IAAc,eAAwB;EACpC,OAAO;CACT;;CAGA,gBAAqC;EACnC,OAAO,CAAC;CACV;CAEA,aAAwD;EACtD,OAAO;CACT;CAEA,iBAA2B,OAAgB;EACzC,KAAK,cAAc,IAAI,YAAY,aAAa,EAAC,QAAQ,EAAC,MAAK,EAAC,CAAC,CAAC;CACpE;CAEA,iBAA2B,OAAgB;EACzC,KAAK,cAAc,IAAI,YAAY,aAAa,EAAC,QAAQ,EAAC,MAAK,EAAC,CAAC,CAAC;CACpE;CAEA,2BAAmC;EACjC,KAAK,cACH,IAAI,YAAY,yBAAyB,EACvC,QAAQ;GACN,QAAQ,KAAK,cAAc;GAC3B,MAAM,KAAK;EACb,EACF,CAAC,CACH;CACF;CAEA,aAAqB,GAAiC;EACpD,KAAK,WAAW,EAAE,OAAO,KAAe;CAC1C;CAEA,SAAkB;EAChB,OAAO,IAAI;;UAEL,KAAK,WAAW,EAAE;;;;uBAIL,KAAK,KAAK;wBACT,KAAK,aAAa;yBACjB,KAAK,MAAM;;;;;;;;6BASpB,KAAK,cAAc,IAAI,YAAY,eAAe,CAAC,EAAE;2BAC1C,IAAI,SAAS,EAAE;;;;cAK5B,KAAK,eACD,IAAI;+BACS,cAAc,OAAO;gCACpB,CAAC,KAAK,UAAU;;;;mCAIb,KAAK,yBAAyB,EAAE;;sBAE7C,IAAI,aAAa,EAAE;mCAEvB,QACL;;;;;CAKX;;EAEyC,KAAA,SAAA,UAAU,6BAAY;;AACjE;AAxGG,WAAA,CAAA,SAAS,EAAC,MAAM,QAAO,CAAC,CAAA,GAAA,0BAAA,WAAA,cAAA,KAAA,CAAA;AACxB,WAAA,CAAA,SAAS,EAAC,MAAM,QAAO,CAAC,CAAA,GAAA,0BAAA,WAAA,YAAA,KAAA,CAAA;AACxB,WAAA,CAAA,SAAS,EAAC,WAAW,MAAK,CAAC,CAAA,GAAA,0BAAA,WAAA,iBAAA,KAAA,CAAA"}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PropertyValues } from 'lit';
|
|
2
|
+
import { ObcAlertListPageSmallBase, AlertListPageMode } from './alert-list-page-small-base.js';
|
|
2
3
|
import { Alert } from '../../types.js';
|
|
3
4
|
import '../../building-blocks/alert-list/alert-list.js';
|
|
4
|
-
import '../../components/icon-button/icon-button.js';
|
|
5
|
-
import '../../components/button/button.js';
|
|
6
|
-
import '../../icons/icon-silence-iec.js';
|
|
7
5
|
import '../../icons/icon-alerts.js';
|
|
8
6
|
import '../../icons/icon-alerts-shelf.js';
|
|
9
7
|
import '../../icons/icon-unacknowledged.js';
|
|
10
|
-
import '../../components/dropdown-button/dropdown-button.js';
|
|
11
8
|
import '../../icons/icon-alarm-noack-iec.js';
|
|
12
9
|
import '../../icons/icon-warning-noack-iec.js';
|
|
13
10
|
import '../../components/alert-list-details/alert-list-details.js';
|
|
@@ -27,28 +24,28 @@ export type ObcRowClickEvent = CustomEvent<{
|
|
|
27
24
|
alert: Alert;
|
|
28
25
|
}>;
|
|
29
26
|
/**
|
|
27
|
+
* @property alerts - Alerts to list.
|
|
30
28
|
* @fires {ObcAlertListPageAckAllClickEvent} ack-all-visible-click - Fired when the user clicks the "ACK visible" button.
|
|
31
29
|
* @fires {ObcAckClickEvent} ack-click - Fired when the user clicks the "ACK" button.
|
|
32
30
|
* @fires {ObcRowClickEvent} row-click - Fired when the user clicks a row.
|
|
33
31
|
* @fires {CustomEvent<void>} silence-click - Fired when the user clicks the "Silence" button.
|
|
34
32
|
* @beta
|
|
35
33
|
*/
|
|
36
|
-
export declare class ObcAlertListPageSmall extends
|
|
37
|
-
|
|
38
|
-
selectedMode: AlertListMode;
|
|
34
|
+
export declare class ObcAlertListPageSmall extends ObcAlertListPageSmallBase {
|
|
35
|
+
/** Alerts to list. */
|
|
39
36
|
alerts: Alert[];
|
|
40
|
-
|
|
41
|
-
timeFormatter: (time: Date) => string;
|
|
37
|
+
selectedMode: AlertListMode;
|
|
42
38
|
private _mode;
|
|
43
39
|
private alertList;
|
|
44
40
|
willUpdate(changedProperties: PropertyValues): void;
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
41
|
+
protected get modes(): AlertListPageMode[];
|
|
42
|
+
protected get mode(): AlertListMode;
|
|
43
|
+
protected selectMode(mode: string): void;
|
|
44
|
+
protected get canAckAll(): boolean;
|
|
45
|
+
protected visibleAlerts(): Alert[];
|
|
48
46
|
private onAckClick;
|
|
49
47
|
private onRowClick;
|
|
50
|
-
|
|
51
|
-
static styles: import('lit').CSSResult;
|
|
48
|
+
protected renderList(): import('lit-html').TemplateResult<1>;
|
|
52
49
|
}
|
|
53
50
|
declare global {
|
|
54
51
|
interface HTMLElementTagNameMap {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert-list-page-small.d.ts","sourceRoot":"","sources":["../../../src/pages/alert-list-page-small/alert-list-page-small.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"alert-list-page-small.d.ts","sourceRoot":"","sources":["../../../src/pages/alert-list-page-small/alert-list-page-small.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAO,MAAM,KAAK,CAAC;AAIzC,OAAO,EACL,yBAAyB,EACzB,KAAK,iBAAiB,EACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,gDAAgD,CAAC;AACxD,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,oCAAoC,CAAC;AAC5C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,uCAAuC,CAAC;AAC/C,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAC;AACrC,OAAO,2DAA2D,CAAC;AAOnE,oBAAY,aAAa;IACvB,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,OAAO,YAAY;CACpB;AAED,MAAM,MAAM,gCAAgC,GAAG,WAAW,CAAC;IACzD,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB,CAAC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC;IACzC,KAAK,EAAE,KAAK,CAAC;CACd,CAAC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC;IACzC,KAAK,EAAE,KAAK,CAAC;CACd,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,qBACa,qBAAsB,SAAQ,yBAAyB;IACzC,MAAM,EAAE,KAAK,EAAE,CAAM;IACpB,YAAY,EAAE,aAAa,CAAqB;IAEjE,OAAO,CAAC,KAAK,CAAoC;IAG1D,OAAO,CAAC,SAAS,CAAuB;IAE/B,UAAU,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI;IAS5D,cAAuB,KAAK,IAAI,iBAAiB,EAAE,CASlD;IAED,cAAuB,IAAI,IAAI,aAAa,CAE3C;cAEkB,UAAU,CAAC,IAAI,EAAE,MAAM;IAI1C,cAAuB,SAAS,IAAI,OAAO,CAI1C;cAEkB,aAAa,IAAI,KAAK,EAAE;IAI3C,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,UAAU;cAIC,UAAU;CAY9B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,2BAA2B,EAAE,qBAAqB,CAAC;KACpD;CACF"}
|
|
@@ -3,17 +3,13 @@ import __decorate from "../../_virtual/_@oxc-project_runtime@0.150.0/helpers/esm
|
|
|
3
3
|
import "../../icons/icon-alarm-noack-iec.js";
|
|
4
4
|
import "../../icons/icon-alerts-shelf.js";
|
|
5
5
|
import "../../icons/icon-alerts.js";
|
|
6
|
-
import "../../icons/icon-silence-iec.js";
|
|
7
6
|
import "../../icons/icon-unacknowledged.js";
|
|
8
7
|
import "../../icons/icon-warning-noack-iec.js";
|
|
9
|
-
import "../../components/icon-button/icon-button.js";
|
|
10
|
-
import { ButtonVariant } from "../../components/button/button.js";
|
|
11
8
|
import "../../building-blocks/alert-list/alert-list.js";
|
|
12
9
|
import { canAckFilter, getAlertListModeData } from "../../components/alert-list-details/alert-list-details.js";
|
|
13
|
-
import "
|
|
14
|
-
import alert_list_page_small_default from "./alert-list-page-small.css.js";
|
|
10
|
+
import { ObcAlertListPageSmallBase } from "./alert-list-page-small-base.js";
|
|
15
11
|
import { msg } from "@lit/localize";
|
|
16
|
-
import {
|
|
12
|
+
import { html } from "lit";
|
|
17
13
|
import { property, query, state } from "lit/decorators.js";
|
|
18
14
|
//#region src/pages/alert-list-page-small/alert-list-page-small.ts
|
|
19
15
|
var AlertListMode = /* @__PURE__ */ function(AlertListMode) {
|
|
@@ -22,110 +18,63 @@ var AlertListMode = /* @__PURE__ */ function(AlertListMode) {
|
|
|
22
18
|
AlertListMode["SHELVED"] = "shelved";
|
|
23
19
|
return AlertListMode;
|
|
24
20
|
}({});
|
|
25
|
-
var ObcAlertListPageSmall = class ObcAlertListPageSmall extends
|
|
21
|
+
var ObcAlertListPageSmall = class ObcAlertListPageSmall extends ObcAlertListPageSmallBase {
|
|
26
22
|
constructor(..._args) {
|
|
27
23
|
super(..._args);
|
|
28
|
-
this.hasShelved = false;
|
|
29
|
-
this.selectedMode = "all";
|
|
30
24
|
this.alerts = [];
|
|
31
|
-
this.
|
|
32
|
-
this.timeFormatter = (time) => time.toLocaleTimeString(void 0, { hour12: false });
|
|
25
|
+
this.selectedMode = "all";
|
|
33
26
|
this._mode = "all";
|
|
34
27
|
}
|
|
35
28
|
willUpdate(changedProperties) {
|
|
36
29
|
if (changedProperties.has("selectedMode") && this._mode !== this.selectedMode) this._mode = this.selectedMode;
|
|
37
30
|
}
|
|
38
|
-
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
31
|
+
get modes() {
|
|
32
|
+
const modes = [{
|
|
33
|
+
value: "all",
|
|
34
|
+
label: msg("All")
|
|
35
|
+
}, {
|
|
36
|
+
value: "unacked",
|
|
37
|
+
label: msg("Unacked")
|
|
38
|
+
}];
|
|
39
|
+
if (this.hasShelved) modes.push({
|
|
40
|
+
value: "shelved",
|
|
41
|
+
label: msg("Shelved")
|
|
42
|
+
});
|
|
43
|
+
return modes;
|
|
44
|
+
}
|
|
45
|
+
get mode() {
|
|
46
|
+
return this._mode;
|
|
47
|
+
}
|
|
48
|
+
selectMode(mode) {
|
|
49
|
+
this._mode = mode;
|
|
45
50
|
}
|
|
46
|
-
|
|
47
|
-
this._mode
|
|
51
|
+
get canAckAll() {
|
|
52
|
+
return this.alerts.some(canAckFilter(getAlertListModeData(this._mode).filter));
|
|
48
53
|
}
|
|
49
|
-
|
|
50
|
-
return
|
|
54
|
+
visibleAlerts() {
|
|
55
|
+
return this.alertList.getVisibleAlerts();
|
|
51
56
|
}
|
|
52
57
|
onAckClick(e) {
|
|
53
|
-
this.
|
|
58
|
+
this.dispatchAckClick(e.detail.alert);
|
|
54
59
|
}
|
|
55
60
|
onRowClick(e) {
|
|
56
|
-
this.
|
|
61
|
+
this.dispatchRowClick(e.detail.alert);
|
|
57
62
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
});
|
|
70
|
-
const metadata = this.metadata;
|
|
71
|
-
const canAckAll = this.alerts.some(canAckFilter(metadata.filter));
|
|
72
|
-
return html`
|
|
73
|
-
<div class="wrapper">
|
|
74
|
-
<obc-alert-list-details
|
|
75
|
-
class="alert-list"
|
|
76
|
-
.small=${true}
|
|
77
|
-
.alerts=${this.alerts}
|
|
78
|
-
.selectedMode=${this._mode}
|
|
79
|
-
.showTime=${this.showTime}
|
|
80
|
-
.timeFormatter=${this.timeFormatter}
|
|
81
|
-
@ack-click=${this.onAckClick}
|
|
82
|
-
@row-click=${this.onRowClick}
|
|
83
|
-
></obc-alert-list-details>
|
|
84
|
-
<div class="action">
|
|
85
|
-
<div class="btn-group">
|
|
86
|
-
<obc-dropdown-button
|
|
87
|
-
.value=${this._mode}
|
|
88
|
-
@change=${this.onModeSelect}
|
|
89
|
-
.options=${lists.map((v) => ({
|
|
90
|
-
value: v.name,
|
|
91
|
-
label: v.title
|
|
92
|
-
}))}
|
|
93
|
-
>
|
|
94
|
-
</obc-dropdown-button>
|
|
95
|
-
</div>
|
|
96
|
-
|
|
97
|
-
<div class="btn-group">
|
|
98
|
-
<obc-icon-button
|
|
99
|
-
variant="normal"
|
|
100
|
-
@click=${() => this.dispatchEvent(new CustomEvent("silence-click"))}
|
|
101
|
-
aria-label=${msg("Silence")}
|
|
102
|
-
>
|
|
103
|
-
<obi-silence-iec></obi-silence-iec>
|
|
104
|
-
</obc-icon-button>
|
|
105
|
-
<obc-button
|
|
106
|
-
.variant=${ButtonVariant.raised}
|
|
107
|
-
.disabled=${!canAckAll}
|
|
108
|
-
fullWidth
|
|
109
|
-
class="btn"
|
|
110
|
-
data-testid="ack-all-visible-button"
|
|
111
|
-
@click=${() => this.handleAckAllVisibleClick()}
|
|
112
|
-
>
|
|
113
|
-
${msg("ACK visible")}
|
|
114
|
-
</obc-button>
|
|
115
|
-
</div>
|
|
116
|
-
</div>
|
|
117
|
-
</div>
|
|
118
|
-
`;
|
|
119
|
-
}
|
|
120
|
-
static {
|
|
121
|
-
this.styles = unsafeCSS(alert_list_page_small_default);
|
|
63
|
+
renderList() {
|
|
64
|
+
return html`<obc-alert-list-details
|
|
65
|
+
class="alert-list"
|
|
66
|
+
.small=${true}
|
|
67
|
+
.alerts=${this.alerts}
|
|
68
|
+
.selectedMode=${this._mode}
|
|
69
|
+
.showTime=${this.showTime}
|
|
70
|
+
.timeFormatter=${this.timeFormatter}
|
|
71
|
+
@ack-click=${this.onAckClick}
|
|
72
|
+
@row-click=${this.onRowClick}
|
|
73
|
+
></obc-alert-list-details>`;
|
|
122
74
|
}
|
|
123
75
|
};
|
|
124
|
-
__decorate([property({ type: Boolean })], ObcAlertListPageSmall.prototype, "hasShelved", void 0);
|
|
125
|
-
__decorate([property({ type: String })], ObcAlertListPageSmall.prototype, "selectedMode", void 0);
|
|
126
76
|
__decorate([property({ type: Array })], ObcAlertListPageSmall.prototype, "alerts", void 0);
|
|
127
|
-
__decorate([property({ type:
|
|
128
|
-
__decorate([property({ attribute: false })], ObcAlertListPageSmall.prototype, "timeFormatter", void 0);
|
|
77
|
+
__decorate([property({ type: String })], ObcAlertListPageSmall.prototype, "selectedMode", void 0);
|
|
129
78
|
__decorate([state()], ObcAlertListPageSmall.prototype, "_mode", void 0);
|
|
130
79
|
__decorate([query("obc-alert-list-details")], ObcAlertListPageSmall.prototype, "alertList", void 0);
|
|
131
80
|
ObcAlertListPageSmall = __decorate([customElement("obc-alert-list-page-small")], ObcAlertListPageSmall);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert-list-page-small.js","names":[],"sources":["../../../src/pages/alert-list-page-small/alert-list-page-small.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"alert-list-page-small.js","names":[],"sources":["../../../src/pages/alert-list-page-small/alert-list-page-small.ts"],"sourcesContent":["import {PropertyValues, html} from 'lit';\nimport {customElement} from '../../decorator.js';\nimport {msg} from '@lit/localize';\nimport {property, query, state} from 'lit/decorators.js';\nimport {\n ObcAlertListPageSmallBase,\n type AlertListPageMode,\n} from './alert-list-page-small-base.js';\nimport '../../building-blocks/alert-list/alert-list.js';\nimport '../../icons/icon-alerts.js';\nimport '../../icons/icon-alerts-shelf.js';\nimport '../../icons/icon-unacknowledged.js';\nimport '../../icons/icon-alarm-noack-iec.js';\nimport '../../icons/icon-warning-noack-iec.js';\nimport {Alert} from '../../types.js';\nimport '../../components/alert-list-details/alert-list-details.js';\nimport {\n canAckFilter,\n getAlertListModeData,\n ObcAlertListDetails,\n} from '../../components/alert-list-details/alert-list-details.js';\n\nexport enum AlertListMode {\n UNACKED = 'unacked',\n ALL = 'all',\n SHELVED = 'shelved',\n}\n\nexport type ObcAlertListPageAckAllClickEvent = CustomEvent<{\n mode: AlertListMode;\n alerts: Alert[];\n}>;\n\nexport type ObcAckClickEvent = CustomEvent<{\n alert: Alert;\n}>;\n\nexport type ObcRowClickEvent = CustomEvent<{\n alert: Alert;\n}>;\n\n/**\n * @property alerts - Alerts to list.\n * @fires {ObcAlertListPageAckAllClickEvent} ack-all-visible-click - Fired when the user clicks the \"ACK visible\" button.\n * @fires {ObcAckClickEvent} ack-click - Fired when the user clicks the \"ACK\" button.\n * @fires {ObcRowClickEvent} row-click - Fired when the user clicks a row.\n * @fires {CustomEvent<void>} silence-click - Fired when the user clicks the \"Silence\" button.\n * @beta\n */\n@customElement('obc-alert-list-page-small')\nexport class ObcAlertListPageSmall extends ObcAlertListPageSmallBase {\n @property({type: Array}) alerts: Alert[] = [];\n @property({type: String}) selectedMode: AlertListMode = AlertListMode.ALL;\n\n @state() private _mode: AlertListMode = AlertListMode.ALL;\n\n @query('obc-alert-list-details')\n private alertList!: ObcAlertListDetails;\n\n override willUpdate(changedProperties: PropertyValues): void {\n if (\n changedProperties.has('selectedMode') &&\n this._mode !== this.selectedMode\n ) {\n this._mode = this.selectedMode;\n }\n }\n\n protected override get modes(): AlertListPageMode[] {\n const modes = [\n {value: AlertListMode.ALL, label: msg('All')},\n {value: AlertListMode.UNACKED, label: msg('Unacked')},\n ];\n if (this.hasShelved) {\n modes.push({value: AlertListMode.SHELVED, label: msg('Shelved')});\n }\n return modes;\n }\n\n protected override get mode(): AlertListMode {\n return this._mode;\n }\n\n protected override selectMode(mode: string) {\n this._mode = mode as AlertListMode;\n }\n\n protected override get canAckAll(): boolean {\n return this.alerts.some(\n canAckFilter(getAlertListModeData(this._mode).filter)\n );\n }\n\n protected override visibleAlerts(): Alert[] {\n return this.alertList.getVisibleAlerts();\n }\n\n private onAckClick(e: ObcAckClickEvent) {\n this.dispatchAckClick(e.detail.alert);\n }\n\n private onRowClick(e: ObcRowClickEvent) {\n this.dispatchRowClick(e.detail.alert);\n }\n\n protected override renderList() {\n return html`<obc-alert-list-details\n class=\"alert-list\"\n .small=${true}\n .alerts=${this.alerts}\n .selectedMode=${this._mode}\n .showTime=${this.showTime}\n .timeFormatter=${this.timeFormatter}\n @ack-click=${this.onAckClick}\n @row-click=${this.onRowClick}\n ></obc-alert-list-details>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'obc-alert-list-page-small': ObcAlertListPageSmall;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAsBA,IAAY,gBAAL,yBAAA,eAAA;CACL,cAAA,aAAA;CACA,cAAA,SAAA;CACA,cAAA,aAAA;;AACF,EAAA,CAAA,CAAA;AAwBO,IAAM,wBAAN,MAAM,8BAA8B,0BAA0B;;;EACxB,KAAA,SAAA,CAAC;;;;CAQ5C,WAAoB,mBAAyC;EAC3D,IACE,kBAAkB,IAAI,cAAc,KACpC,KAAK,UAAU,KAAK,cAEpB,KAAK,QAAQ,KAAK;CAEtB;CAEA,IAAuB,QAA6B;EAClD,MAAM,QAAQ,CACZ;GAAC,OAAA;GAA0B,OAAO,IAAI,KAAK;EAAC,GAC5C;GAAC,OAAA;GAA8B,OAAO,IAAI,SAAS;EAAC,CACtD;EACA,IAAI,KAAK,YACP,MAAM,KAAK;GAAC,OAAA;GAA8B,OAAO,IAAI,SAAS;EAAC,CAAC;EAElE,OAAO;CACT;CAEA,IAAuB,OAAsB;EAC3C,OAAO,KAAK;CACd;CAEA,WAA8B,MAAc;EAC1C,KAAK,QAAQ;CACf;CAEA,IAAuB,YAAqB;EAC1C,OAAO,KAAK,OAAO,KACjB,aAAa,qBAAqB,KAAK,KAAK,CAAC,CAAC,MAAM,CACtD;CACF;CAEA,gBAA4C;EAC1C,OAAO,KAAK,UAAU,iBAAiB;CACzC;CAEA,WAAmB,GAAqB;EACtC,KAAK,iBAAiB,EAAE,OAAO,KAAK;CACtC;CAEA,WAAmB,GAAqB;EACtC,KAAK,iBAAiB,EAAE,OAAO,KAAK;CACtC;CAEA,aAAgC;EAC9B,OAAO,IAAI;;eAEA,KAAK;gBACJ,KAAK,OAAO;sBACN,KAAK,MAAM;kBACf,KAAK,SAAS;uBACT,KAAK,cAAc;mBACvB,KAAK,WAAW;mBAChB,KAAK,WAAW;;CAEjC;AACF;AAlEG,WAAA,CAAA,SAAS,EAAC,MAAM,MAAK,CAAC,CAAA,GAAA,sBAAA,WAAA,UAAA,KAAA,CAAA;AACtB,WAAA,CAAA,SAAS,EAAC,MAAM,OAAM,CAAC,CAAA,GAAA,sBAAA,WAAA,gBAAA,KAAA,CAAA;AAEvB,WAAA,CAAA,MAAM,CAAA,GAAA,sBAAA,WAAA,SAAA,KAAA,CAAA;AAEN,WAAA,CAAA,MAAM,wBAAwB,CAAA,GAAA,sBAAA,WAAA,aAAA,KAAA,CAAA;AAPhC,wBAAA,WAAA,CAAA,cAAc,2BAA2B,CAAA,GAAA,qBAAA"}
|