@budibase/bbui 3.9.5 → 3.10.0
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 +5331 -5223
- package/package.json +2 -2
- package/src/Form/Core/DatePicker/DatePicker.svelte +1 -1
- package/src/Form/Core/DatePicker/NumberInput.svelte +3 -1
- package/src/Form/Core/DateRangePicker.svelte +72 -9
- package/src/Form/DateRangePicker.svelte +5 -1
- package/src/Icon/Icon.svelte +1 -1
- package/src/Layout/Layout.svelte +1 -1
- package/src/context.d.ts +2 -2
- package/src/types/index.ts +1 -0
- package/src/types/scrollContext.ts +3 -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.
|
|
4
|
+
"version": "3.10.0",
|
|
5
5
|
"license": "MPL-2.0",
|
|
6
6
|
"svelte": "src/index.ts",
|
|
7
7
|
"module": "dist/bbui.mjs",
|
|
@@ -99,5 +99,5 @@
|
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
},
|
|
102
|
-
"gitHead": "
|
|
102
|
+
"gitHead": "35c16326f7215671d405cd811b28e78f5be70d07"
|
|
103
103
|
}
|
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
export let type = "number"
|
|
8
8
|
|
|
9
9
|
$: style = width ? `width:${width}px;` : ""
|
|
10
|
+
|
|
11
|
+
const selectAll = event => event.target.select()
|
|
10
12
|
</script>
|
|
11
13
|
|
|
12
14
|
<input
|
|
@@ -16,7 +18,7 @@
|
|
|
16
18
|
{value}
|
|
17
19
|
{min}
|
|
18
20
|
{max}
|
|
19
|
-
|
|
21
|
+
on:click={selectAll}
|
|
20
22
|
on:change
|
|
21
23
|
on:input
|
|
22
24
|
/>
|
|
@@ -1,24 +1,87 @@
|
|
|
1
|
-
<script>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import dayjs, { type Dayjs } from "dayjs"
|
|
3
|
+
import { createEventDispatcher } from "svelte"
|
|
2
4
|
import CoreDatePicker from "./DatePicker/DatePicker.svelte"
|
|
3
5
|
import Icon from "../../Icon/Icon.svelte"
|
|
6
|
+
import { parseDate } from "../../helpers"
|
|
7
|
+
import { writable } from "svelte/store"
|
|
4
8
|
|
|
5
|
-
let
|
|
6
|
-
let
|
|
9
|
+
export let enableTime: boolean | undefined = false
|
|
10
|
+
export let timeOnly: boolean | undefined = false
|
|
11
|
+
export let ignoreTimezones: boolean | undefined = false
|
|
12
|
+
export let value: string[] | undefined = []
|
|
13
|
+
|
|
14
|
+
const dispatch = createEventDispatcher()
|
|
15
|
+
const valueStore = writable<string[]>()
|
|
16
|
+
|
|
17
|
+
let fromDate: Dayjs | null
|
|
18
|
+
let toDate: Dayjs | null
|
|
19
|
+
|
|
20
|
+
$: valueStore.set(value || [])
|
|
21
|
+
$: parseValue($valueStore)
|
|
22
|
+
|
|
23
|
+
$: parsedFrom = fromDate ? parseDate(fromDate, { enableTime }) : undefined
|
|
24
|
+
$: parsedTo = toDate ? parseDate(toDate, { enableTime }) : undefined
|
|
25
|
+
|
|
26
|
+
const parseValue = (value: string[]) => {
|
|
27
|
+
if (!Array.isArray(value) || !value[0] || !value[1]) {
|
|
28
|
+
fromDate = null
|
|
29
|
+
toDate = null
|
|
30
|
+
} else {
|
|
31
|
+
fromDate = dayjs(value[0])
|
|
32
|
+
toDate = dayjs(value[1])
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const onChangeFrom = (utc: string) => {
|
|
37
|
+
// Preserve the time if its editable
|
|
38
|
+
const fromDate = utc
|
|
39
|
+
? enableTime
|
|
40
|
+
? dayjs(utc)
|
|
41
|
+
: dayjs(utc).startOf("day")
|
|
42
|
+
: null
|
|
43
|
+
if (fromDate && (!toDate || fromDate.isAfter(toDate))) {
|
|
44
|
+
toDate = !enableTime ? fromDate.endOf("day") : fromDate
|
|
45
|
+
} else if (!fromDate) {
|
|
46
|
+
toDate = null
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
dispatch("change", [fromDate, toDate])
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const onChangeTo = (utc: string) => {
|
|
53
|
+
// Preserve the time if its editable
|
|
54
|
+
const toDate = utc
|
|
55
|
+
? enableTime
|
|
56
|
+
? dayjs(utc)
|
|
57
|
+
: dayjs(utc).startOf("day")
|
|
58
|
+
: null
|
|
59
|
+
if (toDate && (!fromDate || toDate.isBefore(fromDate))) {
|
|
60
|
+
fromDate = !enableTime ? toDate.startOf("day") : toDate
|
|
61
|
+
} else if (!toDate) {
|
|
62
|
+
fromDate = null
|
|
63
|
+
}
|
|
64
|
+
dispatch("change", [fromDate, toDate])
|
|
65
|
+
}
|
|
7
66
|
</script>
|
|
8
67
|
|
|
9
68
|
<div class="date-range">
|
|
10
69
|
<CoreDatePicker
|
|
11
|
-
value={
|
|
12
|
-
on:change={e => (
|
|
13
|
-
enableTime
|
|
70
|
+
value={parsedFrom}
|
|
71
|
+
on:change={e => onChangeFrom(e.detail)}
|
|
72
|
+
{enableTime}
|
|
73
|
+
{timeOnly}
|
|
74
|
+
{ignoreTimezones}
|
|
14
75
|
/>
|
|
15
76
|
<div class="arrow">
|
|
16
77
|
<Icon name="ChevronRight" />
|
|
17
78
|
</div>
|
|
18
79
|
<CoreDatePicker
|
|
19
|
-
value={
|
|
20
|
-
on:change={e => (
|
|
21
|
-
enableTime
|
|
80
|
+
value={parsedTo}
|
|
81
|
+
on:change={e => onChangeTo(e.detail)}
|
|
82
|
+
{enableTime}
|
|
83
|
+
{timeOnly}
|
|
84
|
+
{ignoreTimezones}
|
|
22
85
|
/>
|
|
23
86
|
</div>
|
|
24
87
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import DateRangePicker from "./Core/DateRangePicker.svelte"
|
|
4
4
|
import { createEventDispatcher } from "svelte"
|
|
5
5
|
|
|
6
|
-
export let value =
|
|
6
|
+
export let value = undefined
|
|
7
7
|
export let label = null
|
|
8
8
|
export let labelPosition = "above"
|
|
9
9
|
export let disabled = false
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
export let helpText = null
|
|
13
13
|
export let appendTo = undefined
|
|
14
14
|
export let ignoreTimezones = false
|
|
15
|
+
export let enableTime = false
|
|
16
|
+
export let timeOnly = false
|
|
15
17
|
|
|
16
18
|
const dispatch = createEventDispatcher()
|
|
17
19
|
|
|
@@ -29,6 +31,8 @@
|
|
|
29
31
|
{value}
|
|
30
32
|
{appendTo}
|
|
31
33
|
{ignoreTimezones}
|
|
34
|
+
{enableTime}
|
|
35
|
+
{timeOnly}
|
|
32
36
|
on:change={onChange}
|
|
33
37
|
/>
|
|
34
38
|
</Field>
|
package/src/Icon/Icon.svelte
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
export let hoverColor: string | undefined = undefined
|
|
12
12
|
export let tooltip: string | undefined = undefined
|
|
13
13
|
export let tooltipPosition: TooltipPosition = TooltipPosition.Bottom
|
|
14
|
-
export let tooltipType = TooltipType.Default
|
|
14
|
+
export let tooltipType: TooltipType = TooltipType.Default
|
|
15
15
|
export let tooltipColor: string | undefined = undefined
|
|
16
16
|
export let tooltipWrap: boolean = true
|
|
17
17
|
export let newStyles: boolean = false
|
package/src/Layout/Layout.svelte
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
export let horizontal: boolean = false
|
|
3
3
|
export let paddingX: "S" | "M" | "L" | "XL" | "XXL" = "M"
|
|
4
|
-
export let paddingY: "S" | "M" | "L" | "XL" | "XXL" = "M"
|
|
4
|
+
export let paddingY: "none" | "S" | "M" | "L" | "XL" | "XXL" = "M"
|
|
5
5
|
export let noPadding: boolean = false
|
|
6
6
|
export let gap: "XXS" | "XS" | "S" | "M" | "L" | "XL" = "M"
|
|
7
7
|
export let noGap: boolean = false
|
package/src/context.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ActionMenu } from "./types"
|
|
2
|
-
import { ModalContext } from "./types"
|
|
1
|
+
import { ActionMenu, ModalContext, ScrollContext } from "./types"
|
|
3
2
|
|
|
4
3
|
declare module "svelte" {
|
|
5
4
|
export function getContext(key: "actionMenu"): ActionMenu | undefined
|
|
6
5
|
export function getContext(key: "bbui-modal"): ModalContext
|
|
6
|
+
export function getContext(key: "scroll"): ScrollContext
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
export const Modal = "bbui-modal"
|
package/src/types/index.ts
CHANGED