@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.
Files changed (254) hide show
  1. package/dist/{fields2 → form-fields}/sub/currency-field.svelte +2 -3
  2. package/dist/{fields2 → form-fields}/sub/select-field.svelte +6 -3
  3. package/dist/{fields2 → form-fields}/utils.d.ts +1 -0
  4. package/dist/{fields2 → form-fields}/utils.js +9 -1
  5. package/dist/utils/input_regex_mask.d.ts +3 -0
  6. package/dist/utils/input_regex_mask.js +25 -0
  7. package/package.json +4 -8
  8. package/dist/Field.svelte +0 -36
  9. package/dist/Field.svelte.d.ts +0 -33
  10. package/dist/Form.svelte +0 -34
  11. package/dist/Form.svelte.d.ts +0 -31
  12. package/dist/NullFieldWrapper.svelte +0 -6
  13. package/dist/NullFieldWrapper.svelte.d.ts +0 -27
  14. package/dist/fields/component_parts/arraybuilder/FieldWrapper.svelte +0 -74
  15. package/dist/fields/component_parts/arraybuilder/FieldWrapper.svelte.d.ts +0 -31
  16. package/dist/fields/component_parts/fieldbuilder/FieldWrapper.svelte +0 -8
  17. package/dist/fields/component_parts/fieldbuilder/FieldWrapper.svelte.d.ts +0 -27
  18. package/dist/fields/components/AgGrid.svelte +0 -46
  19. package/dist/fields/components/AgGrid.svelte.d.ts +0 -20
  20. package/dist/fields/components/Arraybuilder.svelte +0 -98
  21. package/dist/fields/components/Arraybuilder.svelte.d.ts +0 -27
  22. package/dist/fields/components/Checkbox.svelte +0 -89
  23. package/dist/fields/components/Checkbox.svelte.d.ts +0 -25
  24. package/dist/fields/components/CheckboxAutocomplete.svelte +0 -95
  25. package/dist/fields/components/CheckboxAutocomplete.svelte.d.ts +0 -25
  26. package/dist/fields/components/Code.svelte +0 -133
  27. package/dist/fields/components/Code.svelte.d.ts +0 -18
  28. package/dist/fields/components/Contactselector.svelte +0 -71
  29. package/dist/fields/components/Contactselector.svelte.d.ts +0 -27
  30. package/dist/fields/components/Currency.svelte +0 -264
  31. package/dist/fields/components/Currency.svelte.d.ts +0 -25
  32. package/dist/fields/components/Dataindication.svelte +0 -31
  33. package/dist/fields/components/Dataindication.svelte.d.ts +0 -25
  34. package/dist/fields/components/Date.svelte +0 -97
  35. package/dist/fields/components/Date.svelte.d.ts +0 -25
  36. package/dist/fields/components/Datetime.svelte +0 -97
  37. package/dist/fields/components/Datetime.svelte.d.ts +0 -25
  38. package/dist/fields/components/Email.svelte +0 -125
  39. package/dist/fields/components/Email.svelte.d.ts +0 -25
  40. package/dist/fields/components/Fieldbuilder.svelte +0 -343
  41. package/dist/fields/components/Fieldbuilder.svelte.d.ts +0 -27
  42. package/dist/fields/components/Fieldsbuilder.svelte +0 -122
  43. package/dist/fields/components/Fieldsbuilder.svelte.d.ts +0 -27
  44. package/dist/fields/components/File.svelte +0 -231
  45. package/dist/fields/components/File.svelte.d.ts +0 -27
  46. package/dist/fields/components/Heading.svelte +0 -17
  47. package/dist/fields/components/Heading.svelte.d.ts +0 -25
  48. package/dist/fields/components/Hidden.svelte +0 -7
  49. package/dist/fields/components/Hidden.svelte.d.ts +0 -25
  50. package/dist/fields/components/Hiddenlocation.svelte +0 -28
  51. package/dist/fields/components/Hiddenlocation.svelte.d.ts +0 -25
  52. package/dist/fields/components/Html.svelte +0 -13
  53. package/dist/fields/components/Html.svelte.d.ts +0 -25
  54. package/dist/fields/components/Jsoneditor.svelte +0 -133
  55. package/dist/fields/components/Jsoneditor.svelte.d.ts +0 -25
  56. package/dist/fields/components/Map.svelte +0 -192
  57. package/dist/fields/components/Map.svelte.d.ts +0 -27
  58. package/dist/fields/components/Multicheckbox.svelte +0 -77
  59. package/dist/fields/components/Multicheckbox.svelte.d.ts +0 -25
  60. package/dist/fields/components/Multistep.svelte +0 -86
  61. package/dist/fields/components/Multistep.svelte.d.ts +0 -27
  62. package/dist/fields/components/Note.svelte +0 -92
  63. package/dist/fields/components/Note.svelte.d.ts +0 -25
  64. package/dist/fields/components/Number.svelte +0 -119
  65. package/dist/fields/components/Number.svelte.d.ts +0 -25
  66. package/dist/fields/components/Objectbuilder.svelte +0 -154
  67. package/dist/fields/components/Objectbuilder.svelte.d.ts +0 -27
  68. package/dist/fields/components/Qrcodescanner.svelte +0 -196
  69. package/dist/fields/components/Qrcodescanner.svelte.d.ts +0 -25
  70. package/dist/fields/components/Radio.svelte +0 -117
  71. package/dist/fields/components/Radio.svelte.d.ts +0 -25
  72. package/dist/fields/components/Renderfield.svelte +0 -58
  73. package/dist/fields/components/Renderfield.svelte.d.ts +0 -27
  74. package/dist/fields/components/Screenrecorder.svelte +0 -276
  75. package/dist/fields/components/Screenrecorder.svelte.d.ts +0 -27
  76. package/dist/fields/components/Screenshot.svelte +0 -269
  77. package/dist/fields/components/Screenshot.svelte.d.ts +0 -27
  78. package/dist/fields/components/Scrollandreaddisplay.svelte +0 -122
  79. package/dist/fields/components/Scrollandreaddisplay.svelte.d.ts +0 -25
  80. package/dist/fields/components/Section.svelte +0 -87
  81. package/dist/fields/components/Section.svelte.d.ts +0 -27
  82. package/dist/fields/components/Select.svelte +0 -161
  83. package/dist/fields/components/Select.svelte.d.ts +0 -31
  84. package/dist/fields/components/Selectresource.svelte +0 -57
  85. package/dist/fields/components/Selectresource.svelte.d.ts +0 -27
  86. package/dist/fields/components/Signature.svelte +0 -152
  87. package/dist/fields/components/Signature.svelte.d.ts +0 -27
  88. package/dist/fields/components/Slider.svelte +0 -101
  89. package/dist/fields/components/Slider.svelte.d.ts +0 -25
  90. package/dist/fields/components/SmartText.svelte +0 -351
  91. package/dist/fields/components/SmartText.svelte.d.ts +0 -25
  92. package/dist/fields/components/Telephone.svelte +0 -156
  93. package/dist/fields/components/Telephone.svelte.d.ts +0 -25
  94. package/dist/fields/components/Text.svelte +0 -107
  95. package/dist/fields/components/Text.svelte.d.ts +0 -25
  96. package/dist/fields/components/Voicenote.svelte +0 -267
  97. package/dist/fields/components/Voicenote.svelte.d.ts +0 -27
  98. package/dist/fields/components/index.d.ts +0 -84
  99. package/dist/fields/components/index.js +0 -85
  100. package/dist/fields/definitions/all.json +0 -38
  101. package/dist/fields/definitions/arraybuilder.json +0 -39
  102. package/dist/fields/definitions/checkbox.json +0 -44
  103. package/dist/fields/definitions/code.json +0 -15
  104. package/dist/fields/definitions/contactselector.json +0 -15
  105. package/dist/fields/definitions/currency.json +0 -42
  106. package/dist/fields/definitions/dataindication.json +0 -16
  107. package/dist/fields/definitions/date.json +0 -16
  108. package/dist/fields/definitions/datetime.json +0 -15
  109. package/dist/fields/definitions/email.json +0 -16
  110. package/dist/fields/definitions/fieldbuilder.json +0 -64
  111. package/dist/fields/definitions/fieldsbuilder.json +0 -38
  112. package/dist/fields/definitions/file.json +0 -42
  113. package/dist/fields/definitions/grid.json +0 -47
  114. package/dist/fields/definitions/heading.json +0 -38
  115. package/dist/fields/definitions/hidden.json +0 -89
  116. package/dist/fields/definitions/hiddenlocation.json +0 -15
  117. package/dist/fields/definitions/html.json +0 -34
  118. package/dist/fields/definitions/index.d.ts +0 -90
  119. package/dist/fields/definitions/index.js +0 -99
  120. package/dist/fields/definitions/jsoneditor.json +0 -33
  121. package/dist/fields/definitions/map.json +0 -36
  122. package/dist/fields/definitions/multicheckbox.json +0 -47
  123. package/dist/fields/definitions/multistep.json +0 -35
  124. package/dist/fields/definitions/note.json +0 -16
  125. package/dist/fields/definitions/number.json +0 -42
  126. package/dist/fields/definitions/objectbuilder.json +0 -39
  127. package/dist/fields/definitions/placeholder.json +0 -15
  128. package/dist/fields/definitions/qrcodescanner.json +0 -16
  129. package/dist/fields/definitions/radio.json +0 -47
  130. package/dist/fields/definitions/renderfield.json +0 -36
  131. package/dist/fields/definitions/richtext.json +0 -16
  132. package/dist/fields/definitions/screenrecorder.json +0 -42
  133. package/dist/fields/definitions/screenshot.json +0 -42
  134. package/dist/fields/definitions/scrollandreaddisplay.json +0 -49
  135. package/dist/fields/definitions/section.json +0 -50
  136. package/dist/fields/definitions/select.json +0 -47
  137. package/dist/fields/definitions/selectresource.json +0 -48
  138. package/dist/fields/definitions/signature.json +0 -16
  139. package/dist/fields/definitions/slider.json +0 -78
  140. package/dist/fields/definitions/smarttext.json +0 -101
  141. package/dist/fields/definitions/telephone.json +0 -16
  142. package/dist/fields/definitions/text.json +0 -35
  143. package/dist/fields/definitions/validfieldtype.json +0 -220
  144. package/dist/fields/definitions/voicenote.json +0 -43
  145. package/dist/index.d.ts +0 -2
  146. package/dist/index.js +0 -3
  147. package/dist/thirdparty/mapbox/GeoCoder.svelte +0 -10
  148. package/dist/thirdparty/mapbox/GeoCoder.svelte.d.ts +0 -27
  149. package/dist/thirdparty/mapbox/Map.svelte +0 -30
  150. package/dist/thirdparty/mapbox/Map.svelte.d.ts +0 -22
  151. package/dist/thirdparty/mapbox/MapMarker.svelte +0 -13
  152. package/dist/thirdparty/mapbox/MapMarker.svelte.d.ts +0 -33
  153. package/dist/utils/createField.d.ts +0 -6
  154. package/dist/utils/createField.js +0 -33
  155. package/dist/utils/createForm.d.ts +0 -1
  156. package/dist/utils/createForm.js +0 -501
  157. package/dist/utils/index.d.ts +0 -18
  158. package/dist/utils/index.js +0 -126
  159. package/dist/utils/syncing.d.ts +0 -11
  160. package/dist/utils/syncing.js +0 -134
  161. /package/dist/{fields2 → form-fields}/FieldExprToggle.svelte +0 -0
  162. /package/dist/{fields2 → form-fields}/FieldExprToggle.svelte.d.ts +0 -0
  163. /package/dist/{fields2 → form-fields}/FieldLabel.svelte +0 -0
  164. /package/dist/{fields2 → form-fields}/FieldLabel.svelte.d.ts +0 -0
  165. /package/dist/{fields2 → form-fields}/FieldMessage.svelte +0 -0
  166. /package/dist/{fields2 → form-fields}/FieldMessage.svelte.d.ts +0 -0
  167. /package/dist/{fields2 → form-fields}/Form.svelte +0 -0
  168. /package/dist/{fields2 → form-fields}/Form.svelte.d.ts +0 -0
  169. /package/dist/{fields2 → form-fields}/fileserver.d.ts +0 -0
  170. /package/dist/{fields2 → form-fields}/fileserver.js +0 -0
  171. /package/dist/{fields2 → form-fields}/form-field.svelte +0 -0
  172. /package/dist/{fields2 → form-fields}/form-field.svelte.d.ts +0 -0
  173. /package/dist/{fields2 → form-fields}/index.d.ts +0 -0
  174. /package/dist/{fields2 → form-fields}/index.js +0 -0
  175. /package/dist/{fields2 → form-fields}/interfaces.d.ts +0 -0
  176. /package/dist/{fields2 → form-fields}/interfaces.js +0 -0
  177. /package/dist/{fields2 → form-fields}/sub/array-builder-field.svelte +0 -0
  178. /package/dist/{fields2 → form-fields}/sub/array-builder-field.svelte.d.ts +0 -0
  179. /package/dist/{fields2 → form-fields}/sub/checkbox-autocomplete.svelte +0 -0
  180. /package/dist/{fields2 → form-fields}/sub/checkbox-autocomplete.svelte.d.ts +0 -0
  181. /package/dist/{fields2 → form-fields}/sub/checkbox-field.svelte +0 -0
  182. /package/dist/{fields2 → form-fields}/sub/checkbox-field.svelte.d.ts +0 -0
  183. /package/dist/{fields2 → form-fields}/sub/code-field.svelte +0 -0
  184. /package/dist/{fields2 → form-fields}/sub/code-field.svelte.d.ts +0 -0
  185. /package/dist/{fields2 → form-fields}/sub/contact-selector-field.svelte +0 -0
  186. /package/dist/{fields2 → form-fields}/sub/contact-selector-field.svelte.d.ts +0 -0
  187. /package/dist/{fields2 → form-fields}/sub/currency-field.svelte.d.ts +0 -0
  188. /package/dist/{fields2 → form-fields}/sub/data-indication-field.svelte +0 -0
  189. /package/dist/{fields2 → form-fields}/sub/data-indication-field.svelte.d.ts +0 -0
  190. /package/dist/{fields2 → form-fields}/sub/date-field.svelte +0 -0
  191. /package/dist/{fields2 → form-fields}/sub/date-field.svelte.d.ts +0 -0
  192. /package/dist/{fields2 → form-fields}/sub/date-time-field.svelte +0 -0
  193. /package/dist/{fields2 → form-fields}/sub/date-time-field.svelte.d.ts +0 -0
  194. /package/dist/{fields2 → form-fields}/sub/email-field.svelte +0 -0
  195. /package/dist/{fields2 → form-fields}/sub/email-field.svelte.d.ts +0 -0
  196. /package/dist/{fields2 → form-fields}/sub/field-builder-field.svelte +0 -0
  197. /package/dist/{fields2 → form-fields}/sub/field-builder-field.svelte.d.ts +0 -0
  198. /package/dist/{fields2 → form-fields}/sub/file-field.svelte +0 -0
  199. /package/dist/{fields2 → form-fields}/sub/file-field.svelte.d.ts +0 -0
  200. /package/dist/{fields2 → form-fields}/sub/grid-field.svelte +0 -0
  201. /package/dist/{fields2 → form-fields}/sub/grid-field.svelte.d.ts +0 -0
  202. /package/dist/{fields2 → form-fields}/sub/heading-field.svelte +0 -0
  203. /package/dist/{fields2 → form-fields}/sub/heading-field.svelte.d.ts +0 -0
  204. /package/dist/{fields2 → form-fields}/sub/hidden-field.svelte +0 -0
  205. /package/dist/{fields2 → form-fields}/sub/hidden-field.svelte.d.ts +0 -0
  206. /package/dist/{fields2 → form-fields}/sub/hidden-location-field.svelte +0 -0
  207. /package/dist/{fields2 → form-fields}/sub/hidden-location-field.svelte.d.ts +0 -0
  208. /package/dist/{fields2 → form-fields}/sub/html-field.svelte +0 -0
  209. /package/dist/{fields2 → form-fields}/sub/html-field.svelte.d.ts +0 -0
  210. /package/dist/{fields2 → form-fields}/sub/json-editor-bound.svelte +0 -0
  211. /package/dist/{fields2 → form-fields}/sub/json-editor-bound.svelte.d.ts +0 -0
  212. /package/dist/{fields2 → form-fields}/sub/jsoneditor-field.svelte +0 -0
  213. /package/dist/{fields2 → form-fields}/sub/jsoneditor-field.svelte.d.ts +0 -0
  214. /package/dist/{fields2 → form-fields}/sub/map-field.svelte +0 -0
  215. /package/dist/{fields2 → form-fields}/sub/map-field.svelte.d.ts +0 -0
  216. /package/dist/{fields2 → form-fields}/sub/multi-checkbox-field.svelte +0 -0
  217. /package/dist/{fields2 → form-fields}/sub/multi-checkbox-field.svelte.d.ts +0 -0
  218. /package/dist/{fields2 → form-fields}/sub/multistep-field.svelte +0 -0
  219. /package/dist/{fields2 → form-fields}/sub/multistep-field.svelte.d.ts +0 -0
  220. /package/dist/{fields2 → form-fields}/sub/note-field.svelte +0 -0
  221. /package/dist/{fields2 → form-fields}/sub/note-field.svelte.d.ts +0 -0
  222. /package/dist/{fields2 → form-fields}/sub/number-field.svelte +0 -0
  223. /package/dist/{fields2 → form-fields}/sub/number-field.svelte.d.ts +0 -0
  224. /package/dist/{fields2 → form-fields}/sub/object-builder-field.svelte +0 -0
  225. /package/dist/{fields2 → form-fields}/sub/object-builder-field.svelte.d.ts +0 -0
  226. /package/dist/{fields2 → form-fields}/sub/qr-code-scanner-field.svelte +0 -0
  227. /package/dist/{fields2 → form-fields}/sub/qr-code-scanner-field.svelte.d.ts +0 -0
  228. /package/dist/{fields2 → form-fields}/sub/radio-field.svelte +0 -0
  229. /package/dist/{fields2 → form-fields}/sub/radio-field.svelte.d.ts +0 -0
  230. /package/dist/{fields2 → form-fields}/sub/screenrecorder-field.svelte +0 -0
  231. /package/dist/{fields2 → form-fields}/sub/screenrecorder-field.svelte.d.ts +0 -0
  232. /package/dist/{fields2 → form-fields}/sub/screenshot-field.svelte +0 -0
  233. /package/dist/{fields2 → form-fields}/sub/screenshot-field.svelte.d.ts +0 -0
  234. /package/dist/{fields2 → form-fields}/sub/scroll-and-read-display-field.svelte +0 -0
  235. /package/dist/{fields2 → form-fields}/sub/scroll-and-read-display-field.svelte.d.ts +0 -0
  236. /package/dist/{fields2 → form-fields}/sub/section-field.svelte +0 -0
  237. /package/dist/{fields2 → form-fields}/sub/section-field.svelte.d.ts +0 -0
  238. /package/dist/{fields2 → form-fields}/sub/select-field.svelte.d.ts +0 -0
  239. /package/dist/{fields2 → form-fields}/sub/selectresource-field.svelte +0 -0
  240. /package/dist/{fields2 → form-fields}/sub/selectresource-field.svelte.d.ts +0 -0
  241. /package/dist/{fields2 → form-fields}/sub/signature-field.svelte +0 -0
  242. /package/dist/{fields2 → form-fields}/sub/signature-field.svelte.d.ts +0 -0
  243. /package/dist/{fields2 → form-fields}/sub/slider-field.svelte +0 -0
  244. /package/dist/{fields2 → form-fields}/sub/slider-field.svelte.d.ts +0 -0
  245. /package/dist/{fields2 → form-fields}/sub/smart-text-field.svelte +0 -0
  246. /package/dist/{fields2 → form-fields}/sub/smart-text-field.svelte.d.ts +0 -0
  247. /package/dist/{fields2 → form-fields}/sub/telephone-field.svelte +0 -0
  248. /package/dist/{fields2 → form-fields}/sub/telephone-field.svelte.d.ts +0 -0
  249. /package/dist/{fields2 → form-fields}/sub/text-field.svelte +0 -0
  250. /package/dist/{fields2 → form-fields}/sub/text-field.svelte.d.ts +0 -0
  251. /package/dist/{fields2 → form-fields}/sub/voicenote-field.svelte +0 -0
  252. /package/dist/{fields2 → form-fields}/sub/voicenote-field.svelte.d.ts +0 -0
  253. /package/dist/{fields2 → form-fields}/validations/validate_field.d.ts +0 -0
  254. /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,7 +0,0 @@
1
- <script>
2
- export let field;
3
-
4
- $: state_key = $field.state?.state_key;
5
- </script>
6
-
7
- <input name={state_key} bind:value={$field.data.base} hidden />
@@ -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,13 +0,0 @@
1
- <script>
2
- import _ from "lodash-es";
3
-
4
- export let field;
5
-
6
- $: html = $field?.spec?.params?.html;
7
- </script>
8
-
9
- <div class="w-full">
10
- {#if html}
11
- {@html html}
12
- {/if}
13
- </div>
@@ -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 {};