sveltekit-ui 1.1.14 → 1.1.16

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 (45) hide show
  1. package/package.json +4 -4
  2. package/src/routes/+page.svelte +24 -0
  3. package/dist/Components/Alert/index.svelte +0 -88
  4. package/dist/Components/Alert/index.svelte.js +0 -101
  5. package/dist/Components/Audio/index.svelte +0 -193
  6. package/dist/Components/Audio/index.svelte.js +0 -463
  7. package/dist/Components/AuthCodeInput/index.svelte +0 -85
  8. package/dist/Components/AuthCodeInput/index.svelte.js +0 -95
  9. package/dist/Components/Button/index.svelte +0 -721
  10. package/dist/Components/Button/index.svelte.js +0 -375
  11. package/dist/Components/Checkbox/index.svelte +0 -411
  12. package/dist/Components/Checkbox/index.svelte.js +0 -178
  13. package/dist/Components/Code/index.svelte +0 -23
  14. package/dist/Components/Code/index.svelte.js +0 -33
  15. package/dist/Components/EmailAddress/index.svelte +0 -22
  16. package/dist/Components/EmailAddress/index.svelte.js +0 -45
  17. package/dist/Components/Eye/index.svelte +0 -57
  18. package/dist/Components/Icon/index.svelte +0 -412
  19. package/dist/Components/Icon/index.svelte.js +0 -116
  20. package/dist/Components/InfoBox/index.svelte +0 -89
  21. package/dist/Components/Json/index.svelte +0 -60
  22. package/dist/Components/Json/index.svelte.js +0 -594
  23. package/dist/Components/Link/index.svelte +0 -47
  24. package/dist/Components/Link/index.svelte.js +0 -136
  25. package/dist/Components/LoadingSuccessDiv/index.svelte +0 -51
  26. package/dist/Components/Location/index.svelte +0 -79
  27. package/dist/Components/Location/index.svelte.js +0 -288
  28. package/dist/Components/PhoneNumber/index.svelte +0 -22
  29. package/dist/Components/PhoneNumber/index.svelte.js +0 -41
  30. package/dist/Components/Qr/index.svelte +0 -85
  31. package/dist/Components/Qr/index.svelte.js +0 -301
  32. package/dist/Components/QrInput/index.svelte +0 -47
  33. package/dist/Components/QrInput/index.svelte.js +0 -218
  34. package/dist/Components/Slider/index.svelte +0 -239
  35. package/dist/Components/Slider/index.svelte.js +0 -469
  36. package/dist/Components/SuccessCheck/index.svelte +0 -56
  37. package/dist/Components/TableAdvanced/index.svelte +0 -275
  38. package/dist/Components/TableAdvanced/index.svelte.js +0 -1565
  39. package/dist/Components/TextInput/index.svelte +0 -223
  40. package/dist/Components/TextInput/index.svelte.js +0 -447
  41. package/dist/Components/Time/index.svelte +0 -7
  42. package/dist/Components/Time/index.svelte.js +0 -38
  43. package/dist/Components/VideoTBD/index.svelte +0 -100
  44. package/dist/Components/XPost/index.svelte +0 -52
  45. package/dist/Components/XPost/index.svelte.js +0 -64
@@ -1,60 +0,0 @@
1
- <script>
2
- import Popover from "../Popover/index.svelte"
3
- import Button from "../Button/index.svelte"
4
- import TextInput from "../TextInput/index.svelte"
5
- import FileInput from "../FileInput/index.svelte"
6
- import Nested from "./Nested/index.svelte"
7
-
8
- let { manager } = $props()
9
- </script>
10
-
11
- {#snippet main_content()}
12
- {#if manager?.is_show_buttons}
13
- <div style="display: flex; flex-wrap: wrap;">
14
- <Button manager={manager?.collapse_all_button_manager} />
15
- <Button manager={manager?.expand_all_button_manager} />
16
- <Button manager={manager?.copy_json_button_manager} />
17
- {#if manager?.is_edit_mode}
18
- <div>
19
- <FileInput manager={manager?.file_input_manager} />
20
- </div>
21
- <div>
22
- <Button manager={manager?.edit_json_button_manager} />
23
- <Popover manager={manager?.data_upload_popover_manager}>
24
- {#snippet content()}
25
- <div>
26
- <TextInput manager={manager?.data_text_input_manager} />
27
- </div>
28
- {/snippet}
29
- {#snippet footer()}
30
- <Button manager={manager?.finish_data_upload_button_manager} />
31
- {/snippet}
32
- </Popover>
33
- </div>
34
- {/if}
35
- </div>
36
- {/if}
37
- <Nested manager={manager?.json_prepped} is_edit_mode={manager?.is_edit_mode} />
38
- {/snippet}
39
-
40
- {#if manager?.label}
41
- <div style="display: inline-flex;">
42
- {#if manager?.label}
43
- <p class="label">{manager?.label}:</p>
44
- {/if}
45
- </div>
46
- {/if}
47
-
48
- {#if !manager?.is_popover}
49
- {@render main_content()}
50
- {:else}
51
- <Button manager={manager?.popover_toggle_button_manager} />
52
- <Popover manager={manager.popover_manager}>
53
- {#snippet content()}
54
- {@render main_content()}
55
- {/snippet}
56
- {#snippet footer()}
57
- <Button manager={manager?.finish_button_manager} />
58
- {/snippet}
59
- </Popover>
60
- {/if}
@@ -1,594 +0,0 @@
1
- import { create_unique_id, copy_to_clipboard, csv_to_json, set_closurable } from "../../client/index.js"
2
- import { create_button_manager } from "../Button/index.svelte.js"
3
- import { create_file_input_manager } from "../FileInput/index.svelte.js"
4
- import { create_popover_manager } from "../Popover/index.svelte.js"
5
- import { create_text_input_manager } from "../TextInput/index.svelte.js"
6
- import { create_dropdown_manager } from "../Dropdown/index.svelte.js"
7
- import { create_checkbox_manager } from "../Checkbox/index.svelte.js"
8
-
9
- export function create_json_manager(config) {
10
- const id = create_unique_id(null, 20)
11
-
12
- let popover_manager = $state(null)
13
- let popover_toggle_button_manager = $state(null)
14
- let finish_button_manager = $state(null)
15
- let json_prepped = $state(null)
16
- let collapse_all_button_manager = $state(null)
17
- let expand_all_button_manager = $state(null)
18
- let copy_json_button_manager = $state(null)
19
- let file_input_manager = $state(null)
20
- let data_text_input_manager = $state(null)
21
- let data_upload_popover_manager = $state(null)
22
- let finish_data_upload_button_manager = $state(null)
23
- let edit_json_button_manager = $state(null)
24
-
25
- let is_popover = $derived(set_closurable(config?.is_popover, false))
26
- let is_edit_mode = $derived(set_closurable(config?.is_edit_mode, false))
27
- let is_show_buttons = $derived(set_closurable(config?.is_show_buttons, false))
28
- let label = $derived(set_closurable(config?.label, null))
29
- let val = $derived(get_val_from_json_prepped(json_prepped))
30
-
31
- function get_val_from_json_prepped(input) {
32
- if (input?.type == "object") {
33
- let obj_val = {}
34
- if (input?.val && typeof input?.val == "object" && !Array.isArray(input?.val)) {
35
- for (let [key, val] of Object.entries(input?.val)) {
36
- obj_val[key] = get_val_from_json_prepped(val?.json_prepped)
37
- }
38
- }
39
- return obj_val
40
- } else if (input?.type == "array") {
41
- let array_val = []
42
- if (Array.isArray(input?.val)) {
43
- for (let item of input?.val) {
44
- array_val.push(get_val_from_json_prepped(item?.json_prepped))
45
- }
46
- }
47
- return array_val
48
- } else if (input?.type == "null") {
49
- return null
50
- } else if (input?.type == "string") {
51
- return input?.val
52
- } else if (input?.type == "number") {
53
- return input?.val
54
- } else if (input?.type == "boolean") {
55
- return input?.val
56
- }
57
- }
58
-
59
- function get_replace_key_in_object(obj, path_remaining, old_key, new_key) {
60
- let return_obj = { ...obj }
61
- if (Array.isArray(path_remaining) && path_remaining.length > 0) {
62
- const current_key = path_remaining[0]
63
- if (return_obj[current_key]) {
64
- return_obj[current_key] = get_replace_key_in_object(
65
- return_obj[current_key],
66
- path_remaining.slice(1),
67
- old_key,
68
- new_key
69
- )
70
- }
71
- } else if (Array.isArray(path_remaining) && path_remaining.length === 0) {
72
- let new_obj = {}
73
- for (const key in return_obj) {
74
- if (key === old_key) {
75
- new_obj[new_key] = return_obj[old_key]
76
- } else {
77
- new_obj[key] = return_obj[key]
78
- }
79
- }
80
- return_obj = new_obj
81
- }
82
- return return_obj
83
- }
84
-
85
- function delete_key_at_path(obj, path, key) {
86
- if (!obj || typeof obj !== "object" || !Array.isArray(path) || typeof key !== "string") {
87
- return obj
88
- }
89
- const new_obj = JSON.parse(JSON.stringify(obj))
90
- let current = new_obj
91
- for (let i = 0; i < path.length; i++) {
92
- if (current[path[i]] === undefined) {
93
- return new_obj
94
- }
95
- current = current[path[i]]
96
- }
97
- if (current && typeof current === "object") {
98
- delete current[key]
99
- }
100
- return new_obj
101
- }
102
-
103
- function delete_item_at_path(obj, path) {
104
- if (!obj || typeof obj !== "object" || !Array.isArray(path)) {
105
- return obj
106
- }
107
- const new_obj = JSON.parse(JSON.stringify(obj))
108
- let current = new_obj
109
- for (let i = 0; i < path.length - 1; i++) {
110
- if (current[path[i]] === undefined) {
111
- return new_obj
112
- }
113
- current = current[path[i]]
114
- }
115
- const last_path = path[path.length - 1]
116
- if (Array.isArray(current) && typeof last_path === "number") {
117
- current.splice(last_path, 1)
118
- } else if (Array.isArray(current[last_path])) {
119
- current[last_path].splice(last_path, 1)
120
- }
121
- return new_obj
122
- }
123
-
124
- function get_key_manager(key, path, json_prepped_loc, indentation, key_val = null) {
125
- let edit_key_popover_manager = $state(
126
- create_popover_manager({
127
- header: "Edit Key",
128
- target_height: 400,
129
- target_width: 400,
130
- })
131
- )
132
- let edit_key_text_input_manager = $state(
133
- create_text_input_manager({
134
- placeholder: "key",
135
- val: key,
136
- })
137
- )
138
- let edit_key_button_manager = $state(
139
- create_button_manager({
140
- type: "soft",
141
- support_icon: "edit",
142
- is_uniform: true,
143
- min_height: 1.6,
144
- icon_size: 1.2,
145
- icon_sw: 40,
146
- l: 3,
147
- border_radius: 0.5,
148
- popover_target: () => `popover_${edit_key_popover_manager?.id}`,
149
- })
150
- )
151
- let edit_key_delete_button_manager = $state(
152
- create_button_manager({
153
- text: "Delete Key",
154
- color: "var(--error-t)",
155
- is_compressed: true,
156
- mt: 1,
157
- on_click: () => {
158
- const current_val = get_val_from_json_prepped(json_prepped)
159
- const new_val = delete_key_at_path(current_val, path, key)
160
- edit_key_popover_manager.close()
161
- setTimeout(() => {
162
- json_prepped = get_json_prepped(new_val, 0, indentation)
163
- }, 500)
164
- },
165
- })
166
- )
167
- let edit_key_finish_button_manager = $state(
168
- create_button_manager({
169
- text: "Finish",
170
- on_click: () => {
171
- const current_val = get_val_from_json_prepped(json_prepped)
172
- const new_val = get_replace_key_in_object(current_val, path, key, edit_key_text_input_manager?.val)
173
- setTimeout(() => {
174
- json_prepped = get_json_prepped(new_val, 0, indentation)
175
- }, 500)
176
- },
177
- })
178
- )
179
- return {
180
- edit_key_popover_manager: edit_key_popover_manager,
181
- edit_key_button_manager: edit_key_button_manager,
182
- edit_key_text_input_manager: edit_key_text_input_manager,
183
- edit_key_delete_button_manager: edit_key_delete_button_manager,
184
- edit_key_finish_button_manager: edit_key_finish_button_manager,
185
- json_prepped: get_json_prepped(key_val, json_prepped_loc?.nested_levels, indentation, [
186
- ...(Array.isArray(path) ? path : []),
187
- key,
188
- ]),
189
- }
190
- }
191
-
192
- function get_json_prepped(input, nested_levels = null, indentation_input, path = [], is_array_item = false) {
193
- const indentation = Number.isInteger(indentation_input) ? indentation_input : 1
194
- let json_prepped_loc = $state(null)
195
- let collapse_button_manager = $state(null)
196
- let edit_item_popover_manager = $state(null)
197
- let edit_item_button_manager = $state(null)
198
- let edit_item_type_dropdown_manager = $state(null)
199
- let edit_item_number_text_input_manager = $state(null)
200
- let edit_item_string_text_input_manager = $state(null)
201
- let edit_item_boolean_checkbox_manager = $state(null)
202
- let add_item_button_manager = $state(null)
203
- let delete_item_button_manager = $state(null)
204
- let finish_edit_item_button_manager = $state(null)
205
- function toggle_is_collapsed() {
206
- json_prepped_loc.is_collapsed = !json_prepped_loc?.is_collapsed
207
- }
208
- // collapse_button_manager = create_button_manager({ notable when used in TableAdvanced with many rows my button takes up way too much memory so this helps to replace with basic one
209
- // type: "outlined",
210
- // is_uniform: true,
211
- // support_icon: () => (json_prepped_loc?.is_collapsed ? "plus" : "minus"),
212
- // min_height: 1.6,
213
- // mt: 0.2,
214
- // icon_size: 0.8,
215
- // icon_sw: 60,
216
- // l: 3,
217
- // border_radius: 0.5,
218
- // on_click: () => (json_prepped_loc.is_collapsed = !json_prepped_loc?.is_collapsed),
219
- // })
220
- if (is_edit_mode) {
221
- edit_item_popover_manager = create_popover_manager({
222
- type: "center",
223
- header: "Edit Item",
224
- })
225
- edit_item_button_manager = create_button_manager({
226
- type: "soft",
227
- support_icon: "edit",
228
- is_uniform: true,
229
- min_height: 1.6,
230
- icon_size: 1.2,
231
- icon_sw: 40,
232
- l: 3,
233
- border_radius: 0.5,
234
- popover_target: () => `popover_${edit_item_popover_manager?.id}`,
235
- })
236
- edit_item_type_dropdown_manager = create_dropdown_manager({
237
- mb: 1,
238
- is_button_compressed: true,
239
- options: [
240
- { key: "object", name: "Object" },
241
- { key: "array", name: "Array" },
242
- { key: "string", name: "String" },
243
- { key: "number", name: "Number" },
244
- { key: "boolean", name: "Boolean" },
245
- { key: "null", name: "Null" },
246
- ],
247
- })
248
- edit_item_number_text_input_manager = create_text_input_manager({
249
- type: "number",
250
- })
251
- edit_item_string_text_input_manager = create_text_input_manager({
252
- type: "text_area",
253
- })
254
- edit_item_boolean_checkbox_manager = create_checkbox_manager({
255
- type: "toggle",
256
- })
257
- delete_item_button_manager = create_button_manager({
258
- color: "var(--error-t)",
259
- text: "Delete List Item",
260
- is_compressed: true,
261
- mt: 1,
262
- on_click: () => {
263
- const current_val = get_val_from_json_prepped(json_prepped)
264
- const new_val = delete_item_at_path(current_val, path)
265
- edit_item_popover_manager.close()
266
- setTimeout(() => {
267
- json_prepped = get_json_prepped(new_val, 0, indentation)
268
- }, 500)
269
- },
270
- })
271
- add_item_button_manager = create_button_manager({
272
- type: "outlined",
273
- text: "Add Item",
274
- support_icon: "plus",
275
- is_compressed: true,
276
- min_height: 1.6,
277
- pt: 0.2,
278
- pb: 0.2,
279
- pl: 0.5,
280
- pr: 0.5,
281
- font_size: 1.4,
282
- icon_size: 1.2,
283
- icon_sw: 50,
284
- l: 3,
285
- border_radius: 0.5,
286
- on_click: () => {
287
- if (json_prepped_loc?.type == "object") {
288
- let key = `tbd_${create_unique_id(null, 4)}`
289
- let key_manager = get_key_manager(key, path, json_prepped_loc, config?.indentation)
290
- json_prepped_loc.val[key] = key_manager
291
- } else if (json_prepped_loc?.type == "array") {
292
- json_prepped_loc.val = Array.isArray(json_prepped_loc.val) ? json_prepped_loc.val : []
293
- json_prepped_loc.val.push({
294
- json_prepped: get_json_prepped(
295
- null,
296
- json_prepped_loc?.nested_levels,
297
- indentation,
298
- [...path, json_prepped_loc.val.length - 1],
299
- true
300
- ),
301
- })
302
- }
303
- },
304
- })
305
- finish_edit_item_button_manager = create_button_manager({
306
- text: "Finish",
307
- on_click: () => {
308
- if (edit_item_type_dropdown_manager?.val == "object") {
309
- json_prepped_loc.type = "object"
310
- json_prepped_loc.val =
311
- json_prepped_loc.val && typeof json_prepped_loc.val == "object" && !Array.isArray(json_prepped_loc.val)
312
- ? json_prepped_loc.val
313
- : {}
314
- } else if (edit_item_type_dropdown_manager?.val == "array") {
315
- json_prepped_loc.type = "array"
316
- json_prepped_loc.val = Array.isArray(json_prepped_loc.val) ? json_prepped_loc.val : []
317
- } else if (edit_item_type_dropdown_manager?.val == "null") {
318
- json_prepped_loc.type = "null"
319
- json_prepped_loc.val = null
320
- } else if (edit_item_type_dropdown_manager?.val == "boolean") {
321
- json_prepped_loc.type = "boolean"
322
- json_prepped_loc.val = edit_item_boolean_checkbox_manager?.val
323
- } else if (edit_item_type_dropdown_manager?.val == "number") {
324
- json_prepped_loc.type = "number"
325
- json_prepped_loc.val = edit_item_number_text_input_manager?.val
326
- } else if (edit_item_type_dropdown_manager?.val == "string") {
327
- json_prepped_loc.type = "string"
328
- json_prepped_loc.val = edit_item_string_text_input_manager?.val
329
- }
330
- edit_item_popover_manager.close()
331
- },
332
- })
333
- }
334
- json_prepped_loc = {
335
- type: "null",
336
- is_collapsed: !!config?.is_collapsed,
337
- is_array_item: is_array_item,
338
- nested_levels: Number.isInteger(nested_levels) ? nested_levels + 1 : 0,
339
- indentation: indentation,
340
- collapse_button_manager: collapse_button_manager,
341
- edit_item_popover_manager: edit_item_popover_manager,
342
- edit_item_button_manager: edit_item_button_manager,
343
- edit_item_type_dropdown_manager: edit_item_type_dropdown_manager,
344
- edit_item_number_text_input_manager: edit_item_number_text_input_manager,
345
- edit_item_string_text_input_manager: edit_item_string_text_input_manager,
346
- edit_item_boolean_checkbox_manager: edit_item_boolean_checkbox_manager,
347
- add_item_button_manager: add_item_button_manager,
348
- delete_item_button_manager: delete_item_button_manager,
349
- finish_edit_item_button_manager: finish_edit_item_button_manager,
350
- val: null,
351
- toggle_is_collapsed,
352
- }
353
- if (typeof input == "object" && input != null) {
354
- if (Array.isArray(input)) {
355
- json_prepped_loc.type = "array"
356
- json_prepped_loc.val = []
357
- for (let i = 0; i < input.length; i++) {
358
- const test = get_json_prepped(input?.[i], json_prepped_loc?.nested_levels, indentation, [...path, i], true)
359
- json_prepped_loc.val.push({
360
- json_prepped: get_json_prepped(
361
- input?.[i],
362
- json_prepped_loc?.nested_levels,
363
- indentation,
364
- [...path, i],
365
- true
366
- ),
367
- })
368
- }
369
- } else {
370
- json_prepped_loc.type = "object"
371
- json_prepped_loc.val = {}
372
- for (let [key, val] of Object.entries(input)) {
373
- let key_manager = get_key_manager(key, path, json_prepped_loc, config?.indentation, val)
374
- json_prepped_loc.val[key] = key_manager
375
- }
376
- }
377
- } else if (typeof input == "boolean") {
378
- json_prepped_loc.type = "boolean"
379
- json_prepped_loc.val = input
380
- if (is_edit_mode) {
381
- edit_item_boolean_checkbox_manager.set_val(input)
382
- }
383
- } else if (typeof input == "number") {
384
- json_prepped_loc.type = "number"
385
- json_prepped_loc.val = input
386
- if (is_edit_mode) {
387
- edit_item_number_text_input_manager.set_val(input)
388
- }
389
- } else if (typeof input == "string") {
390
- json_prepped_loc.type = "string"
391
- json_prepped_loc.val = input
392
- if (is_edit_mode) {
393
- edit_item_string_text_input_manager.set_val(input)
394
- }
395
- }
396
- if (is_edit_mode) {
397
- json_prepped_loc.edit_item_type_dropdown_manager.set_val(json_prepped_loc.type)
398
- }
399
- return json_prepped_loc
400
- }
401
-
402
- function set_collapse_all(is_collapse = true) {
403
- function collapse_me_and_children(input) {
404
- if (typeof input == "object" && input?.hasOwnProperty("is_collapsed")) {
405
- input.is_collapsed = is_collapse
406
- }
407
- if (input?.type == "object" && Object.keys(input?.val || {}).length > 0) {
408
- for (let key of Object.keys(input?.val)) {
409
- input.val[key].json_prepped = collapse_me_and_children(input?.val?.[key]?.json_prepped)
410
- }
411
- } else if (input?.type == "array" && Array.isArray(input?.val)) {
412
- for (let i = 0; i < input?.val?.length; i++) {
413
- input.val[i].json_prepped = collapse_me_and_children(input?.val?.[i]?.json_prepped)
414
- }
415
- }
416
- return input
417
- }
418
- json_prepped = collapse_me_and_children(json_prepped)
419
- }
420
-
421
- function set_val(input) {
422
- let val_static = set_closurable(input)
423
- if (typeof val_static === "string") {
424
- val_static = val_static.trim()
425
- if (
426
- (val_static.startsWith("{") && val_static.endsWith("}")) ||
427
- (val_static.startsWith("[") && val_static.endsWith("]"))
428
- ) {
429
- try {
430
- val_static = JSON.parse(val_static)
431
- } catch (e) {
432
- console.log("invalid json string:", e)
433
- }
434
- }
435
- }
436
- json_prepped = get_json_prepped(val_static, 0, config?.indentation)
437
- }
438
-
439
- function init(config) {
440
- set_val(config?.val)
441
- collapse_all_button_manager = create_button_manager({
442
- type: "outlined",
443
- text: "Collapse All",
444
- is_compressed: true,
445
- on_click: () => set_collapse_all(true),
446
- })
447
- expand_all_button_manager = create_button_manager({
448
- type: "outlined",
449
- text: "Expand All",
450
- is_compressed: true,
451
- on_click: () => set_collapse_all(false),
452
- })
453
- copy_json_button_manager = create_button_manager({
454
- type: "outlined",
455
- text: "Copy Json",
456
- is_compressed: true,
457
- is_success_animation: true,
458
- support_icon: "clipboard",
459
- on_click: () => copy_to_clipboard(JSON.stringify(val)),
460
- })
461
- file_input_manager = create_file_input_manager({
462
- select_file_button_text: "JSON or CSV Upload",
463
- accept: ["application/json", "text/csv"],
464
- is_multiselect: false,
465
- is_drop_zone: false,
466
- on_get_file: (input) => {
467
- file_input_manager.clear_files()
468
- const reader = new FileReader()
469
- reader.readAsText(input)
470
- reader.onload = function (event) {
471
- const file_content = event.target.result
472
- if (input.type === "application/json") {
473
- set_val(JSON.parse(file_content))
474
- } else if (input.type === "text/csv") {
475
- set_val(csv_to_json(file_content))
476
- }
477
- }
478
- },
479
- })
480
- data_upload_popover_manager = create_popover_manager({
481
- min_width: 280,
482
- target_width: 600,
483
- min_height: 280,
484
- target_height: 500,
485
- type: "center",
486
- header: "Data Upload",
487
- })
488
- edit_json_button_manager = create_button_manager({
489
- type: "outlined",
490
- text: "Edit Full Json",
491
- is_compressed: true,
492
- popover_target: () => `popover_${data_upload_popover_manager?.id}`,
493
- })
494
- data_text_input_manager = create_text_input_manager({
495
- type: "text_area",
496
- label: "Data Input",
497
- rows: 15,
498
- placeholder: '{"hello_world": true }',
499
- max_length: 10000000000,
500
- on_change: (input) => {
501
- if (input && typeof input == "object") {
502
- set_val(JSON.parse(JSON.stringify(input)))
503
- } else {
504
- set_val(null)
505
- }
506
- },
507
- })
508
- finish_data_upload_button_manager = create_button_manager({
509
- text: "Finish",
510
- on_click: () => {
511
- set_val(data_text_input_manager?.val ? JSON.parse(data_text_input_manager?.val) : null)
512
- data_upload_popover_manager.close()
513
- },
514
- })
515
- popover_manager = create_popover_manager({
516
- target_height: 700,
517
- target_width: 700,
518
- header: () => (is_edit_mode ? "Edit JSON" : "View JSON"),
519
- })
520
- popover_toggle_button_manager = create_button_manager({
521
- type: "outlined",
522
- is_compressed: true,
523
- text: () => (is_edit_mode ? "Edit JSON" : "View JSON"),
524
- popover_target: () => `popover_${popover_manager?.id}`,
525
- })
526
- finish_button_manager = create_button_manager({
527
- text: "Finish",
528
- on_click: () => {
529
- if (typeof config?.on_finish == "function") {
530
- config?.on_finish(val)
531
- }
532
- popover_manager.close()
533
- },
534
- })
535
- }
536
-
537
- init(config)
538
-
539
- return {
540
- id,
541
- get val() {
542
- return val
543
- },
544
- get label() {
545
- return label
546
- },
547
- get popover_manager() {
548
- return popover_manager
549
- },
550
- get popover_toggle_button_manager() {
551
- return popover_toggle_button_manager
552
- },
553
- get is_popover() {
554
- return is_popover
555
- },
556
- get json_prepped() {
557
- return json_prepped
558
- },
559
- get file_input_manager() {
560
- return file_input_manager
561
- },
562
- get data_upload_popover_manager() {
563
- return data_upload_popover_manager
564
- },
565
- get edit_json_button_manager() {
566
- return edit_json_button_manager
567
- },
568
- get data_text_input_manager() {
569
- return data_text_input_manager
570
- },
571
- get collapse_all_button_manager() {
572
- return collapse_all_button_manager
573
- },
574
- get expand_all_button_manager() {
575
- return expand_all_button_manager
576
- },
577
- get copy_json_button_manager() {
578
- return copy_json_button_manager
579
- },
580
- get is_show_buttons() {
581
- return is_show_buttons
582
- },
583
- get is_edit_mode() {
584
- return is_edit_mode
585
- },
586
- get finish_data_upload_button_manager() {
587
- return finish_data_upload_button_manager
588
- },
589
- get finish_button_manager() {
590
- return finish_button_manager
591
- },
592
- set_val,
593
- }
594
- }
@@ -1,47 +0,0 @@
1
- <script>
2
- import Button from "../Button/index.svelte"
3
- import Popover from "../Popover/index.svelte"
4
- import Qr from "../Qr/index.svelte"
5
-
6
- let { manager, children } = $props()
7
- </script>
8
-
9
- <span style="display: inline-flex;">
10
- <a
11
- id={`link_${manager?.id}`}
12
- href={manager?.href}
13
- onclick={(e) => manager?.handle_a_click(e)}
14
- style="display: flex; flex-wrap: wrap; {manager?.text_color ? `color: ${manager?.text_color};` : ''}"
15
- >
16
- {#if manager?.display_text}
17
- {manager?.display_text}
18
- {:else if children}
19
- {@render children()}
20
- {/if}
21
- {#if manager?.display_text && !manager?.is_show_preview}
22
- <Button manager={manager?.inline_goto_link_button_manager} />
23
- {/if}
24
- </a>
25
- <Popover manager={manager?.popover_manager}>
26
- {#snippet content()}
27
- {#if manager?.display_text}
28
- {manager?.display_text}
29
- {:else if children}
30
- {@render children()}
31
- {/if}
32
- <p
33
- style="font-size: 1.2rem; background-color: var(--shadow2-t); border-radius: 1rem; padding: 1rem; margin-bottom: 1rem;"
34
- >
35
- {manager?.href}
36
- </p>
37
- <Qr manager={manager?.qr_manager} />
38
- {/snippet}
39
- {#snippet footer()}
40
- <div style="display: flex; flex-direction: column; gap: .5rem;">
41
- <Button manager={manager?.copy_link_button_manager} />
42
- <Button manager={manager?.goto_link_button_manager} />
43
- <Button manager={manager?.goto_link_same_tab_button_manager} />
44
- </div>
45
- {/snippet}
46
- </Popover>
47
- </span>