@budibase/bbui 3.23.17 → 3.23.19
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/dist/bbui.mjs +1 -1
- package/dist/{easymde-d6ea91c6.mjs → easymde-b5746de8.mjs} +1 -1
- package/dist/{index-a6f702c2.mjs → index-7d20fa60.mjs} +1686 -1639
- package/package.json +2 -2
- package/src/Form/Combobox.svelte +45 -22
- package/src/Form/Core/Picker.svelte +5 -2
- package/src/Form/Core/Select.svelte +2 -0
- package/src/Form/Select.svelte +2 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@budibase/bbui",
|
|
3
3
|
"description": "A UI solution used in the different Budibase projects.",
|
|
4
|
-
"version": "3.23.
|
|
4
|
+
"version": "3.23.19",
|
|
5
5
|
"license": "MPL-2.0",
|
|
6
6
|
"svelte": "src/index.ts",
|
|
7
7
|
"module": "dist/bbui.mjs",
|
|
@@ -106,5 +106,5 @@
|
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
},
|
|
109
|
-
"gitHead": "
|
|
109
|
+
"gitHead": "f7d6fb730b00e7e5cd91883b5b1b15a7f6ecda1e"
|
|
110
110
|
}
|
package/src/Form/Combobox.svelte
CHANGED
|
@@ -1,36 +1,59 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import Field from "./Field.svelte"
|
|
3
|
-
import Combobox from "./Core/Combobox.svelte"
|
|
1
|
+
<script lang="ts" generics="O">
|
|
4
2
|
import { createEventDispatcher } from "svelte"
|
|
5
3
|
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
import Combobox from "./Core/Combobox.svelte"
|
|
5
|
+
import Field from "./Field.svelte"
|
|
6
|
+
import type { LabelPosition } from "../types"
|
|
7
|
+
|
|
8
|
+
export let value: string | undefined = undefined
|
|
9
|
+
export let label: string | undefined = undefined
|
|
8
10
|
export let disabled = false
|
|
9
11
|
export let readonly = false
|
|
10
|
-
export let labelPosition = "above"
|
|
11
|
-
export let error =
|
|
12
|
+
export let labelPosition: LabelPosition = "above"
|
|
13
|
+
export let error: string | undefined | false = undefined
|
|
12
14
|
export let placeholder = "Choose an option or type"
|
|
13
|
-
export let options = []
|
|
14
|
-
export let helpText =
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return
|
|
15
|
+
export let options: O[] = []
|
|
16
|
+
export let helpText: string | undefined = undefined
|
|
17
|
+
const extractProperty = (item: O, property: string): string => {
|
|
18
|
+
if (item && typeof item === "object" && property in item) {
|
|
19
|
+
const record = item as Record<string, unknown>
|
|
20
|
+
const extracted = record[property]
|
|
21
|
+
if (typeof extracted === "string") {
|
|
22
|
+
return extracted
|
|
23
|
+
}
|
|
24
|
+
if (typeof extracted === "number" || typeof extracted === "boolean") {
|
|
25
|
+
return String(extracted)
|
|
26
|
+
}
|
|
27
|
+
return ""
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
if (item === null || item === undefined) {
|
|
31
|
+
return ""
|
|
26
32
|
}
|
|
27
|
-
|
|
33
|
+
|
|
34
|
+
return String(item)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const defaultGetOptionLabel = (item: O) => extractProperty(item, "label")
|
|
38
|
+
const defaultGetOptionValue = (item: O) => extractProperty(item, "value")
|
|
39
|
+
|
|
40
|
+
type OptionFormatter = (_option: O) => string
|
|
41
|
+
|
|
42
|
+
export let getOptionLabel: OptionFormatter = defaultGetOptionLabel
|
|
43
|
+
export let getOptionValue: OptionFormatter = defaultGetOptionValue
|
|
44
|
+
|
|
45
|
+
const dispatch = createEventDispatcher<{
|
|
46
|
+
change: string | undefined
|
|
47
|
+
}>()
|
|
48
|
+
|
|
49
|
+
const onChange = (event: CustomEvent<string | undefined>) => {
|
|
50
|
+
value = event.detail
|
|
51
|
+
dispatch("change", event.detail)
|
|
28
52
|
}
|
|
29
53
|
</script>
|
|
30
54
|
|
|
31
55
|
<Field {helpText} {label} {labelPosition} {error}>
|
|
32
56
|
<Combobox
|
|
33
|
-
{error}
|
|
34
57
|
{disabled}
|
|
35
58
|
{value}
|
|
36
59
|
{options}
|
|
@@ -71,6 +71,7 @@
|
|
|
71
71
|
export let indeterminate: boolean = false
|
|
72
72
|
export let allSelected: boolean = false
|
|
73
73
|
export let toggleSelectAll: () => void = () => {}
|
|
74
|
+
export let hideChevron: boolean = false
|
|
74
75
|
|
|
75
76
|
const dispatch = createEventDispatcher()
|
|
76
77
|
|
|
@@ -193,7 +194,9 @@
|
|
|
193
194
|
>
|
|
194
195
|
{fieldText}
|
|
195
196
|
</span>
|
|
196
|
-
|
|
197
|
+
{#if !hideChevron}
|
|
198
|
+
<Icon name="caret-down" size="S" />
|
|
199
|
+
{/if}
|
|
197
200
|
</button>
|
|
198
201
|
|
|
199
202
|
<!-- svelte-ignore a11y-click-events-have-key-events -->
|
|
@@ -265,7 +268,7 @@
|
|
|
265
268
|
</li>
|
|
266
269
|
{/if}
|
|
267
270
|
{#if filteredOptions.length}
|
|
268
|
-
{#each filteredOptions as option, idx}
|
|
271
|
+
{#each filteredOptions as option, idx (getOptionValue(option, idx) ?? idx)}
|
|
269
272
|
<li
|
|
270
273
|
class="spectrum-Menu-item"
|
|
271
274
|
class:is-selected={isOptionSelected(getOptionValue(option, idx))}
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
export let onOptionMouseenter = () => {}
|
|
43
43
|
export let onOptionMouseleave = () => {}
|
|
44
44
|
export let customPopoverHeight: string | undefined = undefined
|
|
45
|
+
export let hideChevron: boolean = false
|
|
45
46
|
|
|
46
47
|
const dispatch = createEventDispatcher()
|
|
47
48
|
|
|
@@ -127,4 +128,5 @@
|
|
|
127
128
|
onSelectOption={selectOption}
|
|
128
129
|
{loading}
|
|
129
130
|
{customPopoverHeight}
|
|
131
|
+
{hideChevron}
|
|
130
132
|
/>
|
package/src/Form/Select.svelte
CHANGED
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
export let onOptionMouseenter = () => {}
|
|
44
44
|
export let onOptionMouseleave = () => {}
|
|
45
45
|
export let loading: boolean | undefined = false
|
|
46
|
+
export let hideChevron: boolean = false
|
|
46
47
|
|
|
47
48
|
const dispatch = createEventDispatcher()
|
|
48
49
|
const onChange = (e: CustomEvent<any>) => {
|
|
@@ -71,6 +72,7 @@
|
|
|
71
72
|
{sort}
|
|
72
73
|
{align}
|
|
73
74
|
{footer}
|
|
75
|
+
{hideChevron}
|
|
74
76
|
{getOptionLabel}
|
|
75
77
|
{getOptionValue}
|
|
76
78
|
{getOptionIcon}
|