sveltekit-ui 1.1.15 → 1.1.17

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 (200) hide show
  1. package/package.json +3 -3
  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/ArrowToggle/index.svelte +0 -62
  6. package/dist/Components/Attachment/index.svelte +0 -77
  7. package/dist/Components/Attachment/index.svelte.js +0 -119
  8. package/dist/Components/Audio/index.svelte +0 -193
  9. package/dist/Components/Audio/index.svelte.js +0 -463
  10. package/dist/Components/AudioEditor/index.svelte +0 -252
  11. package/dist/Components/AudioEditor/index.svelte.js +0 -977
  12. package/dist/Components/AudioEditor/samples/alloy-voice-sample.mp3 +0 -0
  13. package/dist/Components/AudioEditor/samples/echo-voice-sample.mp3 +0 -0
  14. package/dist/Components/AudioEditor/samples/fable-voice-sample.mp3 +0 -0
  15. package/dist/Components/AudioEditor/samples/nova-voice-sample.mp3 +0 -0
  16. package/dist/Components/AudioEditor/samples/onyx-voice-sample.mp3 +0 -0
  17. package/dist/Components/AudioEditor/samples/shimmer-voice-sample.mp3 +0 -0
  18. package/dist/Components/AuthCodeInput/index.svelte +0 -85
  19. package/dist/Components/AuthCodeInput/index.svelte.js +0 -95
  20. package/dist/Components/Breadcrumbs/index.svelte +0 -27
  21. package/dist/Components/Breadcrumbs/index.svelte.js +0 -88
  22. package/dist/Components/Button/index.svelte +0 -721
  23. package/dist/Components/Button/index.svelte.js +0 -375
  24. package/dist/Components/Chart/Klines/index.svelte +0 -87
  25. package/dist/Components/Chart/index.svelte +0 -226
  26. package/dist/Components/Chart/index.svelte.js +0 -1090
  27. package/dist/Components/ChartInput/DisplayNav/Klines/index.svelte +0 -150
  28. package/dist/Components/ChartInput/DisplayNav/Lines/index.svelte +0 -45
  29. package/dist/Components/ChartInput/DisplayNav/index.svelte +0 -297
  30. package/dist/Components/ChartInput/EditPanel/index.svelte +0 -155
  31. package/dist/Components/ChartInput/index.svelte +0 -21
  32. package/dist/Components/ChartInput/index.svelte.js +0 -671
  33. package/dist/Components/Checkbox/index.svelte +0 -411
  34. package/dist/Components/Checkbox/index.svelte.js +0 -178
  35. package/dist/Components/Code/index.svelte +0 -23
  36. package/dist/Components/Code/index.svelte.js +0 -33
  37. package/dist/Components/Color/index.svelte +0 -51
  38. package/dist/Components/Color/index.svelte.js +0 -31
  39. package/dist/Components/ColorInput/ChromaPicker/index.svelte +0 -50
  40. package/dist/Components/ColorInput/ColorPalette/index.svelte +0 -62
  41. package/dist/Components/ColorInput/OpacityPicker/index.svelte +0 -68
  42. package/dist/Components/ColorInput/ShowcasePicker/index.svelte +0 -136
  43. package/dist/Components/ColorInput/index.svelte +0 -70
  44. package/dist/Components/ColorInput/index.svelte.js +0 -386
  45. package/dist/Components/ConditionsInput/index.svelte +0 -46
  46. package/dist/Components/ConditionsInput/index.svelte.js +0 -201
  47. package/dist/Components/Confetti/index.svelte +0 -98
  48. package/dist/Components/Confetti/index.svelte.js +0 -94
  49. package/dist/Components/Content/index.svelte +0 -500
  50. package/dist/Components/Content/index.svelte.js +0 -910
  51. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte +0 -31
  52. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte.js +0 -258
  53. package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte +0 -31
  54. package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte.js +0 -258
  55. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte +0 -58
  56. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte.js +0 -206
  57. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte +0 -28
  58. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte.js +0 -224
  59. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte +0 -44
  60. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte.js +0 -272
  61. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte +0 -41
  62. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte.js +0 -202
  63. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte +0 -19
  64. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte.js +0 -117
  65. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte +0 -60
  66. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte.js +0 -542
  67. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte +0 -47
  68. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte.js +0 -185
  69. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte +0 -35
  70. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte.js +0 -222
  71. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte +0 -20
  72. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte.js +0 -84
  73. package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte +0 -25
  74. package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte.js +0 -91
  75. package/dist/Components/ContentInput/AttributesInput/index.svelte +0 -352
  76. package/dist/Components/ContentInput/AttributesInput/index.svelte.js +0 -1436
  77. package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte +0 -64
  78. package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte.js +0 -97
  79. package/dist/Components/ContentInput/ContentPanelBuilder/ElementList/index.svelte +0 -184
  80. package/dist/Components/ContentInput/ContentPanelBuilder/index.svelte +0 -41
  81. package/dist/Components/ContentInput/index.svelte +0 -78
  82. package/dist/Components/ContentInput/index.svelte.js +0 -1197
  83. package/dist/Components/CronInput/index.svelte +0 -78
  84. package/dist/Components/CronInput/index.svelte.js +0 -198
  85. package/dist/Components/DataTypeInput/index.svelte +0 -174
  86. package/dist/Components/DataTypeInput/index.svelte.js +0 -565
  87. package/dist/Components/Dropdown/index.svelte +0 -116
  88. package/dist/Components/Dropdown/index.svelte.js +0 -403
  89. package/dist/Components/EmailAddress/index.svelte +0 -22
  90. package/dist/Components/EmailAddress/index.svelte.js +0 -45
  91. package/dist/Components/ErrorX/index.svelte +0 -58
  92. package/dist/Components/Eye/index.svelte +0 -57
  93. package/dist/Components/FileInput/index.svelte +0 -146
  94. package/dist/Components/FileInput/index.svelte.js +0 -225
  95. package/dist/Components/Hamburger/index.svelte +0 -99
  96. package/dist/Components/HorizScrollBox/index.svelte +0 -145
  97. package/dist/Components/Icon/index.svelte +0 -412
  98. package/dist/Components/Icon/index.svelte.js +0 -116
  99. package/dist/Components/IconInput/index.svelte +0 -77
  100. package/dist/Components/IconInput/index.svelte.js +0 -259
  101. package/dist/Components/Image/index.svelte +0 -126
  102. package/dist/Components/Image/index.svelte.js +0 -116
  103. package/dist/Components/ImageEditor/Image/CropBox/index.svelte +0 -165
  104. package/dist/Components/ImageEditor/Image/index.svelte +0 -104
  105. package/dist/Components/ImageEditor/Panels/AI/index.svelte +0 -44
  106. package/dist/Components/ImageEditor/Panels/Crop/index.svelte +0 -96
  107. package/dist/Components/ImageEditor/Panels/File/QualityPicker/index.svelte +0 -124
  108. package/dist/Components/ImageEditor/Panels/File/index.svelte +0 -74
  109. package/dist/Components/ImageEditor/Panels/Filters/index.svelte +0 -46
  110. package/dist/Components/ImageEditor/Panels/Resize/index.svelte +0 -58
  111. package/dist/Components/ImageEditor/index.svelte +0 -93
  112. package/dist/Components/ImageEditor/index.svelte.js +0 -1961
  113. package/dist/Components/ImageSlider/index.svelte +0 -124
  114. package/dist/Components/ImageSlider/index.svelte.js +0 -99
  115. package/dist/Components/InfoBox/index.svelte +0 -89
  116. package/dist/Components/Json/Nested/index.svelte +0 -157
  117. package/dist/Components/Json/index.svelte +0 -60
  118. package/dist/Components/Json/index.svelte.js +0 -594
  119. package/dist/Components/LabeledItem/index.svelte +0 -102
  120. package/dist/Components/Layout/NavBar/FullNav/index.svelte +0 -52
  121. package/dist/Components/Layout/NavBar/NavGuts/index.svelte +0 -87
  122. package/dist/Components/Layout/NavBar/index.svelte +0 -72
  123. package/dist/Components/Layout/index.svelte +0 -149
  124. package/dist/Components/Layout/index.svelte.js +0 -360
  125. package/dist/Components/Link/index.svelte +0 -47
  126. package/dist/Components/Link/index.svelte.js +0 -136
  127. package/dist/Components/LoadingSuccessDiv/index.svelte +0 -51
  128. package/dist/Components/LoadingWheel/index.svelte +0 -38
  129. package/dist/Components/Location/index.svelte +0 -79
  130. package/dist/Components/Location/index.svelte.js +0 -288
  131. package/dist/Components/LocationInput/index.svelte +0 -197
  132. package/dist/Components/LocationInput/index.svelte.js +0 -965
  133. package/dist/Components/Number/index.svelte +0 -47
  134. package/dist/Components/Number/index.svelte.js +0 -151
  135. package/dist/Components/PhoneCountryCode/index.svelte +0 -7
  136. package/dist/Components/PhoneCountryCode/index.svelte.js +0 -260
  137. package/dist/Components/PhoneNumber/index.svelte +0 -22
  138. package/dist/Components/PhoneNumber/index.svelte.js +0 -41
  139. package/dist/Components/Popover/index.svelte +0 -396
  140. package/dist/Components/Popover/index.svelte.js +0 -319
  141. package/dist/Components/Qr/index.svelte +0 -85
  142. package/dist/Components/Qr/index.svelte.js +0 -301
  143. package/dist/Components/QrInput/index.svelte +0 -47
  144. package/dist/Components/QrInput/index.svelte.js +0 -218
  145. package/dist/Components/Slider/index.svelte +0 -239
  146. package/dist/Components/Slider/index.svelte.js +0 -469
  147. package/dist/Components/Spacer/index.svelte +0 -41
  148. package/dist/Components/StoragePicker/DisplayFile/index.svelte +0 -15
  149. package/dist/Components/StoragePicker/index.svelte +0 -187
  150. package/dist/Components/StoragePicker/index.svelte.js +0 -592
  151. package/dist/Components/SuccessCheck/index.svelte +0 -56
  152. package/dist/Components/TableAdvanced/ColumnInput/index.svelte +0 -117
  153. package/dist/Components/TableAdvanced/ColumnInput/index.svelte.js +0 -456
  154. package/dist/Components/TableAdvanced/FilterInput/index.svelte +0 -54
  155. package/dist/Components/TableAdvanced/FilterInput/index.svelte.js +0 -247
  156. package/dist/Components/TableAdvanced/Pagination/index.svelte +0 -43
  157. package/dist/Components/TableAdvanced/Pagination/index.svelte.js +0 -97
  158. package/dist/Components/TableAdvanced/SortByInput/index.svelte +0 -72
  159. package/dist/Components/TableAdvanced/SortByInput/index.svelte.js +0 -176
  160. package/dist/Components/TableAdvanced/index.svelte +0 -275
  161. package/dist/Components/TableAdvanced/index.svelte.js +0 -1565
  162. package/dist/Components/Tag/index.svelte +0 -45
  163. package/dist/Components/Tag/index.svelte.js +0 -76
  164. package/dist/Components/TextArrayInput/index.svelte +0 -108
  165. package/dist/Components/TextArrayInput/index.svelte.js +0 -239
  166. package/dist/Components/TextInput/PasswordTooltip/index.svelte +0 -89
  167. package/dist/Components/TextInput/index.svelte +0 -223
  168. package/dist/Components/TextInput/index.svelte.js +0 -447
  169. package/dist/Components/Time/index.svelte +0 -7
  170. package/dist/Components/Time/index.svelte.js +0 -38
  171. package/dist/Components/TimeInput/NumberToggler/index.svelte +0 -34
  172. package/dist/Components/TimeInput/NumberToggler/index.svelte.js +0 -79
  173. package/dist/Components/TimeInput/index.js +0 -702
  174. package/dist/Components/TimeInput/index.svelte +0 -211
  175. package/dist/Components/TimeInput/index.svelte.js +0 -638
  176. package/dist/Components/Tooltip/index.svelte +0 -143
  177. package/dist/Components/TransparentBackground/index.svelte +0 -153
  178. package/dist/Components/TypingDots/index.svelte +0 -84
  179. package/dist/Components/VariablePathInput/index.svelte +0 -63
  180. package/dist/Components/VariablePathInput/index.svelte.js +0 -273
  181. package/dist/Components/VideoTBD/index.svelte +0 -100
  182. package/dist/Components/XFollow/index.svelte +0 -42
  183. package/dist/Components/XPost/index.svelte +0 -52
  184. package/dist/Components/XPost/index.svelte.js +0 -64
  185. package/dist/Components/YoutubeChannelButton/index.svelte +0 -82
  186. package/dist/Components/YoutubeVideo/index.svelte +0 -73
  187. package/dist/Components/YoutubeVideo/index.svelte.js +0 -54
  188. package/dist/actions/draggable.js +0 -49
  189. package/dist/actions/index.js +0 -24
  190. package/dist/actions/no_spaces.js +0 -33
  191. package/dist/actions/numbers_only.js +0 -26
  192. package/dist/actions/scroll_y.js +0 -28
  193. package/dist/actions/stop_scroll_propagation_y.js +0 -42
  194. package/dist/actions/swipe_handler.js +0 -295
  195. package/dist/client/astc_formatting/index.js +0 -1128
  196. package/dist/client/docs/index.js +0 -7622
  197. package/dist/client/index.js +0 -735
  198. package/dist/client/types/index.js +0 -2812
  199. package/dist/index.js +0 -180
  200. package/dist/style.css +0 -682
@@ -1,565 +0,0 @@
1
- import { node_types, json_to_data_type, deep_copy } from "../../client/index.js"
2
- import { create_popover_manager } from "../Popover/index.svelte.js"
3
- import { create_button_manager } from "../Button/index.svelte.js"
4
- import { create_text_input_manager } from "../TextInput/index.svelte.js"
5
- import { create_breadcrumbs_manager } from "../Breadcrumbs/index.svelte.js"
6
- import { create_dropdown_manager } from "../Dropdown/index.svelte.js"
7
- import { create_unique_id, set_closurable } from "../../client/index.js"
8
-
9
- export function create_data_type_input_manager(config) {
10
- const id = create_unique_id(null, 20)
11
-
12
- let label = $state(null)
13
- let initial_val = $state(null)
14
- let val = $state(null)
15
- let property_type_options = $state(null)
16
- let type_option_buttons = $state(null)
17
- let breadcrumbs_manager = $state(null)
18
- let popover_manager = $state(null)
19
- let search_text_input_manager = $state(null)
20
- let type_options_dropdown_manager = $state(null)
21
- let items_type_options_dropdown_manager = $state(null)
22
- let property_key_to_add_text_manager = $state(null)
23
- let property_key_to_add_finish_button_manager = $state(null)
24
- let edit_items_type_button_manager = $state(null)
25
- let clear_breadcrumbs_button_manager = $state(null)
26
- let guess_from_variables_button_manager = $state(null)
27
- let finish_button_manager = $state(null)
28
- let table_id_for_foreign_row_text_input_manager = $state(null)
29
- let property_key_table_id_for_foreign_row_text_input_manager = $state(null)
30
- let table_options = $state(null)
31
-
32
- let data_sample = $derived(set_closurable(config?.data_sample, null))
33
-
34
- let val_at_path = $derived(get_val_at_path())
35
- let type_options = $derived(
36
- Object.entries(node_types)
37
- .filter(([key, value]) => {
38
- if (search_text_input_manager?.val && typeof search_text_input_manager?.val === "string") {
39
- return (
40
- value?.kind === "literal" &&
41
- value?.name?.toLowerCase().includes(search_text_input_manager?.val?.toLowerCase())
42
- )
43
- }
44
- return value?.kind === "literal"
45
- })
46
- .map(([key, value]) => ({ key, name: value?.name }))
47
- )
48
- let type_display_name = $derived(get_type_display_name(val ?? null))
49
-
50
- function set_type_option_buttons() {
51
- let type_option_buttons_loc = []
52
- if (Array.isArray(type_options) && type_options?.length > 0) {
53
- for (let type_option of type_options) {
54
- let button_manager = create_button_manager({
55
- min_height: 14,
56
- mt: 0.5,
57
- mb: 0.5,
58
- ml: 0.5,
59
- mr: 0.5,
60
- type: "outlined",
61
- on_click: () => {
62
- set_data_type(type_option?.key)
63
- search_text_input_manager?.set_val(null)
64
- },
65
- })
66
- type_option_buttons_loc.push({
67
- key: type_option?.key,
68
- name: type_option?.name,
69
- button_manager: button_manager,
70
- })
71
- }
72
- }
73
- type_option_buttons = type_option_buttons_loc
74
- }
75
-
76
- function get_val_at_path() {
77
- let val_at_path_loc = deep_copy(val)
78
- if (Array.isArray(breadcrumbs_manager?.val) && breadcrumbs_manager?.val?.length > 0) {
79
- for (let i = 0; i < breadcrumbs_manager?.val?.length; i++) {
80
- if (["array_uniform_literal", "object_uniform_literal"].includes(val_at_path_loc?.type)) {
81
- val_at_path_loc = val_at_path_loc.items
82
- } else {
83
- val_at_path_loc = val_at_path_loc.properties[breadcrumbs_manager?.val?.[i]]
84
- }
85
- }
86
- }
87
- return val_at_path_loc
88
- }
89
-
90
- function set_property_type_options() {
91
- let property_type_options_loc = {}
92
- for (let property_key of Object.keys(val_at_path?.properties || {}).sort(
93
- (a, b) => val_at_path?.properties?.[a]?.display_order - val_at_path.properties?.[b]?.display_order
94
- )) {
95
- let edit_popover_manager = $state(null)
96
- let edit_popover_trigger_button_manager = $state(null)
97
- edit_popover_manager = create_popover_manager({
98
- min_width: 200,
99
- target_width: 200,
100
- min_height: 180,
101
- target_height: 200,
102
- type: "dropdown",
103
- header: "Edit Property",
104
- anchor_id: () => `button_${edit_popover_trigger_button_manager?.id}`,
105
- })
106
- edit_popover_trigger_button_manager = create_button_manager({
107
- type: "soft",
108
- support_icon: "edit",
109
- min_height: 2.4,
110
- border_radius: 0.5,
111
- is_icon_shimmyable: true,
112
- is_uniform: true,
113
- popover_target: () => `popover_${edit_popover_manager?.id}`,
114
- })
115
- property_type_options_loc[property_key] = {
116
- key: property_key,
117
- type_options_dropdown_manager: create_dropdown_manager({
118
- button_type: "outlined",
119
- is_button_compressed: true,
120
- is_set_null_button: true,
121
- val: val_at_path?.properties?.[property_key]?.type,
122
- options: type_options,
123
- on_item_click: (input) => set_key_data_type(input?.key, null, property_key),
124
- }),
125
- edit_popover_manager: edit_popover_manager,
126
- edit_popover_trigger_button_manager: edit_popover_trigger_button_manager,
127
- to_breadcrumbs_button_manager: create_button_manager({
128
- type: "soft",
129
- text: "Edit",
130
- text_align: "left",
131
- support_icon: "arrow_tailed",
132
- on_click: () => {
133
- edit_popover_manager.close()
134
- breadcrumbs_manager?.set_val([...breadcrumbs_manager?.val, property_key])
135
- handle_path_change()
136
- },
137
- }),
138
- shift_up_button_manager: create_button_manager({
139
- type: "soft",
140
- text: "Shift Up",
141
- text_align: "left",
142
- support_icon: "arrow_tailed",
143
- icon_deg: 270,
144
- on_click: () => shift_object_property(property_key, -1),
145
- }),
146
- shift_down_button_manager: create_button_manager({
147
- type: "soft",
148
- text: "Shift Down",
149
- text_align: "left",
150
- support_icon: "arrow_tailed",
151
- icon_deg: 90,
152
- on_click: () => shift_object_property(property_key, 1),
153
- }),
154
- delete_button_manager: create_button_manager({
155
- type: "soft",
156
- text: "Delete",
157
- text_align: "left",
158
- support_icon: "trashcan",
159
- on_click: () => delete_object_property(property_key),
160
- }),
161
- }
162
- }
163
- property_type_options = property_type_options_loc
164
- }
165
-
166
- function get_type_display_name(val) {
167
- if (!val?.type) {
168
- return null
169
- } else {
170
- let display_name = ""
171
- if (val?.type == "array_literal") {
172
- display_name = "Array"
173
- if (val?.items?.type) {
174
- let items_name = ""
175
- if (Array.isArray(val?.items)) {
176
- for (let item of val?.items) {
177
- items_name += get_type_display_name(item)
178
- }
179
- }
180
- display_name = `[${items_name}]`
181
- }
182
- } else if (val?.type == "array_uniform_literal") {
183
- display_name = "Array Uniform"
184
- if (val?.items?.type) {
185
- display_name = "[" + get_type_display_name(val?.items) + "]"
186
- }
187
- } else if (val?.type == "object_literal") {
188
- display_name = "Object"
189
- if (Object.keys(val?.properties || {})?.length > 0) {
190
- let property_types = []
191
- for (let key of Object.keys(val?.properties || {})) {
192
- property_types.push(`${key}: ${get_type_display_name(val?.properties?.[key])}`)
193
- }
194
- display_name = `{${property_types.join(", ")}}`
195
- }
196
- } else if (val?.type == "object_uniform_literal") {
197
- display_name = "Object Uniform"
198
- if (val?.items?.type) {
199
- display_name = "{[key]:" + get_type_display_name(val?.items) + "}"
200
- }
201
- } else {
202
- display_name = node_types?.[val?.type]?.name
203
- }
204
- return display_name
205
- }
206
- }
207
-
208
- function set_items_data_type(type_key, breadcrumbs_input = null) {
209
- const breadcrumbs_to_use = Array.isArray(breadcrumbs_input)
210
- ? breadcrumbs_input
211
- : [...(Array.isArray(breadcrumbs_manager?.val) ? breadcrumbs_manager?.val : []), "items"]
212
- items_type_options_dropdown_manager?.set_val(type_key)
213
- let val_at_path_loc = {
214
- type: type_key,
215
- attributes: {},
216
- ...(type_key === "object_literal" ? { properties: {} } : {}),
217
- ...(type_key === "array_literal" ? { items: [] } : {}),
218
- ...(["array_uniform_literal", "object_uniform_literal"].includes(type_key) ? { items: {} } : {}),
219
- }
220
- val = set_structure_at_path(val, val_at_path_loc, breadcrumbs_to_use)
221
- }
222
-
223
- function set_key_data_type(type_key, breadcrumbs_input = null, key) {
224
- const breadcrumbs_to_use = Array.isArray(breadcrumbs_input)
225
- ? breadcrumbs_input
226
- : [...(Array.isArray(breadcrumbs_manager?.val) ? breadcrumbs_manager?.val : []), key]
227
- items_type_options_dropdown_manager?.set_val(type_key)
228
- let val_at_path_loc = {
229
- type: type_key,
230
- attributes: {},
231
- ...(type_key === "object_literal" ? { properties: {} } : {}),
232
- ...(type_key === "array_literal" ? { items: [] } : {}),
233
- ...(["array_uniform_literal", "object_uniform_literal"].includes(type_key) ? { items: {} } : {}),
234
- }
235
- val = set_structure_at_path(val, val_at_path_loc, breadcrumbs_to_use)
236
- property_type_options?.[key]?.type_options_dropdown_manager?.set_val(type_key)
237
- }
238
-
239
- function set_data_type(type_key, breadcrumbs_input = null) {
240
- const breadcrumbs_to_use = Array.isArray(breadcrumbs_input)
241
- ? breadcrumbs_input
242
- : Array.isArray(breadcrumbs_manager?.val)
243
- ? breadcrumbs_manager?.val
244
- : []
245
- type_options_dropdown_manager?.set_val(type_key)
246
- items_type_options_dropdown_manager?.set_val(null)
247
- let val_at_path_loc = {
248
- type: type_key,
249
- attributes: {},
250
- ...(type_key === "object_literal" ? { properties: {} } : {}),
251
- ...(type_key === "array_literal" ? { items: [] } : {}),
252
- ...(["array_uniform_literal", "object_uniform_literal"].includes(type_key) ? { items: {} } : {}),
253
- }
254
- if (type_key == "object_literal") {
255
- set_property_type_options()
256
- }
257
- val = set_structure_at_path(val, val_at_path_loc, breadcrumbs_to_use)
258
- }
259
-
260
- function set_structure_at_path(iter_structure, value, remaining_path) {
261
- if (!Array.isArray(remaining_path) || remaining_path?.length == 0) {
262
- return value
263
- }
264
- const [first, ...rest_of_path] = remaining_path
265
- if (["array_uniform_literal", "object_uniform_literal"].includes(iter_structure?.type)) {
266
- if (remaining_path?.length == 1) {
267
- iter_structure.items = value
268
- } else {
269
- iter_structure.items = set_structure_at_path(iter_structure.items, value, rest_of_path)
270
- }
271
- } else {
272
- if (remaining_path?.length == 1) {
273
- iter_structure.properties[first] = value
274
- } else {
275
- iter_structure.properties[first] = set_structure_at_path(
276
- iter_structure?.properties?.[first],
277
- value,
278
- rest_of_path
279
- )
280
- }
281
- }
282
- items_type_options_dropdown_manager?.set_val(val_at_path?.items?.type)
283
- return iter_structure
284
- }
285
-
286
- function add_object_property(key = null) {
287
- if (key == null) {
288
- key = property_key_to_add_text_manager?.val
289
- }
290
- if (!key) {
291
- return
292
- }
293
- const clean_key_to_add = key
294
- .toLowerCase()
295
- .replace(/[^a-z0-9]/g, "_")
296
- .replace(/_+/g, "_")
297
- .replace(/^_+|_+$/g, "")
298
- let val_at_path_loc = val_at_path
299
- val_at_path_loc.properties[clean_key_to_add] = {
300
- display_order: Object.keys(val_at_path_loc.properties || {})?.length,
301
- }
302
- const new_val = set_structure_at_path(val, val_at_path_loc, breadcrumbs_manager?.val)
303
- val = new_val
304
- property_key_to_add_text_manager?.set_val(null)
305
- set_property_type_options()
306
- }
307
-
308
- function delete_object_property(property_key) {
309
- let val_at_path_loc = val_at_path
310
- const { [property_key]: _, ...new_properties } = val_at_path_loc.properties
311
- val_at_path_loc.properties = new_properties
312
- property_type_options[property_key].edit_popover_manager.close()
313
- val = set_structure_at_path(val, val_at_path_loc, breadcrumbs_manager?.val)
314
- set_property_type_options()
315
- }
316
-
317
- function shift_object_property(property_key, direction) {
318
- function reset_display_order(properties) {
319
- const keys = Object.keys(properties).sort((a, b) => {
320
- const order_a = properties[a].display_order || 0
321
- const order_b = properties[b].display_order || 0
322
- return order_a - order_b
323
- })
324
- keys.forEach((key, index) => {
325
- properties[key].display_order = index
326
- })
327
- }
328
- const properties = val_at_path?.properties
329
- let display_order = properties?.[property_key]?.display_order
330
- if (display_order == null) {
331
- reset_display_order(properties)
332
- display_order = properties?.[property_key]?.display_order
333
- }
334
- for (let key in properties) {
335
- if (properties?.[key]?.display_order === display_order + direction) {
336
- properties[key].display_order = display_order
337
- properties[property_key].display_order += direction
338
- break
339
- }
340
- }
341
- reset_display_order(properties)
342
- let val_at_path_loc = val_at_path
343
- val_at_path_loc.properties = properties
344
- val = set_structure_at_path(val, val_at_path_loc, breadcrumbs_manager?.val)
345
- property_type_options[property_key].edit_popover_manager.close()
346
- set_property_type_options()
347
- }
348
-
349
- function finish() {
350
- popover_manager.close()
351
- if (typeof config?.on_finish == "function") {
352
- config?.on_finish(val)
353
- }
354
- }
355
-
356
- function guess_from_data(data) {
357
- val = json_to_data_type(data)
358
- set_property_type_options()
359
- }
360
-
361
- function handle_path_change() {
362
- type_options_dropdown_manager?.set_val(val_at_path?.type)
363
- items_type_options_dropdown_manager?.set_val(val_at_path?.items?.type)
364
- table_id_for_foreign_row_text_input_manager.set_val(val_at_path?.attributes?.table_id ?? null)
365
- property_key_table_id_for_foreign_row_text_input_manager.set_val(
366
- val_at_path?.attributes?.property_key_table_id ?? null
367
- )
368
- set_property_type_options()
369
- }
370
-
371
- function guess_from_variables() {
372
- guess_from_data(data_sample)
373
- }
374
-
375
- function init(config) {
376
- label = config?.label ?? "Data Type"
377
- initial_val = config?.val ?? null
378
- val = config?.val
379
- popover_manager = create_popover_manager({
380
- type: "center",
381
- min_width: 280,
382
- target_width: 600,
383
- min_height: 280,
384
- target_height: 600,
385
- header: "Data Type Builder",
386
- })
387
- search_text_input_manager = create_text_input_manager({
388
- type: "search",
389
- autocomplete: "off",
390
- placeholder: "search",
391
- mb: 0.5,
392
- })
393
- type_options_dropdown_manager = create_dropdown_manager({
394
- button_type: "outlined",
395
- is_botton_compressed: true,
396
- is_set_null_button: true,
397
- val: val_at_path?.type,
398
- options: type_options,
399
- on_item_click: (input) => set_data_type(input?.key),
400
- })
401
- items_type_options_dropdown_manager = create_dropdown_manager({
402
- button_type: "outlined",
403
- is_botton_compressed: true,
404
- is_set_null_button: true,
405
- val: val_at_path?.items?.type,
406
- options: type_options,
407
- on_item_click: (input) => set_items_data_type(input?.key),
408
- })
409
- breadcrumbs_manager = create_breadcrumbs_manager({
410
- val: config?.breadcrumbs ?? [],
411
- on_change: () => handle_path_change(),
412
- })
413
- property_key_to_add_text_manager = create_text_input_manager({
414
- label: "Property Key",
415
- placeholder: "some_identifier",
416
- })
417
- property_key_to_add_finish_button_manager = create_button_manager({
418
- is_compressed: true,
419
- text: "Add Property",
420
- is_disabled: () => !property_key_to_add_text_manager?.val,
421
- on_click: () => add_object_property(),
422
- })
423
- edit_items_type_button_manager = create_button_manager({
424
- type: "outlined",
425
- text: "Edit Items Type",
426
- text_align: "left",
427
- support_icon: "arrow_tailed",
428
- on_click: () => {
429
- breadcrumbs_manager?.set_val([
430
- ...(Array.isArray(breadcrumbs_manager?.val) ? breadcrumbs_manager?.val : []),
431
- "items",
432
- ])
433
- handle_path_change()
434
- },
435
- })
436
- clear_breadcrumbs_button_manager = create_button_manager({
437
- type: "outlined",
438
- h: 11,
439
- l: 3,
440
- c: 1,
441
- is_uniform: true,
442
- support_icon: "x",
443
- on_click: () => set_data_type(null),
444
- })
445
- finish_button_manager = create_button_manager({
446
- text: "Finish",
447
- on_click: () => finish(),
448
- })
449
- guess_from_variables_button_manager = create_button_manager({
450
- type: "outlined",
451
- text: "Guess from Data Sample",
452
- is_compressed: true,
453
- on_click: () => guess_from_variables(),
454
- })
455
- table_options = config?.table_options
456
- table_id_for_foreign_row_text_input_manager = create_dropdown_manager({
457
- label: "Table ID for Foreign Row",
458
- is_button_compressed: true,
459
- options: table_options,
460
- on_item_click: (input) => {
461
- let val_at_path_loc = deep_copy(val_at_path)
462
- val_at_path_loc.attributes.table_id = input?.key
463
- val = set_structure_at_path(val, val_at_path_loc, breadcrumbs_manager?.val)
464
- },
465
- })
466
- property_key_table_id_for_foreign_row_text_input_manager = create_dropdown_manager({
467
- label: "Property Key Table ID for Foreign Row",
468
- is_button_compressed: true,
469
- options: table_options,
470
- on_item_click: (input) => {
471
- let val_at_path_loc = deep_copy(val_at_path)
472
- val_at_path_loc.attributes.property_key_table_id = input?.key
473
- val = set_structure_at_path(val, val_at_path_loc, breadcrumbs_manager?.val)
474
- },
475
- })
476
-
477
- set_type_option_buttons()
478
- set_property_type_options()
479
- }
480
-
481
- init(config)
482
-
483
- return {
484
- id,
485
- get label() {
486
- return label
487
- },
488
- get initial_val() {
489
- return initial_val
490
- },
491
- get val() {
492
- return val
493
- },
494
- get val() {
495
- return val
496
- },
497
- get popover_manager() {
498
- return popover_manager
499
- },
500
- get search_text_input_manager() {
501
- return search_text_input_manager
502
- },
503
- get type_option_buttons() {
504
- return type_option_buttons
505
- },
506
- get breadcrumbs_manager() {
507
- return breadcrumbs_manager
508
- },
509
- get items_type_options_dropdown_manager() {
510
- return items_type_options_dropdown_manager
511
- },
512
- get property_type_options() {
513
- return property_type_options
514
- },
515
- get type_options_dropdown_manager() {
516
- return type_options_dropdown_manager
517
- },
518
- get property_key_to_add_text_manager() {
519
- return property_key_to_add_text_manager
520
- },
521
- get property_key_to_add_finish_button_manager() {
522
- return property_key_to_add_finish_button_manager
523
- },
524
- get edit_items_type_button_manager() {
525
- return edit_items_type_button_manager
526
- },
527
- get finish_button_manager() {
528
- return finish_button_manager
529
- },
530
- get table_id_for_foreign_row_text_input_manager() {
531
- return table_id_for_foreign_row_text_input_manager
532
- },
533
- get property_key_table_id_for_foreign_row_text_input_manager() {
534
- return property_key_table_id_for_foreign_row_text_input_manager
535
- },
536
- get table_options() {
537
- return table_options
538
- },
539
- get clear_breadcrumbs_button_manager() {
540
- return clear_breadcrumbs_button_manager
541
- },
542
- get guess_from_variables_button_manager() {
543
- return guess_from_variables_button_manager
544
- },
545
- get type_options() {
546
- return type_options
547
- },
548
- get type_display_name() {
549
- return type_display_name
550
- },
551
- get val_at_path() {
552
- return val_at_path
553
- },
554
- get val() {
555
- return val
556
- },
557
- set_data_type,
558
- add_object_property,
559
- delete_object_property,
560
- shift_object_property,
561
- finish,
562
- guess_from_data,
563
- guess_from_variables,
564
- }
565
- }
@@ -1,116 +0,0 @@
1
- <script>
2
- import Popover from "../Popover/index.svelte"
3
- import Icon from "../Icon/index.svelte"
4
- import Button from "../Button/index.svelte"
5
- import TextInput from "../TextInput/index.svelte"
6
- import Spacer from "../Spacer/index.svelte"
7
- import HorizScrollBox from "../HorizScrollBox/index.svelte"
8
- import ArrowToggle from "../ArrowToggle/index.svelte"
9
- import LoadingWheel from "../LoadingWheel/index.svelte"
10
-
11
- let { manager } = $props()
12
-
13
- </script>
14
-
15
- {#if manager?.type == 'dropdown' || manager?.is_collapsed}
16
- <div>
17
- {#if manager?.label || manager?.error_message}
18
- <div>
19
- {#if manager?.label}
20
- <p class="label">{manager?.label}:</p>
21
- {/if}
22
- {#if manager?.error_message}
23
- <p class="error_text">{manager?.error_message}</p>
24
- {/if}
25
- </div>
26
- {/if}
27
- {#if !manager?.is_hide_button}
28
- <Button manager={manager?.toggle_button_manager}>
29
- {#snippet content()}
30
- <div style="display: flex; align-items: center; gap: .2rem; justify-content: space-between;">
31
- <p style="{manager?.selected_font_size ? `font-size: ${manager?.selected_font_size}rem;` : ""}">{manager?.toggle_button_text}</p>
32
- {#if manager?.is_show_arrow}
33
- <ArrowToggle is_open={manager?.popover_manager?.is_show} />
34
- {/if}
35
- </div>
36
- {/snippet}
37
- </Button>
38
- {/if}
39
- <Popover manager={manager?.popover_manager}>
40
- {#snippet content(toggle_popover)}
41
- <div id={`dropdown_popover_container_${manager?.id}`}>
42
- {#if manager?.is_searchable}
43
- <div style="position: relative; display: inline-block; width: 100%;">
44
- <div>
45
- <TextInput manager={manager?.search_text_input_manager} />
46
- </div>
47
- {#if Array.isArray(manager?.search_requests_is_loading) && manager?.search_requests_is_loading.length}
48
- <div style="position: absolute; top: 50%; right: 0.5rem; transform: translateY(-50%); pointer-events: none; width: 2rem; aspect-ratio: 1;">
49
- <LoadingWheel />
50
- </div>
51
- {/if}
52
- </div>
53
- {/if}
54
- {#if manager?.is_set_null_button}
55
- <Button manager={manager?.clear_button_manager} />
56
- {/if}
57
- {#if Array.isArray(manager?.filtered_button_managers) && manager?.filtered_button_managers.length > 0}
58
- {#each manager?.filtered_button_managers as filtered_button_manager}
59
- <Button manager={filtered_button_manager} />
60
- {/each}
61
- {/if}
62
- </div>
63
- {/snippet}
64
- </Popover>
65
- </div>
66
- {:else if manager?.type == "horiz_selector"}
67
- <div class="horiz_container">
68
- {#if manager?.header || manager?.header_icon}
69
- <div class="horiz_header_container" style="min-width: {manager?.min_header_width}rem;">
70
- {#if manager?.header_icon}
71
- <Icon manager={manager?.header_icon_manager} />
72
- {/if}
73
- {#if manager?.header}
74
- <h3 class="horiz_header" style="color: {manager?.is_disabled ? 'var(--g12-t)' : 'var(--g4-t)'}">
75
- {manager?.header}
76
- </h3>
77
- {/if}
78
- </div>
79
- <Spacer is_vert={true} mr={0.5} color={manager?.spacer_color} />
80
- {/if}
81
- <HorizScrollBox>
82
- {#if manager?.is_set_null_button}
83
- <Button manager={manager?.clear_button_manager} />
84
- {/if}
85
- {#if Array.isArray(manager?.filtered_button_managers) && manager?.filtered_button_managers.length > 0}
86
- {#each manager?.filtered_button_managers as filtered_button_manager}
87
- <Button manager={filtered_button_manager} />
88
- {/each}
89
- {/if}
90
- </HorizScrollBox>
91
- </div>
92
- {/if}
93
-
94
- <style>
95
- .error_text {
96
- font-size: 1.2rem;
97
- color: oklch(var(--l5-t) var(--c7) var(--h1));
98
- line-height: 1.2rem;
99
- line-height: 1.2rem;
100
- }
101
- .horiz_container {
102
- display: flex;
103
- flex: 1;
104
- align-items: center;
105
- margin: 0 0.5rem;
106
- }
107
- .horiz_header_container {
108
- display: flex;
109
- align-items: center;
110
- }
111
- .horiz_header {
112
- font-size: 1.6rem;
113
- margin: 0;
114
- margin-right: 1rem;
115
- }
116
- </style>