@txstate-mws/svelte-components 1.5.10 → 1.5.12

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.
@@ -62,6 +62,7 @@ export let menuItemHilitedClass = '';
62
62
  export let menuItemSelectedClass = '';
63
63
  export let menuDividerClass = '';
64
64
  export let hideSelectedIndicator = false;
65
+ export let hideEmptyText = false;
65
66
  export let usemenurole = false;
66
67
  let menuelement;
67
68
  const itemelements = [];
@@ -118,7 +119,7 @@ function isSelectable(itm) {
118
119
  return 'value' in itm && !itm.disabled && !hiddenItem(itm);
119
120
  }
120
121
  function onkeydown(e) {
121
- if (modifierKey(e) || loading)
122
+ if (modifierKey(e))
122
123
  return;
123
124
  if (e.key === 'ArrowDown') {
124
125
  e.preventDefault();
@@ -207,8 +208,7 @@ let blurTimer;
207
208
  function onbuttonclick(e) {
208
209
  e.preventDefault();
209
210
  cancelAnimationFrame(blurTimer);
210
- if (!loading)
211
- menushown = !menushown;
211
+ menushown = !menushown;
212
212
  }
213
213
  function onblur(e) {
214
214
  // tabindex=-1 on our menu elements means e.relatedTarget will be set
@@ -250,6 +250,7 @@ function reactToButtonElement(buttonelement) {
250
250
  buttonelement.addEventListener('click', onbuttonclick);
251
251
  buttonelement.addEventListener('keydown', onkeydown);
252
252
  buttonelement.addEventListener('blur', onblur);
253
+ buttonelement.addEventListener('input', oninput);
253
254
  const parents = getScrollParents(buttonelement);
254
255
  for (const parent of [...parents, undefined]) {
255
256
  const observer = new IntersectionObserver((entries) => {
@@ -276,7 +277,7 @@ const onclick = (item) => (e) => {
276
277
  $: hasSelected = showSelected && !hideSelectedIndicator && items.some(itm => 'value' in itm && itm.value === value);
277
278
  </script>
278
279
 
279
- {#if menushown}
280
+ {#if menushown && !loading && (hasMeaningfulItems || !hideEmptyText)}
280
281
  <div use:portal={usePortal === true ? undefined : (usePortal || null)}
281
282
  use:glue={{ target: buttonelement, align, cover, gap, adjustparentheight, store: computedalign }}
282
283
  class={menuContainerClass}>
@@ -43,6 +43,7 @@ declare const __propDef: {
43
43
  menuItemSelectedClass?: string | undefined;
44
44
  menuDividerClass?: string | undefined;
45
45
  hideSelectedIndicator?: boolean | undefined;
46
+ hideEmptyText?: boolean | undefined;
46
47
  usemenurole?: boolean | undefined;
47
48
  };
48
49
  events: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@txstate-mws/svelte-components",
3
- "version": "1.5.10",
3
+ "version": "1.5.12",
4
4
  "description": "Svelte components that are generically useful.",
5
5
  "scripts": {
6
6
  "prepublishOnly": "svelte-package",