@dosgato/dialog 0.0.57 → 0.0.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { ActiveStore } from '@txstate-mws/svelte-store';
1
+ import { ActiveStore, Store } from '@txstate-mws/svelte-store';
2
2
  import type { IconifyIcon } from '@iconify/svelte';
3
3
  import type { SvelteComponent } from 'svelte';
4
4
  export declare const TREE_STORE_CONTEXT: {};
@@ -18,7 +18,6 @@ export interface ITreeStore<T extends TreeItemFromDB> {
18
18
  loading?: boolean;
19
19
  rootItems?: TypedTreeItem<T>[];
20
20
  itemsById: Record<string, TypedTreeItem<T> | undefined>;
21
- filter?: string;
22
21
  focused?: TypedTreeItem<T>;
23
22
  selected: Map<string, TypedTreeItem<T>>;
24
23
  selectedItems: TypedTreeItem<T>[];
@@ -51,7 +50,7 @@ export declare class TreeStore<T extends TreeItemFromDB> extends ActiveStore<ITr
51
50
  fetchChildren: FetchChildrenFn<T>;
52
51
  treeElement?: HTMLElement;
53
52
  rootItems: import("@txstate-mws/svelte-store").DerivedStore<TypedTreeItem<T>[] | undefined, ITreeStore<T>>;
54
- filterTerm: import("@txstate-mws/svelte-store").DerivedStore<string | undefined, ITreeStore<T>>;
53
+ filterTerm: Store<string>;
55
54
  filteredRootItems: import("svelte/store").Readable<TypedTreeItem<T>[] | undefined>;
56
55
  draggable: import("@txstate-mws/svelte-store").DerivedStore<boolean, ITreeStore<T>>;
57
56
  dragging: import("@txstate-mws/svelte-store").DerivedStore<boolean, ITreeStore<T>>;
@@ -83,7 +82,7 @@ export declare class TreeStore<T extends TreeItemFromDB> extends ActiveStore<ITr
83
82
  trigger(): void;
84
83
  fetch(item?: TypedTreeItem<T>): Promise<TypedTreeItem<T>[]>;
85
84
  refresh(item?: TypedTreeItem<T>, skipNotify?: boolean): Promise<void>;
86
- filter(term: string | undefined, notify?: boolean): void;
85
+ filter(term: string | undefined): void;
87
86
  focus(item: TypedTreeItem<T> | undefined, notify?: boolean): void;
88
87
  select(item: TypedTreeItem<T>, { clear, notify, toggle }: {
89
88
  clear?: boolean | undefined;
@@ -1,12 +1,12 @@
1
- import { ActiveStore, derivedStore } from '@txstate-mws/svelte-store';
1
+ import { ActiveStore, derivedStore, Store } from '@txstate-mws/svelte-store';
2
2
  import { derived } from 'svelte/store';
3
- import { hashid, isBlank, keyby, toArray } from 'txstate-utils';
3
+ import { hashid, isBlank, isNotBlank, keyby, toArray } from 'txstate-utils';
4
4
  export const TREE_STORE_CONTEXT = {};
5
5
  export class TreeStore extends ActiveStore {
6
6
  fetchChildren;
7
7
  treeElement;
8
8
  rootItems = derivedStore(this, 'rootItems');
9
- filterTerm = derivedStore(this, 'filter');
9
+ filterTerm = new Store('');
10
10
  filteredRootItems = derived([this.rootItems, this.filterTerm], ([rootItems, filter]) => {
11
11
  if (!this.searchableFn || !rootItems?.length || isBlank(filter))
12
12
  return this.value.rootItems;
@@ -142,10 +142,8 @@ export class TreeStore extends ActiveStore {
142
142
  await this.refreshPromise;
143
143
  this.refreshPromise = undefined;
144
144
  }
145
- filter(term, notify = true) {
146
- this.value.filter = term?.toLocaleLowerCase();
147
- if (notify)
148
- this.trigger();
145
+ filter(term) {
146
+ this.filterTerm.set(term?.toLocaleLowerCase() ?? '');
149
147
  }
150
148
  focus(item, notify = true) {
151
149
  this.value.focused = item;
@@ -380,12 +378,11 @@ export const lazyObserver = typeof IntersectionObserver !== 'undefined'
380
378
  }, { rootMargin: '500px' })
381
379
  : undefined;
382
380
  export function transformSearchable(searchable) {
383
- console.log('transformSearchable', searchable);
384
381
  return searchable == null
385
382
  ? undefined
386
383
  : (typeof searchable === 'function'
387
- ? (itm) => toArray(searchable(itm))
384
+ ? (itm) => toArray(searchable(itm)).filter(isNotBlank)
388
385
  : (Array.isArray(searchable)
389
- ? (itm) => searchable.map(k => itm[k])
390
- : (itm) => [itm[searchable]]));
386
+ ? (itm) => searchable.map(k => itm[k]).filter(isNotBlank)
387
+ : (itm) => isNotBlank(itm[searchable]) ? [itm[searchable]] : []));
391
388
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dosgato/dialog",
3
3
  "description": "A component library for building forms that edit a JSON document.",
4
- "version": "0.0.57",
4
+ "version": "0.0.58",
5
5
  "scripts": {
6
6
  "prepublishOnly": "svelte-package",
7
7
  "dev": "vite dev --force",