@stubber/form-fields 1.7.10 → 2.0.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/{fields2 → form-fields}/sub/currency-field.svelte +2 -3
- package/dist/{fields2 → form-fields}/sub/select-field.svelte +6 -3
- package/dist/{fields2 → form-fields}/utils.d.ts +1 -0
- package/dist/{fields2 → form-fields}/utils.js +9 -1
- package/dist/utils/input_regex_mask.d.ts +3 -0
- package/dist/utils/input_regex_mask.js +25 -0
- package/package.json +4 -8
- package/dist/Field.svelte +0 -36
- package/dist/Field.svelte.d.ts +0 -33
- package/dist/Form.svelte +0 -34
- package/dist/Form.svelte.d.ts +0 -31
- package/dist/NullFieldWrapper.svelte +0 -6
- package/dist/NullFieldWrapper.svelte.d.ts +0 -27
- package/dist/fields/component_parts/arraybuilder/FieldWrapper.svelte +0 -74
- package/dist/fields/component_parts/arraybuilder/FieldWrapper.svelte.d.ts +0 -31
- package/dist/fields/component_parts/fieldbuilder/FieldWrapper.svelte +0 -8
- package/dist/fields/component_parts/fieldbuilder/FieldWrapper.svelte.d.ts +0 -27
- package/dist/fields/components/AgGrid.svelte +0 -46
- package/dist/fields/components/AgGrid.svelte.d.ts +0 -20
- package/dist/fields/components/Arraybuilder.svelte +0 -98
- package/dist/fields/components/Arraybuilder.svelte.d.ts +0 -27
- package/dist/fields/components/Checkbox.svelte +0 -89
- package/dist/fields/components/Checkbox.svelte.d.ts +0 -25
- package/dist/fields/components/CheckboxAutocomplete.svelte +0 -95
- package/dist/fields/components/CheckboxAutocomplete.svelte.d.ts +0 -25
- package/dist/fields/components/Code.svelte +0 -133
- package/dist/fields/components/Code.svelte.d.ts +0 -18
- package/dist/fields/components/Contactselector.svelte +0 -71
- package/dist/fields/components/Contactselector.svelte.d.ts +0 -27
- package/dist/fields/components/Currency.svelte +0 -264
- package/dist/fields/components/Currency.svelte.d.ts +0 -25
- package/dist/fields/components/Dataindication.svelte +0 -31
- package/dist/fields/components/Dataindication.svelte.d.ts +0 -25
- package/dist/fields/components/Date.svelte +0 -97
- package/dist/fields/components/Date.svelte.d.ts +0 -25
- package/dist/fields/components/Datetime.svelte +0 -97
- package/dist/fields/components/Datetime.svelte.d.ts +0 -25
- package/dist/fields/components/Email.svelte +0 -125
- package/dist/fields/components/Email.svelte.d.ts +0 -25
- package/dist/fields/components/Fieldbuilder.svelte +0 -343
- package/dist/fields/components/Fieldbuilder.svelte.d.ts +0 -27
- package/dist/fields/components/Fieldsbuilder.svelte +0 -122
- package/dist/fields/components/Fieldsbuilder.svelte.d.ts +0 -27
- package/dist/fields/components/File.svelte +0 -231
- package/dist/fields/components/File.svelte.d.ts +0 -27
- package/dist/fields/components/Heading.svelte +0 -17
- package/dist/fields/components/Heading.svelte.d.ts +0 -25
- package/dist/fields/components/Hidden.svelte +0 -7
- package/dist/fields/components/Hidden.svelte.d.ts +0 -25
- package/dist/fields/components/Hiddenlocation.svelte +0 -28
- package/dist/fields/components/Hiddenlocation.svelte.d.ts +0 -25
- package/dist/fields/components/Html.svelte +0 -13
- package/dist/fields/components/Html.svelte.d.ts +0 -25
- package/dist/fields/components/Jsoneditor.svelte +0 -133
- package/dist/fields/components/Jsoneditor.svelte.d.ts +0 -25
- package/dist/fields/components/Map.svelte +0 -192
- package/dist/fields/components/Map.svelte.d.ts +0 -27
- package/dist/fields/components/Multicheckbox.svelte +0 -77
- package/dist/fields/components/Multicheckbox.svelte.d.ts +0 -25
- package/dist/fields/components/Multistep.svelte +0 -86
- package/dist/fields/components/Multistep.svelte.d.ts +0 -27
- package/dist/fields/components/Note.svelte +0 -92
- package/dist/fields/components/Note.svelte.d.ts +0 -25
- package/dist/fields/components/Number.svelte +0 -119
- package/dist/fields/components/Number.svelte.d.ts +0 -25
- package/dist/fields/components/Objectbuilder.svelte +0 -154
- package/dist/fields/components/Objectbuilder.svelte.d.ts +0 -27
- package/dist/fields/components/Qrcodescanner.svelte +0 -196
- package/dist/fields/components/Qrcodescanner.svelte.d.ts +0 -25
- package/dist/fields/components/Radio.svelte +0 -117
- package/dist/fields/components/Radio.svelte.d.ts +0 -25
- package/dist/fields/components/Renderfield.svelte +0 -58
- package/dist/fields/components/Renderfield.svelte.d.ts +0 -27
- package/dist/fields/components/Screenrecorder.svelte +0 -276
- package/dist/fields/components/Screenrecorder.svelte.d.ts +0 -27
- package/dist/fields/components/Screenshot.svelte +0 -269
- package/dist/fields/components/Screenshot.svelte.d.ts +0 -27
- package/dist/fields/components/Scrollandreaddisplay.svelte +0 -122
- package/dist/fields/components/Scrollandreaddisplay.svelte.d.ts +0 -25
- package/dist/fields/components/Section.svelte +0 -87
- package/dist/fields/components/Section.svelte.d.ts +0 -27
- package/dist/fields/components/Select.svelte +0 -161
- package/dist/fields/components/Select.svelte.d.ts +0 -31
- package/dist/fields/components/Selectresource.svelte +0 -57
- package/dist/fields/components/Selectresource.svelte.d.ts +0 -27
- package/dist/fields/components/Signature.svelte +0 -152
- package/dist/fields/components/Signature.svelte.d.ts +0 -27
- package/dist/fields/components/Slider.svelte +0 -101
- package/dist/fields/components/Slider.svelte.d.ts +0 -25
- package/dist/fields/components/SmartText.svelte +0 -351
- package/dist/fields/components/SmartText.svelte.d.ts +0 -25
- package/dist/fields/components/Telephone.svelte +0 -156
- package/dist/fields/components/Telephone.svelte.d.ts +0 -25
- package/dist/fields/components/Text.svelte +0 -107
- package/dist/fields/components/Text.svelte.d.ts +0 -25
- package/dist/fields/components/Voicenote.svelte +0 -267
- package/dist/fields/components/Voicenote.svelte.d.ts +0 -27
- package/dist/fields/components/index.d.ts +0 -84
- package/dist/fields/components/index.js +0 -85
- package/dist/fields/definitions/all.json +0 -38
- package/dist/fields/definitions/arraybuilder.json +0 -39
- package/dist/fields/definitions/checkbox.json +0 -44
- package/dist/fields/definitions/code.json +0 -15
- package/dist/fields/definitions/contactselector.json +0 -15
- package/dist/fields/definitions/currency.json +0 -42
- package/dist/fields/definitions/dataindication.json +0 -16
- package/dist/fields/definitions/date.json +0 -16
- package/dist/fields/definitions/datetime.json +0 -15
- package/dist/fields/definitions/email.json +0 -16
- package/dist/fields/definitions/fieldbuilder.json +0 -64
- package/dist/fields/definitions/fieldsbuilder.json +0 -38
- package/dist/fields/definitions/file.json +0 -42
- package/dist/fields/definitions/grid.json +0 -47
- package/dist/fields/definitions/heading.json +0 -38
- package/dist/fields/definitions/hidden.json +0 -89
- package/dist/fields/definitions/hiddenlocation.json +0 -15
- package/dist/fields/definitions/html.json +0 -34
- package/dist/fields/definitions/index.d.ts +0 -90
- package/dist/fields/definitions/index.js +0 -99
- package/dist/fields/definitions/jsoneditor.json +0 -33
- package/dist/fields/definitions/map.json +0 -36
- package/dist/fields/definitions/multicheckbox.json +0 -47
- package/dist/fields/definitions/multistep.json +0 -35
- package/dist/fields/definitions/note.json +0 -16
- package/dist/fields/definitions/number.json +0 -42
- package/dist/fields/definitions/objectbuilder.json +0 -39
- package/dist/fields/definitions/placeholder.json +0 -15
- package/dist/fields/definitions/qrcodescanner.json +0 -16
- package/dist/fields/definitions/radio.json +0 -47
- package/dist/fields/definitions/renderfield.json +0 -36
- package/dist/fields/definitions/richtext.json +0 -16
- package/dist/fields/definitions/screenrecorder.json +0 -42
- package/dist/fields/definitions/screenshot.json +0 -42
- package/dist/fields/definitions/scrollandreaddisplay.json +0 -49
- package/dist/fields/definitions/section.json +0 -50
- package/dist/fields/definitions/select.json +0 -47
- package/dist/fields/definitions/selectresource.json +0 -48
- package/dist/fields/definitions/signature.json +0 -16
- package/dist/fields/definitions/slider.json +0 -78
- package/dist/fields/definitions/smarttext.json +0 -101
- package/dist/fields/definitions/telephone.json +0 -16
- package/dist/fields/definitions/text.json +0 -35
- package/dist/fields/definitions/validfieldtype.json +0 -220
- package/dist/fields/definitions/voicenote.json +0 -43
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -3
- package/dist/thirdparty/mapbox/GeoCoder.svelte +0 -10
- package/dist/thirdparty/mapbox/GeoCoder.svelte.d.ts +0 -27
- package/dist/thirdparty/mapbox/Map.svelte +0 -30
- package/dist/thirdparty/mapbox/Map.svelte.d.ts +0 -22
- package/dist/thirdparty/mapbox/MapMarker.svelte +0 -13
- package/dist/thirdparty/mapbox/MapMarker.svelte.d.ts +0 -33
- package/dist/utils/createField.d.ts +0 -6
- package/dist/utils/createField.js +0 -33
- package/dist/utils/createForm.d.ts +0 -1
- package/dist/utils/createForm.js +0 -501
- package/dist/utils/index.d.ts +0 -18
- package/dist/utils/index.js +0 -126
- package/dist/utils/syncing.d.ts +0 -11
- package/dist/utils/syncing.js +0 -134
- /package/dist/{fields2 → form-fields}/FieldExprToggle.svelte +0 -0
- /package/dist/{fields2 → form-fields}/FieldExprToggle.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/FieldLabel.svelte +0 -0
- /package/dist/{fields2 → form-fields}/FieldLabel.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/FieldMessage.svelte +0 -0
- /package/dist/{fields2 → form-fields}/FieldMessage.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/Form.svelte +0 -0
- /package/dist/{fields2 → form-fields}/Form.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/fileserver.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/fileserver.js +0 -0
- /package/dist/{fields2 → form-fields}/form-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/form-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/index.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/index.js +0 -0
- /package/dist/{fields2 → form-fields}/interfaces.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/interfaces.js +0 -0
- /package/dist/{fields2 → form-fields}/sub/array-builder-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/array-builder-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/checkbox-autocomplete.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/checkbox-autocomplete.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/checkbox-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/checkbox-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/code-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/code-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/contact-selector-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/contact-selector-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/currency-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/data-indication-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/data-indication-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/date-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/date-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/date-time-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/date-time-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/email-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/email-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/field-builder-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/field-builder-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/file-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/file-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/grid-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/grid-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/heading-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/heading-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/hidden-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/hidden-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/hidden-location-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/hidden-location-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/html-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/html-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/json-editor-bound.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/json-editor-bound.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/jsoneditor-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/jsoneditor-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/map-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/map-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/multi-checkbox-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/multi-checkbox-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/multistep-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/multistep-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/note-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/note-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/number-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/number-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/object-builder-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/object-builder-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/qr-code-scanner-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/qr-code-scanner-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/radio-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/radio-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/screenrecorder-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/screenrecorder-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/screenshot-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/screenshot-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/scroll-and-read-display-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/scroll-and-read-display-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/section-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/section-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/select-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/selectresource-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/selectresource-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/signature-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/signature-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/slider-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/slider-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/smart-text-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/smart-text-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/telephone-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/telephone-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/text-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/text-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/sub/voicenote-field.svelte +0 -0
- /package/dist/{fields2 → form-fields}/sub/voicenote-field.svelte.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/validations/validate_field.d.ts +0 -0
- /package/dist/{fields2 → form-fields}/validations/validate_field.js +0 -0
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import { onMount } from "svelte";
|
|
3
|
-
import Dropzone from "svelte-file-dropzone";
|
|
4
|
-
import _ from "lodash-es";
|
|
5
|
-
import { deepEqual } from "fast-equals";
|
|
6
|
-
import { syncStoreToStore } from "../../utils/syncing";
|
|
7
|
-
import { writable } from "svelte/store";
|
|
8
|
-
|
|
9
|
-
import { Input } from "@stubber/ui/input";
|
|
10
|
-
import { Label } from "@stubber/ui/label";
|
|
11
|
-
import { Button } from "@stubber/ui/button";
|
|
12
|
-
|
|
13
|
-
export let form;
|
|
14
|
-
export let field;
|
|
15
|
-
|
|
16
|
-
const internal = writable({});
|
|
17
|
-
|
|
18
|
-
$: state_key = $field.state?.state_key;
|
|
19
|
-
$: label = $field.spec?.title;
|
|
20
|
-
$: hide_label = $field.spec?.hide_label;
|
|
21
|
-
$: isValid = !$field.state?.validation || $field.state?.validation?.valid;
|
|
22
|
-
$: validationMessage = $field.state?.validation?.message;
|
|
23
|
-
$: max_files = isNaN(parseInt($field.spec?.params?.max_files))
|
|
24
|
-
? Infinity
|
|
25
|
-
: parseInt($field.spec?.params?.max_files);
|
|
26
|
-
$: limit_remaining =
|
|
27
|
-
max_files - ($internal?.selected_files?.length ?? 0) - ($internal?.uploaded_files?.length ?? 0);
|
|
28
|
-
|
|
29
|
-
onMount(() => {
|
|
30
|
-
// set field values that aren't set yet
|
|
31
|
-
let f = _.cloneDeep($field);
|
|
32
|
-
let initial_value = _.isArray(f?.data?.base) ? f?.data?.base : [];
|
|
33
|
-
let initial_data = {
|
|
34
|
-
...f?.data,
|
|
35
|
-
base: initial_value,
|
|
36
|
-
};
|
|
37
|
-
let initial_state_internal = {
|
|
38
|
-
selected_files: [],
|
|
39
|
-
uploaded_files: initial_value,
|
|
40
|
-
failed_files: [],
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
_.set(f, "data", initial_data);
|
|
44
|
-
_.set(f, "state.internal", initial_state_internal);
|
|
45
|
-
if (!deepEqual(f, $field)) $field = f;
|
|
46
|
-
|
|
47
|
-
syncStoreToStore(
|
|
48
|
-
field,
|
|
49
|
-
internal,
|
|
50
|
-
(a, b) => {
|
|
51
|
-
let _clone = _.cloneDeep(a.state?.internal) || {};
|
|
52
|
-
|
|
53
|
-
// get parts from data
|
|
54
|
-
let files = _.isArray(a?.data?.base) ? a?.data?.base : [];
|
|
55
|
-
_clone.uploaded_files = files;
|
|
56
|
-
|
|
57
|
-
// set field state if changed
|
|
58
|
-
if (!deepEqual(a?.state?.internal, _clone)) {
|
|
59
|
-
$field.state.internal = _clone;
|
|
60
|
-
}
|
|
61
|
-
return _clone;
|
|
62
|
-
},
|
|
63
|
-
(a, b) => {
|
|
64
|
-
let _clone = _.cloneDeep(a) || {};
|
|
65
|
-
// update the state
|
|
66
|
-
_.set(_clone, "state.internal", _.cloneDeep(b));
|
|
67
|
-
// update the data
|
|
68
|
-
_.set(_clone, "data.base", b?.uploaded_files);
|
|
69
|
-
return _clone;
|
|
70
|
-
}
|
|
71
|
-
);
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
async function handleFilesSelect(e) {
|
|
75
|
-
const { acceptedFiles, fileRejections } = e.detail;
|
|
76
|
-
let comparison = _.cloneDeep($internal);
|
|
77
|
-
let batch = _.cloneDeep(
|
|
78
|
-
acceptedFiles.map((a) => {
|
|
79
|
-
return {
|
|
80
|
-
...a,
|
|
81
|
-
f_id: Math.random().toString(36).substring(7),
|
|
82
|
-
};
|
|
83
|
-
})
|
|
84
|
-
);
|
|
85
|
-
if (limit_remaining < batch.length) {
|
|
86
|
-
alert("You have reached the maximum number of files allowed");
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
comparison.selected_files = comparison.selected_files.concat(batch);
|
|
90
|
-
comparison.failed_files = comparison.failed_files.concat(_.cloneDeep(fileRejections));
|
|
91
|
-
|
|
92
|
-
if (!deepEqual(comparison, $internal)) {
|
|
93
|
-
$internal = comparison;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
let upload_res = await form.uploadFiles(acceptedFiles);
|
|
97
|
-
let { uploaded_files, failed_files } = upload_res;
|
|
98
|
-
|
|
99
|
-
let comparison2 = _.cloneDeep($internal);
|
|
100
|
-
if (_.isArray(uploaded_files)) {
|
|
101
|
-
uploaded_files.forEach((a) => {
|
|
102
|
-
a.f_id = batch.find((f) => f.path === a.filename).f_id;
|
|
103
|
-
form.appendAttachment(a);
|
|
104
|
-
});
|
|
105
|
-
comparison2.uploaded_files = comparison2.uploaded_files.concat(uploaded_files);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
if (_.isArray(failed_files)) {
|
|
109
|
-
failed_files.forEach((a) => {
|
|
110
|
-
a.f_id = batch.find((f) => f.path === a.filename).f_id;
|
|
111
|
-
});
|
|
112
|
-
comparison2.failed_files = comparison2.failed_files.concat(failed_files);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
let batch_ids = batch.map((b) => b.f_id);
|
|
116
|
-
|
|
117
|
-
comparison2.selected_files = comparison2.selected_files.filter((f) => {
|
|
118
|
-
return !batch_ids.includes(f.f_id);
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
if (!deepEqual(comparison2, $internal)) {
|
|
122
|
-
$internal = comparison2;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
function removeFile(item) {
|
|
127
|
-
let comparison = _.cloneDeep($internal);
|
|
128
|
-
|
|
129
|
-
comparison.selected_files = comparison.selected_files?.filter((f) => f.f_id !== item.file.f_id);
|
|
130
|
-
comparison.failed_files = comparison.failed_files?.filter((f) => f.f_id !== item.file.f_id);
|
|
131
|
-
comparison.uploaded_files = comparison.uploaded_files?.filter((f) => f.f_id !== item.file.f_id);
|
|
132
|
-
|
|
133
|
-
if (!deepEqual(comparison, $internal)) {
|
|
134
|
-
$internal = comparison;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
if (item?.is_uploaded) {
|
|
138
|
-
form.removeAttachment(item?.file);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
$: fileList = (
|
|
143
|
-
($internal?.uploaded_files || [])?.map((f) => {
|
|
144
|
-
return {
|
|
145
|
-
file: f,
|
|
146
|
-
is_uploaded: true,
|
|
147
|
-
};
|
|
148
|
-
}) || []
|
|
149
|
-
)
|
|
150
|
-
.concat(
|
|
151
|
-
$internal?.selected_files?.map((f) => {
|
|
152
|
-
return {
|
|
153
|
-
file: f,
|
|
154
|
-
is_selected: true,
|
|
155
|
-
};
|
|
156
|
-
}) || []
|
|
157
|
-
)
|
|
158
|
-
.concat(
|
|
159
|
-
$internal?.failed_files?.map((f) => {
|
|
160
|
-
return {
|
|
161
|
-
file: f,
|
|
162
|
-
is_failed: true,
|
|
163
|
-
};
|
|
164
|
-
}) || []
|
|
165
|
-
);
|
|
166
|
-
</script>
|
|
167
|
-
|
|
168
|
-
{#if $internal}
|
|
169
|
-
<Label for="input_{state_key}" class="block py-2 text-surface-900 {hide_label ? 'hidden' : ''}">
|
|
170
|
-
{label}
|
|
171
|
-
</Label>
|
|
172
|
-
<div class="w-full flex flex-col {!isValid ? 'border-b border-warning-500' : ''}">
|
|
173
|
-
<Dropzone on:drop={handleFilesSelect} disabled={limit_remaining <= 0}>
|
|
174
|
-
<div class="flex justify-center h-full flex-col text-center rounded-sm">
|
|
175
|
-
<div>
|
|
176
|
-
<p class=" text-surface-800">Drop files to upload</p>
|
|
177
|
-
<p class=" text-surface-800">
|
|
178
|
-
Or click <span
|
|
179
|
-
class="text-primary-500 hover:text-primary-400 hover:underline cursor-pointer"
|
|
180
|
-
>here</span
|
|
181
|
-
>
|
|
182
|
-
to browse
|
|
183
|
-
</p>
|
|
184
|
-
{#if limit_remaining <= 0}
|
|
185
|
-
<p class="text-field text-danger-600 text-sm italic">
|
|
186
|
-
You have reached the maximum number of files allowed
|
|
187
|
-
</p>
|
|
188
|
-
{/if}
|
|
189
|
-
</div>
|
|
190
|
-
</div>
|
|
191
|
-
</Dropzone>
|
|
192
|
-
<div class="w-full mt-2">
|
|
193
|
-
{#each fileList as item}
|
|
194
|
-
<div class="w-full flex flex-row">
|
|
195
|
-
{#if item.is_uploaded}
|
|
196
|
-
<div class="px-2">
|
|
197
|
-
<i class="fa fa-check text-success-500" />
|
|
198
|
-
</div>
|
|
199
|
-
{:else if item.is_failed}
|
|
200
|
-
<div class="px-2 space-x-2 flex items-center text-danger-400">
|
|
201
|
-
<i class="fa-regular fa-triangle-exclamation" />
|
|
202
|
-
<p class="hidden md:block text-fluid-md">Failed</p>
|
|
203
|
-
</div>
|
|
204
|
-
{:else}
|
|
205
|
-
<div class="px-2 space-x-2 flex items-center text-surface-500">
|
|
206
|
-
<p class="hidden md:block text-fluid-md" />
|
|
207
|
-
<i class="fa fa-pulse fa-spinner" />
|
|
208
|
-
</div>
|
|
209
|
-
{/if}
|
|
210
|
-
<div class="w-full shrink py-1 pl-2 truncate border border-surface-200 rounded-sm">
|
|
211
|
-
<p class="text-surface-800 text-fluid-md">
|
|
212
|
-
{item?.file?.filename ?? item?.file?.name ?? item?.file?.path}
|
|
213
|
-
</p>
|
|
214
|
-
</div>
|
|
215
|
-
<Button
|
|
216
|
-
type="button"
|
|
217
|
-
variant="destructive"
|
|
218
|
-
size="icon"
|
|
219
|
-
class="shrink-0 ml-1 p-1 px-2 fa-solid fa-2xs fa-x border-surface-0 "
|
|
220
|
-
on:click={() => {
|
|
221
|
-
removeFile(item);
|
|
222
|
-
}}
|
|
223
|
-
/>
|
|
224
|
-
</div>
|
|
225
|
-
{/each}
|
|
226
|
-
</div>
|
|
227
|
-
</div>
|
|
228
|
-
{#if validationMessage}
|
|
229
|
-
<Label class={!isValid ? `text-danger-500` : `text-success-500`}>{validationMessage}</Label>
|
|
230
|
-
{/if}
|
|
231
|
-
{/if}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/** @typedef {typeof __propDef.props} FileProps */
|
|
2
|
-
/** @typedef {typeof __propDef.events} FileEvents */
|
|
3
|
-
/** @typedef {typeof __propDef.slots} FileSlots */
|
|
4
|
-
export default class File extends SvelteComponent<{
|
|
5
|
-
form: any;
|
|
6
|
-
field: any;
|
|
7
|
-
}, {
|
|
8
|
-
[evt: string]: CustomEvent<any>;
|
|
9
|
-
}, {}> {
|
|
10
|
-
}
|
|
11
|
-
export type FileProps = typeof __propDef.props;
|
|
12
|
-
export type FileEvents = typeof __propDef.events;
|
|
13
|
-
export type FileSlots = typeof __propDef.slots;
|
|
14
|
-
import { SvelteComponent } from "svelte";
|
|
15
|
-
declare const __propDef: {
|
|
16
|
-
props: {
|
|
17
|
-
form: any;
|
|
18
|
-
field: any;
|
|
19
|
-
};
|
|
20
|
-
events: {
|
|
21
|
-
[evt: string]: CustomEvent<any>;
|
|
22
|
-
};
|
|
23
|
-
slots: {};
|
|
24
|
-
exports?: undefined;
|
|
25
|
-
bindings?: undefined;
|
|
26
|
-
};
|
|
27
|
-
export {};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import _ from "lodash-es";
|
|
3
|
-
|
|
4
|
-
export let field;
|
|
5
|
-
|
|
6
|
-
$: heading_text = $field?.spec?.params?.heading_text;
|
|
7
|
-
$: subheading_text = $field?.spec?.params?.subheading_text;
|
|
8
|
-
</script>
|
|
9
|
-
|
|
10
|
-
<div class="flex flex-col w-full mb-2">
|
|
11
|
-
{#if heading_text}
|
|
12
|
-
<h1 class="text-xl text-black tracking-tight font-semibold mt-4">{heading_text}</h1>
|
|
13
|
-
{/if}
|
|
14
|
-
{#if subheading_text}
|
|
15
|
-
<h2 class="text-sm text-surface-500 whitespace-pre-wrap">{subheading_text}</h2>
|
|
16
|
-
{/if}
|
|
17
|
-
</div>
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/** @typedef {typeof __propDef.props} HeadingProps */
|
|
2
|
-
/** @typedef {typeof __propDef.events} HeadingEvents */
|
|
3
|
-
/** @typedef {typeof __propDef.slots} HeadingSlots */
|
|
4
|
-
export default class Heading extends SvelteComponent<{
|
|
5
|
-
field: any;
|
|
6
|
-
}, {
|
|
7
|
-
[evt: string]: CustomEvent<any>;
|
|
8
|
-
}, {}> {
|
|
9
|
-
}
|
|
10
|
-
export type HeadingProps = typeof __propDef.props;
|
|
11
|
-
export type HeadingEvents = typeof __propDef.events;
|
|
12
|
-
export type HeadingSlots = typeof __propDef.slots;
|
|
13
|
-
import { SvelteComponent } from "svelte";
|
|
14
|
-
declare const __propDef: {
|
|
15
|
-
props: {
|
|
16
|
-
field: any;
|
|
17
|
-
};
|
|
18
|
-
events: {
|
|
19
|
-
[evt: string]: CustomEvent<any>;
|
|
20
|
-
};
|
|
21
|
-
slots: {};
|
|
22
|
-
exports?: undefined;
|
|
23
|
-
bindings?: undefined;
|
|
24
|
-
};
|
|
25
|
-
export {};
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/** @typedef {typeof __propDef.props} HiddenProps */
|
|
2
|
-
/** @typedef {typeof __propDef.events} HiddenEvents */
|
|
3
|
-
/** @typedef {typeof __propDef.slots} HiddenSlots */
|
|
4
|
-
export default class Hidden extends SvelteComponent<{
|
|
5
|
-
field: any;
|
|
6
|
-
}, {
|
|
7
|
-
[evt: string]: CustomEvent<any>;
|
|
8
|
-
}, {}> {
|
|
9
|
-
}
|
|
10
|
-
export type HiddenProps = typeof __propDef.props;
|
|
11
|
-
export type HiddenEvents = typeof __propDef.events;
|
|
12
|
-
export type HiddenSlots = typeof __propDef.slots;
|
|
13
|
-
import { SvelteComponent } from "svelte";
|
|
14
|
-
declare const __propDef: {
|
|
15
|
-
props: {
|
|
16
|
-
field: any;
|
|
17
|
-
};
|
|
18
|
-
events: {
|
|
19
|
-
[evt: string]: CustomEvent<any>;
|
|
20
|
-
};
|
|
21
|
-
slots: {};
|
|
22
|
-
exports?: undefined;
|
|
23
|
-
bindings?: undefined;
|
|
24
|
-
};
|
|
25
|
-
export {};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import { deepEqual } from "fast-equals";
|
|
3
|
-
import _ from "lodash-es";
|
|
4
|
-
import { onMount } from "svelte";
|
|
5
|
-
|
|
6
|
-
export let field;
|
|
7
|
-
|
|
8
|
-
$: state_key = $field.state?.state_key;
|
|
9
|
-
|
|
10
|
-
onMount(() => {
|
|
11
|
-
navigator.geolocation.getCurrentPosition((o) => {
|
|
12
|
-
let { latitude, longitude } = o?.coords || {};
|
|
13
|
-
if (!latitude || !longitude) return;
|
|
14
|
-
|
|
15
|
-
let base = {
|
|
16
|
-
lat: latitude,
|
|
17
|
-
lng: longitude,
|
|
18
|
-
latlng: `${latitude},${longitude}`,
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
if (!deepEqual(base, $field.data.base)) {
|
|
22
|
-
$field.data.base = base;
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
</script>
|
|
27
|
-
|
|
28
|
-
<input name={state_key} bind:value={$field.data.base} hidden />
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/** @typedef {typeof __propDef.props} HiddenlocationProps */
|
|
2
|
-
/** @typedef {typeof __propDef.events} HiddenlocationEvents */
|
|
3
|
-
/** @typedef {typeof __propDef.slots} HiddenlocationSlots */
|
|
4
|
-
export default class Hiddenlocation extends SvelteComponent<{
|
|
5
|
-
field: any;
|
|
6
|
-
}, {
|
|
7
|
-
[evt: string]: CustomEvent<any>;
|
|
8
|
-
}, {}> {
|
|
9
|
-
}
|
|
10
|
-
export type HiddenlocationProps = typeof __propDef.props;
|
|
11
|
-
export type HiddenlocationEvents = typeof __propDef.events;
|
|
12
|
-
export type HiddenlocationSlots = typeof __propDef.slots;
|
|
13
|
-
import { SvelteComponent } from "svelte";
|
|
14
|
-
declare const __propDef: {
|
|
15
|
-
props: {
|
|
16
|
-
field: any;
|
|
17
|
-
};
|
|
18
|
-
events: {
|
|
19
|
-
[evt: string]: CustomEvent<any>;
|
|
20
|
-
};
|
|
21
|
-
slots: {};
|
|
22
|
-
exports?: undefined;
|
|
23
|
-
bindings?: undefined;
|
|
24
|
-
};
|
|
25
|
-
export {};
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/** @typedef {typeof __propDef.props} HtmlProps */
|
|
2
|
-
/** @typedef {typeof __propDef.events} HtmlEvents */
|
|
3
|
-
/** @typedef {typeof __propDef.slots} HtmlSlots */
|
|
4
|
-
export default class Html extends SvelteComponent<{
|
|
5
|
-
field: any;
|
|
6
|
-
}, {
|
|
7
|
-
[evt: string]: CustomEvent<any>;
|
|
8
|
-
}, {}> {
|
|
9
|
-
}
|
|
10
|
-
export type HtmlProps = typeof __propDef.props;
|
|
11
|
-
export type HtmlEvents = typeof __propDef.events;
|
|
12
|
-
export type HtmlSlots = typeof __propDef.slots;
|
|
13
|
-
import { SvelteComponent } from "svelte";
|
|
14
|
-
declare const __propDef: {
|
|
15
|
-
props: {
|
|
16
|
-
field: any;
|
|
17
|
-
};
|
|
18
|
-
events: {
|
|
19
|
-
[evt: string]: CustomEvent<any>;
|
|
20
|
-
};
|
|
21
|
-
slots: {};
|
|
22
|
-
exports?: undefined;
|
|
23
|
-
bindings?: undefined;
|
|
24
|
-
};
|
|
25
|
-
export {};
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import { syncStoreToStore } from "../../utils/syncing";
|
|
3
|
-
import { deepEqual } from "fast-equals";
|
|
4
|
-
import _ from "lodash-es";
|
|
5
|
-
import { onMount } from "svelte";
|
|
6
|
-
import { writable } from "svelte/store";
|
|
7
|
-
import { JSONEditor } from "svelte-jsoneditor";
|
|
8
|
-
|
|
9
|
-
import { Label } from "@stubber/ui/label";
|
|
10
|
-
|
|
11
|
-
export let field;
|
|
12
|
-
|
|
13
|
-
const internal = writable();
|
|
14
|
-
|
|
15
|
-
$: state_key = $field.state?.state_key;
|
|
16
|
-
$: label = $field.spec?.title;
|
|
17
|
-
$: hide_label = $field.spec?.hide_label;
|
|
18
|
-
$: isValid = !$field.state?.validation || $field.state?.validation?.valid;
|
|
19
|
-
$: validationMessage = $field.state?.validation?.message;
|
|
20
|
-
$: readOnly = $field.spec?.params?.readonly;
|
|
21
|
-
|
|
22
|
-
onMount(() => {
|
|
23
|
-
// set field values that aren't set yet
|
|
24
|
-
let f = _.cloneDeep($field);
|
|
25
|
-
let initial_value = f?.data?.base ?? null;
|
|
26
|
-
let mode = f?.state?.internal?.mode ?? "tree";
|
|
27
|
-
let content =
|
|
28
|
-
mode === "text" ? { text: JSON.stringify(initial_value) } : { json: initial_value };
|
|
29
|
-
let initial_data = {
|
|
30
|
-
...f?.data,
|
|
31
|
-
base: initial_value,
|
|
32
|
-
};
|
|
33
|
-
let initial_state_internal = {
|
|
34
|
-
...f?.state?.internal,
|
|
35
|
-
mode,
|
|
36
|
-
content,
|
|
37
|
-
};
|
|
38
|
-
_.set(f, "data", initial_data);
|
|
39
|
-
_.set(f, "state.internal", initial_state_internal);
|
|
40
|
-
if (!deepEqual(f, $field)) $field = f;
|
|
41
|
-
|
|
42
|
-
syncStoreToStore(
|
|
43
|
-
field,
|
|
44
|
-
internal,
|
|
45
|
-
(a, b) => {
|
|
46
|
-
let _clone = _.cloneDeep(a.state?.internal) || {};
|
|
47
|
-
|
|
48
|
-
// get parts from data
|
|
49
|
-
_clone.content =
|
|
50
|
-
_clone.mode === "text"
|
|
51
|
-
? { text: JSON.stringify(a?.data?.base) }
|
|
52
|
-
: { json: a?.data?.base };
|
|
53
|
-
|
|
54
|
-
// set field state if changed
|
|
55
|
-
if (!deepEqual(a?.state?.internal, _clone)) {
|
|
56
|
-
$field.state.internal = _clone;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
return _clone;
|
|
60
|
-
},
|
|
61
|
-
(a, b) => {
|
|
62
|
-
let _clone = _.cloneDeep(a) || {};
|
|
63
|
-
// update the state
|
|
64
|
-
_.set(_clone, "state.internal", _.cloneDeep(b));
|
|
65
|
-
// update the data
|
|
66
|
-
try {
|
|
67
|
-
let base;
|
|
68
|
-
if (b?.mode === "text") base = JSON.parse(b?.content?.text);
|
|
69
|
-
else base = b?.content?.json;
|
|
70
|
-
_.set(_clone, "data.base", base);
|
|
71
|
-
} catch (err) {
|
|
72
|
-
console.warn("JSON parse error", err);
|
|
73
|
-
}
|
|
74
|
-
return _clone;
|
|
75
|
-
}
|
|
76
|
-
);
|
|
77
|
-
});
|
|
78
|
-
</script>
|
|
79
|
-
|
|
80
|
-
{#if $internal && $internal}
|
|
81
|
-
<div class="flex flex-col w-full text-surface-900 my-2 jse-theme-dark">
|
|
82
|
-
<Label for="input_{state_key}" class="block {hide_label ? 'hidden' : ''}">
|
|
83
|
-
{label}
|
|
84
|
-
</Label>
|
|
85
|
-
<JSONEditor bind:content={$internal.content} {readOnly} bind:mode={$internal.mode} />
|
|
86
|
-
{#if validationMessage}
|
|
87
|
-
<Label class={!isValid ? `text-danger-500` : `text-success-500`}>{validationMessage}</Label>
|
|
88
|
-
{/if}
|
|
89
|
-
</div>
|
|
90
|
-
{/if}
|
|
91
|
-
|
|
92
|
-
<style>
|
|
93
|
-
/* :global(.jsoneditor),
|
|
94
|
-
:global(.jsoneditor div) {
|
|
95
|
-
border-bottom-right-radius: 10px !important;
|
|
96
|
-
border-bottom-left-radius: 10px !important;
|
|
97
|
-
|
|
98
|
-
} */
|
|
99
|
-
|
|
100
|
-
:global(.jse-button.jse-group-button) {
|
|
101
|
-
border-radius: 6px !important;
|
|
102
|
-
color: #000000 !important;
|
|
103
|
-
height: 1.5rem !important;
|
|
104
|
-
width: 3rem !important;
|
|
105
|
-
border: 0px !important;
|
|
106
|
-
margin: 5px !important;
|
|
107
|
-
padding: 12px !important;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
:global(.jse-button) {
|
|
111
|
-
border-radius: 6px !important;
|
|
112
|
-
color: #000000 !important;
|
|
113
|
-
background-color: #efeff0 !important;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
:global(.jse-button.jse-selected) {
|
|
117
|
-
background-color: #ffffff !important;
|
|
118
|
-
color: #000000 !important;
|
|
119
|
-
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.12), 0 3px 1px rgba(0, 0, 0, 0.04);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
:global(.jse-menu) {
|
|
123
|
-
color: #000000 !important;
|
|
124
|
-
background-color: #efeff0 !important;
|
|
125
|
-
margin-top: 10px;
|
|
126
|
-
margin-bottom: 20px;
|
|
127
|
-
border-radius: 10px !important;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
:global(.jse-navigation-bar) {
|
|
131
|
-
border-radius: 0px !important;
|
|
132
|
-
}
|
|
133
|
-
</style>
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/** @typedef {typeof __propDef.props} JsoneditorProps */
|
|
2
|
-
/** @typedef {typeof __propDef.events} JsoneditorEvents */
|
|
3
|
-
/** @typedef {typeof __propDef.slots} JsoneditorSlots */
|
|
4
|
-
export default class Jsoneditor extends SvelteComponent<{
|
|
5
|
-
field: any;
|
|
6
|
-
}, {
|
|
7
|
-
[evt: string]: CustomEvent<any>;
|
|
8
|
-
}, {}> {
|
|
9
|
-
}
|
|
10
|
-
export type JsoneditorProps = typeof __propDef.props;
|
|
11
|
-
export type JsoneditorEvents = typeof __propDef.events;
|
|
12
|
-
export type JsoneditorSlots = typeof __propDef.slots;
|
|
13
|
-
import { SvelteComponent } from "svelte";
|
|
14
|
-
declare const __propDef: {
|
|
15
|
-
props: {
|
|
16
|
-
field: any;
|
|
17
|
-
};
|
|
18
|
-
events: {
|
|
19
|
-
[evt: string]: CustomEvent<any>;
|
|
20
|
-
};
|
|
21
|
-
slots: {};
|
|
22
|
-
exports?: undefined;
|
|
23
|
-
bindings?: undefined;
|
|
24
|
-
};
|
|
25
|
-
export {};
|