@3mo/data-grid 0.20.1 → 0.20.2
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/dist/DataGrid.d.ts.map +1 -1
- package/dist/DataGrid.js +243 -245
- package/dist/DataGridColumnHeader.d.ts.map +1 -1
- package/dist/DataGridColumnHeader.js +184 -185
- package/dist/DataGridFooter.js +2 -2
- package/dist/DataGridHeader.d.ts.map +1 -1
- package/dist/DataGridHeader.js +102 -103
- package/dist/DataGridSidePanel.js +1 -1
- package/dist/custom-elements.json +1 -1
- package/dist/rows/DataGridDefaultRow.js +25 -25
- package/dist/rows/DataGridRow.d.ts.map +1 -1
- package/dist/rows/DataGridRow.js +196 -197
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +59 -59
package/dist/DataGridHeader.js
CHANGED
|
@@ -44,98 +44,97 @@ let DataGridHeader = class DataGridHeader extends Component {
|
|
|
44
44
|
this.columnHeaders.forEach(h => h.requestUpdate());
|
|
45
45
|
}
|
|
46
46
|
static get styles() {
|
|
47
|
-
return css `
|
|
48
|
-
:host {
|
|
49
|
-
--mo-data-grid-header-separator-height: 15px;
|
|
50
|
-
--mo-data-grid-header-separator-width: 2px;
|
|
51
|
-
display: grid;
|
|
52
|
-
grid-template-columns: subgrid;
|
|
53
|
-
position: sticky;
|
|
54
|
-
grid-column: -1 / 1;
|
|
55
|
-
background: var(--mo-data-grid-header-background, var(--mo-data-grid-sticky-part-color));
|
|
56
|
-
top: 0;
|
|
57
|
-
z-index: 4;
|
|
58
|
-
font-size: small;
|
|
59
|
-
border-block: var(--mo-data-grid-border);
|
|
60
|
-
height: var(--mo-data-grid-header-height);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
.details, .selection, .actions, .context-menu {
|
|
64
|
-
position: sticky;
|
|
65
|
-
background: var(--mo-data-grid-sticky-part-color);
|
|
66
|
-
z-index: 5;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
.details {
|
|
70
|
-
inset-inline-start: 0px;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
.selection {
|
|
74
|
-
inset-inline-start: 0px;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
.actions, .context-menu {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
47
|
+
return css `
|
|
48
|
+
:host {
|
|
49
|
+
--mo-data-grid-header-separator-height: 15px;
|
|
50
|
+
--mo-data-grid-header-separator-width: 2px;
|
|
51
|
+
display: grid;
|
|
52
|
+
grid-template-columns: subgrid;
|
|
53
|
+
position: sticky;
|
|
54
|
+
grid-column: -1 / 1;
|
|
55
|
+
background: var(--mo-data-grid-header-background, var(--mo-data-grid-sticky-part-color));
|
|
56
|
+
top: 0;
|
|
57
|
+
z-index: 4;
|
|
58
|
+
font-size: small;
|
|
59
|
+
border-block: var(--mo-data-grid-border);
|
|
60
|
+
height: var(--mo-data-grid-header-height);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.details, .selection, .actions, .context-menu {
|
|
64
|
+
position: sticky;
|
|
65
|
+
background: var(--mo-data-grid-sticky-part-color);
|
|
66
|
+
z-index: 5;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.details {
|
|
70
|
+
inset-inline-start: 0px;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.selection {
|
|
74
|
+
inset-inline-start: 0px;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.actions, .context-menu {
|
|
78
|
+
inset-inline-end: 0px;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.actions {
|
|
82
|
+
mo-icon-button {
|
|
83
|
+
color: var(--mo-color-accent);
|
|
84
|
+
font-size: large;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.context-menu {
|
|
89
|
+
background-color: var(--mo-color-surface);
|
|
90
|
+
&[data-multiple-selected] {
|
|
91
|
+
background-color: var(--mo-color-accent);
|
|
92
|
+
}
|
|
93
|
+
mo-icon-button {
|
|
94
|
+
color: var(--mo-color-on-accent);
|
|
95
|
+
font-size: 20px;
|
|
96
|
+
&:not([data-multiple-selected]) {
|
|
97
|
+
opacity: 0;
|
|
98
|
+
pointer-events: none;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
103
102
|
`;
|
|
104
103
|
}
|
|
105
104
|
get template() {
|
|
106
|
-
return html `
|
|
107
|
-
${this.detailsExpanderTemplate}
|
|
108
|
-
${this.selectionTemplate}
|
|
109
|
-
${this.contentTemplate}
|
|
110
|
-
${this.fillerTemplate}
|
|
111
|
-
${this.actionsTemplate}
|
|
105
|
+
return html `
|
|
106
|
+
${this.detailsExpanderTemplate}
|
|
107
|
+
${this.selectionTemplate}
|
|
108
|
+
${this.contentTemplate}
|
|
109
|
+
${this.fillerTemplate}
|
|
110
|
+
${this.actionsTemplate}
|
|
112
111
|
`;
|
|
113
112
|
}
|
|
114
113
|
get detailsExpanderTemplate() {
|
|
115
|
-
return this.dataGrid.hasDetails === false ? html.nothing : html `
|
|
116
|
-
<mo-flex class='details' justifyContent='center' alignItems='center'
|
|
117
|
-
${style({ insetInlineStart: '0px' })}
|
|
118
|
-
${this.getResizeObserver('detailsColumnWidthInPixels')}
|
|
119
|
-
>
|
|
120
|
-
${!this.dataGrid.hasDetails || !this.dataGrid.multipleDetails ? html.nothing : html `
|
|
121
|
-
<mo-icon-button dense
|
|
122
|
-
icon=${this.dataGrid.allRowDetailsOpen ? 'unfold_less' : 'unfold_more'}
|
|
123
|
-
@click=${() => this.toggleAllDetails()}
|
|
124
|
-
></mo-icon-button>
|
|
125
|
-
`}
|
|
126
|
-
</mo-flex>
|
|
114
|
+
return this.dataGrid.hasDetails === false ? html.nothing : html `
|
|
115
|
+
<mo-flex class='details' justifyContent='center' alignItems='center'
|
|
116
|
+
${style({ insetInlineStart: '0px' })}
|
|
117
|
+
${this.getResizeObserver('detailsColumnWidthInPixels')}
|
|
118
|
+
>
|
|
119
|
+
${!this.dataGrid.hasDetails || !this.dataGrid.multipleDetails ? html.nothing : html `
|
|
120
|
+
<mo-icon-button dense
|
|
121
|
+
icon=${this.dataGrid.allRowDetailsOpen ? 'unfold_less' : 'unfold_more'}
|
|
122
|
+
@click=${() => this.toggleAllDetails()}
|
|
123
|
+
></mo-icon-button>
|
|
124
|
+
`}
|
|
125
|
+
</mo-flex>
|
|
127
126
|
`;
|
|
128
127
|
}
|
|
129
128
|
get selectionTemplate() {
|
|
130
|
-
return !this.dataGrid.hasSelection ? html.nothing : html `
|
|
131
|
-
<mo-flex class='selection' justifyContent='center' alignItems='center'
|
|
132
|
-
${style({ insetInlineStart: this.dataGrid.hasDetails ? '20px' : '0px' })}
|
|
133
|
-
${this.getResizeObserver('selectionColumnWidthInPixels')}
|
|
134
|
-
>
|
|
135
|
-
${this.dataGrid.selectability !== DataGridSelectability.Multiple ? html.nothing : html `
|
|
136
|
-
<mo-checkbox .selected=${live(this.selection)} @change=${this.handleSelectionChange}></mo-checkbox>
|
|
137
|
-
`}
|
|
138
|
-
</mo-flex>
|
|
129
|
+
return !this.dataGrid.hasSelection ? html.nothing : html `
|
|
130
|
+
<mo-flex class='selection' justifyContent='center' alignItems='center'
|
|
131
|
+
${style({ insetInlineStart: this.dataGrid.hasDetails ? '20px' : '0px' })}
|
|
132
|
+
${this.getResizeObserver('selectionColumnWidthInPixels')}
|
|
133
|
+
>
|
|
134
|
+
${this.dataGrid.selectability !== DataGridSelectability.Multiple ? html.nothing : html `
|
|
135
|
+
<mo-checkbox .selected=${live(this.selection)} @change=${this.handleSelectionChange}></mo-checkbox>
|
|
136
|
+
`}
|
|
137
|
+
</mo-flex>
|
|
139
138
|
`;
|
|
140
139
|
}
|
|
141
140
|
get selection() {
|
|
@@ -149,10 +148,10 @@ let DataGridHeader = class DataGridHeader extends Component {
|
|
|
149
148
|
}
|
|
150
149
|
}
|
|
151
150
|
get contentTemplate() {
|
|
152
|
-
return html `
|
|
153
|
-
${this.dataGrid.visibleColumns.map(column => html `
|
|
154
|
-
<mo-data-grid-column-header .column=${column}></mo-data-grid-column-header>
|
|
155
|
-
`)}
|
|
151
|
+
return html `
|
|
152
|
+
${this.dataGrid.visibleColumns.map(column => html `
|
|
153
|
+
<mo-data-grid-column-header .column=${column}></mo-data-grid-column-header>
|
|
154
|
+
`)}
|
|
156
155
|
`;
|
|
157
156
|
}
|
|
158
157
|
get fillerTemplate() {
|
|
@@ -161,25 +160,25 @@ let DataGridHeader = class DataGridHeader extends Component {
|
|
|
161
160
|
get actionsTemplate() {
|
|
162
161
|
if (this.dataGrid.hasContextMenu) {
|
|
163
162
|
const multipleSelected = this.dataGrid.selectedData.length > 1;
|
|
164
|
-
return html `
|
|
165
|
-
<mo-flex ?data-multiple-selected=${multipleSelected} class='context-menu' alignItems='end' justifyContent='center' ${this.getResizeObserver('actionsColumnWidthInPixels')}>
|
|
166
|
-
<mo-popover-container>
|
|
167
|
-
<mo-icon-button ?data-multiple-selected=${multipleSelected} dense icon='more_vert' title=${t('Actions for ${count:pluralityNumber} selected entries', { count: this.dataGrid.selectedData.length })}></mo-icon-button>
|
|
168
|
-
|
|
169
|
-
<mo-menu slot='popover'>
|
|
170
|
-
${this.dataGrid.contextMenuController.getMenuContentTemplate()}
|
|
171
|
-
</mo-menu>
|
|
172
|
-
</mo-popover-container>
|
|
173
|
-
</mo-flex>
|
|
163
|
+
return html `
|
|
164
|
+
<mo-flex ?data-multiple-selected=${multipleSelected} class='context-menu' alignItems='end' justifyContent='center' ${this.getResizeObserver('actionsColumnWidthInPixels')}>
|
|
165
|
+
<mo-popover-container>
|
|
166
|
+
<mo-icon-button ?data-multiple-selected=${multipleSelected} dense icon='more_vert' title=${t('Actions for ${count:pluralityNumber} selected entries', { count: this.dataGrid.selectedData.length })}></mo-icon-button>
|
|
167
|
+
|
|
168
|
+
<mo-menu slot='popover'>
|
|
169
|
+
${this.dataGrid.contextMenuController.getMenuContentTemplate()}
|
|
170
|
+
</mo-menu>
|
|
171
|
+
</mo-popover-container>
|
|
172
|
+
</mo-flex>
|
|
174
173
|
`;
|
|
175
174
|
}
|
|
176
175
|
if (!this.dataGrid.hasToolbar && !this.dataGrid.sidePanelHidden) {
|
|
177
|
-
return html `
|
|
178
|
-
<mo-flex class='actions' alignItems='end' justifyContent='center' ${this.getResizeObserver('actionsColumnWidthInPixels')}>
|
|
179
|
-
<mo-icon-button dense icon='settings'
|
|
180
|
-
@click=${() => this.dataGrid.navigateToSidePanelTab(this.dataGrid.sidePanelTab ? undefined : DataGridSidePanelTab.Settings)}
|
|
181
|
-
></mo-icon-button>
|
|
182
|
-
</mo-flex>
|
|
176
|
+
return html `
|
|
177
|
+
<mo-flex class='actions' alignItems='end' justifyContent='center' ${this.getResizeObserver('actionsColumnWidthInPixels')}>
|
|
178
|
+
<mo-icon-button dense icon='settings'
|
|
179
|
+
@click=${() => this.dataGrid.navigateToSidePanelTab(this.dataGrid.sidePanelTab ? undefined : DataGridSidePanelTab.Settings)}
|
|
180
|
+
></mo-icon-button>
|
|
181
|
+
</mo-flex>
|
|
183
182
|
`;
|
|
184
183
|
}
|
|
185
184
|
return html.nothing;
|
|
@@ -108,7 +108,7 @@ let DataGridSidePanel = class DataGridSidePanel extends Component {
|
|
|
108
108
|
<mo-heading typography='heading6' ${style({ flex: '1', color: 'var(--mo-color-on-surface)' })}>${t(this.dataGrid.sidePanelTab === DataGridSidePanelTab.Filters ? 'Extended Filters' : 'Settings')}</mo-heading>
|
|
109
109
|
<mo-icon-button icon='close' dense
|
|
110
110
|
${tooltip(t('Close'))}
|
|
111
|
-
${style({
|
|
111
|
+
${style({ color: 'var(--mo-color-gray)' })}
|
|
112
112
|
@click=${() => this.dataGrid.navigateToSidePanelTab(undefined)}
|
|
113
113
|
></mo-icon-button>
|
|
114
114
|
</mo-flex>
|
|
@@ -728,7 +728,7 @@
|
|
|
728
728
|
{
|
|
729
729
|
"name": "resizeController",
|
|
730
730
|
"type": "ResizeController<number>",
|
|
731
|
-
"default": "\"new ResizeController(this, {\\n\\t\\tcallback: () => requestIdleCallback(() => this.column.widthInPixels = this.getBoundingClientRect().width)\\n\\t})\""
|
|
731
|
+
"default": "\"new ResizeController(this, {\\r\\n\\t\\tcallback: () => requestIdleCallback(() => this.column.widthInPixels = this.getBoundingClientRect().width)\\r\\n\\t})\""
|
|
732
732
|
},
|
|
733
733
|
{
|
|
734
734
|
"name": "template",
|
|
@@ -3,25 +3,25 @@ import { css, component, html } from '@a11d/lit';
|
|
|
3
3
|
import { DataGridRow } from './DataGridRow.js';
|
|
4
4
|
let DataGridDefaultRow = class DataGridDefaultRow extends DataGridRow {
|
|
5
5
|
static get styles() {
|
|
6
|
-
return css `
|
|
7
|
-
${super.styles}
|
|
8
|
-
|
|
9
|
-
:host {
|
|
10
|
-
display: grid;
|
|
11
|
-
grid-template-columns: subgrid;
|
|
12
|
-
grid-column: -1 / 1;
|
|
13
|
-
min-height: var(--mo-data-grid-row-height);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
mo-flex {
|
|
17
|
-
white-space: nowrap;
|
|
18
|
-
text-overflow: ellipsis;
|
|
19
|
-
overflow: hidden;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
#selectionContainer {
|
|
23
|
-
height: var(--mo-data-grid-row-height);
|
|
24
|
-
}
|
|
6
|
+
return css `
|
|
7
|
+
${super.styles}
|
|
8
|
+
|
|
9
|
+
:host {
|
|
10
|
+
display: grid;
|
|
11
|
+
grid-template-columns: subgrid;
|
|
12
|
+
grid-column: -1 / 1;
|
|
13
|
+
min-height: var(--mo-data-grid-row-height);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
mo-flex {
|
|
17
|
+
white-space: nowrap;
|
|
18
|
+
text-overflow: ellipsis;
|
|
19
|
+
overflow: hidden;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
#selectionContainer {
|
|
23
|
+
height: var(--mo-data-grid-row-height);
|
|
24
|
+
}
|
|
25
25
|
`;
|
|
26
26
|
}
|
|
27
27
|
updated(...parameters) {
|
|
@@ -32,12 +32,12 @@ let DataGridDefaultRow = class DataGridDefaultRow extends DataGridRow {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
get rowTemplate() {
|
|
35
|
-
return html `
|
|
36
|
-
${this.detailsExpanderTemplate}
|
|
37
|
-
${this.selectionTemplate}
|
|
38
|
-
${this.dataGrid.columns.map(column => this.getCellTemplate(column))}
|
|
39
|
-
${this.fillerTemplate}
|
|
40
|
-
${this.contextMenuIconButtonTemplate}
|
|
35
|
+
return html `
|
|
36
|
+
${this.detailsExpanderTemplate}
|
|
37
|
+
${this.selectionTemplate}
|
|
38
|
+
${this.dataGrid.columns.map(column => this.getCellTemplate(column))}
|
|
39
|
+
${this.fillerTemplate}
|
|
40
|
+
${this.contextMenuIconButtonTemplate}
|
|
41
41
|
`;
|
|
42
42
|
}
|
|
43
43
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGridRow.d.ts","sourceRoot":"","sources":["../../rows/DataGridRow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,SAAS,EAAyB,KAAK,kBAAkB,EAAoB,MAAM,WAAW,CAAA;AAKtH,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,KAAK,YAAY,EAAkC,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AAEhG,8BAAsB,WAAW,CAAC,KAAK,EAAE,eAAe,SAAS,OAAO,GAAG,SAAS,GAAG,SAAS,CAAE,SAAQ,SAAS;IACnF,QAAQ,CAAC,KAAK,EAAG,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAA;IAChE,QAAQ,CAAC,OAAO,EAAG,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAA;IACjE,QAAQ,CAAC,OAAO,EAAG,WAAW,CAAA;IAE7B,cAAc,UAAO;IAEtB,UAAU,EAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAC1D,IAAI,QAAQ,kDAAsC;IAClD,IAAI,IAAI,UAAkC;IAC1C,IAAI,KAAK,WAAmC;IAC5C,IAAI,KAAK,WAAmC;IAC5C,IAAI,QAAQ,YAAwC;IACpD,IAAI,WAAW,YAAyC;IAExD,IAAI,cAAc,IACkF,eAAe,GAAG,SAAS,CAC9H;IAED,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC;IAIjC,SAAS;cAMC,WAAW;cAKX,YAAY;IAItB,OAAO,CAAC,GAAG,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAShE,SAAS,KAAK,UAAU,YAEvB;IAED,WAAoB,MAAM,
|
|
1
|
+
{"version":3,"file":"DataGridRow.d.ts","sourceRoot":"","sources":["../../rows/DataGridRow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,SAAS,EAAyB,KAAK,kBAAkB,EAAoB,MAAM,WAAW,CAAA;AAKtH,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,KAAK,YAAY,EAAkC,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AAEhG,8BAAsB,WAAW,CAAC,KAAK,EAAE,eAAe,SAAS,OAAO,GAAG,SAAS,GAAG,SAAS,CAAE,SAAQ,SAAS;IACnF,QAAQ,CAAC,KAAK,EAAG,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAA;IAChE,QAAQ,CAAC,OAAO,EAAG,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAA;IACjE,QAAQ,CAAC,OAAO,EAAG,WAAW,CAAA;IAE7B,cAAc,UAAO;IAEtB,UAAU,EAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAC1D,IAAI,QAAQ,kDAAsC;IAClD,IAAI,IAAI,UAAkC;IAC1C,IAAI,KAAK,WAAmC;IAC5C,IAAI,KAAK,WAAmC;IAC5C,IAAI,QAAQ,YAAwC;IACpD,IAAI,WAAW,YAAyC;IAExD,IAAI,cAAc,IACkF,eAAe,GAAG,SAAS,CAC9H;IAED,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC;IAIjC,SAAS;cAMC,WAAW;cAKX,YAAY;IAItB,OAAO,CAAC,GAAG,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAShE,SAAS,KAAK,UAAU,YAEvB;IAED,WAAoB,MAAM,kCA6IzB;IAED,cAAuB,QAAQ,uBAmB9B;IAED,SAAS,CAAC,QAAQ,KAAK,WAAW,IAAI,kBAAkB,CAAA;IAExD,SAAS,KAAK,uBAAuB,uBAepC;IAED,SAAS,KAAK,iBAAiB,uBAe9B;IAED,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAYlG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAG9B;IAED,SAAS,KAAK,cAAc,uBAE3B;IAED,SAAS,KAAK,6BAA6B,uBAS1C;IAED,SAAS,KAAK,eAAe,uBAY5B;IAED,SAAS,CAAC,kBAAkB;cAYZ,wBAAwB;cAKxB,wBAAwB;YAK1B,yCAAyC;IAQjD,eAAe,CAAC,KAAK,CAAC,EAAE,YAAY;IAY1C,SAAS,CAAC,2BAA2B,CAAC,IAAI,EAAE,OAAO;IAQnD,OAAO,KAAK,mBAAmB,GAM9B;IAEK,gBAAgB;IAKtB,aAAa;CAQb;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;KACxC;CACD"}
|