@vscode-elements/elements 1.14.1-pre.1 → 1.14.1-pre.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +318 -59
- package/dist/bundled.js +235 -249
- package/dist/includes/VscElement.js +1 -1
- package/dist/includes/VscElement.js.map +1 -1
- package/dist/includes/vscode-select/helpers.d.ts +2 -0
- package/dist/includes/vscode-select/helpers.d.ts.map +1 -1
- package/dist/includes/vscode-select/helpers.js +26 -0
- package/dist/includes/vscode-select/helpers.js.map +1 -1
- package/dist/includes/vscode-select/styles.d.ts.map +1 -1
- package/dist/includes/vscode-select/styles.js +30 -12
- package/dist/includes/vscode-select/styles.js.map +1 -1
- package/dist/includes/vscode-select/vscode-select-base.d.ts +11 -3
- package/dist/includes/vscode-select/vscode-select-base.d.ts.map +1 -1
- package/dist/includes/vscode-select/vscode-select-base.js +189 -50
- package/dist/includes/vscode-select/vscode-select-base.js.map +1 -1
- package/dist/vscode-multi-select/vscode-multi-select.d.ts +9 -4
- package/dist/vscode-multi-select/vscode-multi-select.d.ts.map +1 -1
- package/dist/vscode-multi-select/vscode-multi-select.js +86 -124
- package/dist/vscode-multi-select/vscode-multi-select.js.map +1 -1
- package/dist/vscode-single-select/vscode-single-select.d.ts +10 -5
- package/dist/vscode-single-select/vscode-single-select.d.ts.map +1 -1
- package/dist/vscode-single-select/vscode-single-select.js +46 -83
- package/dist/vscode-single-select/vscode-single-select.js.map +1 -1
- package/package.json +2 -1
|
@@ -4,16 +4,17 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { html, nothing } from 'lit';
|
|
7
|
+
import { html, render, nothing } from 'lit';
|
|
8
8
|
import { property, query, queryAssignedElements, state } from 'lit/decorators.js';
|
|
9
9
|
import { classMap } from 'lit/directives/class-map.js';
|
|
10
|
+
import { repeat } from 'lit/directives/repeat.js';
|
|
10
11
|
import '../../vscode-button/index.js';
|
|
11
12
|
import '../../vscode-option/index.js';
|
|
12
|
-
import { filterOptionsByPattern } from './helpers.js';
|
|
13
|
+
import { filterOptionsByPattern, findNextSelectableOptionIndex, findPrevSelectableOptionIndex, highlightRanges, } from './helpers.js';
|
|
13
14
|
import { VscElement } from '../VscElement.js';
|
|
15
|
+
import { chevronDownIcon } from './template-elements.js';
|
|
14
16
|
const VISIBLE_OPTS = 10;
|
|
15
17
|
const OPT_HEIGHT = 22;
|
|
16
|
-
const LIST_HEIGHT = VISIBLE_OPTS + OPT_HEIGHT + 2;
|
|
17
18
|
/**
|
|
18
19
|
* @cssprop --dropdown-z-index - workaround for dropdown z-index issues
|
|
19
20
|
*/
|
|
@@ -108,6 +109,7 @@ export class VscodeSelectBase extends VscElement {
|
|
|
108
109
|
this.position = 'below';
|
|
109
110
|
/** @internal */
|
|
110
111
|
this.tabIndex = 0;
|
|
112
|
+
this._firstUpdateCompleted = false;
|
|
111
113
|
this._activeIndex = -1;
|
|
112
114
|
this._currentDescription = '';
|
|
113
115
|
this._filter = 'fuzzy';
|
|
@@ -148,7 +150,7 @@ export class VscodeSelectBase extends VscElement {
|
|
|
148
150
|
event.preventDefault();
|
|
149
151
|
}
|
|
150
152
|
if (event.key === 'Enter') {
|
|
151
|
-
this._onEnterKeyDown();
|
|
153
|
+
this._onEnterKeyDown(event);
|
|
152
154
|
}
|
|
153
155
|
if (event.key === ' ') {
|
|
154
156
|
this._onSpaceKeyDown();
|
|
@@ -187,6 +189,14 @@ export class VscodeSelectBase extends VscElement {
|
|
|
187
189
|
this.removeEventListener('focus', this._onComponentFocus);
|
|
188
190
|
this.removeEventListener('blur', this._onComponentBlur);
|
|
189
191
|
}
|
|
192
|
+
firstUpdated(_changedProperties) {
|
|
193
|
+
this._firstUpdateCompleted = true;
|
|
194
|
+
}
|
|
195
|
+
willUpdate(changedProperties) {
|
|
196
|
+
if (changedProperties.has('required') && this._firstUpdateCompleted) {
|
|
197
|
+
this._manageRequired();
|
|
198
|
+
}
|
|
199
|
+
}
|
|
190
200
|
get _filteredOptions() {
|
|
191
201
|
if (!this.combobox || this._filterPattern === '') {
|
|
192
202
|
return this._options;
|
|
@@ -196,6 +206,12 @@ export class VscodeSelectBase extends VscElement {
|
|
|
196
206
|
get _currentOptions() {
|
|
197
207
|
return this.combobox ? this._filteredOptions : this._options;
|
|
198
208
|
}
|
|
209
|
+
get _isSuggestedOptionVisible() {
|
|
210
|
+
const filterPatternExistsAsOption = typeof this._valueOptionIndexMap[this._filterPattern] !== 'undefined';
|
|
211
|
+
const filtered = this._filterPattern.length > 0;
|
|
212
|
+
return this.combobox && !filterPatternExistsAsOption && filtered;
|
|
213
|
+
}
|
|
214
|
+
_manageRequired() { }
|
|
199
215
|
_setStateFromSlottedElements() {
|
|
200
216
|
const options = [];
|
|
201
217
|
let nextIndex = 0;
|
|
@@ -254,16 +270,12 @@ export class VscodeSelectBase extends VscElement {
|
|
|
254
270
|
}
|
|
255
271
|
}
|
|
256
272
|
_createSuggestedOption() {
|
|
257
|
-
const
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
selected: true,
|
|
264
|
-
disabled: false,
|
|
265
|
-
});
|
|
266
|
-
return nextIndex;
|
|
273
|
+
const nextSelectedIndex = this._options.length;
|
|
274
|
+
const op = document.createElement('vscode-option');
|
|
275
|
+
op.value = this._filterPattern;
|
|
276
|
+
render(this._filterPattern, op);
|
|
277
|
+
this.appendChild(op);
|
|
278
|
+
return nextSelectedIndex;
|
|
267
279
|
}
|
|
268
280
|
_dispatchChangeEvent() {
|
|
269
281
|
if (!this._multiple) {
|
|
@@ -287,6 +299,7 @@ export class VscodeSelectBase extends VscElement {
|
|
|
287
299
|
this.dispatchEvent(new Event('change'));
|
|
288
300
|
this.dispatchEvent(new Event('input'));
|
|
289
301
|
}
|
|
302
|
+
async _createAndSelectSuggestedOption() { }
|
|
290
303
|
_onFaceClick() {
|
|
291
304
|
this._toggleDropdown(!this.open);
|
|
292
305
|
if (this._multiple) {
|
|
@@ -316,15 +329,29 @@ export class VscodeSelectBase extends VscElement {
|
|
|
316
329
|
if (!el.matches('.option')) {
|
|
317
330
|
return;
|
|
318
331
|
}
|
|
319
|
-
if (
|
|
332
|
+
if (el.matches('.placeholder')) {
|
|
320
333
|
this._isPlaceholderOptionActive = true;
|
|
334
|
+
this._activeIndex = -1;
|
|
335
|
+
}
|
|
336
|
+
else {
|
|
337
|
+
this._isPlaceholderOptionActive = false;
|
|
338
|
+
this._activeIndex = Number(this.combobox ? el.dataset.filteredIndex : el.dataset.index);
|
|
321
339
|
}
|
|
322
|
-
this._activeIndex = Number(this.combobox ? el.dataset.filteredIndex : el.dataset.index);
|
|
323
340
|
}
|
|
324
341
|
_onPlaceholderOptionMouseOut() {
|
|
325
342
|
this._isPlaceholderOptionActive = false;
|
|
326
343
|
}
|
|
327
|
-
_onEnterKeyDown() {
|
|
344
|
+
_onEnterKeyDown(ev) {
|
|
345
|
+
const clickedOnAcceptButton = ev?.composedPath
|
|
346
|
+
? ev
|
|
347
|
+
.composedPath()
|
|
348
|
+
.find((el) => el.matches
|
|
349
|
+
? el.matches('vscode-button.button-accept')
|
|
350
|
+
: false)
|
|
351
|
+
: false;
|
|
352
|
+
if (clickedOnAcceptButton) {
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
328
355
|
const list = this.combobox ? this._filteredOptions : this._options;
|
|
329
356
|
const showDropdownNext = !this.open;
|
|
330
357
|
this._toggleDropdown(showDropdownNext);
|
|
@@ -341,10 +368,7 @@ export class VscodeSelectBase extends VscElement {
|
|
|
341
368
|
}
|
|
342
369
|
if (this.combobox) {
|
|
343
370
|
if (this._isPlaceholderOptionActive) {
|
|
344
|
-
|
|
345
|
-
this._selectedIndex = nextSelectedIndex;
|
|
346
|
-
this._dispatchChangeEvent();
|
|
347
|
-
this._isPlaceholderOptionActive = false;
|
|
371
|
+
this._createAndSelectSuggestedOption();
|
|
348
372
|
}
|
|
349
373
|
else {
|
|
350
374
|
if (!this._multiple && !showDropdownNext) {
|
|
@@ -371,65 +395,99 @@ export class VscodeSelectBase extends VscElement {
|
|
|
371
395
|
}
|
|
372
396
|
if (this.open && this._multiple && this._activeIndex > -1) {
|
|
373
397
|
const opts = this.combobox ? this._filteredOptions : this._options;
|
|
374
|
-
const
|
|
375
|
-
|
|
376
|
-
this.
|
|
377
|
-
opts.forEach(({ index
|
|
398
|
+
const selectedOption = opts[this._activeIndex];
|
|
399
|
+
const nextSelectedIndexes = [];
|
|
400
|
+
this._options[selectedOption.index].selected = !selectedOption.selected;
|
|
401
|
+
opts.forEach(({ index }) => {
|
|
402
|
+
const { selected } = this._options[index];
|
|
378
403
|
if (selected) {
|
|
379
|
-
|
|
404
|
+
nextSelectedIndexes.push(index);
|
|
380
405
|
}
|
|
381
406
|
});
|
|
407
|
+
this._selectedIndexes = nextSelectedIndexes;
|
|
382
408
|
}
|
|
383
409
|
}
|
|
384
410
|
_scrollActiveElementToTop() {
|
|
385
411
|
this._listElement.scrollTop = Math.floor(this._activeIndex * OPT_HEIGHT);
|
|
386
412
|
}
|
|
387
|
-
async _adjustOptionListScrollPos(direction) {
|
|
388
|
-
|
|
413
|
+
async _adjustOptionListScrollPos(direction, optionIndex) {
|
|
414
|
+
let numOpts = this.combobox
|
|
389
415
|
? this._filteredOptions.length
|
|
390
416
|
: this._options.length;
|
|
417
|
+
const suggestedOptionVisible = this._isSuggestedOptionVisible;
|
|
418
|
+
if (suggestedOptionVisible) {
|
|
419
|
+
numOpts += 1;
|
|
420
|
+
}
|
|
391
421
|
if (numOpts <= VISIBLE_OPTS) {
|
|
392
422
|
return;
|
|
393
423
|
}
|
|
394
424
|
this._isHoverForbidden = true;
|
|
395
425
|
window.addEventListener('mousemove', this._onMouseMove);
|
|
396
|
-
if (!this._listElement) {
|
|
397
|
-
await this.updateComplete;
|
|
398
|
-
}
|
|
399
426
|
const ulScrollTop = this._listElement.scrollTop;
|
|
400
|
-
const liPosY =
|
|
427
|
+
const liPosY = optionIndex * OPT_HEIGHT;
|
|
428
|
+
const fullyVisible = liPosY >= ulScrollTop &&
|
|
429
|
+
liPosY <= ulScrollTop + VISIBLE_OPTS * OPT_HEIGHT - OPT_HEIGHT;
|
|
401
430
|
if (direction === 'down') {
|
|
402
|
-
if (
|
|
431
|
+
if (!fullyVisible) {
|
|
403
432
|
this._listElement.scrollTop =
|
|
404
|
-
|
|
433
|
+
optionIndex * OPT_HEIGHT - (VISIBLE_OPTS - 1) * OPT_HEIGHT;
|
|
405
434
|
}
|
|
406
435
|
}
|
|
407
436
|
if (direction === 'up') {
|
|
408
|
-
if (
|
|
409
|
-
this.
|
|
437
|
+
if (!fullyVisible) {
|
|
438
|
+
this._listElement.scrollTop = Math.floor(this._activeIndex * OPT_HEIGHT);
|
|
410
439
|
}
|
|
411
440
|
}
|
|
412
441
|
}
|
|
413
442
|
_onArrowUpKeyDown() {
|
|
414
443
|
if (this.open) {
|
|
415
|
-
if (this._activeIndex <= 0) {
|
|
444
|
+
if (this._activeIndex <= 0 && !(this.combobox && this.creatable)) {
|
|
416
445
|
return;
|
|
417
446
|
}
|
|
418
|
-
this.
|
|
419
|
-
|
|
447
|
+
if (this._isPlaceholderOptionActive) {
|
|
448
|
+
const optionIndex = this._currentOptions.length - 1;
|
|
449
|
+
this._activeIndex = optionIndex;
|
|
450
|
+
this._isPlaceholderOptionActive = false;
|
|
451
|
+
}
|
|
452
|
+
else {
|
|
453
|
+
const currentOptions = this.combobox
|
|
454
|
+
? this._filteredOptions
|
|
455
|
+
: this._options;
|
|
456
|
+
const prevSelectable = findPrevSelectableOptionIndex(currentOptions, this._activeIndex);
|
|
457
|
+
if (prevSelectable > -1) {
|
|
458
|
+
this._activeIndex = prevSelectable;
|
|
459
|
+
this._adjustOptionListScrollPos('up', prevSelectable);
|
|
460
|
+
}
|
|
461
|
+
}
|
|
420
462
|
}
|
|
421
463
|
}
|
|
422
464
|
_onArrowDownKeyDown() {
|
|
465
|
+
let numOpts = this.combobox
|
|
466
|
+
? this._filteredOptions.length
|
|
467
|
+
: this._options.length;
|
|
468
|
+
const currentOptions = this.combobox
|
|
469
|
+
? this._filteredOptions
|
|
470
|
+
: this._options;
|
|
471
|
+
const suggestedOptionVisible = this._isSuggestedOptionVisible;
|
|
472
|
+
if (suggestedOptionVisible) {
|
|
473
|
+
numOpts += 1;
|
|
474
|
+
}
|
|
423
475
|
if (this.open) {
|
|
424
|
-
if (this.
|
|
425
|
-
this._isPlaceholderOptionActive = true;
|
|
476
|
+
if (this._isPlaceholderOptionActive && this._activeIndex === -1) {
|
|
426
477
|
return;
|
|
427
478
|
}
|
|
428
|
-
if (this._activeIndex
|
|
429
|
-
|
|
479
|
+
if (suggestedOptionVisible && this._activeIndex === numOpts - 2) {
|
|
480
|
+
this._isPlaceholderOptionActive = true;
|
|
481
|
+
this._adjustOptionListScrollPos('down', numOpts - 1);
|
|
482
|
+
this._activeIndex = -1;
|
|
483
|
+
}
|
|
484
|
+
else if (this._activeIndex < numOpts - 1) {
|
|
485
|
+
const nextSelectable = findNextSelectableOptionIndex(currentOptions, this._activeIndex);
|
|
486
|
+
if (nextSelectable > -1) {
|
|
487
|
+
this._activeIndex = nextSelectable;
|
|
488
|
+
this._adjustOptionListScrollPos('down', nextSelectable);
|
|
489
|
+
}
|
|
430
490
|
}
|
|
431
|
-
this._activeIndex += 1;
|
|
432
|
-
this._adjustOptionListScrollPos('down');
|
|
433
491
|
}
|
|
434
492
|
}
|
|
435
493
|
_onSlotChange() {
|
|
@@ -447,14 +505,56 @@ export class VscodeSelectBase extends VscElement {
|
|
|
447
505
|
_onComboboxInputClick() {
|
|
448
506
|
this._toggleDropdown(true);
|
|
449
507
|
}
|
|
508
|
+
_onOptionClick(_ev) {
|
|
509
|
+
return;
|
|
510
|
+
}
|
|
450
511
|
_renderOptions() {
|
|
451
|
-
|
|
512
|
+
const list = this.combobox ? this._filteredOptions : this._options;
|
|
513
|
+
return html `
|
|
514
|
+
<ul
|
|
515
|
+
class="options"
|
|
516
|
+
@click=${this._onOptionClick}
|
|
517
|
+
@mouseover=${this._onOptionMouseOver}
|
|
518
|
+
>
|
|
519
|
+
${repeat(list, (op) => op.index, (op, index) => {
|
|
520
|
+
const optionClasses = {
|
|
521
|
+
active: index === this._activeIndex && !op.disabled,
|
|
522
|
+
disabled: op.disabled,
|
|
523
|
+
option: true,
|
|
524
|
+
selected: op.selected,
|
|
525
|
+
};
|
|
526
|
+
const checkboxClasses = {
|
|
527
|
+
'checkbox-icon': true,
|
|
528
|
+
checked: op.selected,
|
|
529
|
+
};
|
|
530
|
+
const labelText = (op.ranges?.length ?? 0 > 0)
|
|
531
|
+
? highlightRanges(op.label, op.ranges ?? [])
|
|
532
|
+
: op.label;
|
|
533
|
+
return html `
|
|
534
|
+
<li
|
|
535
|
+
class=${classMap(optionClasses)}
|
|
536
|
+
data-index=${op.index}
|
|
537
|
+
data-filtered-index=${index}
|
|
538
|
+
>
|
|
539
|
+
${this._multiple
|
|
540
|
+
? html `<span class=${classMap(checkboxClasses)}></span
|
|
541
|
+
><span class="option-label">${labelText}</span>`
|
|
542
|
+
: labelText}
|
|
543
|
+
</li>
|
|
544
|
+
`;
|
|
545
|
+
})}
|
|
546
|
+
${this._renderPlaceholderOption(list.length < 1)}
|
|
547
|
+
</ul>
|
|
548
|
+
`;
|
|
452
549
|
}
|
|
453
|
-
_renderPlaceholderOption() {
|
|
550
|
+
_renderPlaceholderOption(isListEmpty) {
|
|
454
551
|
if (!this.combobox) {
|
|
455
552
|
return nothing;
|
|
456
553
|
}
|
|
457
|
-
if (this.
|
|
554
|
+
if (this._valueOptionIndexMap[this._filterPattern]) {
|
|
555
|
+
return nothing;
|
|
556
|
+
}
|
|
557
|
+
if (this.creatable && this._filterPattern.length > 0) {
|
|
458
558
|
return html `<li
|
|
459
559
|
class=${classMap({
|
|
460
560
|
option: true,
|
|
@@ -467,7 +567,9 @@ export class VscodeSelectBase extends VscElement {
|
|
|
467
567
|
</li>`;
|
|
468
568
|
}
|
|
469
569
|
else {
|
|
470
|
-
return
|
|
570
|
+
return isListEmpty
|
|
571
|
+
? html `<li class="no-options">No options</li>`
|
|
572
|
+
: nothing;
|
|
471
573
|
}
|
|
472
574
|
}
|
|
473
575
|
_renderDescription() {
|
|
@@ -482,8 +584,45 @@ export class VscodeSelectBase extends VscElement {
|
|
|
482
584
|
_renderSelectFace() {
|
|
483
585
|
return html `${nothing}`;
|
|
484
586
|
}
|
|
587
|
+
_renderMultiSelectLabel() {
|
|
588
|
+
switch (this._selectedIndexes.length) {
|
|
589
|
+
case 0:
|
|
590
|
+
return html `<span class="select-face-badge no-item"
|
|
591
|
+
>No items selected</span
|
|
592
|
+
>`;
|
|
593
|
+
case 1:
|
|
594
|
+
return html `<span class="select-face-badge">1 item selected</span>`;
|
|
595
|
+
default:
|
|
596
|
+
return html `<span class="select-face-badge"
|
|
597
|
+
>${this._selectedIndexes.length} items selected</span
|
|
598
|
+
>`;
|
|
599
|
+
}
|
|
600
|
+
}
|
|
485
601
|
_renderComboboxFace() {
|
|
486
|
-
|
|
602
|
+
const inputVal = this._selectedIndex > -1 ? this._options[this._selectedIndex]?.label : '';
|
|
603
|
+
return html `
|
|
604
|
+
<div class="combobox-face face">
|
|
605
|
+
${this._multiple ? this._renderMultiSelectLabel() : nothing}
|
|
606
|
+
<input
|
|
607
|
+
class="combobox-input"
|
|
608
|
+
spellcheck="false"
|
|
609
|
+
type="text"
|
|
610
|
+
autocomplete="off"
|
|
611
|
+
.value=${inputVal}
|
|
612
|
+
@focus=${this._onComboboxInputFocus}
|
|
613
|
+
@input=${this._onComboboxInputInput}
|
|
614
|
+
@click=${this._onComboboxInputClick}
|
|
615
|
+
>
|
|
616
|
+
<button
|
|
617
|
+
class="combobox-button"
|
|
618
|
+
type="button"
|
|
619
|
+
@click=${this._onComboboxButtonClick}
|
|
620
|
+
@keydown=${this._onComboboxButtonKeyDown}
|
|
621
|
+
>
|
|
622
|
+
${chevronDownIcon}
|
|
623
|
+
</button>
|
|
624
|
+
</div>
|
|
625
|
+
`;
|
|
487
626
|
}
|
|
488
627
|
_renderDropdownControls() {
|
|
489
628
|
return html `${nothing}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vscode-select-base.js","sourceRoot":"","sources":["../../../src/includes/vscode-select/vscode-select-base.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, nothing, TemplateResult} from 'lit';\nimport {property, query, queryAssignedElements, state} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport '../../vscode-button/index.js';\nimport '../../vscode-option/index.js';\nimport {VscodeOption} from '../../vscode-option/index.js';\nimport type {InternalOption, Option, SearchMethod} from './types.js';\nimport {filterOptionsByPattern} from './helpers.js';\nimport {VscElement} from '../VscElement.js';\n\nconst VISIBLE_OPTS = 10;\nconst OPT_HEIGHT = 22;\nconst LIST_HEIGHT = VISIBLE_OPTS + OPT_HEIGHT + 2;\n\n/**\n * @cssprop --dropdown-z-index - workaround for dropdown z-index issues\n */\nexport class VscodeSelectBase extends VscElement {\n /** @internal */\n @property({type: String, reflect: true, attribute: 'aria-expanded'})\n override ariaExpanded = 'false';\n\n @property({type: Boolean, reflect: true})\n creatable = false;\n\n /**\n * Options can be filtered by typing into a text input field.\n */\n @property({type: Boolean, reflect: true})\n combobox = false;\n\n /**\n * The element cannot be used and is not focusable.\n */\n @property({type: Boolean, reflect: true})\n set disabled(newState: boolean) {\n this._disabled = newState;\n this.ariaDisabled = newState ? 'true' : 'false';\n\n if (newState === true) {\n this._originalTabIndex = this.tabIndex;\n this.tabIndex = -1;\n } else {\n this.tabIndex = this._originalTabIndex ?? 0;\n this._originalTabIndex = undefined;\n }\n\n this.requestUpdate();\n }\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Sets the invalid state manually.\n */\n @property({type: Boolean, reflect: true})\n invalid = false;\n\n /**\n * Search method in the filtered list within the combobox mode.\n *\n * - contains - The list item includes the searched pattern at any position.\n * - fuzzy - The list item contains the letters of the search pattern in the same order, but at any position.\n * - startsWith - The search pattern matches the beginning of the searched text.\n * - startsWithPerTerm - The search pattern matches the beginning of any word in the searched text.\n *\n * @default 'fuzzy'\n */\n @property()\n set filter(val: 'contains' | 'fuzzy' | 'startsWith' | 'startsWithPerTerm') {\n const validValues: SearchMethod[] = [\n 'contains',\n 'fuzzy',\n 'startsWith',\n 'startsWithPerTerm',\n ];\n\n if (validValues.includes(val as SearchMethod)) {\n this._filter = val as SearchMethod;\n } else {\n this._filter = 'fuzzy';\n console.warn(\n `[VSCode Webview Elements] Invalid filter: \"${val}\", fallback to default. Valid values are: \"contains\", \"fuzzy\", \"startsWith\", \"startsWithPerm\".`,\n this\n );\n }\n }\n get filter(): 'contains' | 'fuzzy' | 'startsWith' | 'startsWithPerTerm' {\n return this._filter;\n }\n\n /**\n * Its value is true when element is focused.\n */\n @property({type: Boolean, reflect: true})\n focused = false;\n\n /**\n * Toggle the dropdown visibility.\n */\n @property({type: Boolean, reflect: true})\n open = false;\n\n /**\n * @attr [options=[]]\n * @type {Option[]}\n */\n @property({type: Array})\n set options(opts: Option[]) {\n this._options = opts.map((op, index) => ({...op, index}));\n }\n get options(): Option[] {\n return this._options.map(\n ({label, value, description, selected, disabled}) => ({\n label,\n value,\n description,\n selected,\n disabled,\n })\n );\n }\n\n /**\n * Position of the options list when visible.\n */\n @property({reflect: true})\n position: 'above' | 'below' = 'below';\n\n /** @internal */\n @property({type: Number, attribute: true, reflect: true})\n override tabIndex = 0;\n\n @queryAssignedElements({\n flatten: true,\n selector: 'vscode-option',\n })\n private _assignedOptions!: VscodeOption[];\n\n constructor() {\n super();\n this.addEventListener('vsc-option-state-change', (ev) => {\n ev.stopPropagation();\n this._setStateFromSlottedElements();\n this.requestUpdate();\n });\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('keydown', this._onComponentKeyDown);\n this.addEventListener('focus', this._onComponentFocus);\n this.addEventListener('blur', this._onComponentBlur);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('keydown', this._onComponentKeyDown);\n this.removeEventListener('focus', this._onComponentFocus);\n this.removeEventListener('blur', this._onComponentBlur);\n }\n\n @state()\n protected _activeIndex = -1;\n\n @state()\n protected _currentDescription = '';\n\n @state()\n protected _filter: SearchMethod = 'fuzzy';\n\n @state()\n protected get _filteredOptions(): InternalOption[] {\n if (!this.combobox || this._filterPattern === '') {\n return this._options;\n }\n\n return filterOptionsByPattern(\n this._options,\n this._filterPattern,\n this._filter\n );\n }\n\n @state()\n protected _filterPattern = '';\n\n @state()\n protected _selectedIndex = -1;\n\n @state()\n protected _selectedIndexes: number[] = [];\n\n @state()\n protected _options: InternalOption[] = [];\n\n @state()\n protected _value = '';\n\n @state()\n protected _values: string[] = [];\n\n @state()\n protected _listScrollTop = 0;\n\n @state()\n protected _isPlaceholderOptionActive = false;\n\n @query('.options')\n private _listElement!: HTMLUListElement;\n\n /** @internal */\n protected _multiple = false;\n\n /**\n * @internal\n * Quick-searchable map for searching a value in the options list.\n * Keys are the options values, values are the option indexes.\n */\n protected _valueOptionIndexMap: {[key: string]: number} = {};\n\n private _isHoverForbidden = false;\n private _disabled = false;\n private _originalTabIndex: number | undefined = undefined;\n\n protected get _currentOptions(): InternalOption[] {\n return this.combobox ? this._filteredOptions : this._options;\n }\n\n protected _setStateFromSlottedElements() {\n const options: InternalOption[] = [];\n let nextIndex = 0;\n const optionElements = this._assignedOptions ?? [];\n const selectedIndexes: number[] = [];\n const values: string[] = [];\n this._valueOptionIndexMap = {};\n\n optionElements.forEach((el, i) => {\n const {innerText, description, disabled} = el;\n const value = typeof el.value === 'string' ? el.value : innerText.trim();\n const selected = el.selected ?? false;\n const op: InternalOption = {\n label: innerText.trim(),\n value,\n description,\n selected,\n index: nextIndex,\n disabled,\n };\n\n nextIndex = options.push(op);\n\n if (selected && !this._multiple) {\n this._activeIndex = i;\n }\n\n if (selected) {\n selectedIndexes.push(options.length - 1);\n values.push(value);\n }\n\n this._valueOptionIndexMap[op.value] = op.index;\n });\n\n this._options = options;\n\n if (selectedIndexes.length > 0) {\n this._selectedIndex = selectedIndexes[0];\n this._selectedIndexes = selectedIndexes;\n this._value = values[0];\n this._values = values;\n }\n\n if (!this._multiple && !this.combobox && selectedIndexes.length === 0) {\n this._selectedIndex = this._options.length > 0 ? 0 : -1;\n }\n }\n\n protected async _toggleDropdown(visible: boolean): Promise<void> {\n this.open = visible;\n this.ariaExpanded = String(visible);\n\n if (visible && !this._multiple && !this.combobox) {\n this._activeIndex = this._selectedIndex;\n\n if (this._activeIndex > VISIBLE_OPTS - 1) {\n await this.updateComplete;\n\n this._listElement.scrollTop = Math.floor(\n this._activeIndex * OPT_HEIGHT\n );\n }\n }\n\n if (visible) {\n window.addEventListener('click', this._onClickOutside);\n } else {\n window.removeEventListener('click', this._onClickOutside);\n }\n }\n\n protected _createSuggestedOption() {\n const nextIndex = this._options.length;\n\n this._options.push({\n index: nextIndex,\n value: this._filterPattern,\n label: this._filterPattern,\n description: '',\n selected: true,\n disabled: false,\n });\n\n return nextIndex;\n }\n\n protected _dispatchChangeEvent(): void {\n if (!this._multiple) {\n /** @deprecated */\n this.dispatchEvent(\n new CustomEvent('vsc-change', {\n detail: {\n selectedIndex: this._selectedIndex,\n value: this._value,\n },\n })\n );\n } else {\n /** @deprecated */\n this.dispatchEvent(\n new CustomEvent('vsc-change', {\n detail: {\n selectedIndexes: this._selectedIndexes,\n value: this._values,\n },\n })\n );\n }\n this.dispatchEvent(new Event('change'));\n this.dispatchEvent(new Event('input'));\n }\n\n protected _onFaceClick(): void {\n this._toggleDropdown(!this.open);\n\n if (this._multiple) {\n this._activeIndex = 0;\n }\n }\n\n private _onClickOutside = (event: MouseEvent): void => {\n const path = event.composedPath();\n const found = path.findIndex((et) => et === this);\n\n if (found === -1) {\n this._toggleDropdown(false);\n window.removeEventListener('click', this._onClickOutside);\n }\n };\n\n private _onMouseMove = () => {\n this._isHoverForbidden = false;\n window.removeEventListener('mousemove', this._onMouseMove);\n };\n\n private _toggleComboboxDropdown() {\n this._filterPattern = '';\n this._toggleDropdown(!this.open);\n\n if (this._multiple) {\n this._activeIndex = -1;\n }\n }\n\n protected _onComboboxButtonClick(): void {\n this._toggleComboboxDropdown();\n }\n\n protected _onComboboxButtonKeyDown(ev: KeyboardEvent): void {\n if (ev.key === 'Enter') {\n this._toggleComboboxDropdown();\n }\n }\n\n protected _onOptionMouseOver(ev: MouseEvent): void {\n if (this._isHoverForbidden) {\n return;\n }\n\n const el = ev.target as HTMLElement;\n\n if (!el.matches('.option')) {\n return;\n }\n\n if (this.combobox && this._filteredOptions.length < 1) {\n this._isPlaceholderOptionActive = true;\n }\n\n this._activeIndex = Number(\n this.combobox ? el.dataset.filteredIndex : el.dataset.index\n );\n }\n\n protected _onPlaceholderOptionMouseOut() {\n this._isPlaceholderOptionActive = false;\n }\n\n protected _onEnterKeyDown(): void {\n const list = this.combobox ? this._filteredOptions : this._options;\n const showDropdownNext = !this.open;\n\n this._toggleDropdown(showDropdownNext);\n\n if (\n !this._multiple &&\n !showDropdownNext &&\n this._selectedIndex !== this._activeIndex\n ) {\n this._selectedIndex =\n this._activeIndex > -1 ? list[this._activeIndex].index : -1;\n this._value =\n this._selectedIndex > -1\n ? this._options[this._selectedIndex].value\n : '';\n this._dispatchChangeEvent();\n }\n\n if (this.combobox) {\n if (this._isPlaceholderOptionActive) {\n const nextSelectedIndex = this._createSuggestedOption();\n this._selectedIndex = nextSelectedIndex;\n this._dispatchChangeEvent();\n this._isPlaceholderOptionActive = false;\n } else {\n if (!this._multiple && !showDropdownNext) {\n this._selectedIndex =\n this._activeIndex > -1\n ? this._filteredOptions[this._activeIndex].index\n : -1;\n }\n\n if (!this._multiple && showDropdownNext) {\n this.updateComplete.then(() => {\n this._scrollActiveElementToTop();\n });\n }\n }\n }\n\n if (this._multiple && showDropdownNext) {\n this._activeIndex = 0;\n }\n }\n\n private _onSpaceKeyDown() {\n if (!this.open) {\n this._toggleDropdown(true);\n return;\n }\n\n if (this.open && this._multiple && this._activeIndex > -1) {\n const opts = this.combobox ? this._filteredOptions : this._options;\n const {selected} = opts[this._activeIndex];\n\n opts[this._activeIndex].selected = !selected;\n this._selectedIndexes = [];\n\n opts.forEach(({index, selected}) => {\n if (selected) {\n this._selectedIndexes.push(index);\n }\n });\n }\n }\n\n private _scrollActiveElementToTop() {\n this._listElement.scrollTop = Math.floor(this._activeIndex * OPT_HEIGHT);\n }\n\n private async _adjustOptionListScrollPos(direction: 'down' | 'up') {\n const numOpts = this.combobox\n ? this._filteredOptions.length\n : this._options.length;\n\n if (numOpts <= VISIBLE_OPTS) {\n return;\n }\n\n this._isHoverForbidden = true;\n window.addEventListener('mousemove', this._onMouseMove);\n\n if (!this._listElement) {\n await this.updateComplete;\n }\n\n const ulScrollTop = this._listElement.scrollTop;\n const liPosY = this._activeIndex * OPT_HEIGHT;\n\n if (direction === 'down') {\n if (liPosY + OPT_HEIGHT >= LIST_HEIGHT + ulScrollTop) {\n this._listElement.scrollTop =\n (this._activeIndex - (VISIBLE_OPTS - 1)) * OPT_HEIGHT;\n }\n }\n\n if (direction === 'up') {\n if (liPosY <= ulScrollTop - OPT_HEIGHT) {\n this._scrollActiveElementToTop();\n }\n }\n }\n\n protected _onArrowUpKeyDown(): void {\n if (this.open) {\n if (this._activeIndex <= 0) {\n return;\n }\n\n this._activeIndex -= 1;\n this._adjustOptionListScrollPos('up');\n }\n }\n\n protected _onArrowDownKeyDown(): void {\n if (this.open) {\n if (this.combobox && this.creatable && this._filteredOptions.length < 1) {\n this._isPlaceholderOptionActive = true;\n return;\n }\n\n if (this._activeIndex >= this._currentOptions.length - 1) {\n return;\n }\n\n this._activeIndex += 1;\n this._adjustOptionListScrollPos('down');\n }\n }\n\n private _onComponentKeyDown = (event: KeyboardEvent) => {\n if ([' ', 'ArrowUp', 'ArrowDown', 'Escape'].includes(event.key)) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n if (event.key === 'Enter') {\n this._onEnterKeyDown();\n }\n\n if (event.key === ' ') {\n this._onSpaceKeyDown();\n }\n\n if (event.key === 'Escape') {\n this._toggleDropdown(false);\n }\n\n if (event.key === 'ArrowUp') {\n this._onArrowUpKeyDown();\n }\n\n if (event.key === 'ArrowDown') {\n this._onArrowDownKeyDown();\n }\n };\n\n private _onComponentFocus = () => {\n this.focused = true;\n };\n\n private _onComponentBlur = () => {\n this.focused = false;\n };\n\n protected _onSlotChange(): void {\n this._setStateFromSlottedElements();\n this.requestUpdate();\n }\n\n protected _onComboboxInputFocus(ev: FocusEvent): void {\n (ev.target as HTMLInputElement).select();\n }\n\n protected _onComboboxInputInput(ev: InputEvent): void {\n this._filterPattern = (ev.target as HTMLInputElement).value;\n this._activeIndex = -1;\n this._toggleDropdown(true);\n }\n\n protected _onComboboxInputClick(): void {\n this._toggleDropdown(true);\n }\n\n protected _renderOptions(): TemplateResult | TemplateResult[] {\n return [];\n }\n\n protected _renderPlaceholderOption() {\n if (!this.combobox) {\n return nothing;\n }\n\n if (this.creatable) {\n return html`<li\n class=${classMap({\n option: true,\n placeholder: true,\n active: this._isPlaceholderOptionActive,\n })}\n @mouseout=${this._onPlaceholderOptionMouseOut}\n >\n Add \"${this._filterPattern}\"\n </li>`;\n } else {\n return html`<li class=\"no-options\">No options</li>`;\n }\n }\n\n private _renderDescription() {\n if (!this._options[this._activeIndex]) {\n return nothing;\n }\n\n const {description} = this._options[this._activeIndex];\n\n return description\n ? html`<div class=\"description\">${description}</div>`\n : nothing;\n }\n\n protected _renderSelectFace(): TemplateResult {\n return html`${nothing}`;\n }\n\n protected _renderComboboxFace(): TemplateResult {\n return html`${nothing}`;\n }\n\n protected _renderDropdownControls(): TemplateResult {\n return html`${nothing}`;\n }\n\n private _renderDropdown() {\n const classes = classMap({\n dropdown: true,\n multiple: this._multiple,\n });\n\n return html`\n <div class=${classes}>\n ${this.position === 'above' ? this._renderDescription() : nothing}\n ${this._renderOptions()} ${this._renderDropdownControls()}\n ${this.position === 'below' ? this._renderDescription() : nothing}\n </div>\n `;\n }\n\n override render(): TemplateResult {\n return html`\n <slot class=\"main-slot\" @slotchange=${this._onSlotChange}></slot>\n ${this.combobox ? this._renderComboboxFace() : this._renderSelectFace()}\n ${this.open ? this._renderDropdown() : nothing}\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"vscode-select-base.js","sourceRoot":"","sources":["../../../src/includes/vscode-select/vscode-select-base.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, render, nothing, TemplateResult, PropertyValues} from 'lit';\nimport {property, query, queryAssignedElements, state} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {repeat} from 'lit/directives/repeat.js';\nimport '../../vscode-button/index.js';\nimport '../../vscode-option/index.js';\nimport {VscodeOption} from '../../vscode-option/index.js';\nimport type {InternalOption, Option, SearchMethod} from './types.js';\nimport {\n filterOptionsByPattern,\n findNextSelectableOptionIndex,\n findPrevSelectableOptionIndex,\n highlightRanges,\n} from './helpers.js';\nimport {VscElement} from '../VscElement.js';\nimport {chevronDownIcon} from './template-elements.js';\n\nconst VISIBLE_OPTS = 10;\nconst OPT_HEIGHT = 22;\n\n/**\n * @cssprop --dropdown-z-index - workaround for dropdown z-index issues\n */\nexport class VscodeSelectBase extends VscElement {\n /** @internal */\n @property({type: String, reflect: true, attribute: 'aria-expanded'})\n override ariaExpanded = 'false';\n\n @property({type: Boolean, reflect: true})\n creatable = false;\n\n /**\n * Options can be filtered by typing into a text input field.\n */\n @property({type: Boolean, reflect: true})\n combobox = false;\n\n /**\n * The element cannot be used and is not focusable.\n */\n @property({type: Boolean, reflect: true})\n set disabled(newState: boolean) {\n this._disabled = newState;\n this.ariaDisabled = newState ? 'true' : 'false';\n\n if (newState === true) {\n this._originalTabIndex = this.tabIndex;\n this.tabIndex = -1;\n } else {\n this.tabIndex = this._originalTabIndex ?? 0;\n this._originalTabIndex = undefined;\n }\n\n this.requestUpdate();\n }\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n * Sets the invalid state manually.\n */\n @property({type: Boolean, reflect: true})\n invalid = false;\n\n /**\n * Search method in the filtered list within the combobox mode.\n *\n * - contains - The list item includes the searched pattern at any position.\n * - fuzzy - The list item contains the letters of the search pattern in the same order, but at any position.\n * - startsWith - The search pattern matches the beginning of the searched text.\n * - startsWithPerTerm - The search pattern matches the beginning of any word in the searched text.\n *\n * @default 'fuzzy'\n */\n @property()\n set filter(val: 'contains' | 'fuzzy' | 'startsWith' | 'startsWithPerTerm') {\n const validValues: SearchMethod[] = [\n 'contains',\n 'fuzzy',\n 'startsWith',\n 'startsWithPerTerm',\n ];\n\n if (validValues.includes(val as SearchMethod)) {\n this._filter = val as SearchMethod;\n } else {\n this._filter = 'fuzzy';\n console.warn(\n `[VSCode Webview Elements] Invalid filter: \"${val}\", fallback to default. Valid values are: \"contains\", \"fuzzy\", \"startsWith\", \"startsWithPerm\".`,\n this\n );\n }\n }\n get filter(): 'contains' | 'fuzzy' | 'startsWith' | 'startsWithPerTerm' {\n return this._filter;\n }\n\n /**\n * Its value is true when element is focused.\n */\n @property({type: Boolean, reflect: true})\n focused = false;\n\n /**\n * Toggle the dropdown visibility.\n */\n @property({type: Boolean, reflect: true})\n open = false;\n\n /**\n * @attr [options=[]]\n * @type {Option[]}\n */\n @property({type: Array})\n set options(opts: Option[]) {\n this._options = opts.map((op, index) => ({...op, index}));\n }\n get options(): Option[] {\n return this._options.map(\n ({label, value, description, selected, disabled}) => ({\n label,\n value,\n description,\n selected,\n disabled,\n })\n );\n }\n\n /**\n * Position of the options list when visible.\n */\n @property({reflect: true})\n position: 'above' | 'below' = 'below';\n\n /** @internal */\n @property({type: Number, attribute: true, reflect: true})\n override tabIndex = 0;\n\n @queryAssignedElements({\n flatten: true,\n selector: 'vscode-option',\n })\n private _assignedOptions!: VscodeOption[];\n\n constructor() {\n super();\n this.addEventListener('vsc-option-state-change', (ev) => {\n ev.stopPropagation();\n this._setStateFromSlottedElements();\n this.requestUpdate();\n });\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('keydown', this._onComponentKeyDown);\n this.addEventListener('focus', this._onComponentFocus);\n this.addEventListener('blur', this._onComponentBlur);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('keydown', this._onComponentKeyDown);\n this.removeEventListener('focus', this._onComponentFocus);\n this.removeEventListener('blur', this._onComponentBlur);\n }\n\n protected _firstUpdateCompleted = false;\n\n protected override firstUpdated(_changedProperties: PropertyValues): void {\n this._firstUpdateCompleted = true;\n }\n\n protected override willUpdate(changedProperties: PropertyValues): void {\n if (changedProperties.has('required') && this._firstUpdateCompleted) {\n this._manageRequired();\n }\n }\n\n @state()\n protected _activeIndex = -1;\n\n @state()\n protected _currentDescription = '';\n\n @state()\n protected _filter: SearchMethod = 'fuzzy';\n\n @state()\n protected get _filteredOptions(): InternalOption[] {\n if (!this.combobox || this._filterPattern === '') {\n return this._options;\n }\n\n return filterOptionsByPattern(\n this._options,\n this._filterPattern,\n this._filter\n );\n }\n\n @state()\n protected _filterPattern = '';\n\n @state()\n protected _selectedIndex = -1;\n\n @state()\n protected _selectedIndexes: number[] = [];\n\n @state()\n protected _options: InternalOption[] = [];\n\n @state()\n protected _value = '';\n\n @state()\n protected _values: string[] = [];\n\n @state()\n protected _listScrollTop = 0;\n\n @state()\n protected _isPlaceholderOptionActive = false;\n\n @query('.options')\n private _listElement!: HTMLUListElement;\n\n /** @internal */\n protected _multiple = false;\n\n /**\n * @internal\n * Quick-searchable map for searching a value in the options list.\n * Keys are the options values, values are the option indexes.\n */\n protected _valueOptionIndexMap: {[key: string]: number} = {};\n\n private _isHoverForbidden = false;\n private _disabled = false;\n private _originalTabIndex: number | undefined = undefined;\n\n protected get _currentOptions(): InternalOption[] {\n return this.combobox ? this._filteredOptions : this._options;\n }\n\n protected get _isSuggestedOptionVisible() {\n const filterPatternExistsAsOption =\n typeof this._valueOptionIndexMap[this._filterPattern] !== 'undefined';\n const filtered = this._filterPattern.length > 0;\n return this.combobox && !filterPatternExistsAsOption && filtered;\n }\n\n protected _manageRequired() {}\n\n protected _setStateFromSlottedElements() {\n const options: InternalOption[] = [];\n let nextIndex = 0;\n const optionElements = this._assignedOptions ?? [];\n const selectedIndexes: number[] = [];\n const values: string[] = [];\n this._valueOptionIndexMap = {};\n\n optionElements.forEach((el, i) => {\n const {innerText, description, disabled} = el;\n const value = typeof el.value === 'string' ? el.value : innerText.trim();\n const selected = el.selected ?? false;\n const op: InternalOption = {\n label: innerText.trim(),\n value,\n description,\n selected,\n index: nextIndex,\n disabled,\n };\n\n nextIndex = options.push(op);\n\n if (selected && !this._multiple) {\n this._activeIndex = i;\n }\n\n if (selected) {\n selectedIndexes.push(options.length - 1);\n values.push(value);\n }\n\n this._valueOptionIndexMap[op.value] = op.index;\n });\n\n this._options = options;\n\n if (selectedIndexes.length > 0) {\n this._selectedIndex = selectedIndexes[0];\n this._selectedIndexes = selectedIndexes;\n this._value = values[0];\n this._values = values;\n }\n\n if (!this._multiple && !this.combobox && selectedIndexes.length === 0) {\n this._selectedIndex = this._options.length > 0 ? 0 : -1;\n }\n }\n\n protected async _toggleDropdown(visible: boolean): Promise<void> {\n this.open = visible;\n this.ariaExpanded = String(visible);\n\n if (visible && !this._multiple && !this.combobox) {\n this._activeIndex = this._selectedIndex;\n\n if (this._activeIndex > VISIBLE_OPTS - 1) {\n await this.updateComplete;\n\n this._listElement.scrollTop = Math.floor(\n this._activeIndex * OPT_HEIGHT\n );\n }\n }\n\n if (visible) {\n window.addEventListener('click', this._onClickOutside);\n } else {\n window.removeEventListener('click', this._onClickOutside);\n }\n }\n\n protected _createSuggestedOption() {\n const nextSelectedIndex = this._options.length;\n const op = document.createElement('vscode-option');\n op.value = this._filterPattern;\n render(this._filterPattern, op);\n this.appendChild(op);\n\n return nextSelectedIndex;\n }\n\n protected _dispatchChangeEvent(): void {\n if (!this._multiple) {\n /** @deprecated */\n this.dispatchEvent(\n new CustomEvent('vsc-change', {\n detail: {\n selectedIndex: this._selectedIndex,\n value: this._value,\n },\n })\n );\n } else {\n /** @deprecated */\n this.dispatchEvent(\n new CustomEvent('vsc-change', {\n detail: {\n selectedIndexes: this._selectedIndexes,\n value: this._values,\n },\n })\n );\n }\n this.dispatchEvent(new Event('change'));\n this.dispatchEvent(new Event('input'));\n }\n\n protected async _createAndSelectSuggestedOption() {}\n\n protected _onFaceClick(): void {\n this._toggleDropdown(!this.open);\n\n if (this._multiple) {\n this._activeIndex = 0;\n }\n }\n\n private _onClickOutside = (event: MouseEvent): void => {\n const path = event.composedPath();\n const found = path.findIndex((et) => et === this);\n\n if (found === -1) {\n this._toggleDropdown(false);\n window.removeEventListener('click', this._onClickOutside);\n }\n };\n\n private _onMouseMove = () => {\n this._isHoverForbidden = false;\n window.removeEventListener('mousemove', this._onMouseMove);\n };\n\n private _toggleComboboxDropdown() {\n this._filterPattern = '';\n this._toggleDropdown(!this.open);\n\n if (this._multiple) {\n this._activeIndex = -1;\n }\n }\n\n protected _onComboboxButtonClick(): void {\n this._toggleComboboxDropdown();\n }\n\n protected _onComboboxButtonKeyDown(ev: KeyboardEvent): void {\n if (ev.key === 'Enter') {\n this._toggleComboboxDropdown();\n }\n }\n\n protected _onOptionMouseOver(ev: MouseEvent): void {\n if (this._isHoverForbidden) {\n return;\n }\n\n const el = ev.target as HTMLElement;\n\n if (!el.matches('.option')) {\n return;\n }\n\n if (el.matches('.placeholder')) {\n this._isPlaceholderOptionActive = true;\n this._activeIndex = -1;\n } else {\n this._isPlaceholderOptionActive = false;\n this._activeIndex = Number(\n this.combobox ? el.dataset.filteredIndex : el.dataset.index\n );\n }\n }\n\n protected _onPlaceholderOptionMouseOut() {\n this._isPlaceholderOptionActive = false;\n }\n\n protected _onEnterKeyDown(ev: KeyboardEvent): void {\n const clickedOnAcceptButton = ev?.composedPath\n ? ev\n .composedPath()\n .find((el) =>\n (el as HTMLElement).matches\n ? (el as HTMLElement).matches('vscode-button.button-accept')\n : false\n )\n : false;\n\n if (clickedOnAcceptButton) {\n return;\n }\n\n const list = this.combobox ? this._filteredOptions : this._options;\n const showDropdownNext = !this.open;\n\n this._toggleDropdown(showDropdownNext);\n\n if (\n !this._multiple &&\n !showDropdownNext &&\n this._selectedIndex !== this._activeIndex\n ) {\n this._selectedIndex =\n this._activeIndex > -1 ? list[this._activeIndex].index : -1;\n this._value =\n this._selectedIndex > -1\n ? this._options[this._selectedIndex].value\n : '';\n this._dispatchChangeEvent();\n }\n\n if (this.combobox) {\n if (this._isPlaceholderOptionActive) {\n this._createAndSelectSuggestedOption();\n } else {\n if (!this._multiple && !showDropdownNext) {\n this._selectedIndex =\n this._activeIndex > -1\n ? this._filteredOptions[this._activeIndex].index\n : -1;\n }\n\n if (!this._multiple && showDropdownNext) {\n this.updateComplete.then(() => {\n this._scrollActiveElementToTop();\n });\n }\n }\n }\n\n if (this._multiple && showDropdownNext) {\n this._activeIndex = 0;\n }\n }\n\n private _onSpaceKeyDown() {\n if (!this.open) {\n this._toggleDropdown(true);\n return;\n }\n\n if (this.open && this._multiple && this._activeIndex > -1) {\n const opts = this.combobox ? this._filteredOptions : this._options;\n const selectedOption = opts[this._activeIndex];\n const nextSelectedIndexes: number[] = [];\n\n this._options[selectedOption.index].selected = !selectedOption.selected;\n\n opts.forEach(({index}) => {\n const {selected} = this._options[index];\n\n if (selected) {\n nextSelectedIndexes.push(index);\n }\n });\n\n this._selectedIndexes = nextSelectedIndexes;\n }\n }\n\n private _scrollActiveElementToTop() {\n this._listElement.scrollTop = Math.floor(this._activeIndex * OPT_HEIGHT);\n }\n\n private async _adjustOptionListScrollPos(\n direction: 'down' | 'up',\n optionIndex: number\n ) {\n let numOpts = this.combobox\n ? this._filteredOptions.length\n : this._options.length;\n const suggestedOptionVisible = this._isSuggestedOptionVisible;\n\n if (suggestedOptionVisible) {\n numOpts += 1;\n }\n\n if (numOpts <= VISIBLE_OPTS) {\n return;\n }\n\n this._isHoverForbidden = true;\n window.addEventListener('mousemove', this._onMouseMove);\n\n const ulScrollTop = this._listElement.scrollTop;\n const liPosY = optionIndex * OPT_HEIGHT;\n\n const fullyVisible =\n liPosY >= ulScrollTop &&\n liPosY <= ulScrollTop + VISIBLE_OPTS * OPT_HEIGHT - OPT_HEIGHT;\n\n if (direction === 'down') {\n if (!fullyVisible) {\n this._listElement.scrollTop =\n optionIndex * OPT_HEIGHT - (VISIBLE_OPTS - 1) * OPT_HEIGHT;\n }\n }\n\n if (direction === 'up') {\n if (!fullyVisible) {\n this._listElement.scrollTop = Math.floor(\n this._activeIndex * OPT_HEIGHT\n );\n }\n }\n }\n\n protected _onArrowUpKeyDown(): void {\n if (this.open) {\n if (this._activeIndex <= 0 && !(this.combobox && this.creatable)) {\n return;\n }\n\n if (this._isPlaceholderOptionActive) {\n const optionIndex = this._currentOptions.length - 1;\n this._activeIndex = optionIndex;\n this._isPlaceholderOptionActive = false;\n } else {\n const currentOptions = this.combobox\n ? this._filteredOptions\n : this._options;\n\n const prevSelectable = findPrevSelectableOptionIndex(\n currentOptions,\n this._activeIndex\n );\n\n if (prevSelectable > -1) {\n this._activeIndex = prevSelectable;\n this._adjustOptionListScrollPos('up', prevSelectable);\n }\n }\n }\n }\n\n protected _onArrowDownKeyDown(): void {\n let numOpts = this.combobox\n ? this._filteredOptions.length\n : this._options.length;\n const currentOptions = this.combobox\n ? this._filteredOptions\n : this._options;\n const suggestedOptionVisible = this._isSuggestedOptionVisible;\n\n if (suggestedOptionVisible) {\n numOpts += 1;\n }\n\n if (this.open) {\n if (this._isPlaceholderOptionActive && this._activeIndex === -1) {\n return;\n }\n\n if (suggestedOptionVisible && this._activeIndex === numOpts - 2) {\n this._isPlaceholderOptionActive = true;\n this._adjustOptionListScrollPos('down', numOpts - 1);\n this._activeIndex = -1;\n } else if (this._activeIndex < numOpts - 1) {\n const nextSelectable = findNextSelectableOptionIndex(\n currentOptions,\n this._activeIndex\n );\n\n if (nextSelectable > -1) {\n this._activeIndex = nextSelectable;\n this._adjustOptionListScrollPos('down', nextSelectable);\n }\n }\n }\n }\n\n private _onComponentKeyDown = (event: KeyboardEvent) => {\n if ([' ', 'ArrowUp', 'ArrowDown', 'Escape'].includes(event.key)) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n if (event.key === 'Enter') {\n this._onEnterKeyDown(event);\n }\n\n if (event.key === ' ') {\n this._onSpaceKeyDown();\n }\n\n if (event.key === 'Escape') {\n this._toggleDropdown(false);\n }\n\n if (event.key === 'ArrowUp') {\n this._onArrowUpKeyDown();\n }\n\n if (event.key === 'ArrowDown') {\n this._onArrowDownKeyDown();\n }\n };\n\n private _onComponentFocus = () => {\n this.focused = true;\n };\n\n private _onComponentBlur = () => {\n this.focused = false;\n };\n\n protected _onSlotChange(): void {\n this._setStateFromSlottedElements();\n this.requestUpdate();\n }\n\n protected _onComboboxInputFocus(ev: FocusEvent): void {\n (ev.target as HTMLInputElement).select();\n }\n\n protected _onComboboxInputInput(ev: InputEvent): void {\n this._filterPattern = (ev.target as HTMLInputElement).value;\n this._activeIndex = -1;\n this._toggleDropdown(true);\n }\n\n protected _onComboboxInputClick(): void {\n this._toggleDropdown(true);\n }\n\n protected _onOptionClick(_ev: MouseEvent) {\n return;\n }\n\n protected _renderOptions(): TemplateResult | TemplateResult[] {\n const list = this.combobox ? this._filteredOptions : this._options;\n\n return html`\n <ul\n class=\"options\"\n @click=${this._onOptionClick}\n @mouseover=${this._onOptionMouseOver}\n >\n ${repeat(\n list,\n (op) => op.index,\n (op, index) => {\n const optionClasses = {\n active: index === this._activeIndex && !op.disabled,\n disabled: op.disabled,\n option: true,\n selected: op.selected,\n };\n\n const checkboxClasses = {\n 'checkbox-icon': true,\n checked: op.selected,\n };\n\n const labelText =\n (op.ranges?.length ?? 0 > 0)\n ? highlightRanges(op.label, op.ranges ?? [])\n : op.label;\n\n return html`\n <li\n class=${classMap(optionClasses)}\n data-index=${op.index}\n data-filtered-index=${index}\n >\n ${this._multiple\n ? html`<span class=${classMap(checkboxClasses)}></span\n ><span class=\"option-label\">${labelText}</span>`\n : labelText}\n </li>\n `;\n }\n )}\n ${this._renderPlaceholderOption(list.length < 1)}\n </ul>\n `;\n }\n\n protected _renderPlaceholderOption(isListEmpty: boolean) {\n if (!this.combobox) {\n return nothing;\n }\n\n if (this._valueOptionIndexMap[this._filterPattern]) {\n return nothing;\n }\n\n if (this.creatable && this._filterPattern.length > 0) {\n return html`<li\n class=${classMap({\n option: true,\n placeholder: true,\n active: this._isPlaceholderOptionActive,\n })}\n @mouseout=${this._onPlaceholderOptionMouseOut}\n >\n Add \"${this._filterPattern}\"\n </li>`;\n } else {\n return isListEmpty\n ? html`<li class=\"no-options\">No options</li>`\n : nothing;\n }\n }\n\n private _renderDescription() {\n if (!this._options[this._activeIndex]) {\n return nothing;\n }\n\n const {description} = this._options[this._activeIndex];\n\n return description\n ? html`<div class=\"description\">${description}</div>`\n : nothing;\n }\n\n protected _renderSelectFace(): TemplateResult {\n return html`${nothing}`;\n }\n\n private _renderMultiSelectLabel() {\n switch (this._selectedIndexes.length) {\n case 0:\n return html`<span class=\"select-face-badge no-item\"\n >No items selected</span\n >`;\n case 1:\n return html`<span class=\"select-face-badge\">1 item selected</span>`;\n default:\n return html`<span class=\"select-face-badge\"\n >${this._selectedIndexes.length} items selected</span\n >`;\n }\n }\n\n protected _renderComboboxFace(): TemplateResult {\n const inputVal =\n this._selectedIndex > -1 ? this._options[this._selectedIndex]?.label : '';\n\n return html`\n <div class=\"combobox-face face\">\n ${this._multiple ? this._renderMultiSelectLabel() : nothing}\n <input\n class=\"combobox-input\"\n spellcheck=\"false\"\n type=\"text\"\n autocomplete=\"off\"\n .value=${inputVal}\n @focus=${this._onComboboxInputFocus}\n @input=${this._onComboboxInputInput}\n @click=${this._onComboboxInputClick}\n >\n <button\n class=\"combobox-button\"\n type=\"button\"\n @click=${this._onComboboxButtonClick}\n @keydown=${this._onComboboxButtonKeyDown}\n >\n ${chevronDownIcon}\n </button>\n </div>\n `;\n }\n\n protected _renderDropdownControls(): TemplateResult {\n return html`${nothing}`;\n }\n\n private _renderDropdown() {\n const classes = classMap({\n dropdown: true,\n multiple: this._multiple,\n });\n\n return html`\n <div class=${classes}>\n ${this.position === 'above' ? this._renderDescription() : nothing}\n ${this._renderOptions()} ${this._renderDropdownControls()}\n ${this.position === 'below' ? this._renderDescription() : nothing}\n </div>\n `;\n }\n\n override render(): TemplateResult {\n return html`\n <slot class=\"main-slot\" @slotchange=${this._onSlotChange}></slot>\n ${this.combobox ? this._renderComboboxFace() : this._renderSelectFace()}\n ${this.open ? this._renderDropdown() : nothing}\n `;\n }\n}\n"]}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { TemplateResult } from 'lit';
|
|
2
2
|
import { VscodeSelectBase } from '../includes/vscode-select/vscode-select-base.js';
|
|
3
3
|
import { AssociatedFormControl } from '../includes/AssociatedFormControl.js';
|
|
4
|
+
export type VscMultiSelectCreateOptionEvent = CustomEvent<{
|
|
5
|
+
value: string;
|
|
6
|
+
}>;
|
|
4
7
|
/**
|
|
5
8
|
* Allows to select multiple items from a list of options.
|
|
6
9
|
*
|
|
@@ -65,23 +68,25 @@ export declare class VscodeMultiSelect extends VscodeSelectBase implements Assoc
|
|
|
65
68
|
formStateRestoreCallback(state: FormData, _mode: 'restore' | 'autocomplete'): void;
|
|
66
69
|
private _faceElement;
|
|
67
70
|
private _setDefaultValue;
|
|
68
|
-
|
|
71
|
+
protected _manageRequired(): void;
|
|
69
72
|
private _setFormValue;
|
|
70
73
|
private _requestedValueToSetLater;
|
|
74
|
+
protected _createAndSelectSuggestedOption(): Promise<void>;
|
|
71
75
|
protected _onSlotChange(): void;
|
|
72
|
-
|
|
76
|
+
protected _onOptionClick: (ev: MouseEvent) => void;
|
|
73
77
|
private _onMultiAcceptClick;
|
|
74
78
|
private _onMultiDeselectAllClick;
|
|
75
79
|
private _onMultiSelectAllClick;
|
|
76
80
|
private _renderLabel;
|
|
77
81
|
protected _renderSelectFace(): TemplateResult;
|
|
78
|
-
protected _renderComboboxFace(): TemplateResult;
|
|
79
|
-
protected _renderOptions(): TemplateResult;
|
|
80
82
|
protected _renderDropdownControls(): TemplateResult;
|
|
81
83
|
}
|
|
82
84
|
declare global {
|
|
83
85
|
interface HTMLElementTagNameMap {
|
|
84
86
|
'vscode-multi-select': VscodeMultiSelect;
|
|
85
87
|
}
|
|
88
|
+
interface GlobalEventHandlersEventMap {
|
|
89
|
+
'vsc-multi-select-create-option': VscMultiSelectCreateOptionEvent;
|
|
90
|
+
}
|
|
86
91
|
}
|
|
87
92
|
//# sourceMappingURL=vscode-multi-select.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vscode-multi-select.d.ts","sourceRoot":"","sources":["../../src/vscode-multi-select/vscode-multi-select.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"vscode-multi-select.d.ts","sourceRoot":"","sources":["../../src/vscode-multi-select/vscode-multi-select.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,cAAc,EAAC,MAAM,KAAK,CAAC;AAI9D,OAAO,EAAC,gBAAgB,EAAC,MAAM,iDAAiD,CAAC;AAEjF,OAAO,EAAC,qBAAqB,EAAC,MAAM,sCAAsC,CAAC;AAE3E,MAAM,MAAM,+BAA+B,GAAG,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBACa,iBACX,SAAQ,gBACR,YAAW,qBAAqB;IAEhC,OAAgB,MAAM,4BAAU;IAEhC,gBAAgB;IAChB,OAAgB,iBAAiB,EAAE,cAAc,CAG/C;IAEF,MAAM,CAAC,cAAc,UAAQ;IAG7B,YAAY,EAAE,MAAM,EAAE,CAAM;IAG5B,QAAQ,UAAS;IAGjB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAErC,IACI,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,EAahC;IACD,IAAI,eAAe,IAAI,MAAM,EAAE,CAE9B;IAED,IACI,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EA4B/B;IACD,IAAI,KAAK,IAAI,MAAM,EAAE,CAEpB;IAED,IAAI,IAAI,2BAEP;IAED,gBAAgB;IAChB,IAAI,IAAI,WAEP;IAED,IAAI,QAAQ,IAAI,aAAa,CAE5B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,IAAI,YAAY,YAEf;IAED,aAAa,IAAI,OAAO;IAIxB,cAAc,IAAI,OAAO;IAIzB,OAAO,CAAC,UAAU,CAAmB;;IAS5B,iBAAiB,IAAI,IAAI;IASlC,gBAAgB;IAChB,iBAAiB,IAAI,IAAI;IAMzB,gBAAgB;IAChB,wBAAwB,CACtB,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,SAAS,GAAG,cAAc,GAChC,IAAI;IASP,OAAO,CAAC,YAAY,CAAkB;IAEtC,OAAO,CAAC,gBAAgB;cAOL,eAAe;IAelC,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,yBAAyB,CAAgB;cAExB,+BAA+B;cAiBrC,aAAa,IAAI,IAAI;IAgBxC,UAAmB,cAAc,GAAI,IAAI,UAAU,UA8CjD;IAEF,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,YAAY;cAeD,iBAAiB,IAAI,cAAc;cAYnC,uBAAuB,IAAI,cAAc;CA+B7D;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qBAAqB,EAAE,iBAAiB,CAAC;KAC1C;IAED,UAAU,2BAA2B;QACnC,gCAAgC,EAAE,+BAA+B,CAAC;KACnE;CACF"}
|