@vonage/vivid 3.31.0 → 3.32.0
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/alert/index.js +2 -1
- package/checkbox/index.js +2 -1
- package/combobox/index.js +2 -1
- package/custom-elements.json +748 -11
- package/date-picker/index.js +35 -0
- package/dialog/index.js +1 -1
- package/divider/index.js +1 -1
- package/empty-state/index.js +1 -1
- package/fab/index.js +1 -1
- package/file-picker/index.js +3 -2
- package/header/index.js +1 -1
- package/index.d.ts +1 -0
- package/index.js +48 -46
- package/layout/index.js +1 -1
- package/lib/button/button.d.ts +2 -0
- package/lib/components.d.ts +20 -19
- package/lib/date-picker/calendar/calendarGrid.d.ts +17 -0
- package/lib/date-picker/calendar/dateStr.d.ts +6 -0
- package/lib/date-picker/calendar/month.d.ts +11 -0
- package/lib/date-picker/calendar/monthPickerGrid.d.ts +10 -0
- package/lib/date-picker/calendar/presentationDate.d.ts +4 -0
- package/lib/date-picker/date-picker.d.ts +16 -0
- package/lib/date-picker/date-picker.template.d.ts +4 -0
- package/lib/date-picker/definition.d.ts +3 -0
- package/lib/date-picker/index.d.ts +1 -0
- package/lib/date-picker/locale.d.ts +21 -0
- package/lib/select/select.d.ts +4 -2
- package/listbox/index.js +3 -2
- package/locales/en-GB.d.ts +3 -0
- package/locales/en-GB.js +25 -0
- package/locales/en-US.d.ts +3 -0
- package/locales/en-US.js +25 -0
- package/locales/ja-JP.d.ts +3 -0
- package/locales/ja-JP.js +25 -0
- package/locales/zh-CN.d.ts +3 -0
- package/locales/zh-CN.js +25 -0
- package/menu/index.js +2 -2
- package/menu-item/index.js +1 -1
- package/nav/index.js +1 -1
- package/nav-disclosure/index.js +1 -1
- package/nav-item/index.js +1 -1
- package/note/index.js +3 -2
- package/number-field/index.js +4 -3
- package/option/index.js +2 -1
- package/package.json +2 -1
- package/pagination/index.js +1 -1
- package/progress/index.js +1 -1
- package/radio/index.js +1 -1
- package/radio-group/index.js +1 -1
- package/select/index.js +3 -2
- package/shared/definition.js +1 -1
- package/shared/definition10.js +1 -1
- package/shared/definition11.js +1 -1
- package/shared/definition12.js +1 -1
- package/shared/definition14.js +1 -1
- package/shared/definition15.js +1 -1
- package/shared/definition16.js +1 -1
- package/shared/definition17.js +1 -1
- package/shared/definition18.js +2 -2
- package/shared/definition19.js +2 -2
- package/shared/definition2.js +1 -1
- package/shared/definition21.js +3 -3
- package/shared/definition22.js +2 -2
- package/shared/definition23.js +5750 -189
- package/shared/definition24.js +116 -68
- package/shared/definition25.js +68 -38
- package/shared/definition26.js +222 -74
- package/shared/definition27.js +33 -2282
- package/shared/definition28.js +76 -47
- package/shared/definition29.js +2287 -38
- package/shared/definition30.js +39 -417
- package/shared/definition31.js +38 -364
- package/shared/definition32.js +427 -12
- package/shared/definition33.js +350 -59
- package/shared/definition34.js +12 -26
- package/shared/definition35.js +67 -31
- package/shared/definition36.js +20 -431
- package/shared/definition37.js +34 -194
- package/shared/definition38.js +427 -45
- package/shared/definition39.js +195 -33
- package/shared/definition4.js +1 -1
- package/shared/definition40.js +53 -425
- package/shared/definition41.js +29 -645
- package/shared/definition42.js +420 -73
- package/shared/definition43.js +549 -444
- package/shared/definition44.js +68 -90
- package/shared/definition45.js +501 -79
- package/shared/definition46.js +84 -45
- package/shared/definition47.js +131 -17
- package/shared/definition48.js +44 -471
- package/shared/definition49.js +21 -108
- package/shared/definition5.js +1 -1
- package/shared/definition50.js +487 -15
- package/shared/definition51.js +92 -255
- package/shared/definition52.js +16 -115
- package/shared/definition53.js +264 -115
- package/shared/definition54.js +91 -82
- package/shared/definition55.js +111 -65
- package/shared/definition56.js +64 -291
- package/shared/definition57.js +303 -0
- package/shared/definition6.js +2 -2
- package/shared/definition7.js +10 -3
- package/shared/definition9.js +1 -1
- package/shared/{form-elements.js → index2.js} +14 -2
- package/shared/localization/Locale.d.ts +4 -0
- package/shared/localization/index.d.ts +7 -0
- package/shared/patterns/form-elements/form-elements.d.ts +4 -4
- package/shared/patterns/index.d.ts +1 -0
- package/shared/patterns/localized.d.ts +4 -0
- package/shared/text-field.js +1 -1
- package/side-drawer/index.js +1 -1
- package/slider/index.js +1 -1
- package/split-button/index.js +1 -1
- package/styles/core/all.css +25 -3
- package/styles/core/theme.css +1 -1
- package/styles/core/typography.css +25 -3
- package/styles/tokens/theme-dark.css +4 -4
- package/styles/tokens/theme-light.css +4 -4
- package/styles/tokens/vivid-2-compat.css +2 -2
- package/switch/index.js +3 -2
- package/tab/index.js +1 -1
- package/tab-panel/index.js +1 -1
- package/tabs/index.js +3 -3
- package/tag/index.js +1 -1
- package/tag-group/index.js +1 -1
- package/text-area/index.js +3 -2
- package/text-field/index.js +3 -2
- package/toggletip/index.js +1 -1
- package/tooltip/index.js +1 -1
- package/tree-item/index.js +1 -1
- package/tree-view/index.js +1 -1
- package/vivid.api.json +137 -0
package/shared/definition30.js
CHANGED
|
@@ -1,434 +1,56 @@
|
|
|
1
|
-
import { F as FoundationElement,
|
|
2
|
-
import {
|
|
3
|
-
import { M as MenuItem, a as MenuItemRole, r as roleForMenuItem, m as menuItemRegistries } from './definition31.js';
|
|
4
|
-
import { i as isHTMLElement } from './dom.js';
|
|
5
|
-
import { a as keyHome, k as keyEnd, c as keyArrowUp, b as keyArrowDown } from './key-codes.js';
|
|
6
|
-
import { s as slotted } from './slotted.js';
|
|
1
|
+
import { F as FoundationElement, _ as __decorate, a as attr, b as __metadata, h as html, r as registerFactory } from './index.js';
|
|
2
|
+
import { E as Elevation, e as elevationRegistries } from './definition8.js';
|
|
7
3
|
import { c as classNames } from './class-names.js';
|
|
8
4
|
|
|
9
|
-
|
|
10
|
-
* A Menu Custom HTML Element.
|
|
11
|
-
* Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#menu | ARIA menu }.
|
|
12
|
-
*
|
|
13
|
-
* @slot - The default slot for the menu items
|
|
14
|
-
*
|
|
15
|
-
* @public
|
|
16
|
-
*/
|
|
17
|
-
class Menu$1 extends FoundationElement {
|
|
18
|
-
constructor() {
|
|
19
|
-
super(...arguments);
|
|
20
|
-
this.expandedItem = null;
|
|
21
|
-
/**
|
|
22
|
-
* The index of the focusable element in the items array
|
|
23
|
-
* defaults to -1
|
|
24
|
-
*/
|
|
25
|
-
this.focusIndex = -1;
|
|
26
|
-
/**
|
|
27
|
-
* @internal
|
|
28
|
-
*/
|
|
29
|
-
this.isNestedMenu = () => {
|
|
30
|
-
return (this.parentElement !== null &&
|
|
31
|
-
isHTMLElement(this.parentElement) &&
|
|
32
|
-
this.parentElement.getAttribute("role") === "menuitem");
|
|
33
|
-
};
|
|
34
|
-
/**
|
|
35
|
-
* if focus is moving out of the menu, reset to a stable initial state
|
|
36
|
-
* @internal
|
|
37
|
-
*/
|
|
38
|
-
this.handleFocusOut = (e) => {
|
|
39
|
-
if (!this.contains(e.relatedTarget) && this.menuItems !== undefined) {
|
|
40
|
-
this.collapseExpandedItem();
|
|
41
|
-
// find our first focusable element
|
|
42
|
-
const focusIndex = this.menuItems.findIndex(this.isFocusableElement);
|
|
43
|
-
// set the current focus index's tabindex to -1
|
|
44
|
-
this.menuItems[this.focusIndex].setAttribute("tabindex", "-1");
|
|
45
|
-
// set the first focusable element tabindex to 0
|
|
46
|
-
this.menuItems[focusIndex].setAttribute("tabindex", "0");
|
|
47
|
-
// set the focus index
|
|
48
|
-
this.focusIndex = focusIndex;
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
this.handleItemFocus = (e) => {
|
|
52
|
-
const targetItem = e.target;
|
|
53
|
-
if (this.menuItems !== undefined &&
|
|
54
|
-
targetItem !== this.menuItems[this.focusIndex]) {
|
|
55
|
-
this.menuItems[this.focusIndex].setAttribute("tabindex", "-1");
|
|
56
|
-
this.focusIndex = this.menuItems.indexOf(targetItem);
|
|
57
|
-
targetItem.setAttribute("tabindex", "0");
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
this.handleExpandedChanged = (e) => {
|
|
61
|
-
if (e.defaultPrevented ||
|
|
62
|
-
e.target === null ||
|
|
63
|
-
this.menuItems === undefined ||
|
|
64
|
-
this.menuItems.indexOf(e.target) < 0) {
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
e.preventDefault();
|
|
68
|
-
const changedItem = e.target;
|
|
69
|
-
// closing an expanded item without opening another
|
|
70
|
-
if (this.expandedItem !== null &&
|
|
71
|
-
changedItem === this.expandedItem &&
|
|
72
|
-
changedItem.expanded === false) {
|
|
73
|
-
this.expandedItem = null;
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
if (changedItem.expanded) {
|
|
77
|
-
if (this.expandedItem !== null && this.expandedItem !== changedItem) {
|
|
78
|
-
this.expandedItem.expanded = false;
|
|
79
|
-
}
|
|
80
|
-
this.menuItems[this.focusIndex].setAttribute("tabindex", "-1");
|
|
81
|
-
this.expandedItem = changedItem;
|
|
82
|
-
this.focusIndex = this.menuItems.indexOf(changedItem);
|
|
83
|
-
changedItem.setAttribute("tabindex", "0");
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
this.removeItemListeners = () => {
|
|
87
|
-
if (this.menuItems !== undefined) {
|
|
88
|
-
this.menuItems.forEach((item) => {
|
|
89
|
-
item.removeEventListener("expanded-change", this.handleExpandedChanged);
|
|
90
|
-
item.removeEventListener("focus", this.handleItemFocus);
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
this.setItems = () => {
|
|
95
|
-
const newItems = this.domChildren();
|
|
96
|
-
this.removeItemListeners();
|
|
97
|
-
this.menuItems = newItems;
|
|
98
|
-
const menuItems = this.menuItems.filter(this.isMenuItemElement);
|
|
99
|
-
// if our focus index is not -1 we have items
|
|
100
|
-
if (menuItems.length) {
|
|
101
|
-
this.focusIndex = 0;
|
|
102
|
-
}
|
|
103
|
-
function elementIndent(el) {
|
|
104
|
-
const role = el.getAttribute("role");
|
|
105
|
-
const startSlot = el.querySelector("[slot=start]");
|
|
106
|
-
if (role !== MenuItemRole.menuitem && startSlot === null) {
|
|
107
|
-
return 1;
|
|
108
|
-
}
|
|
109
|
-
else if (role === MenuItemRole.menuitem && startSlot !== null) {
|
|
110
|
-
return 1;
|
|
111
|
-
}
|
|
112
|
-
else if (role !== MenuItemRole.menuitem && startSlot !== null) {
|
|
113
|
-
return 2;
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
return 0;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
const indent = menuItems.reduce((accum, current) => {
|
|
120
|
-
const elementValue = elementIndent(current);
|
|
121
|
-
return accum > elementValue ? accum : elementValue;
|
|
122
|
-
}, 0);
|
|
123
|
-
menuItems.forEach((item, index) => {
|
|
124
|
-
item.setAttribute("tabindex", index === 0 ? "0" : "-1");
|
|
125
|
-
item.addEventListener("expanded-change", this.handleExpandedChanged);
|
|
126
|
-
item.addEventListener("focus", this.handleItemFocus);
|
|
127
|
-
if (item instanceof MenuItem) {
|
|
128
|
-
item.startColumnCount = indent;
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
};
|
|
132
|
-
/**
|
|
133
|
-
* handle change from child element
|
|
134
|
-
*/
|
|
135
|
-
this.changeHandler = (e) => {
|
|
136
|
-
if (this.menuItems === undefined) {
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
const changedMenuItem = e.target;
|
|
140
|
-
const changeItemIndex = this.menuItems.indexOf(changedMenuItem);
|
|
141
|
-
if (changeItemIndex === -1) {
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
if (changedMenuItem.role === "menuitemradio" &&
|
|
145
|
-
changedMenuItem.checked === true) {
|
|
146
|
-
for (let i = changeItemIndex - 1; i >= 0; --i) {
|
|
147
|
-
const item = this.menuItems[i];
|
|
148
|
-
const role = item.getAttribute("role");
|
|
149
|
-
if (role === MenuItemRole.menuitemradio) {
|
|
150
|
-
item.checked = false;
|
|
151
|
-
}
|
|
152
|
-
if (role === "separator") {
|
|
153
|
-
break;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
const maxIndex = this.menuItems.length - 1;
|
|
157
|
-
for (let i = changeItemIndex + 1; i <= maxIndex; ++i) {
|
|
158
|
-
const item = this.menuItems[i];
|
|
159
|
-
const role = item.getAttribute("role");
|
|
160
|
-
if (role === MenuItemRole.menuitemradio) {
|
|
161
|
-
item.checked = false;
|
|
162
|
-
}
|
|
163
|
-
if (role === "separator") {
|
|
164
|
-
break;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
};
|
|
169
|
-
/**
|
|
170
|
-
* check if the item is a menu item
|
|
171
|
-
*/
|
|
172
|
-
this.isMenuItemElement = (el) => {
|
|
173
|
-
return (isHTMLElement(el) &&
|
|
174
|
-
Menu$1.focusableElementRoles.hasOwnProperty(el.getAttribute("role")));
|
|
175
|
-
};
|
|
176
|
-
/**
|
|
177
|
-
* check if the item is focusable
|
|
178
|
-
*/
|
|
179
|
-
this.isFocusableElement = (el) => {
|
|
180
|
-
return this.isMenuItemElement(el);
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
itemsChanged(oldValue, newValue) {
|
|
184
|
-
// only update children after the component is connected and
|
|
185
|
-
// the setItems has run on connectedCallback
|
|
186
|
-
// (menuItems is undefined until then)
|
|
187
|
-
if (this.$fastController.isConnected && this.menuItems !== undefined) {
|
|
188
|
-
this.setItems();
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* @internal
|
|
193
|
-
*/
|
|
194
|
-
connectedCallback() {
|
|
195
|
-
super.connectedCallback();
|
|
196
|
-
DOM.queueUpdate(() => {
|
|
197
|
-
// wait until children have had a chance to
|
|
198
|
-
// connect before setting/checking their props/attributes
|
|
199
|
-
this.setItems();
|
|
200
|
-
});
|
|
201
|
-
this.addEventListener("change", this.changeHandler);
|
|
202
|
-
}
|
|
203
|
-
/**
|
|
204
|
-
* @internal
|
|
205
|
-
*/
|
|
206
|
-
disconnectedCallback() {
|
|
207
|
-
super.disconnectedCallback();
|
|
208
|
-
this.removeItemListeners();
|
|
209
|
-
this.menuItems = undefined;
|
|
210
|
-
this.removeEventListener("change", this.changeHandler);
|
|
211
|
-
}
|
|
212
|
-
/**
|
|
213
|
-
* Focuses the first item in the menu.
|
|
214
|
-
*
|
|
215
|
-
* @public
|
|
216
|
-
*/
|
|
217
|
-
focus() {
|
|
218
|
-
this.setFocus(0, 1);
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* Collapses any expanded menu items.
|
|
222
|
-
*
|
|
223
|
-
* @public
|
|
224
|
-
*/
|
|
225
|
-
collapseExpandedItem() {
|
|
226
|
-
if (this.expandedItem !== null) {
|
|
227
|
-
this.expandedItem.expanded = false;
|
|
228
|
-
this.expandedItem = null;
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
/**
|
|
232
|
-
* @internal
|
|
233
|
-
*/
|
|
234
|
-
handleMenuKeyDown(e) {
|
|
235
|
-
if (e.defaultPrevented || this.menuItems === undefined) {
|
|
236
|
-
return;
|
|
237
|
-
}
|
|
238
|
-
switch (e.key) {
|
|
239
|
-
case keyArrowDown:
|
|
240
|
-
// go forward one index
|
|
241
|
-
this.setFocus(this.focusIndex + 1, 1);
|
|
242
|
-
return;
|
|
243
|
-
case keyArrowUp:
|
|
244
|
-
// go back one index
|
|
245
|
-
this.setFocus(this.focusIndex - 1, -1);
|
|
246
|
-
return;
|
|
247
|
-
case keyEnd:
|
|
248
|
-
// set focus on last item
|
|
249
|
-
this.setFocus(this.menuItems.length - 1, -1);
|
|
250
|
-
return;
|
|
251
|
-
case keyHome:
|
|
252
|
-
// set focus on first item
|
|
253
|
-
this.setFocus(0, 1);
|
|
254
|
-
return;
|
|
255
|
-
default:
|
|
256
|
-
// if we are not handling the event, do not prevent default
|
|
257
|
-
return true;
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
/**
|
|
261
|
-
* get an array of valid DOM children
|
|
262
|
-
*/
|
|
263
|
-
domChildren() {
|
|
264
|
-
return Array.from(this.children).filter(child => !child.hasAttribute("hidden"));
|
|
265
|
-
}
|
|
266
|
-
setFocus(focusIndex, adjustment) {
|
|
267
|
-
if (this.menuItems === undefined) {
|
|
268
|
-
return;
|
|
269
|
-
}
|
|
270
|
-
while (focusIndex >= 0 && focusIndex < this.menuItems.length) {
|
|
271
|
-
const child = this.menuItems[focusIndex];
|
|
272
|
-
if (this.isFocusableElement(child)) {
|
|
273
|
-
// change the previous index to -1
|
|
274
|
-
if (this.focusIndex > -1 &&
|
|
275
|
-
this.menuItems.length >= this.focusIndex - 1) {
|
|
276
|
-
this.menuItems[this.focusIndex].setAttribute("tabindex", "-1");
|
|
277
|
-
}
|
|
278
|
-
// update the focus index
|
|
279
|
-
this.focusIndex = focusIndex;
|
|
280
|
-
// update the tabindex of next focusable element
|
|
281
|
-
child.setAttribute("tabindex", "0");
|
|
282
|
-
// focus the element
|
|
283
|
-
child.focus();
|
|
284
|
-
break;
|
|
285
|
-
}
|
|
286
|
-
focusIndex += adjustment;
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
Menu$1.focusableElementRoles = roleForMenuItem;
|
|
291
|
-
__decorate([
|
|
292
|
-
observable
|
|
293
|
-
], Menu$1.prototype, "items", void 0);
|
|
294
|
-
|
|
295
|
-
var css_248z = "/**\n * Do not edit directly\n * Generated on Thu, 17 Aug 2023 11:13:18 GMT\n */\n.base {\n display: flex;\n box-sizing: border-box;\n flex-direction: column;\n gap: 8px;\n max-block-size: var(--menu-block-size, 408px);\n max-inline-size: var(--menu-max-inline-size, 100%);\n min-inline-size: var(--menu-min-inline-size);\n overflow-x: hidden;\n overflow-y: auto;\n padding-block: 8px;\n}\n\n::slotted(a) {\n color: var(--vvd-color-canvas-text);\n text-decoration: none;\n}\n\n::slotted(a[role=menuitem]:focus) {\n display: block;\n border-radius: 6px;\n box-shadow: inset 0 0 0 3px currentColor;\n outline: 2px solid currentColor;\n outline-offset: -2px;\n}\n\n.header {\n padding-block-start: 8px;\n padding-inline: 16px;\n}\n.hide-header .header {\n display: none;\n}\n\n.action-items {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n padding-inline: 8px;\n}\n.hide-actions .action-items {\n display: none;\n}";
|
|
5
|
+
var css_248z = "/**\n * Do not edit directly\n * Generated on Tue, 22 Aug 2023 13:37:39 GMT\n */\n.base {\n z-index: 1;\n block-size: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) + calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)));\n font: var(--vvd-typography-heading-4);\n inline-size: 100%;\n}\n.base .header-content {\n display: inline-flex;\n align-items: center;\n column-gap: 4px;\n}\n\n.container {\n display: flex;\n box-sizing: border-box;\n justify-content: space-between;\n background-color: var(--header-bg-color, var(--vvd-color-canvas));\n block-size: inherit;\n color: var(--vvd-color-canvas-text);\n column-gap: 12px;\n padding-block: 8px;\n padding-inline: 16px;\n}\n.container[part~=vvd-theme-alternate] {\n color-scheme: var(--vvd-color-scheme);\n}\n\n.app-content {\n --vvd-header-block-size: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) + calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)));\n}";
|
|
296
6
|
|
|
297
|
-
|
|
298
|
-
class Menu extends Menu$1 {
|
|
7
|
+
class Header extends FoundationElement {
|
|
299
8
|
constructor() {
|
|
300
9
|
super(...arguments);
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
_Menu_anchorEl.set(this, null);
|
|
304
|
-
_Menu_observeMissingAnchor.set(this, anchorId => {
|
|
305
|
-
__classPrivateFieldSet(this, _Menu_observer, new MutationObserver(() => {
|
|
306
|
-
const anchor = document.getElementById(anchorId);
|
|
307
|
-
if (anchor) {
|
|
308
|
-
__classPrivateFieldSet(this, _Menu_anchorEl, anchor, "f");
|
|
309
|
-
__classPrivateFieldGet(this, _Menu_instances, "m", _Menu_setupAnchor).call(this, __classPrivateFieldGet(this, _Menu_anchorEl, "f"));
|
|
310
|
-
__classPrivateFieldGet(this, _Menu_observer, "f").disconnect();
|
|
311
|
-
__classPrivateFieldSet(this, _Menu_observer, undefined, "f");
|
|
312
|
-
}
|
|
313
|
-
}), "f");
|
|
314
|
-
__classPrivateFieldGet(this, _Menu_observer, "f").observe(document.body, {
|
|
315
|
-
childList: true,
|
|
316
|
-
subtree: true
|
|
317
|
-
});
|
|
318
|
-
});
|
|
319
|
-
this.placement = 'bottom';
|
|
320
|
-
this.anchor = '';
|
|
321
|
-
this.autoDismiss = false;
|
|
322
|
-
this.open = false;
|
|
323
|
-
_Menu_openIfClosed.set(this, () => {
|
|
324
|
-
if (!this.open) DOM.queueUpdate(() => this.open = true);
|
|
325
|
-
});
|
|
326
|
-
_Menu_closeOnClickOutside.set(this, e => {
|
|
327
|
-
if (!this.contains(e.target)) this.open = false;
|
|
328
|
-
});
|
|
329
|
-
}
|
|
330
|
-
anchorChanged(_, newValue) {
|
|
331
|
-
var _a;
|
|
332
|
-
if (__classPrivateFieldGet(this, _Menu_anchorEl, "f")) __classPrivateFieldGet(this, _Menu_instances, "m", _Menu_cleanupAnchor).call(this, __classPrivateFieldGet(this, _Menu_anchorEl, "f"));
|
|
333
|
-
(_a = __classPrivateFieldGet(this, _Menu_observer, "f")) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
334
|
-
__classPrivateFieldSet(this, _Menu_anchorEl, newValue instanceof HTMLElement ? newValue : document.getElementById(newValue), "f");
|
|
335
|
-
if (__classPrivateFieldGet(this, _Menu_anchorEl, "f")) {
|
|
336
|
-
__classPrivateFieldGet(this, _Menu_instances, "m", _Menu_setupAnchor).call(this, __classPrivateFieldGet(this, _Menu_anchorEl, "f"));
|
|
337
|
-
} else {
|
|
338
|
-
__classPrivateFieldGet(this, _Menu_observeMissingAnchor, "f").call(this, newValue);
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
autoDismissChanged(oldValue, newValue) {
|
|
342
|
-
if (oldValue === undefined) return;
|
|
343
|
-
if (newValue) {
|
|
344
|
-
document.addEventListener('click', __classPrivateFieldGet(this, _Menu_closeOnClickOutside, "f"));
|
|
345
|
-
} else {
|
|
346
|
-
document.removeEventListener('click', __classPrivateFieldGet(this, _Menu_closeOnClickOutside, "f"));
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
openChanged(_, newValue) {
|
|
350
|
-
newValue ? this.$emit('open', undefined, {
|
|
351
|
-
bubbles: false
|
|
352
|
-
}) : this.$emit('close', undefined, {
|
|
353
|
-
bubbles: false
|
|
354
|
-
});
|
|
355
|
-
if (__classPrivateFieldGet(this, _Menu_anchorEl, "f")) {
|
|
356
|
-
__classPrivateFieldGet(this, _Menu_anchorEl, "f").ariaExpanded = this.open.toString();
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
disconnectedCallback() {
|
|
360
|
-
var _a;
|
|
361
|
-
super.disconnectedCallback();
|
|
362
|
-
if (__classPrivateFieldGet(this, _Menu_anchorEl, "f")) __classPrivateFieldGet(this, _Menu_instances, "m", _Menu_cleanupAnchor).call(this, __classPrivateFieldGet(this, _Menu_anchorEl, "f"));
|
|
363
|
-
(_a = __classPrivateFieldGet(this, _Menu_observer, "f")) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
364
|
-
document.removeEventListener('click', __classPrivateFieldGet(this, _Menu_closeOnClickOutside, "f"));
|
|
10
|
+
this.elevationShadow = false;
|
|
11
|
+
this.alternate = false;
|
|
365
12
|
}
|
|
366
13
|
}
|
|
367
|
-
_Menu_observer = new WeakMap(), _Menu_anchorEl = new WeakMap(), _Menu_observeMissingAnchor = new WeakMap(), _Menu_openIfClosed = new WeakMap(), _Menu_closeOnClickOutside = new WeakMap(), _Menu_instances = new WeakSet(), _Menu_setupAnchor = function _Menu_setupAnchor(a) {
|
|
368
|
-
a.addEventListener('click', __classPrivateFieldGet(this, _Menu_openIfClosed, "f"), true);
|
|
369
|
-
a.setAttribute('aria-haspopup', 'menu');
|
|
370
|
-
}, _Menu_cleanupAnchor = function _Menu_cleanupAnchor(a) {
|
|
371
|
-
a.removeEventListener('click', __classPrivateFieldGet(this, _Menu_openIfClosed, "f"), true);
|
|
372
|
-
a.removeAttribute('aria-hasPopup');
|
|
373
|
-
};
|
|
374
|
-
__decorate([attr({
|
|
375
|
-
mode: 'fromView'
|
|
376
|
-
}), __metadata("design:type", String)], Menu.prototype, "placement", void 0);
|
|
377
|
-
__decorate([attr({
|
|
378
|
-
mode: 'fromView'
|
|
379
|
-
}), __metadata("design:type", Object)], Menu.prototype, "anchor", void 0);
|
|
380
14
|
__decorate([attr({
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
}), __metadata("design:type", Object)],
|
|
15
|
+
attribute: 'elevation-shadow',
|
|
16
|
+
mode: 'boolean'
|
|
17
|
+
}), __metadata("design:type", Object)], Header.prototype, "elevationShadow", void 0);
|
|
384
18
|
__decorate([attr({
|
|
385
19
|
mode: 'boolean'
|
|
386
|
-
}), __metadata("design:type", Object)],
|
|
387
|
-
__decorate([observable, __metadata("design:type", Array)], Menu.prototype, "headerSlottedContent", void 0);
|
|
388
|
-
__decorate([observable, __metadata("design:type", Array)], Menu.prototype, "actionItemsSlottedContent", void 0);
|
|
20
|
+
}), __metadata("design:type", Object)], Header.prototype, "alternate", void 0);
|
|
389
21
|
|
|
390
|
-
const
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
const
|
|
395
|
-
const popupTag = context.tagFor(Popup);
|
|
396
|
-
function handlePopupEvents(x, state) {
|
|
397
|
-
x.open = state;
|
|
398
|
-
}
|
|
22
|
+
const getPartAlternate = ({
|
|
23
|
+
alternate
|
|
24
|
+
}) => classNames(['vvd-theme-alternate', Boolean(alternate)]);
|
|
25
|
+
const headerTemplate = context => {
|
|
26
|
+
const elevationTag = context.tagFor(Elevation);
|
|
399
27
|
return html`
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
<slot ${slotted('items')}></slot>
|
|
419
|
-
</div>
|
|
420
|
-
<footer class="action-items"><slot name="action-items" ${slotted('actionItemsSlottedContent')}></slot></footer>
|
|
421
|
-
</div>
|
|
422
|
-
</${popupTag}>
|
|
423
|
-
</template>`;
|
|
28
|
+
<${elevationTag} dp="4" ?no-shadow=${x => !x.elevationShadow}>
|
|
29
|
+
<header class="base" part="base">
|
|
30
|
+
<!-- a container is needed to distinguish the surface background color of the
|
|
31
|
+
element from its shadow when applying elevation with alternate -->
|
|
32
|
+
<div class="container" part="${getPartAlternate}">
|
|
33
|
+
<section class="header-content">
|
|
34
|
+
<slot></slot>
|
|
35
|
+
</section>
|
|
36
|
+
<section class="header-content">
|
|
37
|
+
<slot name="action-items"></slot>
|
|
38
|
+
</section>
|
|
39
|
+
</div>
|
|
40
|
+
</header>
|
|
41
|
+
</${elevationTag}>
|
|
42
|
+
<div class="app-content">
|
|
43
|
+
<slot name="app-content"></slot>
|
|
44
|
+
</div>
|
|
45
|
+
`;
|
|
424
46
|
};
|
|
425
47
|
|
|
426
|
-
const
|
|
427
|
-
baseName: '
|
|
428
|
-
template:
|
|
48
|
+
const headerDefinition = Header.compose({
|
|
49
|
+
baseName: 'header',
|
|
50
|
+
template: headerTemplate,
|
|
429
51
|
styles: css_248z
|
|
430
52
|
});
|
|
431
|
-
const
|
|
432
|
-
const
|
|
53
|
+
const headerRegistries = [headerDefinition(), ...elevationRegistries];
|
|
54
|
+
const registerHeader = registerFactory(headerRegistries);
|
|
433
55
|
|
|
434
|
-
export {
|
|
56
|
+
export { headerRegistries as a, headerDefinition as h, registerHeader as r };
|