sveltekit-ui 1.1.16 → 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.
- package/package.json +1 -1
- package/dist/Components/ArrowToggle/index.svelte +0 -62
- package/dist/Components/Attachment/index.svelte +0 -77
- package/dist/Components/Attachment/index.svelte.js +0 -119
- package/dist/Components/AudioEditor/index.svelte +0 -252
- package/dist/Components/AudioEditor/index.svelte.js +0 -977
- package/dist/Components/AudioEditor/samples/alloy-voice-sample.mp3 +0 -0
- package/dist/Components/AudioEditor/samples/echo-voice-sample.mp3 +0 -0
- package/dist/Components/AudioEditor/samples/fable-voice-sample.mp3 +0 -0
- package/dist/Components/AudioEditor/samples/nova-voice-sample.mp3 +0 -0
- package/dist/Components/AudioEditor/samples/onyx-voice-sample.mp3 +0 -0
- package/dist/Components/AudioEditor/samples/shimmer-voice-sample.mp3 +0 -0
- package/dist/Components/Breadcrumbs/index.svelte +0 -27
- package/dist/Components/Breadcrumbs/index.svelte.js +0 -88
- package/dist/Components/Chart/Klines/index.svelte +0 -87
- package/dist/Components/Chart/index.svelte +0 -226
- package/dist/Components/Chart/index.svelte.js +0 -1090
- package/dist/Components/ChartInput/DisplayNav/Klines/index.svelte +0 -150
- package/dist/Components/ChartInput/DisplayNav/Lines/index.svelte +0 -45
- package/dist/Components/ChartInput/DisplayNav/index.svelte +0 -297
- package/dist/Components/ChartInput/EditPanel/index.svelte +0 -155
- package/dist/Components/ChartInput/index.svelte +0 -21
- package/dist/Components/ChartInput/index.svelte.js +0 -671
- package/dist/Components/Color/index.svelte +0 -51
- package/dist/Components/Color/index.svelte.js +0 -31
- package/dist/Components/ColorInput/ChromaPicker/index.svelte +0 -50
- package/dist/Components/ColorInput/ColorPalette/index.svelte +0 -62
- package/dist/Components/ColorInput/OpacityPicker/index.svelte +0 -68
- package/dist/Components/ColorInput/ShowcasePicker/index.svelte +0 -136
- package/dist/Components/ColorInput/index.svelte +0 -70
- package/dist/Components/ColorInput/index.svelte.js +0 -386
- package/dist/Components/ConditionsInput/index.svelte +0 -46
- package/dist/Components/ConditionsInput/index.svelte.js +0 -201
- package/dist/Components/Confetti/index.svelte +0 -98
- package/dist/Components/Confetti/index.svelte.js +0 -94
- package/dist/Components/Content/index.svelte +0 -500
- package/dist/Components/Content/index.svelte.js +0 -910
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte +0 -31
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte.js +0 -258
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte +0 -31
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte.js +0 -258
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte +0 -58
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte.js +0 -206
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte +0 -28
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte.js +0 -224
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte +0 -44
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte.js +0 -272
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte +0 -41
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte.js +0 -202
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte +0 -19
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte.js +0 -117
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte +0 -60
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte.js +0 -542
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte +0 -47
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte.js +0 -185
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte +0 -35
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte.js +0 -222
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte +0 -20
- package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte.js +0 -84
- package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte +0 -25
- package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte.js +0 -91
- package/dist/Components/ContentInput/AttributesInput/index.svelte +0 -352
- package/dist/Components/ContentInput/AttributesInput/index.svelte.js +0 -1436
- package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte +0 -64
- package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte.js +0 -97
- package/dist/Components/ContentInput/ContentPanelBuilder/ElementList/index.svelte +0 -184
- package/dist/Components/ContentInput/ContentPanelBuilder/index.svelte +0 -41
- package/dist/Components/ContentInput/index.svelte +0 -78
- package/dist/Components/ContentInput/index.svelte.js +0 -1197
- package/dist/Components/CronInput/index.svelte +0 -78
- package/dist/Components/CronInput/index.svelte.js +0 -198
- package/dist/Components/DataTypeInput/index.svelte +0 -174
- package/dist/Components/DataTypeInput/index.svelte.js +0 -565
- package/dist/Components/Dropdown/index.svelte +0 -116
- package/dist/Components/Dropdown/index.svelte.js +0 -403
- package/dist/Components/ErrorX/index.svelte +0 -58
- package/dist/Components/FileInput/index.svelte +0 -146
- package/dist/Components/FileInput/index.svelte.js +0 -225
- package/dist/Components/Hamburger/index.svelte +0 -99
- package/dist/Components/HorizScrollBox/index.svelte +0 -145
- package/dist/Components/IconInput/index.svelte +0 -77
- package/dist/Components/IconInput/index.svelte.js +0 -259
- package/dist/Components/Image/index.svelte +0 -126
- package/dist/Components/Image/index.svelte.js +0 -116
- package/dist/Components/ImageEditor/Image/CropBox/index.svelte +0 -165
- package/dist/Components/ImageEditor/Image/index.svelte +0 -104
- package/dist/Components/ImageEditor/Panels/AI/index.svelte +0 -44
- package/dist/Components/ImageEditor/Panels/Crop/index.svelte +0 -96
- package/dist/Components/ImageEditor/Panels/File/QualityPicker/index.svelte +0 -124
- package/dist/Components/ImageEditor/Panels/File/index.svelte +0 -74
- package/dist/Components/ImageEditor/Panels/Filters/index.svelte +0 -46
- package/dist/Components/ImageEditor/Panels/Resize/index.svelte +0 -58
- package/dist/Components/ImageEditor/index.svelte +0 -93
- package/dist/Components/ImageEditor/index.svelte.js +0 -1961
- package/dist/Components/ImageSlider/index.svelte +0 -124
- package/dist/Components/ImageSlider/index.svelte.js +0 -99
- package/dist/Components/Json/Nested/index.svelte +0 -157
- package/dist/Components/LabeledItem/index.svelte +0 -102
- package/dist/Components/Layout/NavBar/FullNav/index.svelte +0 -52
- package/dist/Components/Layout/NavBar/NavGuts/index.svelte +0 -87
- package/dist/Components/Layout/NavBar/index.svelte +0 -72
- package/dist/Components/Layout/index.svelte +0 -149
- package/dist/Components/Layout/index.svelte.js +0 -360
- package/dist/Components/LoadingWheel/index.svelte +0 -38
- package/dist/Components/LocationInput/index.svelte +0 -197
- package/dist/Components/LocationInput/index.svelte.js +0 -965
- package/dist/Components/Number/index.svelte +0 -47
- package/dist/Components/Number/index.svelte.js +0 -151
- package/dist/Components/PhoneCountryCode/index.svelte +0 -7
- package/dist/Components/PhoneCountryCode/index.svelte.js +0 -260
- package/dist/Components/Popover/index.svelte +0 -396
- package/dist/Components/Popover/index.svelte.js +0 -319
- package/dist/Components/Spacer/index.svelte +0 -41
- package/dist/Components/StoragePicker/DisplayFile/index.svelte +0 -15
- package/dist/Components/StoragePicker/index.svelte +0 -187
- package/dist/Components/StoragePicker/index.svelte.js +0 -592
- package/dist/Components/TableAdvanced/ColumnInput/index.svelte +0 -117
- package/dist/Components/TableAdvanced/ColumnInput/index.svelte.js +0 -456
- package/dist/Components/TableAdvanced/FilterInput/index.svelte +0 -54
- package/dist/Components/TableAdvanced/FilterInput/index.svelte.js +0 -247
- package/dist/Components/TableAdvanced/Pagination/index.svelte +0 -43
- package/dist/Components/TableAdvanced/Pagination/index.svelte.js +0 -97
- package/dist/Components/TableAdvanced/SortByInput/index.svelte +0 -72
- package/dist/Components/TableAdvanced/SortByInput/index.svelte.js +0 -176
- package/dist/Components/Tag/index.svelte +0 -45
- package/dist/Components/Tag/index.svelte.js +0 -76
- package/dist/Components/TextArrayInput/index.svelte +0 -108
- package/dist/Components/TextArrayInput/index.svelte.js +0 -239
- package/dist/Components/TextInput/PasswordTooltip/index.svelte +0 -89
- package/dist/Components/TimeInput/NumberToggler/index.svelte +0 -34
- package/dist/Components/TimeInput/NumberToggler/index.svelte.js +0 -79
- package/dist/Components/TimeInput/index.js +0 -702
- package/dist/Components/TimeInput/index.svelte +0 -211
- package/dist/Components/TimeInput/index.svelte.js +0 -638
- package/dist/Components/Tooltip/index.svelte +0 -143
- package/dist/Components/TransparentBackground/index.svelte +0 -153
- package/dist/Components/TypingDots/index.svelte +0 -84
- package/dist/Components/VariablePathInput/index.svelte +0 -63
- package/dist/Components/VariablePathInput/index.svelte.js +0 -273
- package/dist/Components/XFollow/index.svelte +0 -42
- package/dist/Components/YoutubeChannelButton/index.svelte +0 -82
- package/dist/Components/YoutubeVideo/index.svelte +0 -73
- package/dist/Components/YoutubeVideo/index.svelte.js +0 -54
- package/dist/actions/draggable.js +0 -49
- package/dist/actions/index.js +0 -24
- package/dist/actions/no_spaces.js +0 -33
- package/dist/actions/numbers_only.js +0 -26
- package/dist/actions/scroll_y.js +0 -28
- package/dist/actions/stop_scroll_propagation_y.js +0 -42
- package/dist/actions/swipe_handler.js +0 -295
- package/dist/client/astc_formatting/index.js +0 -1128
- package/dist/client/docs/index.js +0 -7622
- package/dist/client/index.js +0 -735
- package/dist/client/types/index.js +0 -2812
- package/dist/index.js +0 -180
- package/dist/style.css +0 -682
|
@@ -1,403 +0,0 @@
|
|
|
1
|
-
import { create_unique_id, set_closurable, set_closurable_color } from "../../client/index.js"
|
|
2
|
-
import { create_button_manager } from "../Button/index.svelte.js"
|
|
3
|
-
import { create_popover_manager } from "../Popover/index.svelte.js"
|
|
4
|
-
import { create_text_input_manager } from "../TextInput/index.svelte.js"
|
|
5
|
-
import { create_icon_manager } from "../Icon/index.svelte.js"
|
|
6
|
-
|
|
7
|
-
export function create_dropdown_manager(config) {
|
|
8
|
-
const id = create_unique_id(null, 20)
|
|
9
|
-
let val = $state(null)
|
|
10
|
-
let options = $state(null)
|
|
11
|
-
|
|
12
|
-
let label = $derived(set_closurable(config?.label, null))
|
|
13
|
-
let type = $derived(set_closurable(config?.type, "dropdown")) // dropdown, horiz_selector
|
|
14
|
-
let is_collapsed = $derived(set_closurable(config?.is_collapsed, false))
|
|
15
|
-
let val_key = $derived(set_closurable(config?.val_key, "key"))
|
|
16
|
-
let row_display_keys = $derived(set_closurable(config?.row_display_keys, ["name"]))
|
|
17
|
-
let button_display_keys = $derived(set_closurable(config?.button_display_keys, ["name"]))
|
|
18
|
-
let is_multiselect = $derived(set_closurable(config?.is_multiselect, false))
|
|
19
|
-
let is_set_null_button = $derived(set_closurable(config?.is_set_null_button, false))
|
|
20
|
-
let is_disabled = $derived(set_closurable(config?.is_disabled, false))
|
|
21
|
-
let header = $derived(set_closurable(config?.header, null))
|
|
22
|
-
let header_icon = $derived(set_closurable(config?.header_icon, null))
|
|
23
|
-
let header_icon_deg = $derived(set_closurable(config?.header_icon_deg, 0))
|
|
24
|
-
let min_header_width = $derived(set_closurable(config?.min_header_width, 2))
|
|
25
|
-
let spacer_color = $derived(set_closurable_color(config?.spacer_color, "var(--shadow2-t)"))
|
|
26
|
-
let error_message = $derived(set_closurable(config?.error_message, null))
|
|
27
|
-
let placeholder = $derived(set_closurable(config?.placeholder, "Select"))
|
|
28
|
-
let target_width = $derived(set_closurable(config?.target_width, 250))
|
|
29
|
-
let target_height = $derived(set_closurable(config?.target_height, 200))
|
|
30
|
-
let font_weight = $derived(set_closurable(config?.font_weight, 500))
|
|
31
|
-
let font_size = $derived(set_closurable(config?.font_size, 1.2))
|
|
32
|
-
let is_show_x = $derived(set_closurable(config?.is_show_x, false))
|
|
33
|
-
let text_align = $derived(set_closurable(config?.text_align, "left"))
|
|
34
|
-
let justify_content = $derived(set_closurable(config?.justify_content, "space-between"))
|
|
35
|
-
let is_show_arrow = $derived(set_closurable(config?.is_show_arrow, true))
|
|
36
|
-
let button_type = $derived(set_closurable(config?.button_type, "outlined"))
|
|
37
|
-
let selected_font_size = $derived(set_closurable(config?.selected_font_size, null))
|
|
38
|
-
let is_button_compressed = $derived(set_closurable(config?.is_button_compressed, false))
|
|
39
|
-
let is_searchable = $derived(set_closurable(config?.is_searchable, false))
|
|
40
|
-
let is_hide_button = $derived(set_closurable(config?.is_hide_button, false))
|
|
41
|
-
let anchor_id = $derived(set_closurable(config?.anchor_id, null))
|
|
42
|
-
let ml = $derived(set_closurable(config?.ml, 0))
|
|
43
|
-
let mr = $derived(set_closurable(config?.mr, 0))
|
|
44
|
-
let mt = $derived(set_closurable(config?.mt, 0))
|
|
45
|
-
let mb = $derived(set_closurable(config?.mb, 0))
|
|
46
|
-
let item_mb = $derived(set_closurable(config?.item_mb, 0))
|
|
47
|
-
|
|
48
|
-
let filtered_button_managers = $state(null)
|
|
49
|
-
let search_text_input_manager = $state(null)
|
|
50
|
-
let popover_manager = $state(null)
|
|
51
|
-
let toggle_button_manager = $state(null)
|
|
52
|
-
let clear_button_manager = $state(null)
|
|
53
|
-
let toggle_button_text = $derived(get_button_text())
|
|
54
|
-
let header_icon_manager = $state(null)
|
|
55
|
-
let search_requests_is_loading = $state([])
|
|
56
|
-
|
|
57
|
-
function set_filtered_button_managers(search_val = null) {
|
|
58
|
-
let filtered_button_managers_loc = []
|
|
59
|
-
if (Array.isArray(options) && options.length > 0) {
|
|
60
|
-
for (let option of options) {
|
|
61
|
-
if (
|
|
62
|
-
[null, ""].includes(search_val) ||
|
|
63
|
-
(option?.[val_key] && option?.[val_key].length > 0 && search_val && option?.[val_key].includes(search_val)) ||
|
|
64
|
-
row_display_keys.some((h) => option?.[h].includes(search_val))
|
|
65
|
-
) {
|
|
66
|
-
filtered_button_managers_loc.push(
|
|
67
|
-
create_button_manager({
|
|
68
|
-
type: "soft",
|
|
69
|
-
selected_type: () =>
|
|
70
|
-
val != null &&
|
|
71
|
-
(option?.[val_key] == val || (Array.isArray(val) && val.some((h) => h === option?.[val_key])))
|
|
72
|
-
? "half_selected"
|
|
73
|
-
: null,
|
|
74
|
-
text: Array.isArray(row_display_keys) ? row_display_keys.map((h) => option?.[h]).join(" ") : option?.name,
|
|
75
|
-
text_align: text_align,
|
|
76
|
-
font_size: font_size,
|
|
77
|
-
font_weight: font_weight,
|
|
78
|
-
is_compressed: type == "horiz_selector",
|
|
79
|
-
is_no_wrap: type == "horiz_selector",
|
|
80
|
-
mb: item_mb,
|
|
81
|
-
l: 2,
|
|
82
|
-
c: 1,
|
|
83
|
-
on_click: () => item_clicked(option),
|
|
84
|
-
})
|
|
85
|
-
)
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
filtered_button_managers = filtered_button_managers_loc
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
function set_val(input) {
|
|
93
|
-
val = set_closurable(input)
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
function get_button_text() {
|
|
97
|
-
let button_text_loc = placeholder ?? "Select"
|
|
98
|
-
if (!is_multiselect && val !== "" && val !== null && val !== undefined && options && options.length > 0) {
|
|
99
|
-
const i = options.findIndex((h) => h?.[val_key] == val)
|
|
100
|
-
button_text_loc =
|
|
101
|
-
i > -1 && options && options[i]
|
|
102
|
-
? Array.isArray(button_display_keys)
|
|
103
|
-
? button_display_keys.map((h) => options[i][h] ?? "").join(" ")
|
|
104
|
-
: val
|
|
105
|
-
: val
|
|
106
|
-
} else if (is_multiselect && val && Array.isArray(val) && val.length > 0) {
|
|
107
|
-
const i = options.findIndex((h) => h?.[val_key] == val?.[0])
|
|
108
|
-
button_text_loc =
|
|
109
|
-
i > -1 && options && options[i]
|
|
110
|
-
? Array.isArray(button_display_keys)
|
|
111
|
-
? button_display_keys.map((h) => options[i][h] ?? "").join(" ")
|
|
112
|
-
: val
|
|
113
|
-
: val
|
|
114
|
-
if (val.length > 1) {
|
|
115
|
-
button_text_loc = `${button_text_loc} and ${val.length - 1} more`
|
|
116
|
-
}
|
|
117
|
-
} else if (Array.isArray(val)) {
|
|
118
|
-
button_text_loc = `${val.length} items`
|
|
119
|
-
} else if (val) {
|
|
120
|
-
button_text_loc = val
|
|
121
|
-
}
|
|
122
|
-
return button_text_loc
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
function item_clicked(item) {
|
|
126
|
-
if (item == null || item?.[val_key] == null) {
|
|
127
|
-
val = null
|
|
128
|
-
} else if (is_multiselect) {
|
|
129
|
-
if (Array.isArray(val)) {
|
|
130
|
-
if (val.some((h) => h == item?.[val_key])) {
|
|
131
|
-
val = [...val].filter((h) => h != item?.[val_key])
|
|
132
|
-
} else {
|
|
133
|
-
val = [...val, item?.[val_key]]
|
|
134
|
-
}
|
|
135
|
-
} else {
|
|
136
|
-
val = [item?.[val_key]]
|
|
137
|
-
}
|
|
138
|
-
} else {
|
|
139
|
-
if (val == item?.[val_key]) {
|
|
140
|
-
val = null
|
|
141
|
-
} else {
|
|
142
|
-
val = item?.[val_key]
|
|
143
|
-
popover_manager.close()
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
if (config?.on_item_click) {
|
|
147
|
-
config?.on_item_click(
|
|
148
|
-
item
|
|
149
|
-
? {
|
|
150
|
-
...item,
|
|
151
|
-
}
|
|
152
|
-
: null
|
|
153
|
-
)
|
|
154
|
-
}
|
|
155
|
-
if (config?.on_change) {
|
|
156
|
-
config?.on_change(val)
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
function handle_dropdown_opened() {
|
|
161
|
-
if (config?.on_dropdown_opened) {
|
|
162
|
-
config?.on_dropdown_opened()
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
function handle_dropdown_closed() {
|
|
167
|
-
if (config?.on_dropdown_closed) {
|
|
168
|
-
config?.on_dropdown_closed()
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
function set_options(input) {
|
|
173
|
-
let clean_options = []
|
|
174
|
-
if (Array.isArray(input)) {
|
|
175
|
-
for (let option of input) {
|
|
176
|
-
if (typeof option == "object") {
|
|
177
|
-
const name = Array.isArray(button_display_keys)
|
|
178
|
-
? button_display_keys.map((h) => option?.[h] ?? "").join(" ")
|
|
179
|
-
: option?.name ?? option?.[val_key]
|
|
180
|
-
clean_options.push({ key: option?.[val_key], name: name })
|
|
181
|
-
} else {
|
|
182
|
-
clean_options.push({ key: option, name: String(option) })
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
options = clean_options
|
|
187
|
-
set_filtered_button_managers()
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
async function get_db_search_results(input) {
|
|
191
|
-
if (typeof config?.on_search == "function") {
|
|
192
|
-
const id = create_unique_id(null, 20)
|
|
193
|
-
search_requests_is_loading.push(id)
|
|
194
|
-
const res = await config?.on_search({ input: input ?? null, id })
|
|
195
|
-
if (search_requests_is_loading.includes(id)) {
|
|
196
|
-
const id_index = search_requests_is_loading.indexOf(id)
|
|
197
|
-
search_requests_is_loading = search_requests_is_loading.slice(id_index + 1)
|
|
198
|
-
set_options(res?.options || [])
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
function init(config) {
|
|
204
|
-
val = set_closurable(config?.val ?? null)
|
|
205
|
-
search_text_input_manager = create_text_input_manager({
|
|
206
|
-
type: "search",
|
|
207
|
-
on_change: (input) => {
|
|
208
|
-
if (typeof config?.on_search == "function") {
|
|
209
|
-
get_db_search_results(input)
|
|
210
|
-
} else {
|
|
211
|
-
set_filtered_button_managers(input)
|
|
212
|
-
}
|
|
213
|
-
},
|
|
214
|
-
})
|
|
215
|
-
popover_manager = create_popover_manager({
|
|
216
|
-
type: "dropdown",
|
|
217
|
-
header: () => header,
|
|
218
|
-
target_width: () => target_width,
|
|
219
|
-
target_height: () => target_height,
|
|
220
|
-
is_show_x: () => is_show_x,
|
|
221
|
-
is_disabled: () => is_disabled,
|
|
222
|
-
on_open: handle_dropdown_opened,
|
|
223
|
-
on_close: handle_dropdown_closed,
|
|
224
|
-
anchor_id: () => anchor_id ?? `button_${toggle_button_manager?.id}`,
|
|
225
|
-
})
|
|
226
|
-
toggle_button_manager = create_button_manager({
|
|
227
|
-
type: button_type,
|
|
228
|
-
mt: mt,
|
|
229
|
-
mr: mr,
|
|
230
|
-
mb: mb,
|
|
231
|
-
ml: ml,
|
|
232
|
-
is_compressed: () => is_button_compressed,
|
|
233
|
-
is_disabled: () => is_disabled,
|
|
234
|
-
is_collapsed: () => is_collapsed,
|
|
235
|
-
popover_target: () => `popover_${popover_manager?.id}`,
|
|
236
|
-
})
|
|
237
|
-
clear_button_manager = create_button_manager({
|
|
238
|
-
type: "soft",
|
|
239
|
-
text: "Set to null",
|
|
240
|
-
text_align: text_align,
|
|
241
|
-
font_size: font_size,
|
|
242
|
-
font_weight: font_weight,
|
|
243
|
-
mb: item_mb,
|
|
244
|
-
is_disabled: () => val == null || (Array.isArray(val) && val.length < 1),
|
|
245
|
-
is_compressed: type == "horiz_selector",
|
|
246
|
-
is_no_wrap: type == "horiz_selector",
|
|
247
|
-
on_click: () => item_clicked(null),
|
|
248
|
-
})
|
|
249
|
-
header_icon_manager = create_icon_manager({
|
|
250
|
-
icon_id: () => header_icon,
|
|
251
|
-
deg: () => header_icon_deg,
|
|
252
|
-
sw: 30,
|
|
253
|
-
size: 2,
|
|
254
|
-
mr: 0.5,
|
|
255
|
-
})
|
|
256
|
-
set_options(config?.options)
|
|
257
|
-
if (typeof config?.on_search == "function") {
|
|
258
|
-
get_db_search_results(null)
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
init(config)
|
|
263
|
-
|
|
264
|
-
return {
|
|
265
|
-
id,
|
|
266
|
-
get type() {
|
|
267
|
-
return type
|
|
268
|
-
},
|
|
269
|
-
get is_collapsed() {
|
|
270
|
-
return is_collapsed
|
|
271
|
-
},
|
|
272
|
-
get val() {
|
|
273
|
-
return val
|
|
274
|
-
},
|
|
275
|
-
get val_key() {
|
|
276
|
-
return val_key
|
|
277
|
-
},
|
|
278
|
-
get row_display_keys() {
|
|
279
|
-
return row_display_keys
|
|
280
|
-
},
|
|
281
|
-
get button_display_keys() {
|
|
282
|
-
return button_display_keys
|
|
283
|
-
},
|
|
284
|
-
get options() {
|
|
285
|
-
return options
|
|
286
|
-
},
|
|
287
|
-
get is_multiselect() {
|
|
288
|
-
return is_multiselect
|
|
289
|
-
},
|
|
290
|
-
get is_set_null_button() {
|
|
291
|
-
return is_set_null_button
|
|
292
|
-
},
|
|
293
|
-
get is_disabled() {
|
|
294
|
-
return is_disabled
|
|
295
|
-
},
|
|
296
|
-
get header() {
|
|
297
|
-
return header
|
|
298
|
-
},
|
|
299
|
-
get header_icon() {
|
|
300
|
-
return header_icon
|
|
301
|
-
},
|
|
302
|
-
get header_icon_deg() {
|
|
303
|
-
return header_icon_deg
|
|
304
|
-
},
|
|
305
|
-
get min_header_width() {
|
|
306
|
-
return min_header_width
|
|
307
|
-
},
|
|
308
|
-
get spacer_color() {
|
|
309
|
-
return spacer_color
|
|
310
|
-
},
|
|
311
|
-
get label() {
|
|
312
|
-
return label
|
|
313
|
-
},
|
|
314
|
-
get error_message() {
|
|
315
|
-
return error_message
|
|
316
|
-
},
|
|
317
|
-
get placeholder() {
|
|
318
|
-
return placeholder
|
|
319
|
-
},
|
|
320
|
-
get target_width() {
|
|
321
|
-
return target_width
|
|
322
|
-
},
|
|
323
|
-
get target_height() {
|
|
324
|
-
return target_height
|
|
325
|
-
},
|
|
326
|
-
get font_weight() {
|
|
327
|
-
return font_weight
|
|
328
|
-
},
|
|
329
|
-
get font_size() {
|
|
330
|
-
return font_size
|
|
331
|
-
},
|
|
332
|
-
get is_show_x() {
|
|
333
|
-
return is_show_x
|
|
334
|
-
},
|
|
335
|
-
get text_align() {
|
|
336
|
-
return text_align
|
|
337
|
-
},
|
|
338
|
-
get justify_content() {
|
|
339
|
-
return justify_content
|
|
340
|
-
},
|
|
341
|
-
get is_show_arrow() {
|
|
342
|
-
return is_show_arrow
|
|
343
|
-
},
|
|
344
|
-
get button_type() {
|
|
345
|
-
return button_type
|
|
346
|
-
},
|
|
347
|
-
get selected_font_size() {
|
|
348
|
-
return selected_font_size
|
|
349
|
-
},
|
|
350
|
-
get is_button_compressed() {
|
|
351
|
-
return is_button_compressed
|
|
352
|
-
},
|
|
353
|
-
get is_searchable() {
|
|
354
|
-
return is_searchable
|
|
355
|
-
},
|
|
356
|
-
get is_hide_button() {
|
|
357
|
-
return is_hide_button
|
|
358
|
-
},
|
|
359
|
-
get item_mb() {
|
|
360
|
-
return item_mb
|
|
361
|
-
},
|
|
362
|
-
get ml() {
|
|
363
|
-
return ml
|
|
364
|
-
},
|
|
365
|
-
get mr() {
|
|
366
|
-
return mr
|
|
367
|
-
},
|
|
368
|
-
get mb() {
|
|
369
|
-
return mb
|
|
370
|
-
},
|
|
371
|
-
get mt() {
|
|
372
|
-
return mt
|
|
373
|
-
},
|
|
374
|
-
get search_text_input_manager() {
|
|
375
|
-
return search_text_input_manager
|
|
376
|
-
},
|
|
377
|
-
get filtered_button_managers() {
|
|
378
|
-
return filtered_button_managers
|
|
379
|
-
},
|
|
380
|
-
get popover_manager() {
|
|
381
|
-
return popover_manager
|
|
382
|
-
},
|
|
383
|
-
get toggle_button_manager() {
|
|
384
|
-
return toggle_button_manager
|
|
385
|
-
},
|
|
386
|
-
get toggle_button_text() {
|
|
387
|
-
return toggle_button_text
|
|
388
|
-
},
|
|
389
|
-
get clear_button_manager() {
|
|
390
|
-
return clear_button_manager
|
|
391
|
-
},
|
|
392
|
-
get header_icon_manager() {
|
|
393
|
-
return header_icon_manager
|
|
394
|
-
},
|
|
395
|
-
get search_requests_is_loading() {
|
|
396
|
-
return search_requests_is_loading
|
|
397
|
-
},
|
|
398
|
-
init,
|
|
399
|
-
item_clicked,
|
|
400
|
-
set_val,
|
|
401
|
-
set_options,
|
|
402
|
-
}
|
|
403
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
let { is_show = true, color = "var(--error-t)", sw = 30 } = $props()
|
|
3
|
-
</script>
|
|
4
|
-
|
|
5
|
-
{#if is_show}
|
|
6
|
-
<svg
|
|
7
|
-
class="error_x"
|
|
8
|
-
style="--color: {color}; --sw: {sw}"
|
|
9
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
10
|
-
viewBox="0 0 512 512"
|
|
11
|
-
fill="none"
|
|
12
|
-
stroke-linecap="round"
|
|
13
|
-
stroke-linejoin="round"
|
|
14
|
-
>
|
|
15
|
-
<circle class="error_x_circle" cx="256" cy="256" r="196.16" />
|
|
16
|
-
<line class="error_x" x1="328.5" y1="183.5" x2="183.5" y2="328.5" />
|
|
17
|
-
<line class="error_x" x2="328.5" y2="328.5" x1="183.5" y1="183.5" />
|
|
18
|
-
</svg>
|
|
19
|
-
{/if}
|
|
20
|
-
|
|
21
|
-
<style>
|
|
22
|
-
.error_x {
|
|
23
|
-
width: 100%;
|
|
24
|
-
height: 100%;
|
|
25
|
-
border-radius: 50%;
|
|
26
|
-
stroke-width: var(--sw);
|
|
27
|
-
stroke: var(--color);
|
|
28
|
-
stroke-miterlimit: 10;
|
|
29
|
-
animation:
|
|
30
|
-
ease-in-out 0.1s forwards,
|
|
31
|
-
scale 0.1s ease-in-out 0.1s both;
|
|
32
|
-
}
|
|
33
|
-
.error_x_circle {
|
|
34
|
-
stroke-dasharray: 1250;
|
|
35
|
-
stroke-dashoffset: 1250;
|
|
36
|
-
animation: stroke 0.1s cubic-bezier(0.65, 0, 0.45, 1) forwards;
|
|
37
|
-
}
|
|
38
|
-
.error_x {
|
|
39
|
-
stroke-dasharray: 250;
|
|
40
|
-
stroke-dashoffset: 250;
|
|
41
|
-
animation: stroke 0.1s cubic-bezier(0.65, 0, 0.45, 1) 0.1s forwards;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
@keyframes stroke {
|
|
45
|
-
100% {
|
|
46
|
-
stroke-dashoffset: 0;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
@keyframes scale {
|
|
50
|
-
0%,
|
|
51
|
-
100% {
|
|
52
|
-
transform: none;
|
|
53
|
-
}
|
|
54
|
-
50% {
|
|
55
|
-
transform: scale3d(1.1, 1.1, 1);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
</style>
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import Button from "../Button/index.svelte"
|
|
3
|
-
import Icon from "../Icon/index.svelte"
|
|
4
|
-
|
|
5
|
-
let { manager } = $props()
|
|
6
|
-
</script>
|
|
7
|
-
|
|
8
|
-
{#snippet main_file_stuff()}
|
|
9
|
-
{#if manager?.error_message}
|
|
10
|
-
<div style="display: flex; align-items: center;">
|
|
11
|
-
<p style="color: var(--error-t);">{manager?.error_message}</p>
|
|
12
|
-
<Button manager={manager?.error_button_manager} />
|
|
13
|
-
</div>
|
|
14
|
-
{/if}
|
|
15
|
-
{#if Array.isArray(manager?.val) ? manager?.val.length > 0 : !!manager?.val}
|
|
16
|
-
<Button manager={manager?.clear_files_button_manager} />
|
|
17
|
-
{:else}
|
|
18
|
-
<div class="file_input_wrapper">
|
|
19
|
-
<input
|
|
20
|
-
type="file"
|
|
21
|
-
name={manager?.name}
|
|
22
|
-
required={manager?.is_required}
|
|
23
|
-
readonly={manager?.is_read_only}
|
|
24
|
-
multiple={manager?.is_multiselect}
|
|
25
|
-
accept={Array.isArray(manager?.accept) ? manager?.accept.join(", ") : ""}
|
|
26
|
-
onchange={(e) => manager?.get_file(e)}
|
|
27
|
-
id={`file-input-${manager?.id}`}
|
|
28
|
-
hidden
|
|
29
|
-
/>
|
|
30
|
-
<label for={`file-input-${manager?.id}`} class="file_input_label">
|
|
31
|
-
{manager?.select_file_button_text ? manager?.select_file_button_text : `Select file${manager?.is_multiselect ? "(s)" : ""}`}
|
|
32
|
-
</label>
|
|
33
|
-
</div>
|
|
34
|
-
{/if}
|
|
35
|
-
{/snippet}
|
|
36
|
-
|
|
37
|
-
<div class="container">
|
|
38
|
-
{#if manager?.label}
|
|
39
|
-
<div style="display: inline-flex;">
|
|
40
|
-
{#if manager?.label}
|
|
41
|
-
<p class="label">{manager?.label}:</p>
|
|
42
|
-
{/if}
|
|
43
|
-
</div>
|
|
44
|
-
{/if}
|
|
45
|
-
{#if manager?.is_drop_zone && !(manager?.is_hide_drop_zone_if_file && (Array.isArray(manager?.val) ? manager?.val.length > 1 : manager?.val))}
|
|
46
|
-
<div class="input_container" style="height: {manager?.height};">
|
|
47
|
-
<div
|
|
48
|
-
class:drop_zone={manager?.is_drop_zone}
|
|
49
|
-
style:background-image={manager?.is_drop_zone ? manager?.svg_bg : ""}
|
|
50
|
-
style="--border_radius: {manager?.border_radius}rem;
|
|
51
|
-
margin-left: {manager?.ml}rem; margin-right: {manager?.mr}rem; margin-top: {manager?.mt}rem; margin-bottom: {manager?.mb}rem;"
|
|
52
|
-
ondrop={(e) => manager?.drop_handler(e)}
|
|
53
|
-
ondragover={(e) => e.preventDefault()}
|
|
54
|
-
role="region"
|
|
55
|
-
aria-label="File drop area"
|
|
56
|
-
>
|
|
57
|
-
<div>
|
|
58
|
-
<Icon manager={manager?.file_drop_icon_manager} />
|
|
59
|
-
</div>
|
|
60
|
-
{#if (manager?.val && !Array.isArray(manager?.val)) || (manager?.val && Array.isArray(manager?.val) && manager?.val.length > 0)}
|
|
61
|
-
{#if Array.isArray(manager?.val)}
|
|
62
|
-
{#if manager?.val.length == 1}
|
|
63
|
-
<p>{manager?.val[0]?.name ?? "Untitled"}</p>
|
|
64
|
-
{:else}
|
|
65
|
-
<p>{manager?.val.length + " files selected"}</p>
|
|
66
|
-
{/if}
|
|
67
|
-
{:else}
|
|
68
|
-
<p>{manager?.val?.name ?? "Untitled"}</p>
|
|
69
|
-
{/if}
|
|
70
|
-
{:else}
|
|
71
|
-
<p style="margin-bottom: 1rem;">
|
|
72
|
-
Drag and drop file{manager?.is_multiselect ? "(s)" : ""} here or
|
|
73
|
-
</p>
|
|
74
|
-
{/if}
|
|
75
|
-
{@render main_file_stuff()}
|
|
76
|
-
</div>
|
|
77
|
-
</div>
|
|
78
|
-
{:else}
|
|
79
|
-
{@render main_file_stuff()}
|
|
80
|
-
{/if}
|
|
81
|
-
</div>
|
|
82
|
-
|
|
83
|
-
<style>
|
|
84
|
-
.container{
|
|
85
|
-
display: flex;
|
|
86
|
-
flex-direction: column;
|
|
87
|
-
flex: 1;
|
|
88
|
-
height: 100%;
|
|
89
|
-
}
|
|
90
|
-
.input_container {
|
|
91
|
-
position: relative;
|
|
92
|
-
display: flex;
|
|
93
|
-
flex-direction: column;
|
|
94
|
-
cursor: pointer;
|
|
95
|
-
/* height: 100%; */
|
|
96
|
-
}
|
|
97
|
-
.drop_zone {
|
|
98
|
-
border-radius: var(--border_radius);
|
|
99
|
-
padding: 1rem 1rem 2rem 1rem;
|
|
100
|
-
height: 100%;
|
|
101
|
-
display: flex;
|
|
102
|
-
flex-direction: column;
|
|
103
|
-
align-items: center;
|
|
104
|
-
justify-content: center;
|
|
105
|
-
}
|
|
106
|
-
.file_input_wrapper {
|
|
107
|
-
position: relative;
|
|
108
|
-
}
|
|
109
|
-
.file_input_label {
|
|
110
|
-
display: inline-block;
|
|
111
|
-
padding: 0.8rem 1rem;
|
|
112
|
-
border: 1px solid var(--g2-t);
|
|
113
|
-
border-radius: 1rem;
|
|
114
|
-
cursor: pointer;
|
|
115
|
-
color: var(--g2-t);
|
|
116
|
-
font-size: 1.6rem;
|
|
117
|
-
line-height: 1.6rem;
|
|
118
|
-
font-weight: 400;
|
|
119
|
-
height: 3.4rem;
|
|
120
|
-
}
|
|
121
|
-
.file_input_label:hover {
|
|
122
|
-
background-color: var(--primary-transparent2-t);
|
|
123
|
-
}
|
|
124
|
-
.file_input_label:active {
|
|
125
|
-
background-color: var(--g14-t);
|
|
126
|
-
}
|
|
127
|
-
input[type="file"]:not(:focus) + .file_input_label {
|
|
128
|
-
outline: none;
|
|
129
|
-
}
|
|
130
|
-
input[type="file"] {
|
|
131
|
-
position: absolute;
|
|
132
|
-
top: 0;
|
|
133
|
-
left: 0;
|
|
134
|
-
height: 100%;
|
|
135
|
-
width: 100%;
|
|
136
|
-
opacity: 0;
|
|
137
|
-
cursor: pointer;
|
|
138
|
-
}
|
|
139
|
-
.label {
|
|
140
|
-
font-size: 1.2rem;
|
|
141
|
-
font-weight: 600;
|
|
142
|
-
color: var(--g12-t);
|
|
143
|
-
line-height: 1.6rem;
|
|
144
|
-
margin-right: 0.5rem;
|
|
145
|
-
}
|
|
146
|
-
</style>
|