@m3e/web 2.0.5 → 2.1.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/dist/all.js +773 -473
- package/dist/all.js.map +1 -1
- package/dist/all.min.js +52 -58
- package/dist/all.min.js.map +1 -1
- package/dist/autocomplete.js +342 -69
- package/dist/autocomplete.js.map +1 -1
- package/dist/autocomplete.min.js +1 -1
- package/dist/autocomplete.min.js.map +1 -1
- package/dist/chips.js +18 -4
- package/dist/chips.js.map +1 -1
- package/dist/chips.min.js +1 -1
- package/dist/chips.min.js.map +1 -1
- package/dist/core-a11y.js +3 -118
- package/dist/core-a11y.js.map +1 -1
- package/dist/core-a11y.min.js +13 -4
- package/dist/core-a11y.min.js.map +1 -1
- package/dist/core-anchoring.js +193 -1
- package/dist/core-anchoring.js.map +1 -1
- package/dist/core-anchoring.min.js +1 -1
- package/dist/core-anchoring.min.js.map +1 -1
- package/dist/core.js +119 -91
- package/dist/core.js.map +1 -1
- package/dist/core.min.js +1 -1
- package/dist/core.min.js.map +1 -1
- package/dist/css-custom-data.json +406 -326
- package/dist/custom-elements.json +4321 -3297
- package/dist/html-custom-data.json +169 -94
- package/dist/loading-indicator.js +1 -0
- package/dist/loading-indicator.js.map +1 -1
- package/dist/loading-indicator.min.js +1 -1
- package/dist/loading-indicator.min.js.map +1 -1
- package/dist/menu.js +1 -1
- package/dist/menu.js.map +1 -1
- package/dist/menu.min.js +1 -1
- package/dist/menu.min.js.map +1 -1
- package/dist/option.js +94 -121
- package/dist/option.js.map +1 -1
- package/dist/option.min.js +1 -1
- package/dist/option.min.js.map +1 -1
- package/dist/progress-indicator.js +2 -0
- package/dist/progress-indicator.js.map +1 -1
- package/dist/progress-indicator.min.js +2 -2
- package/dist/progress-indicator.min.js.map +1 -1
- package/dist/select.js +59 -23
- package/dist/select.js.map +1 -1
- package/dist/select.min.js +1 -1
- package/dist/select.min.js.map +1 -1
- package/dist/src/autocomplete/AutocompleteElement.d.ts +71 -2
- package/dist/src/autocomplete/AutocompleteElement.d.ts.map +1 -1
- package/dist/src/autocomplete/AutocompleteFilterMode.d.ts +3 -0
- package/dist/src/autocomplete/AutocompleteFilterMode.d.ts.map +1 -0
- package/dist/src/autocomplete/QueryEventDetail.d.ts +12 -0
- package/dist/src/autocomplete/QueryEventDetail.d.ts.map +1 -0
- package/dist/src/autocomplete/index.d.ts +2 -0
- package/dist/src/autocomplete/index.d.ts.map +1 -1
- package/dist/src/chips/ChipElement.d.ts +2 -0
- package/dist/src/chips/ChipElement.d.ts.map +1 -1
- package/dist/src/chips/InputChipSetChangeEventDetail.d.ts +13 -0
- package/dist/src/chips/InputChipSetChangeEventDetail.d.ts.map +1 -0
- package/dist/src/chips/InputChipSetElement.d.ts +10 -0
- package/dist/src/chips/InputChipSetElement.d.ts.map +1 -1
- package/dist/src/chips/index.d.ts +1 -0
- package/dist/src/chips/index.d.ts.map +1 -1
- package/dist/src/core/a11y/FocusTrapElement.d.ts +1 -1
- package/dist/src/core/a11y/list-key/ListKeyManager.d.ts.map +1 -1
- package/dist/src/core/a11y/list-key/RadioKeyManager.d.ts +1 -2
- package/dist/src/core/a11y/list-key/RadioKeyManager.d.ts.map +1 -1
- package/dist/src/core/a11y/list-key/SelectionManager.d.ts +1 -2
- package/dist/src/core/a11y/list-key/SelectionManager.d.ts.map +1 -1
- package/dist/src/core/a11y/list-key/Typeahead.d.ts.map +1 -1
- package/dist/src/core/anchoring/FloatingPanelElement.d.ts +74 -0
- package/dist/src/core/anchoring/FloatingPanelElement.d.ts.map +1 -0
- package/dist/src/core/anchoring/index.d.ts +1 -0
- package/dist/src/core/anchoring/index.d.ts.map +1 -1
- package/dist/src/core/shared/controllers/MutationController.d.ts.map +1 -1
- package/dist/src/core/shared/controllers/ResizeController.d.ts.map +1 -1
- package/dist/src/core/shared/mixins/AttachInternals.d.ts.map +1 -1
- package/dist/src/core/shared/primitives/TextHighlightElement.d.ts +9 -2
- package/dist/src/core/shared/primitives/TextHighlightElement.d.ts.map +1 -1
- package/dist/src/core/shared/primitives/TextHighlightMode.d.ts +3 -0
- package/dist/src/core/shared/primitives/TextHighlightMode.d.ts.map +1 -0
- package/dist/src/core/shared/primitives/index.d.ts +2 -1
- package/dist/src/core/shared/primitives/index.d.ts.map +1 -1
- package/dist/src/loading-indicator/LoadingIndicatorElement.d.ts.map +1 -1
- package/dist/src/menu/MenuItemElementBase.d.ts.map +1 -1
- package/dist/src/option/OptionElement.d.ts +21 -1
- package/dist/src/option/OptionElement.d.ts.map +1 -1
- package/dist/src/option/OptionPanelElement.d.ts +11 -34
- package/dist/src/option/OptionPanelElement.d.ts.map +1 -1
- package/dist/src/option/OptionPanelState.d.ts +3 -0
- package/dist/src/option/OptionPanelState.d.ts.map +1 -0
- package/dist/src/option/index.d.ts +1 -0
- package/dist/src/option/index.d.ts.map +1 -1
- package/dist/src/progress-indicator/CircularProgressIndicatorElement.d.ts.map +1 -1
- package/dist/src/progress-indicator/LinearProgressIndicatorElement.d.ts.map +1 -1
- package/dist/src/select/SelectElement.d.ts +3 -2
- package/dist/src/select/SelectElement.d.ts.map +1 -1
- package/dist/src/toc/TocElement.d.ts.map +1 -1
- package/dist/toc.js +0 -1
- package/dist/toc.js.map +1 -1
- package/dist/toc.min.js +1 -1
- package/dist/toc.min.js.map +1 -1
- package/package.json +1 -1
- package/dist/datepicker.js +0 -2346
- package/dist/datepicker.js.map +0 -1
- package/dist/datepicker.min.js +0 -102
- package/dist/datepicker.min.js.map +0 -1
- package/dist/src/core/shared/decorators/component.d.ts +0 -19
- package/dist/src/core/shared/decorators/component.d.ts.map +0 -1
- package/dist/src/core/shared/decorators/element.d.ts +0 -19
- package/dist/src/core/shared/decorators/element.d.ts.map +0 -1
- package/dist/src/core/shared/utils/getState.d.ts +0 -15
- package/dist/src/core/shared/utils/getState.d.ts.map +0 -1
- package/dist/src/datepicker/CalendarElement.d.ts +0 -203
- package/dist/src/datepicker/CalendarElement.d.ts.map +0 -1
- package/dist/src/datepicker/CalendarView.d.ts +0 -3
- package/dist/src/datepicker/CalendarView.d.ts.map +0 -1
- package/dist/src/datepicker/CalendarViewElementBase.d.ts +0 -28
- package/dist/src/datepicker/CalendarViewElementBase.d.ts.map +0 -1
- package/dist/src/datepicker/DateAdapter.d.ts +0 -4
- package/dist/src/datepicker/DateAdapter.d.ts.map +0 -1
- package/dist/src/datepicker/DatepickerElement.d.ts +0 -180
- package/dist/src/datepicker/DatepickerElement.d.ts.map +0 -1
- package/dist/src/datepicker/DatepickerToggleElement.d.ts +0 -21
- package/dist/src/datepicker/DatepickerToggleElement.d.ts.map +0 -1
- package/dist/src/datepicker/DatepickerVariant.d.ts +0 -3
- package/dist/src/datepicker/DatepickerVariant.d.ts.map +0 -1
- package/dist/src/datepicker/MonthViewElement.d.ts +0 -35
- package/dist/src/datepicker/MonthViewElement.d.ts.map +0 -1
- package/dist/src/datepicker/MultiYearViewElement.d.ts +0 -27
- package/dist/src/datepicker/MultiYearViewElement.d.ts.map +0 -1
- package/dist/src/datepicker/YearViewElement.d.ts +0 -27
- package/dist/src/datepicker/YearViewElement.d.ts.map +0 -1
- package/dist/src/datepicker/index.d.ts +0 -10
- package/dist/src/datepicker/index.d.ts.map +0 -1
- package/dist/src/datepicker/utils.d.ts +0 -26
- package/dist/src/datepicker/utils.d.ts.map +0 -1
package/dist/option.js
CHANGED
|
@@ -5,10 +5,9 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { LitElement, html, unsafeCSS, css } from 'lit';
|
|
7
7
|
import { query, property } from 'lit/decorators.js';
|
|
8
|
-
import { Selected, Disabled, AttachInternals, Role, DesignToken, customElement, getTextContent, setCustomState, ScrollController,
|
|
8
|
+
import { Selected, Disabled, AttachInternals, Role, DesignToken, customElement, getTextContent, setCustomState, ScrollController, MutationController, hasAssignedNodes, deleteCustomState, addCustomState } from '@m3e/web/core';
|
|
9
9
|
import { typeaheadLabel, removeAriaReferencedId, addAriaReferencedId } from '@m3e/web/core/a11y';
|
|
10
|
-
import {
|
|
11
|
-
import { M3eDirectionality } from '@m3e/web/core/bidi';
|
|
10
|
+
import { M3eFloatingPanelElement } from '@m3e/web/core/anchoring';
|
|
12
11
|
|
|
13
12
|
/******************************************************************************
|
|
14
13
|
Copyright (c) Microsoft Corporation.
|
|
@@ -65,7 +64,10 @@ var _M3eOptionElement_instances, _M3eOptionElement_value, _M3eOptionElement_text
|
|
|
65
64
|
* @slot - Renders the label of the option.
|
|
66
65
|
*
|
|
67
66
|
* @attr disabled - Whether the element is disabled.
|
|
67
|
+
* @attr disable-highlight - Whether text highlighting is disabled.
|
|
68
|
+
* @attr highlight-mode - The mode in which to highlight a term.
|
|
68
69
|
* @attr selected - Whether the element is selected.
|
|
70
|
+
* @attr term - The search term to highlight.
|
|
69
71
|
* @attr value - A string representing the value of the option.
|
|
70
72
|
*
|
|
71
73
|
* @cssprop --m3e-option-container-height - The height of the option container.
|
|
@@ -102,6 +104,21 @@ let M3eOptionElement = class M3eOptionElement extends Selected(Disabled(AttachIn
|
|
|
102
104
|
_M3eOptionElement_value.set(this, void 0);
|
|
103
105
|
/** @private */
|
|
104
106
|
_M3eOptionElement_textContent.set(this, "");
|
|
107
|
+
/**
|
|
108
|
+
* The search term to highlight.
|
|
109
|
+
* @default ""
|
|
110
|
+
*/
|
|
111
|
+
this.term = "";
|
|
112
|
+
/**
|
|
113
|
+
* The mode in which to highlight a term.
|
|
114
|
+
* @default "contains"
|
|
115
|
+
*/
|
|
116
|
+
this.highlightMode = "contains";
|
|
117
|
+
/**
|
|
118
|
+
* Whether text highlighting is disabled.
|
|
119
|
+
* @default false
|
|
120
|
+
*/
|
|
121
|
+
this.disableHighlight = false;
|
|
105
122
|
}
|
|
106
123
|
/** A string representing the value of the option. */
|
|
107
124
|
get value() {
|
|
@@ -110,9 +127,13 @@ let M3eOptionElement = class M3eOptionElement extends Selected(Disabled(AttachIn
|
|
|
110
127
|
set value(value) {
|
|
111
128
|
__classPrivateFieldSet(this, _M3eOptionElement_value, value, "f");
|
|
112
129
|
}
|
|
130
|
+
/** The textual label of the option. */
|
|
131
|
+
get label() {
|
|
132
|
+
return __classPrivateFieldGet(this, _M3eOptionElement_textContent, "f");
|
|
133
|
+
}
|
|
113
134
|
/** @internal */
|
|
114
135
|
[(_M3eOptionElement_value = new WeakMap(), _M3eOptionElement_textContent = new WeakMap(), _M3eOptionElement_instances = new WeakSet(), typeaheadLabel)]() {
|
|
115
|
-
return
|
|
136
|
+
return this.label;
|
|
116
137
|
}
|
|
117
138
|
/** Whether the option represents an empty option. */
|
|
118
139
|
get isEmpty() {
|
|
@@ -132,7 +153,7 @@ let M3eOptionElement = class M3eOptionElement extends Selected(Disabled(AttachIn
|
|
|
132
153
|
update(changedProperties) {
|
|
133
154
|
super.update(changedProperties);
|
|
134
155
|
if (changedProperties.has("selected") && this.selected) {
|
|
135
|
-
const panel = this.closest("[role='listbox']") ?? this.closest("m3e-select");
|
|
156
|
+
const panel = this.closest("[role='listbox']") ?? this.closest("m3e-autocomplete") ?? this.closest("m3e-select");
|
|
136
157
|
if (panel && panel.ariaMultiSelectable !== "true" && !panel.hasAttribute("multi")) {
|
|
137
158
|
panel.querySelectorAll("m3e-option").forEach(x => {
|
|
138
159
|
if (x !== this && x.selected) {
|
|
@@ -144,7 +165,7 @@ let M3eOptionElement = class M3eOptionElement extends Selected(Disabled(AttachIn
|
|
|
144
165
|
}
|
|
145
166
|
/** @inheritdoc */
|
|
146
167
|
render() {
|
|
147
|
-
return html`<div class="base"><m3e-state-layer class="state-layer" ?disabled="${this.disabled}"></m3e-state-layer><m3e-focus-ring class="focus-ring" ?disabled="${this.disabled}"></m3e-focus-ring><m3e-ripple class="ripple" ?disabled="${this.disabled}"></m3e-ripple><div class="touch" aria-hidden="true"></div><div class="wrapper"><div class="icon" aria-hidden="true"><svg class="check" viewBox="0 -960 960 960"><path fill="currentColor" d="M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z"/></svg></div><m3e-text-overflow class="label"><slot @slotchange="${__classPrivateFieldGet(this, _M3eOptionElement_instances, "m", _M3eOptionElement_handleSlotChange)}"></slot></m3e-text-overflow></div></div>`;
|
|
168
|
+
return html`<div class="base"><m3e-state-layer class="state-layer" ?disabled="${this.disabled}"></m3e-state-layer><m3e-focus-ring class="focus-ring" ?disabled="${this.disabled}"></m3e-focus-ring><m3e-ripple class="ripple" ?disabled="${this.disabled}"></m3e-ripple><div class="touch" aria-hidden="true"></div><div class="wrapper"><div class="icon" aria-hidden="true"><svg class="check" viewBox="0 -960 960 960"><path fill="currentColor" d="M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z"/></svg></div><m3e-text-overflow class="label"><m3e-text-highlight term="${this.term}" mode="${this.highlightMode}" ?disabled="${this.disableHighlight}"><slot @slotchange="${__classPrivateFieldGet(this, _M3eOptionElement_instances, "m", _M3eOptionElement_handleSlotChange)}"></slot></m3e-text-highlight></m3e-text-overflow></div></div>`;
|
|
148
169
|
}
|
|
149
170
|
};
|
|
150
171
|
_M3eOptionElement_handleSlotChange = function _M3eOptionElement_handleSlotChange(e) {
|
|
@@ -157,6 +178,14 @@ __decorate([query(".focus-ring")], M3eOptionElement.prototype, "focusRing", void
|
|
|
157
178
|
__decorate([query(".state-layer")], M3eOptionElement.prototype, "stateLayer", void 0);
|
|
158
179
|
__decorate([query(".ripple")], M3eOptionElement.prototype, "_ripple", void 0);
|
|
159
180
|
__decorate([property()], M3eOptionElement.prototype, "value", null);
|
|
181
|
+
__decorate([property()], M3eOptionElement.prototype, "term", void 0);
|
|
182
|
+
__decorate([property({
|
|
183
|
+
attribute: "highlight-mode"
|
|
184
|
+
})], M3eOptionElement.prototype, "highlightMode", void 0);
|
|
185
|
+
__decorate([property({
|
|
186
|
+
attribute: "disable-highlight",
|
|
187
|
+
type: Boolean
|
|
188
|
+
})], M3eOptionElement.prototype, "disableHighlight", void 0);
|
|
160
189
|
M3eOptionElement = __decorate([customElement("m3e-option")], M3eOptionElement);
|
|
161
190
|
|
|
162
191
|
var _M3eOptGroupElement_instances, _M3eOptGroupElement_labelId, _M3eOptGroupElement_label, _M3eOptGroupElement_handleLabelSlotChange;
|
|
@@ -226,8 +255,7 @@ M3eOptGroupElement.styles = css`:host { display: block; --_option-padding-start:
|
|
|
226
255
|
M3eOptGroupElement.__nextId = 0;
|
|
227
256
|
M3eOptGroupElement = M3eOptGroupElement_1 = __decorate([customElement("m3e-optgroup")], M3eOptGroupElement);
|
|
228
257
|
|
|
229
|
-
var _M3eOptionPanelElement_instances,
|
|
230
|
-
var M3eOptionPanelElement_1;
|
|
258
|
+
var _M3eOptionPanelElement_instances, _M3eOptionPanelElement_scrollController, _M3eOptionPanelElement_handleNoDataSlotChange, _M3eOptionPanelElement_handleLoadingSlotChange, _M3eOptionPanelElement_handleMutation;
|
|
231
259
|
/**
|
|
232
260
|
* Presents a list of options on a temporary surface.
|
|
233
261
|
*
|
|
@@ -256,151 +284,96 @@ var M3eOptionPanelElement_1;
|
|
|
256
284
|
* @cssprop --m3e-option-panel-text-highlight-container-color - Background color used for text highlight matches.
|
|
257
285
|
* @cssprop --m3e-option-panel-text-highlight-color - Text color used for text highlight matches.
|
|
258
286
|
*/
|
|
259
|
-
let M3eOptionPanelElement =
|
|
287
|
+
let M3eOptionPanelElement = class M3eOptionPanelElement extends Role(M3eFloatingPanelElement, "listbox") {
|
|
260
288
|
constructor() {
|
|
261
|
-
super(
|
|
289
|
+
super();
|
|
262
290
|
_M3eOptionPanelElement_instances.add(this);
|
|
263
291
|
/** @private */
|
|
264
|
-
_M3eOptionPanelElement_trigger.set(this, void 0);
|
|
265
|
-
/** @private */
|
|
266
|
-
_M3eOptionPanelElement_anchor.set(this, void 0);
|
|
267
|
-
/** @private */
|
|
268
|
-
_M3eOptionPanelElement_anchorCleanup.set(this, void 0);
|
|
269
|
-
/** @private */
|
|
270
|
-
_M3eOptionPanelElement_documentClickHandler.set(this, e => __classPrivateFieldGet(this, _M3eOptionPanelElement_instances, "m", _M3eOptionPanelElement_handleDocumentClick).call(this, e));
|
|
271
|
-
/** @private */
|
|
272
292
|
_M3eOptionPanelElement_scrollController.set(this, new ScrollController(this, {
|
|
273
293
|
target: null,
|
|
274
294
|
callback: () => this.hide(false)
|
|
275
295
|
}));
|
|
276
|
-
/**
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
296
|
+
/**
|
|
297
|
+
* The state for which to present content.
|
|
298
|
+
* @default "content"
|
|
299
|
+
*/
|
|
300
|
+
this.state = "content";
|
|
301
|
+
new MutationController(this, {
|
|
302
|
+
config: {
|
|
303
|
+
childList: true,
|
|
304
|
+
subtree: true
|
|
305
|
+
},
|
|
306
|
+
callback: () => __classPrivateFieldGet(this, _M3eOptionPanelElement_instances, "m", _M3eOptionPanelElement_handleMutation).call(this)
|
|
282
307
|
});
|
|
283
308
|
}
|
|
284
|
-
/** Whether the panel is open. */
|
|
285
|
-
get isOpen() {
|
|
286
|
-
return __classPrivateFieldGet(this, _M3eOptionPanelElement_trigger, "f") !== undefined;
|
|
287
|
-
}
|
|
288
|
-
/** @inheritdoc */
|
|
289
|
-
connectedCallback() {
|
|
290
|
-
super.connectedCallback();
|
|
291
|
-
addCustomState(this, "-no-animate");
|
|
292
|
-
this.setAttribute("popover", "manual");
|
|
293
|
-
this.addEventListener("toggle", __classPrivateFieldGet(this, _M3eOptionPanelElement_toggleHandler, "f"));
|
|
294
|
-
document.addEventListener("click", __classPrivateFieldGet(this, _M3eOptionPanelElement_documentClickHandler, "f"));
|
|
295
|
-
}
|
|
296
309
|
/** @inheritdoc */
|
|
297
|
-
disconnectedCallback() {
|
|
298
|
-
super.disconnectedCallback();
|
|
299
|
-
this.removeEventListener("toggle", __classPrivateFieldGet(this, _M3eOptionPanelElement_toggleHandler, "f"));
|
|
300
|
-
document.removeEventListener("click", __classPrivateFieldGet(this, _M3eOptionPanelElement_documentClickHandler, "f"));
|
|
301
|
-
}
|
|
302
|
-
/**
|
|
303
|
-
* Opens the panel.
|
|
304
|
-
* @param {HTMLElement} trigger The element that triggered the panel.
|
|
305
|
-
* @param {HTMLElement | undefined} anchor The element used to position the panel.
|
|
306
|
-
* @returns {Promise<void>} A `Promise` that resolves when the panel is opened.
|
|
307
|
-
*/
|
|
308
310
|
async show(trigger, anchor) {
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
}
|
|
312
|
-
__classPrivateFieldSet(this, _M3eOptionPanelElement_anchorCleanup, await positionAnchor(this, anchor ?? trigger, {
|
|
313
|
-
position: "bottom-start",
|
|
314
|
-
inline: true,
|
|
315
|
-
flip: true
|
|
316
|
-
}, (x, y, position) => {
|
|
317
|
-
setCustomState(this, "-top", position.includes("top"));
|
|
318
|
-
setCustomState(this, "-bottom", position.includes("bottom"));
|
|
319
|
-
if (M3eDirectionality.current === "rtl") {
|
|
320
|
-
this.style.right = `${window.innerWidth - x - this.clientWidth}px`;
|
|
321
|
-
this.style.left = "";
|
|
322
|
-
} else {
|
|
323
|
-
this.style.left = `${x}px`;
|
|
324
|
-
this.style.right = "";
|
|
325
|
-
}
|
|
326
|
-
this.style.top = `${y}px`;
|
|
327
|
-
}), "f");
|
|
328
|
-
this.showPopover();
|
|
329
|
-
__classPrivateFieldSet(this, _M3eOptionPanelElement_trigger, trigger, "f");
|
|
330
|
-
__classPrivateFieldGet(this, _M3eOptionPanelElement_trigger, "f").ariaExpanded = "true";
|
|
331
|
-
__classPrivateFieldSet(this, _M3eOptionPanelElement_anchor, anchor, "f");
|
|
332
|
-
__classPrivateFieldGet(this, _M3eOptionPanelElement_scrollController, "f").observe(__classPrivateFieldGet(this, _M3eOptionPanelElement_trigger, "f"));
|
|
333
|
-
}
|
|
334
|
-
/**
|
|
335
|
-
* Hides the panel.
|
|
336
|
-
* @param {boolean} [restoreFocus=false] Whether to restore focus to the panel's trigger.
|
|
337
|
-
*/
|
|
338
|
-
hide(restoreFocus = false) {
|
|
339
|
-
this.hidePopover();
|
|
340
|
-
if (__classPrivateFieldGet(this, _M3eOptionPanelElement_trigger, "f")) {
|
|
341
|
-
__classPrivateFieldGet(this, _M3eOptionPanelElement_trigger, "f").ariaExpanded = "false";
|
|
342
|
-
if (restoreFocus) {
|
|
343
|
-
__classPrivateFieldGet(this, _M3eOptionPanelElement_trigger, "f").focus();
|
|
344
|
-
}
|
|
345
|
-
__classPrivateFieldGet(this, _M3eOptionPanelElement_scrollController, "f").unobserve(__classPrivateFieldGet(this, _M3eOptionPanelElement_trigger, "f"));
|
|
346
|
-
__classPrivateFieldSet(this, _M3eOptionPanelElement_trigger, undefined, "f");
|
|
347
|
-
}
|
|
311
|
+
await super.show(trigger, anchor);
|
|
312
|
+
__classPrivateFieldGet(this, _M3eOptionPanelElement_scrollController, "f").observe(trigger);
|
|
348
313
|
}
|
|
349
|
-
/**
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
* @returns {Promise<void>} A `Promise` that resolves when the panel is opened or closed.
|
|
354
|
-
*/
|
|
355
|
-
async toggle(trigger, anchor) {
|
|
356
|
-
if (__classPrivateFieldGet(this, _M3eOptionPanelElement_trigger, "f")) {
|
|
357
|
-
this.hide();
|
|
358
|
-
} else {
|
|
359
|
-
await this.show(trigger, anchor);
|
|
314
|
+
/** @inheritdoc */
|
|
315
|
+
hide(restoreFocus) {
|
|
316
|
+
if (this.trigger) {
|
|
317
|
+
__classPrivateFieldGet(this, _M3eOptionPanelElement_scrollController, "f").unobserve(this.trigger);
|
|
360
318
|
}
|
|
319
|
+
super.hide(restoreFocus);
|
|
361
320
|
}
|
|
362
321
|
/** @inheritdoc */
|
|
363
|
-
|
|
364
|
-
super.
|
|
365
|
-
|
|
322
|
+
connectedCallback() {
|
|
323
|
+
super.connectedCallback();
|
|
324
|
+
__classPrivateFieldGet(this, _M3eOptionPanelElement_instances, "m", _M3eOptionPanelElement_handleMutation).call(this);
|
|
366
325
|
}
|
|
367
326
|
/** @inheritdoc */
|
|
368
327
|
render() {
|
|
369
|
-
return html`<div class="base"><slot @slotchange="${__classPrivateFieldGet(this, _M3eOptionPanelElement_instances, "m",
|
|
328
|
+
return html`<div class="base"><slot></slot><div class="no-data" aria-hidden="true"><slot name="no-data" @slotchange="${__classPrivateFieldGet(this, _M3eOptionPanelElement_instances, "m", _M3eOptionPanelElement_handleNoDataSlotChange)}"></slot></div><div class="loading" aria-hidden="true"><slot name="loading" @slotchange="${__classPrivateFieldGet(this, _M3eOptionPanelElement_instances, "m", _M3eOptionPanelElement_handleLoadingSlotChange)}"></slot></div></div>`;
|
|
370
329
|
}
|
|
371
330
|
};
|
|
372
|
-
_M3eOptionPanelElement_trigger = new WeakMap();
|
|
373
|
-
_M3eOptionPanelElement_anchor = new WeakMap();
|
|
374
|
-
_M3eOptionPanelElement_anchorCleanup = new WeakMap();
|
|
375
|
-
_M3eOptionPanelElement_documentClickHandler = new WeakMap();
|
|
376
331
|
_M3eOptionPanelElement_scrollController = new WeakMap();
|
|
377
|
-
_M3eOptionPanelElement_toggleHandler = new WeakMap();
|
|
378
332
|
_M3eOptionPanelElement_instances = new WeakSet();
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
333
|
+
_M3eOptionPanelElement_handleNoDataSlotChange = function _M3eOptionPanelElement_handleNoDataSlotChange(e) {
|
|
334
|
+
setCustomState(this, "-with-no-data", hasAssignedNodes(e.target));
|
|
335
|
+
};
|
|
336
|
+
_M3eOptionPanelElement_handleLoadingSlotChange = function _M3eOptionPanelElement_handleLoadingSlotChange(e) {
|
|
337
|
+
setCustomState(this, "-with-loading", hasAssignedNodes(e.target));
|
|
338
|
+
setCustomState(this, "-with-loading-indicator", this.querySelector("m3e-loading-indicator[slot='loading'], m3e-circular-progress-indicator[slot='loading']") !== null);
|
|
385
339
|
};
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
340
|
+
_M3eOptionPanelElement_handleMutation = function _M3eOptionPanelElement_handleMutation() {
|
|
341
|
+
const options = this.querySelectorAll("m3e-option");
|
|
342
|
+
let first = false;
|
|
343
|
+
let last;
|
|
344
|
+
for (let i = 0; i < options.length; i++) {
|
|
345
|
+
const option = options[i];
|
|
346
|
+
if (option.hidden) {
|
|
347
|
+
deleteCustomState(option, "-first");
|
|
348
|
+
deleteCustomState(option, "-last");
|
|
349
|
+
} else if (!first && !(option.parentElement instanceof M3eOptGroupElement)) {
|
|
350
|
+
addCustomState(option, "-first");
|
|
351
|
+
first = true;
|
|
352
|
+
addCustomState(option, "-last");
|
|
353
|
+
last = option;
|
|
354
|
+
} else {
|
|
355
|
+
deleteCustomState(option, "-first");
|
|
356
|
+
if (last) {
|
|
357
|
+
deleteCustomState(last, "-last");
|
|
358
|
+
}
|
|
359
|
+
addCustomState(option, "-last");
|
|
360
|
+
last = option;
|
|
361
|
+
}
|
|
389
362
|
}
|
|
390
363
|
};
|
|
391
364
|
(() => {
|
|
392
365
|
if (typeof window !== "undefined") {
|
|
393
366
|
const lightDomStyle = new CSSStyleSheet();
|
|
394
|
-
lightDomStyle.replaceSync(css`m3e-option-panel > m3e-divider { margin-block: var(--m3e-option-panel-divider-spacing, 0.5rem); }`.toString());
|
|
367
|
+
lightDomStyle.replaceSync(css`m3e-option-panel > m3e-divider { margin-block: var(--m3e-option-panel-divider-spacing, 0.5rem); } m3e-option-panel m3e-option[hidden], m3e-option-panel m3e-optgroup[hidden] { display: none; }`.toString());
|
|
395
368
|
document.adoptedStyleSheets = [...document.adoptedStyleSheets, lightDomStyle];
|
|
396
369
|
}
|
|
397
370
|
})();
|
|
398
371
|
/** The styles of the element. */
|
|
399
|
-
M3eOptionPanelElement.styles = css`:host {
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
M3eOptionPanelElement =
|
|
372
|
+
M3eOptionPanelElement.styles = [M3eFloatingPanelElement.styles, css`:host { --m3e-floating-panel-container-shape: var( --m3e-option-panel-container-shape, ${DesignToken.shape.corner.large} ); --m3e-floating-panel-container-min-width: var(--m3e-option-panel-container-min-width, 7rem); --m3e-floating-panel-container-max-width: var(--m3e-option-panel-container-max-width, 17.5rem); --m3e-floating-panel-container-max-height: var(--m3e-option-panel-container-max-height, 17.5rem); --m3e-floating-panel-container-color: var( --m3e-option-panel-container-color, ${DesignToken.color.surfaceContainer} ); --m3e-floating-panel-container-elevation: var( --m3e-option-panel-container-elevation, ${DesignToken.elevation.level3} ); --m3e-floating-panel-container-padding-inline: var(--m3e-option-panel-container-padding-inline, 0.25rem); --m3e-floating-panel-container-padding-block: var(--m3e-option-panel-container-padding-block, 0.25rem); } .base { row-gap: var(--m3e-option-panel-gap, 0.125rem); --m3e-text-highlight-container-color: var( --m3e-option-panel-text-highlight-container-color, ${DesignToken.color.tertiaryContainer} ); --m3e-text-highlight-color: var( --m3e-option-panel-text-highlight-color, ${DesignToken.color.onTertiaryContainer} ); --m3e-focus-ring-outward-offset: 0px; --m3e-focus-ring-growth-factor: 1.5; } .no-data { display: flex; align-items: center; box-sizing: border-box; min-height: var(--m3e-option-panel-no-data-container-height, 2.75rem); padding: var(--m3e-option-panel-no-data-container-padding, 0.75rem); color: var(--m3e-option-panel-no-data-color, ${DesignToken.color.onSurfaceVariant}); font-size: var(--m3e-option-panel-no-data-font-size, ${DesignToken.typescale.standard.label.large.fontSize}); font-weight: var( --m3e-option-panel-no-data-font-weight, ${DesignToken.typescale.standard.label.large.fontWeight} ); line-height: var( --m3e-option-panel-no-data-line-height, ${DesignToken.typescale.standard.label.large.lineHeight} ); letter-spacing: var( --m3e-option-panel-no-data-tracking, ${DesignToken.typescale.standard.label.large.tracking} ); } .loading { display: flex; align-items: center; box-sizing: border-box; min-height: var(--m3e-option-panel-loading-container-height, 2.75rem); padding: var(--m3e-option-panel-loading-container-padding, 0.75rem); color: var(--m3e-option-panel-loading-color, ${DesignToken.color.onSurfaceVariant}); font-size: var(--m3e-option-panel-loading-font-size, ${DesignToken.typescale.standard.label.large.fontSize}); font-weight: var( --m3e-option-panel-loading-font-weight, ${DesignToken.typescale.standard.label.large.fontWeight} ); line-height: var( --m3e-option-panel-loading-line-height, ${DesignToken.typescale.standard.label.large.lineHeight} ); letter-spacing: var( --m3e-option-panel-loading-tracking, ${DesignToken.typescale.standard.label.large.tracking} ); } :host(:state(-no-data)) slot:not([name]), :host(:state(-loading)) slot:not([name]), :host(:state(-loading)) .no-data, :host(:not(:state(-no-data))) .no-data, :host(:not(:state(-with-no-data))) .no-data, :host(:not(:state(-loading))) .loading, :host(:not(:state(-with-loading))) .loading { display: none; } :host(:state(-no-data)) .base, :host(:state(-loading)) .base { overflow-y: hidden; } :host(:state(-with-loading-indicator)) .loading { padding: 0; justify-content: center; }`];
|
|
373
|
+
__decorate([property({
|
|
374
|
+
reflect: true
|
|
375
|
+
})], M3eOptionPanelElement.prototype, "state", void 0);
|
|
376
|
+
M3eOptionPanelElement = __decorate([customElement("m3e-option-panel")], M3eOptionPanelElement);
|
|
404
377
|
|
|
405
378
|
export { M3eOptGroupElement, M3eOptionElement, M3eOptionPanelElement };
|
|
406
379
|
//# sourceMappingURL=option.js.map
|