@functionalcms/svelte-components 5.3.6 → 5.4.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.
|
@@ -10,7 +10,10 @@
|
|
|
10
10
|
type TimePickerField,
|
|
11
11
|
SubmitResult,
|
|
12
12
|
type ButtonConfig,
|
|
13
|
-
type HiddenField
|
|
13
|
+
type HiddenField,
|
|
14
|
+
|
|
15
|
+
DatePickerField
|
|
16
|
+
|
|
14
17
|
} from './form.js';
|
|
15
18
|
import {
|
|
16
19
|
Button,
|
|
@@ -23,7 +26,8 @@
|
|
|
23
26
|
Input,
|
|
24
27
|
FloatingLabelInput,
|
|
25
28
|
Timepicker,
|
|
26
|
-
PhoneInput
|
|
29
|
+
PhoneInput,
|
|
30
|
+
Datepicker
|
|
27
31
|
} from 'flowbite-svelte';
|
|
28
32
|
import { fade } from 'svelte/transition';
|
|
29
33
|
|
|
@@ -95,6 +99,7 @@
|
|
|
95
99
|
type={field.type}
|
|
96
100
|
variant={field.floatVariant}
|
|
97
101
|
placeholder={field.placeholder}
|
|
102
|
+
bind:value={field.value}
|
|
98
103
|
>
|
|
99
104
|
{field.label}
|
|
100
105
|
</FloatingLabelInput>
|
|
@@ -110,6 +115,7 @@
|
|
|
110
115
|
size={field.size}
|
|
111
116
|
type={field.type}
|
|
112
117
|
placeholder={field.placeholder}
|
|
118
|
+
bind:value={field.value}
|
|
113
119
|
/>
|
|
114
120
|
{/if}
|
|
115
121
|
{/snippet}
|
|
@@ -123,10 +129,10 @@
|
|
|
123
129
|
readonly={field.readonly}
|
|
124
130
|
disabled={field.disabled}
|
|
125
131
|
class={field.class}
|
|
126
|
-
label={field.label}
|
|
127
132
|
rows={field.rows}
|
|
128
133
|
cols={field.cols}
|
|
129
134
|
placeholder={field.placeholder}
|
|
135
|
+
bind:value={field.value}
|
|
130
136
|
/>
|
|
131
137
|
{/snippet}
|
|
132
138
|
|
|
@@ -197,8 +203,14 @@
|
|
|
197
203
|
<Timepicker id={field.id} required={field.required} disabled={field.disabled} />
|
|
198
204
|
{/snippet}
|
|
199
205
|
|
|
206
|
+
{#snippet renderDatePicker(field: DatePickerField)}
|
|
207
|
+
<Label for={field.id} class={field.labelClass}>{field.label}</Label>
|
|
208
|
+
<Datepicker required={field.required} bind:value={field.value} />
|
|
209
|
+
<input type="hidden" name={field.id} bind:value={field.value} />
|
|
210
|
+
{/snippet}
|
|
211
|
+
|
|
200
212
|
{#snippet renderHidden(field: HiddenField)}
|
|
201
|
-
<input type="hidden" id={field.id} name={field.id} value={field.value} />
|
|
213
|
+
<input type="hidden" id={field.id} name={field.id} bind:value={field.value} />
|
|
202
214
|
{/snippet}
|
|
203
215
|
|
|
204
216
|
{#if showMessage}
|
|
@@ -225,6 +237,8 @@
|
|
|
225
237
|
{@render renderTimePicker(field)}
|
|
226
238
|
{:else if field.typeOfField === 'hidden'}
|
|
227
239
|
{@render renderHidden(field)}
|
|
240
|
+
{:else if field.typeOfField === 'date'}
|
|
241
|
+
{@render renderDatePicker(field)}
|
|
228
242
|
{/if}
|
|
229
243
|
{/each}
|
|
230
244
|
|
|
@@ -19,7 +19,7 @@ export type FieldDef = {
|
|
|
19
19
|
label: string;
|
|
20
20
|
class?: string;
|
|
21
21
|
labelClass?: string;
|
|
22
|
-
typeOfField: "input" | "textarea" | "select" | "collection" | "phoneInput" | "file" | "timepicker" | "hidden";
|
|
22
|
+
typeOfField: "input" | "textarea" | "select" | "collection" | "phoneInput" | "file" | "timepicker" | "date" | "hidden";
|
|
23
23
|
disabled?: boolean;
|
|
24
24
|
readonly?: boolean;
|
|
25
25
|
required?: boolean;
|
|
@@ -46,7 +46,15 @@ export type FilePickerField = FieldDef & {
|
|
|
46
46
|
typeOfField: "file";
|
|
47
47
|
size: "md" | "sm" | "lg";
|
|
48
48
|
multiple?: boolean;
|
|
49
|
+
filter?: string;
|
|
49
50
|
};
|
|
51
|
+
export type DatePickerField = FieldDef & {
|
|
52
|
+
typeOfField: "date";
|
|
53
|
+
inline?: boolean;
|
|
54
|
+
rangeFrom?: Date | undefined;
|
|
55
|
+
rangeTo?: Date | undefined;
|
|
56
|
+
};
|
|
57
|
+
export type DropzoneField = FieldDef & {};
|
|
50
58
|
export type CollectionField = FieldDef & {
|
|
51
59
|
items: Array<{
|
|
52
60
|
name: string;
|
|
@@ -74,7 +82,7 @@ export type PhoneInputField = FieldDef & {
|
|
|
74
82
|
size: "md" | "sm" | "lg";
|
|
75
83
|
placeholder?: string;
|
|
76
84
|
};
|
|
77
|
-
export type Field = InputField | TextareaField | CollectionField | SelectField | FilePickerField | TimePickerField | PhoneInputField | HiddenField;
|
|
85
|
+
export type Field = InputField | TextareaField | CollectionField | SelectField | FilePickerField | DatePickerField | DropzoneField | TimePickerField | PhoneInputField | HiddenField;
|
|
78
86
|
export declare enum SubmitResult {
|
|
79
87
|
Success = "success",
|
|
80
88
|
Error = "error"
|
|
@@ -87,6 +95,7 @@ export type HiddenField = {
|
|
|
87
95
|
export declare function createInputField(id: string, label: string, type?: InputType, value?: any, options?: Partial<Omit<InputField, "id" | "label" | "typeOfField" | "type">>): InputField;
|
|
88
96
|
export declare function createTextareaField(id: string, label: string, value?: any, rows?: number, cols?: number, options?: Partial<Omit<TextareaField, "id" | "label" | "typeOfField" | "rows" | "cols">>): TextareaField;
|
|
89
97
|
export declare function createFilePickerField(id: string, label: string, value?: any, options?: Partial<Omit<FilePickerField, "id" | "label" | "typeOfField">>): FilePickerField;
|
|
98
|
+
export declare function createDatePickerField(id: string, label: string, value?: any, options?: Partial<Omit<DatePickerField, "id" | "label" | "typeOfField">>): DatePickerField;
|
|
90
99
|
export declare function createCollectionField(id: string, label: string, items: Array<{
|
|
91
100
|
name: string;
|
|
92
101
|
checked: boolean;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Dropzone } from "flowbite-svelte";
|
|
1
2
|
export var InputType;
|
|
2
3
|
(function (InputType) {
|
|
3
4
|
InputType["Text"] = "text";
|
|
@@ -54,6 +55,15 @@ export function createFilePickerField(id, label, value = null, options = {}) {
|
|
|
54
55
|
...options
|
|
55
56
|
};
|
|
56
57
|
}
|
|
58
|
+
export function createDatePickerField(id, label, value = null, options = {}) {
|
|
59
|
+
return {
|
|
60
|
+
id,
|
|
61
|
+
label,
|
|
62
|
+
value,
|
|
63
|
+
typeOfField: "date",
|
|
64
|
+
...options
|
|
65
|
+
};
|
|
66
|
+
}
|
|
57
67
|
export function createCollectionField(id, label, items, groupName, type = "checkbox", value = [], options = {}) {
|
|
58
68
|
return {
|
|
59
69
|
id,
|