sveltekit-ui 1.0.10 → 1.0.12

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 (59) hide show
  1. package/dist/Components/Content/index.svelte +12 -12
  2. package/dist/Components/Content/index.svelte.js +97 -49
  3. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte.js +1 -5
  4. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte.js +1 -2
  5. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte.js +1 -3
  6. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte.js +2 -4
  7. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte.js +28 -32
  8. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte.js +1 -3
  9. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte.js +1 -3
  10. package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte.js +3 -13
  11. package/dist/Components/ContentInput/AttributesInput/index.svelte +1 -0
  12. package/dist/Components/ContentInput/AttributesInput/index.svelte.js +89 -120
  13. package/dist/Components/ContentInput/index.svelte.js +38 -62
  14. package/dist/Components/DataTypeInput/index.svelte.js +0 -3
  15. package/dist/Components/IconInput/index.svelte +1 -1
  16. package/dist/Components/TableAdvanced/ColumnInput/index.svelte.js +15 -62
  17. package/dist/Components/TableAdvanced/SortByInput/index.svelte.js +2 -1
  18. package/dist/Components/TableAdvanced/index.svelte.js +72 -73
  19. package/dist/Components/TextInput/index.svelte +1 -1
  20. package/dist/Components/TextInput/index.svelte.js +12 -0
  21. package/dist/Components/VariablePathInput/index.svelte +47 -93
  22. package/dist/Components/VariablePathInput/index.svelte.js +205 -191
  23. package/dist/client/astc_formatting/index.js +15 -58
  24. package/dist/client/docs/index.js +4 -23
  25. package/dist/client/index.js +38 -90
  26. package/dist/client/types/index.js +2 -0
  27. package/dist/index.js +2 -0
  28. package/package.json +6 -6
  29. package/src/lib/Components/Content/index.svelte +12 -12
  30. package/src/lib/Components/Content/index.svelte.js +97 -49
  31. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte.js +1 -5
  32. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte.js +1 -2
  33. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte.js +1 -3
  34. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte.js +2 -4
  35. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte.js +28 -32
  36. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte.js +1 -3
  37. package/src/lib/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte.js +1 -3
  38. package/src/lib/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte.js +3 -13
  39. package/src/lib/Components/ContentInput/AttributesInput/index.svelte +1 -0
  40. package/src/lib/Components/ContentInput/AttributesInput/index.svelte.js +89 -120
  41. package/src/lib/Components/ContentInput/index.svelte.js +38 -62
  42. package/src/lib/Components/DataTypeInput/index.svelte.js +0 -3
  43. package/src/lib/Components/IconInput/index.svelte +1 -1
  44. package/src/lib/Components/TableAdvanced/ColumnInput/index.svelte.js +15 -62
  45. package/src/lib/Components/TableAdvanced/SortByInput/index.svelte.js +2 -1
  46. package/src/lib/Components/TableAdvanced/index.svelte.js +72 -73
  47. package/src/lib/Components/TextInput/index.svelte +1 -1
  48. package/src/lib/Components/TextInput/index.svelte.js +12 -0
  49. package/src/lib/Components/VariablePathInput/index.svelte +47 -93
  50. package/src/lib/Components/VariablePathInput/index.svelte.js +205 -191
  51. package/src/lib/client/astc_formatting/index.js +15 -58
  52. package/src/lib/client/docs/index.js +4 -23
  53. package/src/lib/client/index.js +38 -90
  54. package/src/lib/client/types/index.js +2 -0
  55. package/src/lib/index.js +2 -0
  56. package/src/routes/+layout.svelte +21 -0
  57. package/src/routes/[component]/Showcase/Content/index.svelte +49 -83
  58. package/src/routes/[component]/Showcase/ContentInput/index.svelte +11 -13
  59. package/src/routes/[component]/Showcase/TableAdvanced/index.svelte +71 -252
@@ -2,108 +2,62 @@
2
2
  import Popover from "$lib/Components/Popover/index.svelte"
3
3
  import Button from "$lib/Components/Button/index.svelte"
4
4
  import TextInput from "$lib/Components/TextInput/index.svelte"
5
- import Checkbox from "$lib/Components/Checkbox/index.svelte"
6
- import Icon from "$lib/Components/Icon/index.svelte"
5
+ import Dropdown from "$lib/Components/Dropdown/index.svelte"
7
6
  import Spacer from "$lib/Components/Spacer/index.svelte"
8
- import Self from './index.svelte'
7
+ import Self from "./index.svelte"
9
8
 
10
9
  let { manager } = $props()
11
10
  </script>
12
11
 
13
- {#snippet val_display()}
14
- {#if Array.isArray(manager?.val)}
12
+ <Button manager={manager?.open_edit_button_manager} />
13
+ <Popover manager={manager?.popover_manager}>
14
+ {#snippet content()}
15
15
  <div>
16
- <div style="display: flex; flex-wrap: wrap; gap: .5rem;">
17
- [
18
- {#if manager?.val.length < 1}
19
- /
20
- {:else}
21
- {#each manager?.val as path_item, i}
22
- {#if Array.isArray(path_item)}
23
- [{path_item}]
24
- {:else}
25
- {path_item}
26
- {/if}
27
- {#if i < manager?.val.length - 1}
28
- <div style="display: flex; align-items: center;">
29
- <Icon manager={manager?.arrow_icon_manager} />
16
+ {#if manager?.levels_nested}
17
+ <p>{manager?.levels_nested} levels nested</p>
18
+ {/if}
19
+ <p>{manager?.val_text}</p>
20
+ <Dropdown manager={manager?.def_dropdown_manager} />
21
+ {#if manager?.def_dropdown_manager?.val}
22
+ <Button manager={manager?.add_path_item_button_manager} />
23
+ <p class="label">Path Items (optional)</p>
24
+ {#if Array.isArray(manager?.path_prepped) && manager?.path_prepped.length > 0}
25
+ {#each manager?.path_prepped as path_item}
26
+ <div>
27
+ <div style="display: flex; gap: 1rem">
28
+ <Button manager={path_item?.remove_path_item_button_manager} />
29
+ <Button manager={path_item?.insert_path_item_before_button_manager} />
30
+ <Dropdown manager={path_item?.type_dropdown_manager} />
30
31
  </div>
31
- {/if}
32
+ {#if path_item?.type_dropdown_manager?.val == "variable"}
33
+ <div style="margin-top: 1rem;">
34
+ <Self manager={path_item?.variable_path_input_manager} />
35
+ </div>
36
+ {:else if path_item?.type_dropdown_manager?.val == "string"}
37
+ <TextInput manager={path_item?.const_string_value_text_input_manager} />
38
+ {:else if path_item?.type_dropdown_manager?.val == "number"}
39
+ <TextInput manager={path_item?.const_number_value_text_input_manager} />
40
+ {/if}
41
+ {#if Array.isArray(path_item?.key_options)}
42
+ <div style="margin-top: 1rem;">
43
+ <p class="label">Next Path Options</p>
44
+ <div style="display: flex; flex-wrap: wrap; gap: .5rem;">
45
+ {#each path_item?.key_options as key_option}
46
+ <Button manager={key_option?.select_button_manager} />
47
+ {/each}
48
+ </div>
49
+ </div>
50
+ {/if}
51
+ </div>
52
+ <Spacer mt={1} mb={1} />
32
53
  {/each}
33
- {/if}
34
- ]
35
- </div>
36
- </div>
37
- {:else}
38
- <p style="color: var(--warning-t);">null</p>
39
- {/if}
40
- {/snippet}
41
-
42
- {#snippet variable_path_input()}
43
- <div>
44
- <h4 class="label" style="margin: 0;">Data Type at Path</h4>
45
- <p>{manager?.data_type_at_path?.type}</p>
46
- {#if Array.isArray(manager?.val_prepped)}
47
- <h4 class="label" style="margin: 0;">Val</h4>
48
- {@render val_display()}
49
- <Spacer mt={.5} mb={.5} />
50
- <div style="display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem;">
51
- {#if manager?.val != null}
52
- <Button manager={manager?.set_null_button_manager} />
53
54
  {:else}
54
- <Button manager={manager?.set_root_path_button_manager} />
55
+ <p>No Path Items</p>
55
56
  {/if}
56
- {#each manager?.val_prepped as path_item_prepped}
57
- <Button manager={path_item_prepped?.remove_path_button_manager} />
58
- {/each}
59
- </div>
60
- {/if}
61
- <Spacer mt={.5} mb={.5} />
62
- <h4 class="label" style="margin: 0;">Next Path Item Options</h4>
63
- {#if manager?.is_allow_dynamic_path_item}
64
- <Checkbox manager={manager?.is_dynamic_path_item_checkbox_manager} />
65
- {#if manager?.is_dynamic_path_item_checkbox_manager?.val && manager?.next_path_variable_path_input_manager}
66
- <Self manager={manager?.next_path_variable_path_input_manager} />
67
57
  {/if}
68
- {/if}
69
- {#if !manager?.is_allow_dynamic_path_item || !manager?.is_dynamic_path_item_checkbox_manager?.val}
70
- {#if manager?.next_path_options?.type == "loop"}
71
- <TextInput manager={manager?.next_path_options?.number_input_manager} />
72
- <Button manager={manager?.next_path_options?.add_path_item_button_manager} />
73
- {:else if manager?.next_path_options?.type == "object_literal"}
74
- {#if Array.isArray(manager?.next_path_options?.options) && manager?.next_path_options.options?.length > 0}
75
- <div style="display: flex; flex-wrap: wrap; gap: .5rem;">
76
- {#each manager?.next_path_options?.options as option}
77
- <Button manager={option?.option_button_manager} />
78
- {/each}
79
- </div>
80
- {:else}
81
- <p>No options found</p>
82
- {/if}
83
- {:else}
84
- <p>No additional path item options found</p>
85
- {/if}
86
- {/if}
87
- </div>
88
- {/snippet}
89
-
90
- {#if !manager?.is_popover}
91
- {@render variable_path_input()}
92
- {:else}
93
- {#if Array.isArray(manager?.val)}
94
- <div style="display: flex; gap: .5rem;">
95
- {@render val_display()}
96
- <Button manager={manager?.small_popover_toggle_button_manager} />
97
58
  </div>
98
- {:else}
99
- <Button manager={manager?.popover_toggle_button_manager} />
100
- {/if}
101
- <Popover manager={manager.popover_manager}>
102
- {#snippet content()}
103
- {@render variable_path_input()}
104
- {/snippet}
105
- {#snippet footer()}
106
- <Button manager={manager?.finish_button_manager} />
107
- {/snippet}
108
- </Popover>
109
- {/if}
59
+ {/snippet}
60
+ {#snippet footer()}
61
+ <Button manager={manager?.finish_button_manager} />
62
+ {/snippet}
63
+ </Popover>
@@ -1,199 +1,232 @@
1
1
  import { create_popover_manager } from "$lib/Components/Popover/index.svelte.js"
2
2
  import { create_button_manager } from "$lib/Components/Button/index.svelte.js"
3
3
  import { create_text_input_manager } from "$lib/Components/TextInput/index.svelte.js"
4
- import { create_icon_manager } from "$lib/Components/Icon/index.svelte.js"
5
- import { create_checkbox_manager } from "$lib/Components/Checkbox/index.svelte.js"
6
- import { deep_copy, set_closurable, get_data_type_at_path } from "$lib/client/index.js"
4
+ import { create_dropdown_manager } from "$lib/Components/Dropdown/index.svelte.js"
5
+ import { set_closurable, get_data_type_at_path } from "$lib/client/index.js"
7
6
 
8
7
  export function create_variable_path_input_manager(config) {
9
- let val = $state(null)
10
- let is_popover = $state(true)
11
8
  let popover_manager = $state(null)
12
- let popover_toggle_button_manager = $state(null)
13
- let small_popover_toggle_button_manager = $state(null)
14
- let set_null_button_manager = $state(null)
15
- let set_root_path_button_manager = $state(null)
16
- let is_dynamic_path_item_checkbox_manager = $state(null)
17
- let next_path_variable_path_input_manager = $state(null)
9
+ let open_edit_button_manager = $state(null)
10
+ let add_path_item_button_manager = $state(null)
18
11
  let finish_button_manager = $state(null)
19
- let next_path_options = $state(null)
20
- let val_prepped = $state(null)
21
- let arrow_icon_manager = $state(null)
12
+ let defined_options = $state(null)
13
+ let def_dropdown_manager = $state(null)
14
+ let levels_nested = $state(null)
15
+ let path_prepped = $state(null)
16
+ let val = $derived(
17
+ def_dropdown_manager?.val
18
+ ? [def_dropdown_manager?.val, ...(Array.isArray(path_prepped) ? path_prepped.map((h) => h?.val) : [])]
19
+ : []
20
+ )
21
+ let val_text = $derived(val_to_text(val))
22
22
 
23
- let is_allow_dynamic_path_item = $derived(set_closurable(config?.is_allow_dynamic_path_item, true))
24
- let variables_data_type = $derived(set_closurable(config?.variables_data_type, null))
25
- let full_data_type = $derived({
26
- name: "Object",
27
- type: "object_literal",
28
- properties: {
29
- variables: variables_data_type,
30
- loops: { type: "loop" },
31
- },
32
- })
33
- // if data_type changes dynamically set_next_path_options also needs updated
34
- let data_type_at_path = $derived(get_data_type_at_path(val, full_data_type))
35
-
36
- function set_val_prepped() {
37
- let val_prepped_loc = []
38
- if (Array.isArray(val)) {
39
- for (let i = 0; i < val.length; i++) {
40
- val_prepped_loc.push({
41
- ...val[i],
42
- remove_path_button_manager: create_button_manager({
43
- type: "outlined",
44
- support_icon: "x",
45
- text: Array.isArray(val?.[i]) ? `[${val?.[i]}]` : String(val?.[i]),
46
- on_click: () => {
47
- val = val.slice(0, i)
48
- set_val_prepped()
49
- set_next_path_options()
50
- },
51
- }),
23
+ function prep_path(input) {
24
+ console.log("prep_path", input)
25
+ let path_prepped_loc = $state([])
26
+ if (Array.isArray(input)) {
27
+ let variable_data_type_at_path = Array.isArray(defined_options)
28
+ ? defined_options.find((h) => h?.key === def_dropdown_manager?.val)?.data_type
29
+ : null
30
+ for (let i = 1; i < input.length; i++) {
31
+ let type_dropdown_manager = create_dropdown_manager({
32
+ placeholder: "Select Type",
33
+ is_button_compressed: true,
34
+ options: [
35
+ { key: "number", name: "Number" },
36
+ { key: "string", name: "String" },
37
+ { key: "variable", name: "Variable" },
38
+ ],
39
+ val: Array.isArray(input?.[i])
40
+ ? "variable"
41
+ : Number.isInteger(input?.[i])
42
+ ? "number"
43
+ : typeof input?.[i] == "string"
44
+ ? "string"
45
+ : null,
52
46
  })
53
- }
54
- }
55
- val_prepped = val_prepped_loc
56
- }
57
-
58
- function add_path_item(input) {
59
- if (!Array.isArray(val)) {
60
- val = [input]
61
- } else {
62
- val = [...val, input]
63
- }
64
- is_dynamic_path_item_checkbox_manager.set_val(false)
65
- next_path_variable_path_input_manager?.init()
66
- set_next_path_options()
67
- }
68
-
69
- function set_next_path_options() {
70
- let next_path_options_loc = null
71
- if (data_type_at_path?.type == "loop") {
72
- let number_input_manager = create_text_input_manager({
73
- type: "number",
74
- val: 0,
75
- mt: 0.5,
76
- mb: 0.5,
77
- })
78
- next_path_options_loc = {
79
- type: "loop",
80
- number_input_manager: number_input_manager,
81
- add_path_item_button_manager: create_button_manager({
47
+ let remove_path_item_button_manager = create_button_manager({
82
48
  type: "outlined",
83
- is_compressed: true,
84
- text: "Add Path Item",
85
- on_click: () => add_path_item(number_input_manager?.val),
86
- }),
87
- }
88
- } else if (data_type_at_path?.type == "object_literal") {
89
- let options_loc = $state([])
90
- for (let [key, property] of Object.entries(data_type_at_path?.properties)) {
91
- let option_button_manager = create_button_manager({
49
+ is_uniform: true,
50
+ support_icon: "x",
51
+ on_click: () => {
52
+ prep_path(Array.isArray(val) ? val.filter((_, idx) => idx !== i) : null)
53
+ },
54
+ })
55
+ let insert_path_item_before_button_manager = create_button_manager({
92
56
  type: "outlined",
93
- is_compressed: true,
94
- text: `${key}: (${property?.type})`,
95
- on_click: () => add_path_item(key),
57
+ is_uniform: true,
58
+ support_icon: "plus",
59
+ on_click: () =>
60
+ prep_path([
61
+ ...(Array.isArray(val) ? val.slice(0, i) : []),
62
+ null,
63
+ ...(Array.isArray(val) ? val.slice(i) : []),
64
+ ]),
96
65
  })
97
- options_loc.push({
98
- option_button_manager: option_button_manager,
66
+ let const_string_value_text_input_manager = create_text_input_manager({
67
+ label: "Property",
68
+ placeholder: "some_property",
69
+ type: "text",
70
+ val: type_dropdown_manager?.val == "string" ? input?.[i] : null,
71
+ })
72
+ let const_number_value_text_input_manager = create_text_input_manager({
73
+ label: "Index",
74
+ placeholder: "0",
75
+ type: "number",
76
+ val: type_dropdown_manager?.val == "number" ? input?.[i] : null,
77
+ })
78
+ let variable_path_input_manager = create_variable_path_input_manager({
79
+ val: input?.[i],
80
+ levels_nested: levels_nested + 1,
81
+ get_defined_options: config?.get_defined_options,
82
+ on_finish: () => {
83
+ variable_path_input_manager.close_popover()
84
+ },
85
+ })
86
+ let key_options = []
87
+ if (variable_data_type_at_path?.type == "object_literal") {
88
+ for (let [key, property] of Object.entries(variable_data_type_at_path?.properties)) {
89
+ let select_button_manager = create_button_manager({
90
+ type: "outlined",
91
+ is_compressed: true,
92
+ text: `${key}: (${property?.type})`,
93
+ selected_type: () => (const_string_value_text_input_manager?.val == key ? "half_selected" : null),
94
+ on_click: () => {
95
+ type_dropdown_manager.set_val("string")
96
+ const_string_value_text_input_manager.set_val(key)
97
+ },
98
+ })
99
+ key_options.push({
100
+ select_button_manager: select_button_manager,
101
+ })
102
+ }
103
+ }
104
+ console.log("key_options", key_options)
105
+ let val = $derived(
106
+ type_dropdown_manager?.val == "string"
107
+ ? const_string_value_text_input_manager?.val
108
+ : type_dropdown_manager?.val == "number"
109
+ ? const_number_value_text_input_manager?.val
110
+ : type_dropdown_manager?.val == "variable"
111
+ ? variable_path_input_manager?.val
112
+ : null
113
+ )
114
+ let variable_data_type_at_next_path = $derived(
115
+ type_dropdown_manager?.val == "string"
116
+ ? variable_data_type_at_path?.properties?.[const_string_value_text_input_manager?.val]
117
+ : type_dropdown_manager?.val == "number"
118
+ ? variable_data_type_at_path?.items
119
+ : type_dropdown_manager?.val == "variable"
120
+ ? variable_path_input_manager?.variable_data_type_at_path
121
+ : null
122
+ )
123
+ path_prepped_loc.push({
124
+ get type_dropdown_manager() {
125
+ return type_dropdown_manager
126
+ },
127
+ get remove_path_item_button_manager() {
128
+ return remove_path_item_button_manager
129
+ },
130
+ get insert_path_item_before_button_manager() {
131
+ return insert_path_item_before_button_manager
132
+ },
133
+ get const_string_value_text_input_manager() {
134
+ return const_string_value_text_input_manager
135
+ },
136
+ get const_number_value_text_input_manager() {
137
+ return const_number_value_text_input_manager
138
+ },
139
+ get variable_path_input_manager() {
140
+ return variable_path_input_manager
141
+ },
142
+ get key_options() {
143
+ return key_options
144
+ },
145
+ get variable_data_type_at_next_path() {
146
+ return variable_data_type_at_next_path
147
+ },
148
+ get val() {
149
+ return val
150
+ },
99
151
  })
100
- }
101
- next_path_options_loc = {
102
- type: "object_literal",
103
- options: options_loc,
104
152
  }
105
153
  }
106
- next_path_options = next_path_options_loc
107
- set_val_prepped()
154
+ path_prepped = path_prepped_loc
108
155
  }
109
156
 
110
- function finish() {
157
+ function close_popover() {
111
158
  popover_manager.close()
112
- if (typeof config?.on_finish == "function") {
113
- config?.on_finish(val)
114
- }
115
159
  }
116
160
 
117
- function set_val(input) {
118
- val = input
119
- set_val_prepped()
120
- set_next_path_options()
161
+ function val_to_text(input) {
162
+ let text_items = []
163
+ if (Array.isArray(input) && input.length > 0) {
164
+ for (let item of input) {
165
+ if (Array.isArray(item)) {
166
+ text_items.push(val_to_text(item))
167
+ } else {
168
+ text_items.push(item)
169
+ }
170
+ }
171
+ }
172
+ return `[${text_items.join(", ")}]`
121
173
  }
122
174
 
123
- function init(config) {
124
- val = config?.val ?? null
175
+ function init(input) {
176
+ levels_nested = input?.levels_nested ?? 0
125
177
  popover_manager = create_popover_manager({
126
- min_width: 320,
127
- target_width: 400,
128
- min_height: 320,
129
- target_height: 400,
178
+ min_width: 280,
179
+ target_width: 450,
180
+ min_height: 400,
181
+ target_height: 240,
130
182
  type: "center",
131
- header: "Variable Path Input",
132
- anchor_id: () => `button_${popover_toggle_button_manager?.id}`,
183
+ header: "Defined Target Selector",
184
+ on_open: () => {
185
+ if (typeof config?.on_dropdown_opened == "function") {
186
+ config?.on_dropdown_opened()
187
+ }
188
+ },
133
189
  })
134
- popover_toggle_button_manager = create_button_manager({
190
+ open_edit_button_manager = create_button_manager({
135
191
  type: "outlined",
192
+ h: 10,
193
+ l: 3,
194
+ c: 1,
136
195
  is_compressed: true,
137
- text: "Select Variable Path",
196
+ text: () => (Array.isArray(val) && val.length > 0 ? val_to_text(val) : "Select Defined Identifier"),
138
197
  popover_target: () => `popover_${popover_manager?.id}`,
139
198
  })
140
- small_popover_toggle_button_manager = create_button_manager({
141
- type: "soft",
142
- support_icon: "edit",
143
- is_uniform: true,
144
- icon_size: 1.6,
145
- min_height: 2,
146
- border_radius: 0.5,
147
- c: 16,
148
- popover_target: () => `popover_${popover_manager?.id}`,
149
- })
150
- set_null_button_manager = create_button_manager({
151
- type: "outlined",
152
- is_compressed: true,
153
- text: "Set Null",
154
- on_click: () => {
155
- val = null
156
- set_val_prepped()
157
- set_next_path_options()
199
+ def_dropdown_manager = create_dropdown_manager({
200
+ label: "Defined Variable",
201
+ is_button_compressed: true,
202
+ val: input?.val?.[0],
203
+ on_dropdown_opened: () => {
204
+ console.log("open_def", typeof config?.get_defined_options)
205
+ if (typeof config?.get_defined_options == "function") {
206
+ defined_options = config?.get_defined_options()
207
+ console.log("get_defined_options", defined_options)
208
+ def_dropdown_manager.set_options(defined_options)
209
+ }
158
210
  },
211
+ mb: 1,
159
212
  })
160
- set_root_path_button_manager = create_button_manager({
213
+ add_path_item_button_manager = create_button_manager({
161
214
  type: "outlined",
215
+ support_icon: "plus",
216
+ text: "Add Path Item",
162
217
  is_compressed: true,
163
- text: `Set Root Path (${data_type_at_path?.type})`,
164
- on_click: () => {
165
- val = []
166
- set_val_prepped()
167
- set_next_path_options()
168
- },
169
- })
170
- is_dynamic_path_item_checkbox_manager = create_checkbox_manager({
171
- type: "toggle",
172
- label: "Is Dynamic Path Item",
173
- val: false,
174
- on_change: (input) => {
175
- if (input) {
176
- next_path_variable_path_input_manager = create_variable_path_input_manager({
177
- is_popover: false,
178
- is_allow_dynamic_path_item: false,
179
- variables_data_type: () => variables_data_type,
180
- on_finish: (input) => add_path_item(input),
181
- })
182
- }
183
- },
218
+ mb: 1,
219
+ on_click: () => prep_path([...(Array.isArray(val) ? val : []), null]),
184
220
  })
185
221
  finish_button_manager = create_button_manager({
186
222
  text: "Finish",
187
- on_click: () => finish(),
188
- })
189
- arrow_icon_manager = create_icon_manager({
190
- icon_id: "arrow",
191
- deg: 90,
192
- size: 1.2,
193
- color: "var(--g11-t)",
223
+ on_click: () => {
224
+ if (typeof config?.on_finish == "function") {
225
+ config?.on_finish(val)
226
+ }
227
+ },
194
228
  })
195
- set_val_prepped()
196
- set_next_path_options()
229
+ prep_path(input?.val)
197
230
  }
198
231
 
199
232
  init(config)
@@ -202,49 +235,30 @@ export function create_variable_path_input_manager(config) {
202
235
  get val() {
203
236
  return val
204
237
  },
205
- get val_prepped() {
206
- return val_prepped
207
- },
208
- get is_popover() {
209
- return is_popover
238
+ get val_text() {
239
+ return val_text
210
240
  },
211
- get data_type_at_path() {
212
- return data_type_at_path
241
+ get levels_nested() {
242
+ return levels_nested
213
243
  },
214
244
  get popover_manager() {
215
245
  return popover_manager
216
246
  },
217
- get popover_toggle_button_manager() {
218
- return popover_toggle_button_manager
247
+ get open_edit_button_manager() {
248
+ return open_edit_button_manager
219
249
  },
220
- get small_popover_toggle_button_manager() {
221
- return small_popover_toggle_button_manager
250
+ get def_dropdown_manager() {
251
+ return def_dropdown_manager
222
252
  },
223
- get next_path_options() {
224
- return next_path_options
253
+ get add_path_item_button_manager() {
254
+ return add_path_item_button_manager
225
255
  },
226
- get set_null_button_manager() {
227
- return set_null_button_manager
228
- },
229
- get set_root_path_button_manager() {
230
- return set_root_path_button_manager
231
- },
232
- get is_allow_dynamic_path_item() {
233
- return is_allow_dynamic_path_item
234
- },
235
- get is_dynamic_path_item_checkbox_manager() {
236
- return is_dynamic_path_item_checkbox_manager
237
- },
238
- get next_path_variable_path_input_manager() {
239
- return next_path_variable_path_input_manager
256
+ get path_prepped() {
257
+ return path_prepped
240
258
  },
241
259
  get finish_button_manager() {
242
260
  return finish_button_manager
243
261
  },
244
- get arrow_icon_manager() {
245
- return arrow_icon_manager
246
- },
247
- set_val,
248
- init,
262
+ close_popover,
249
263
  }
250
264
  }