@fluentui/web-components 3.0.0-beta.33 → 3.0.0-beta.34

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.
@@ -1,9 +1,43 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { attr, FASTElement, observable, Updates } from '@microsoft/fast-element';
3
- import { autoUpdate, computePosition, flip, hide, size } from '@floating-ui/dom';
4
3
  import { keyEnter, keyEscape, keySpace, keyTab } from '@microsoft/fast-web-utilities';
5
4
  /**
6
- * The Menu class represents a menu component.
5
+ * A Menu component that provides a customizable menu element.
6
+ * @class Menu
7
+ * @extends FASTElement
8
+ *
9
+ * @attr open-on-hover - Determines if the menu should open on hover.
10
+ * @attr open-on-context - Determines if the menu should open on right click.
11
+ * @attr close-on-scroll - Determines if the menu should close on scroll.
12
+ * @attr persist-on-item-click - Determines if the menu open state should persist on click of menu item.
13
+ *
14
+ * @cssproperty --menu-max-height - The max-height of the menu.
15
+ *
16
+ * @slot trigger - Slot for the trigger elements.
17
+ * @slot - Default slot for the menu list.
18
+ *
19
+ * @method connectedCallback - Called when the element is connected to the DOM. Sets up the component.
20
+ * @method disconnectedCallback - Called when the element is disconnected from the DOM. Removes event listeners.
21
+ * @method setComponent - Sets the component state.
22
+ * @method toggleMenu - Toggles the open state of the menu.
23
+ * @method closeMenu - Closes the menu.
24
+ * @method openMenu - Opens the menu.
25
+ * @method focusMenuList - Focuses on the menu list.
26
+ * @method focusTrigger - Focuses on the menu trigger.
27
+ * @method openOnHoverChanged - Called whenever the 'openOnHover' property changes.
28
+ * @method persistOnItemClickChanged - Called whenever the 'persistOnItemClick' property changes.
29
+ * @method openOnContextChanged - Called whenever the 'openOnContext' property changes.
30
+ * @method closeOnScrollChanged - Called whenever the 'closeOnScroll' property changes.
31
+ * @method addListeners - Adds event listeners.
32
+ * @method removeListeners - Removes event listeners.
33
+ * @method menuKeydownHandler - Handles keyboard interaction for the menu.
34
+ * @method triggerKeydownHandler - Handles keyboard interaction for the trigger.
35
+ * @method documentClickHandler - Handles document click events to close the menu when a click occurs outside of the menu or the trigger.
36
+ *
37
+ * @summary The Menu component functions as a customizable menu element.
38
+ *
39
+ * @tag fluent-menu
40
+ *
7
41
  * @public
8
42
  */
9
43
  export class Menu extends FASTElement {
@@ -29,11 +63,6 @@ export class Menu extends FASTElement {
29
63
  * @public
30
64
  */
31
65
  this.persistOnItemClick = false;
32
- /**
33
- * Defines whether the menu is open or not.
34
- * @public
35
- */
36
- this.open = false;
37
66
  /**
38
67
  * Holds the slotted menu list.
39
68
  * @public
@@ -44,24 +73,26 @@ export class Menu extends FASTElement {
44
73
  * @public
45
74
  */
46
75
  this.slottedTriggers = [];
76
+ /**
77
+ * Defines whether the menu is open or not.
78
+ * @internal
79
+ */
80
+ this._open = false;
47
81
  /**
48
82
  * Toggles the open state of the menu.
49
83
  * @public
50
84
  */
51
85
  this.toggleMenu = () => {
52
- if (this.open) {
53
- this.closeMenu();
54
- }
55
- else {
56
- this.openMenu();
57
- }
86
+ var _a;
87
+ (_a = this._menuList) === null || _a === void 0 ? void 0 : _a.togglePopover(!this._open);
58
88
  };
59
89
  /**
60
90
  * Closes the menu.
61
91
  * @public
62
92
  */
63
93
  this.closeMenu = () => {
64
- this.open = false;
94
+ var _a;
95
+ (_a = this._menuList) === null || _a === void 0 ? void 0 : _a.togglePopover(false);
65
96
  if (this.closeOnScroll) {
66
97
  document.removeEventListener('scroll', this.closeMenu);
67
98
  }
@@ -71,7 +102,8 @@ export class Menu extends FASTElement {
71
102
  * @public
72
103
  */
73
104
  this.openMenu = (e) => {
74
- this.open = true;
105
+ var _a;
106
+ (_a = this._menuList) === null || _a === void 0 ? void 0 : _a.togglePopover(true);
75
107
  if (e && this.openOnContext) {
76
108
  e.preventDefault();
77
109
  }
@@ -80,11 +112,19 @@ export class Menu extends FASTElement {
80
112
  }
81
113
  };
82
114
  /**
83
- * The task to set the positioning of the menu.
84
- * @internal
115
+ * Handles the 'toggle' event on the popover.
116
+ * @public
117
+ * @param e - the event
118
+ * @returns void
85
119
  */
86
- this.setPositioningTask = () => {
87
- this.setPositioning();
120
+ this.toggleHandler = (e) => {
121
+ var _a;
122
+ if (e instanceof ToggleEvent) {
123
+ const newState = e.newState === 'open' ? true : false;
124
+ (_a = this._trigger) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-expanded', `${newState}`);
125
+ this._open = newState;
126
+ this.focusMenuList();
127
+ }
88
128
  };
89
129
  /**
90
130
  * Handles keyboard interaction for the trigger. Toggles the menu when the Space or Enter key is pressed. If the menu
@@ -93,7 +133,7 @@ export class Menu extends FASTElement {
93
133
  * @param e - the keyboard event
94
134
  * @public
95
135
  */
96
- this.handleTriggerKeydown = (e) => {
136
+ this.triggerKeydownHandler = (e) => {
97
137
  if (e.defaultPrevented) {
98
138
  return;
99
139
  }
@@ -103,21 +143,18 @@ export class Menu extends FASTElement {
103
143
  case keyEnter:
104
144
  e.preventDefault();
105
145
  this.toggleMenu();
106
- if (this.open) {
107
- this.focusMenuList();
108
- }
109
146
  break;
110
147
  default:
111
148
  return true;
112
149
  }
113
150
  };
114
151
  /**
115
- * Handles document click events to close the menu when a click occurs outside of the menu or the trigger.
152
+ * Handles document click events to close a menu opened with contextmenu in popover="manual" mode.
116
153
  * @internal
117
154
  * @param e - The event triggered on document click.
118
155
  */
119
- this.handleDocumentClick = (e) => {
120
- if (e && !e.composedPath().includes(this._menuList) && !e.composedPath().includes(this._trigger)) {
156
+ this.documentClickHandler = (e) => {
157
+ if (!e.composedPath().some((el) => el === this._trigger || el === this._menuList)) {
121
158
  this.closeMenu();
122
159
  }
123
160
  };
@@ -137,9 +174,7 @@ export class Menu extends FASTElement {
137
174
  * @public
138
175
  */
139
176
  disconnectedCallback() {
140
- var _a;
141
177
  super.disconnectedCallback();
142
- (_a = this.cleanup) === null || _a === void 0 ? void 0 : _a.call(this);
143
178
  this.removeListeners();
144
179
  }
145
180
  /**
@@ -152,7 +187,8 @@ export class Menu extends FASTElement {
152
187
  this._trigger = this.slottedTriggers[0];
153
188
  this._menuList = this.slottedMenuList[0];
154
189
  this._trigger.setAttribute('aria-haspopup', 'true');
155
- this._trigger.setAttribute('aria-expanded', `${this.open}`);
190
+ this._trigger.setAttribute('aria-expanded', `${this._open}`);
191
+ this._menuList.setAttribute('popover', this.openOnContext ? 'manual' : '');
156
192
  this.addListeners();
157
193
  }
158
194
  }
@@ -161,43 +197,18 @@ export class Menu extends FASTElement {
161
197
  * @public
162
198
  */
163
199
  focusMenuList() {
164
- if (this.open && this._menuList) {
165
- Updates.enqueue(() => {
166
- this._menuList.focus();
167
- });
168
- }
200
+ Updates.enqueue(() => {
201
+ this._menuList.focus();
202
+ });
169
203
  }
170
204
  /**
171
205
  * Focuses on the menu trigger.
172
206
  * @public
173
207
  */
174
208
  focusTrigger() {
175
- if (!this.open && this._trigger) {
176
- Updates.enqueue(() => {
177
- this._trigger.focus();
178
- });
179
- }
180
- }
181
- /**
182
- * Called whenever the open state changes.
183
- * Updates the 'aria-expanded' attribute and sets the positioning of the menu.
184
- * Sets menu list position
185
- * emits openChanged event
186
- *
187
- * @param oldValue - The previous value of 'open'.
188
- * @param newValue - The new value of 'open'.
189
- * @public
190
- */
191
- openChanged(oldValue, newValue) {
192
- var _a;
193
- if (this.$fastController.isConnected && this._trigger instanceof HTMLElement) {
194
- this._trigger.setAttribute('aria-expanded', `${this.open}`);
195
- if (this._menuList && this.open) {
196
- Updates.enqueue(this.setPositioningTask);
197
- }
198
- }
199
- (_a = this.cleanup) === null || _a === void 0 ? void 0 : _a.call(this);
200
- this.$emit('onOpenChange', { open: newValue });
209
+ Updates.enqueue(() => {
210
+ this._trigger.focus();
211
+ });
201
212
  }
202
213
  /**
203
214
  * Called whenever the 'openOnHover' property changes.
@@ -263,90 +274,56 @@ export class Menu extends FASTElement {
263
274
  document.removeEventListener('scroll', this.closeMenu);
264
275
  }
265
276
  }
266
- /**
267
- * Sets the positioning of the menu.
268
- * @internal
269
- */
270
- setPositioning() {
271
- if (this.$fastController.isConnected && this._menuList && this.open && this._trigger) {
272
- this.cleanup = autoUpdate(this, this.positioningContainer, async () => {
273
- var _a, _b;
274
- const { middlewareData, x, y } = await computePosition(this._trigger, this.positioningContainer, {
275
- placement: 'bottom',
276
- strategy: 'fixed',
277
- middleware: [
278
- flip(),
279
- size({
280
- apply: ({ availableHeight, rects }) => {
281
- var _a;
282
- ((_a = this.positioningContainer) === null || _a === void 0 ? void 0 : _a.style) &&
283
- Object.assign(this.positioningContainer.style, {
284
- maxHeight: `${availableHeight}px`,
285
- width: `${rects.reference.width}px`,
286
- });
287
- },
288
- }),
289
- hide(),
290
- ],
291
- });
292
- if ((_a = middlewareData.hide) === null || _a === void 0 ? void 0 : _a.referenceHidden) {
293
- this.open = false;
294
- return;
295
- }
296
- ((_b = this.positioningContainer) === null || _b === void 0 ? void 0 : _b.style) &&
297
- Object.assign(this.positioningContainer.style, {
298
- position: 'fixed',
299
- top: '0',
300
- left: '0',
301
- transform: `translate(${x}px, ${y}px)`,
302
- });
303
- });
304
- }
305
- }
306
277
  /**
307
278
  * Adds event listeners.
308
- * Adds click and keydown event listeners to the trigger and a click event listener to the document.
279
+ * Adds click and keydown event listeners to the trigger.
280
+ * Adds a 'toggle' event listener to the menu list.
309
281
  * If 'openOnHover' is true, adds a 'mouseover' event listener to the trigger.
310
- * @public
282
+ * If 'openOnContext' is true, adds a 'contextmenu' event listener to the trigger and a document 'click' event listener.
283
+ * @internal
311
284
  */
312
285
  addListeners() {
313
- var _a, _b, _c, _d, _e;
314
- document.addEventListener('click', this.handleDocumentClick);
315
- (_a = this._trigger) === null || _a === void 0 ? void 0 : _a.addEventListener('keydown', this.handleTriggerKeydown);
286
+ var _a, _b, _c, _d, _e, _f;
287
+ (_a = this._menuList) === null || _a === void 0 ? void 0 : _a.addEventListener('toggle', this.toggleHandler);
288
+ (_b = this._trigger) === null || _b === void 0 ? void 0 : _b.addEventListener('keydown', this.triggerKeydownHandler);
316
289
  if (!this.persistOnItemClick) {
317
- (_b = this._menuList) === null || _b === void 0 ? void 0 : _b.addEventListener('click', this.closeMenu);
290
+ (_c = this._menuList) === null || _c === void 0 ? void 0 : _c.addEventListener('click', this.closeMenu);
318
291
  }
319
292
  if (this.openOnHover) {
320
- (_c = this._trigger) === null || _c === void 0 ? void 0 : _c.addEventListener('mouseover', this.openMenu);
293
+ (_d = this._trigger) === null || _d === void 0 ? void 0 : _d.addEventListener('mouseover', this.openMenu);
321
294
  }
322
295
  else if (this.openOnContext) {
323
- (_d = this._trigger) === null || _d === void 0 ? void 0 : _d.addEventListener('contextmenu', this.openMenu);
296
+ (_e = this._trigger) === null || _e === void 0 ? void 0 : _e.addEventListener('contextmenu', this.openMenu);
297
+ document.addEventListener('click', this.documentClickHandler);
324
298
  }
325
299
  else {
326
- (_e = this._trigger) === null || _e === void 0 ? void 0 : _e.addEventListener('click', this.toggleMenu);
300
+ (_f = this._trigger) === null || _f === void 0 ? void 0 : _f.addEventListener('click', this.toggleMenu);
327
301
  }
328
302
  }
329
303
  /**
330
304
  * Removes event listeners.
331
- * Removes click and keydown event listeners from the trigger and a click event listener from the document.
305
+ * Removes click and keydown event listeners from the trigger.
306
+ * Also removes toggle event listener from the menu list.
332
307
  * Also removes 'mouseover' event listeners from the trigger.
308
+ * Also removes 'contextmenu' event listeners from the trigger and document 'click' event listeners.
333
309
  * @internal
334
310
  */
335
311
  removeListeners() {
336
- var _a, _b, _c, _d, _e;
337
- document.removeEventListener('click', this.handleDocumentClick);
338
- (_a = this._trigger) === null || _a === void 0 ? void 0 : _a.removeEventListener('keydown', this.handleTriggerKeydown);
312
+ var _a, _b, _c, _d, _e, _f;
313
+ (_a = this._menuList) === null || _a === void 0 ? void 0 : _a.removeEventListener('toggle', this.toggleHandler);
314
+ (_b = this._trigger) === null || _b === void 0 ? void 0 : _b.removeEventListener('keydown', this.triggerKeydownHandler);
339
315
  if (!this.persistOnItemClick) {
340
- (_b = this._menuList) === null || _b === void 0 ? void 0 : _b.removeEventListener('click', this.closeMenu);
316
+ (_c = this._menuList) === null || _c === void 0 ? void 0 : _c.removeEventListener('click', this.closeMenu);
341
317
  }
342
318
  if (this.openOnHover) {
343
- (_c = this._trigger) === null || _c === void 0 ? void 0 : _c.removeEventListener('mouseover', this.openMenu);
319
+ (_d = this._trigger) === null || _d === void 0 ? void 0 : _d.removeEventListener('mouseover', this.openMenu);
344
320
  }
345
321
  if (this.openOnContext) {
346
- (_d = this._trigger) === null || _d === void 0 ? void 0 : _d.removeEventListener('contextmenu', this.openMenu);
322
+ (_e = this._trigger) === null || _e === void 0 ? void 0 : _e.removeEventListener('contextmenu', this.openMenu);
323
+ document.removeEventListener('click', this.documentClickHandler);
347
324
  }
348
325
  else {
349
- (_e = this._trigger) === null || _e === void 0 ? void 0 : _e.removeEventListener('click', this.toggleMenu);
326
+ (_f = this._trigger) === null || _f === void 0 ? void 0 : _f.removeEventListener('click', this.toggleMenu);
350
327
  }
351
328
  }
352
329
  /**
@@ -356,7 +333,7 @@ export class Menu extends FASTElement {
356
333
  * @param e - the keyboard event
357
334
  * @public
358
335
  */
359
- handleMenuKeydown(e) {
336
+ menuKeydownHandler(e) {
360
337
  if (e.defaultPrevented) {
361
338
  return;
362
339
  }
@@ -364,18 +341,16 @@ export class Menu extends FASTElement {
364
341
  switch (key) {
365
342
  case keyEscape:
366
343
  e.preventDefault();
367
- if (this.open) {
344
+ if (this._open) {
368
345
  this.closeMenu();
369
346
  this.focusTrigger();
370
347
  }
371
348
  break;
372
349
  case keyTab:
373
- if (this.open) {
350
+ if (this._open)
374
351
  this.closeMenu();
375
- }
376
- if (e.shiftKey) {
352
+ if (e.shiftKey)
377
353
  this.focusTrigger();
378
- }
379
354
  default:
380
355
  return true;
381
356
  }
@@ -397,10 +372,6 @@ __decorate([
397
372
  observable,
398
373
  attr({ attribute: 'persist-on-item-click', mode: 'boolean' })
399
374
  ], Menu.prototype, "persistOnItemClick", void 0);
400
- __decorate([
401
- observable,
402
- attr({ mode: 'boolean' })
403
- ], Menu.prototype, "open", void 0);
404
375
  __decorate([
405
376
  observable
406
377
  ], Menu.prototype, "slottedMenuList", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../../src/menu/menu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../../src/menu/menu.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,31 @@
1
1
  import { css } from '@microsoft/fast-element';
2
+ import { display } from '../utils/index.js';
2
3
  /** Menu styles
3
4
  * @public
4
5
  */
5
6
  export const styles = css `
6
- :host {
7
- position: relative;
8
- z-index: var(--z-index-menu, 1);
7
+ ${display('inline-block')}
8
+
9
+ ::slotted([slot='trigger']) {
10
+ anchor-name: --menu-trigger;
9
11
  }
10
- .positioning-container {
11
- position: fixed;
12
- top: 0;
13
- left: 0;
14
- transform: translate(0, 0);
12
+
13
+ ::slotted([popover]) {
14
+ inset-area: block-end span-inline-end;
15
+ margin: 0;
16
+ max-height: var(--menu-max-height, auto);
17
+ position-anchor: --menu-trigger;
18
+ position-try-options: flip-block;
19
+ position: absolute;
20
+ z-index: 1;
21
+ }
22
+
23
+ ::slotted([popover]:popover-open) {
24
+ inset: unset;
25
+ }
26
+
27
+ ::slotted([popover]:not(:popover-open)) {
28
+ display: none;
15
29
  }
16
30
  `;
17
31
  //# sourceMappingURL=menu.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu.styles.js","sourceRoot":"","sources":["../../../src/menu/menu.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAG9C;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;CAWxB,CAAC"}
1
+ {"version":3,"file":"menu.styles.js","sourceRoot":"","sources":["../../../src/menu/menu.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,OAAO,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;CAuB1B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { elements, html, ref, slotted } from '@microsoft/fast-element';
1
+ import { elements, html, slotted } from '@microsoft/fast-element';
2
2
  export function menuTemplate() {
3
3
  return html `
4
4
  <template
@@ -6,17 +6,10 @@ export function menuTemplate() {
6
6
  ?open-on-context="${x => x.openOnContext}"
7
7
  ?close-on-scroll="${x => x.closeOnScroll}"
8
8
  ?persist-on-item-click="${x => x.persistOnItemClick}"
9
- @keydown="${(x, c) => x.handleMenuKeydown(c.event)}"
9
+ @keydown="${(x, c) => x.menuKeydownHandler(c.event)}"
10
10
  >
11
11
  <slot name="trigger" ${slotted({ property: 'slottedTriggers', filter: elements() })}></slot>
12
- <span
13
- ${ref('positioningContainer')}
14
- part="positioning-container"
15
- class="positioning-container"
16
- ?hidden="${x => !x.open}"
17
- >
18
- <slot ${slotted({ property: 'slottedMenuList', filter: elements() })}></slot>
19
- </span>
12
+ <slot ${slotted({ property: 'slottedMenuList', filter: elements() })}></slot>
20
13
  </template>
21
14
  `;
22
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"menu.template.js","sourceRoot":"","sources":["../../../src/menu/menu.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAuB,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAG5F,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAG;;wBAEQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW;0BAChB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa;0BACpB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa;gCACd,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB;kBACvC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAsB,CAAC;;6BAE5C,OAAO,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;;UAE/E,GAAG,CAAC,sBAAsB,CAAC;;;mBAGlB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;;gBAEf,OAAO,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;;;GAGzE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAA8B,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"menu.template.js","sourceRoot":"","sources":["../../../src/menu/menu.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAuB,IAAI,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGvF,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAG;;wBAEQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW;0BAChB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa;0BACpB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa;gCACd,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB;kBACvC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAsB,CAAC;;6BAE7C,OAAO,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;cAC3E,OAAO,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;;GAEvE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAA8B,YAAY,EAAE,CAAC"}