@rokkit/core 1.0.0-next.37 → 1.0.0-next.38

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rokkit/core",
3
- "version": "1.0.0-next.37",
3
+ "version": "1.0.0-next.38",
4
4
  "description": "Core components, actions and stores for svelte apps.",
5
5
  "author": "Jerry Thomas <me@jerrythomas.name>",
6
6
  "license": "MIT",
@@ -15,8 +15,6 @@
15
15
  "devDependencies": {
16
16
  "@sveltejs/vite-plugin-svelte": "^2.4.3",
17
17
  "@testing-library/svelte": "^4.0.3",
18
- "@vitest/coverage-c8": "^0.33.0",
19
- "@vitest/coverage-istanbul": "^0.33.0",
20
18
  "@vitest/coverage-v8": "^0.33.0",
21
19
  "@vitest/ui": "~0.33.0",
22
20
  "jsdom": "^22.1.0",
@@ -25,7 +23,7 @@
25
23
  "validators": "latest",
26
24
  "vite": "^4.4.7",
27
25
  "vitest": "~0.33.0",
28
- "shared-config": "1.0.0-next.37"
26
+ "shared-config": "1.0.0-next.38"
29
27
  },
30
28
  "files": [
31
29
  "src/**/*.js",
package/src/constants.js CHANGED
@@ -52,10 +52,10 @@ export const defaultIcons = [
52
52
  'state-success',
53
53
  'state-info',
54
54
  'state-unknown',
55
- 'validity-failed',
56
- 'validity-warning',
57
- 'validity-passed',
58
- 'validity-unknown'
55
+ 'badge-fail',
56
+ 'badge-warn',
57
+ 'badge-pass',
58
+ 'badge-unknown'
59
59
  ]
60
60
 
61
61
  export const defaultOptions = {
package/src/mapping.js CHANGED
@@ -38,3 +38,49 @@ export function getValue(node, fields = defaultFields) {
38
38
  export function getText(node, fields = defaultFields) {
39
39
  return typeof node === 'object' && node !== null ? node[fields.text] : node
40
40
  }
41
+
42
+ /**
43
+ * Check if the current item is a parent
44
+ *
45
+ * @param {*} item
46
+ * @param {import('./types').FieldMapping} fields
47
+ * @returns {boolean}
48
+ */
49
+ export function hasChildren(item, fields) {
50
+ return (
51
+ item != null &&
52
+ typeof item === 'object' &&
53
+ fields.children in item &&
54
+ Array.isArray(item[fields.children])
55
+ )
56
+ }
57
+
58
+ /**
59
+ * Check if the current item is a parent and is expanded
60
+ *
61
+ * @param {*} item
62
+ * @param {import('./types').FieldMapping} fields
63
+ * @returns {boolean}
64
+ */
65
+ export function isExpanded(item, fields) {
66
+ if (item == null) return false
67
+ if (!hasChildren(item, fields)) return false
68
+ if (fields.isOpen in item) {
69
+ return item[fields.isOpen]
70
+ }
71
+ return false
72
+ }
73
+
74
+ /**
75
+ * Verify if at least one item has children
76
+ *
77
+ * @param {Array<*>} items
78
+ * @param {import('./types').FieldMapping} fields
79
+ * @returns {boolean}
80
+ */
81
+ export function isNested(items, fields) {
82
+ for (let i = 0; i < items.length; i++) {
83
+ if (hasChildren(items[i], fields)) return true
84
+ }
85
+ return false
86
+ }
package/src/utils.js CHANGED
@@ -84,3 +84,8 @@ export function iconShortcuts(icons, collection, variants) {
84
84
 
85
85
  return shortcuts
86
86
  }
87
+
88
+ export function scaledPath(size, x) {
89
+ if (Array.isArray(x)) return x.map((x) => scaledPath(size, x)).join(' ')
90
+ return typeof x === 'number' ? x * size : x
91
+ }