svelte-common 4.19.0 → 4.19.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/README.md CHANGED
@@ -34,6 +34,8 @@ or the [live example](https://arlac77.github.io/components/svelte-common/example
34
34
  * [Parameters](#parameters-2)
35
35
  * [sorter](#sorter)
36
36
  * [Parameters](#parameters-3)
37
+ * [keyPrefixStore](#keyprefixstore)
38
+ * [Parameters](#parameters-4)
37
39
 
38
40
  ## initializeServiceWorker
39
41
 
@@ -79,6 +81,17 @@ Generate a sort function for a given sort-by set.
79
81
 
80
82
  Returns **[Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)** sorter
81
83
 
84
+ ## keyPrefixStore
85
+
86
+ Create a store where all the object keys are prefixed.
87
+
88
+ ### Parameters
89
+
90
+ * `store` **WriteableStore** 
91
+ * `prefix` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
92
+
93
+ Returns **WriteableStore** 
94
+
82
95
  # install
83
96
 
84
97
  With [npm](http://npmjs.org) do:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svelte-common",
3
- "version": "4.19.0",
3
+ "version": "4.19.3",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -39,10 +39,10 @@
39
39
  "@semantic-release/commit-analyzer": "^9.0.2",
40
40
  "@semantic-release/exec": "^6.0.3",
41
41
  "@semantic-release/release-notes-generator": "^10.0.3",
42
- "@sveltejs/vite-plugin-svelte": "^1.0.3",
42
+ "@sveltejs/vite-plugin-svelte": "^1.0.4",
43
43
  "ava": "^4.3.3",
44
44
  "documentation": "^14.0.0",
45
- "mf-styling": "^1.7.7",
45
+ "mf-styling": "^1.7.8",
46
46
  "npm-pkgbuild": "^10.14.8",
47
47
  "semantic-release": "^19.0.5",
48
48
  "stylelint": "^14.11.0",
@@ -0,0 +1,9 @@
1
+ <script>
2
+ import { getContext } from "svelte";
3
+
4
+ export let id;
5
+
6
+ const tabs = getContext("TABS");
7
+ </script>
8
+
9
+ <slot />
@@ -0,0 +1,9 @@
1
+ <script>
2
+ import { setContext } from "svelte";
3
+
4
+ const tabs = {};
5
+
6
+ setContext("TABS", tabs);
7
+ </script>
8
+
9
+ <slot />
package/src/index.svelte CHANGED
@@ -14,6 +14,8 @@
14
14
  import Collapse from "./components/Collapse.svelte";
15
15
  import Modal from "./components/Modal.svelte";
16
16
  import Peer from "./components/Peer.svelte";
17
+ import Tabs from "./components/Tabs.svelte";
18
+ import Tab from "./components/Tab.svelte";
17
19
 
18
20
  export {
19
21
  Bytes,
@@ -30,7 +32,9 @@
30
32
  SessionDetails,
31
33
  ServerDetails,
32
34
  ServiceWorkerDetails,
33
- ServiceWorkerRegistrationDetails
35
+ ServiceWorkerRegistrationDetails,
36
+ Tabs,
37
+ Tab
34
38
  };
35
39
 
36
40
  export {
@@ -50,6 +54,6 @@
50
54
  SORT_ASCENDING,
51
55
  SORT_DESCENDING
52
56
  } from "./sorting.mjs";
53
- export { filter } from "./filter.mjs";
57
+ export { filter } from "./filter.mjs";
54
58
  export { initializeServiceWorker } from "./service-worker.mjs";
55
59
  </script>
package/src/sorting.mjs CHANGED
@@ -22,7 +22,7 @@ export function toggleOrderBy(orderBy) {
22
22
  /**
23
23
  * Add sortable toggle button with img element to a node.
24
24
  * Synchronizes store value with node "aria-sort" attribute.
25
- * @param {Node} th header node
25
+ * @param {Node} the header node
26
26
  * @param {WritableStore} to keep in sync with sorting properties
27
27
  */
28
28
  export function sortable(th, store) {
@@ -31,9 +31,9 @@ export function sortable(th, store) {
31
31
  );
32
32
 
33
33
  const button = document.createElement("button");
34
- button.setAttribute("aria-label", `sortable ${th.id}`);
34
+ button.setAttribute("aria-label", `toggle sort of ${th.id}`);
35
35
  const img = document.createElement("img");
36
- img.setAttribute("alt", "sorting order indicator");
36
+ //img.setAttribute("alt", "sorting order indicator");
37
37
 
38
38
  button.appendChild(img);
39
39
 
@@ -53,7 +53,7 @@ export function sortable(th, store) {
53
53
  }
54
54
  }
55
55
 
56
- if (sort == SORT_NONE) {
56
+ if (sort === SORT_NONE) {
57
57
  delete orderBy[peer.id];
58
58
  } else {
59
59
  orderBy[peer.id] = sort;
@@ -87,6 +87,7 @@ export function sorter(sortBy, getters = {}) {
87
87
  return (a, b) => {
88
88
  let av = getter(a);
89
89
  let bv = getter(b);
90
+
90
91
  if (av === undefined) {
91
92
  return -rev;
92
93
  }
@@ -96,11 +97,17 @@ export function sorter(sortBy, getters = {}) {
96
97
 
97
98
  switch (typeof av) {
98
99
  case "string":
99
- return typeof bv === "string" ? av.localeCompare(bv) : rev;
100
+ switch (typeof bv) {
101
+ case "number":
102
+ case "string":
103
+ return av.localeCompare(bv);
104
+ }
100
105
  }
101
106
 
102
107
  if (av instanceof Date) {
103
108
  av = av.getTime();
109
+ }
110
+ if (bv instanceof Date) {
104
111
  bv = bv.getTime();
105
112
  }
106
113