sveltekit-ui 1.0.74 → 1.0.76
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.
|
@@ -45,6 +45,12 @@
|
|
|
45
45
|
{#if manager?.table_description}
|
|
46
46
|
<p>{manager?.table_description}</p>
|
|
47
47
|
{/if}
|
|
48
|
+
|
|
49
|
+
<div>
|
|
50
|
+
<h4 class="label">JSON Schema</h4>
|
|
51
|
+
<Button manager={manager?.settings_copy_row_json_schema_button_manager} />
|
|
52
|
+
<Button manager={manager?.settings_copy_rows_json_schema_button_manager} />
|
|
53
|
+
</div>
|
|
48
54
|
{#if manager?.is_data_editable}
|
|
49
55
|
<Button manager={manager?.settings_preempt_delete_table_popover_button_manager} />
|
|
50
56
|
<Popover manager={manager?.settings_delete_table_popover_manager}>
|
|
@@ -20,6 +20,7 @@ import {
|
|
|
20
20
|
} from "../../client/index.js"
|
|
21
21
|
import { tick } from "svelte"
|
|
22
22
|
import { browser } from "$app/environment"
|
|
23
|
+
import { literal_types } from "../../client/types/index.js"
|
|
23
24
|
|
|
24
25
|
export function create_table_advanced_manager(config) {
|
|
25
26
|
const id = create_unique_id(null, 20)
|
|
@@ -45,6 +46,8 @@ export function create_table_advanced_manager(config) {
|
|
|
45
46
|
let settings_update_table_name_text_input_manager = $state(null)
|
|
46
47
|
let settings_update_table_description_button_manager = $state(null)
|
|
47
48
|
let settings_update_table_description_text_input_manager = $state(null)
|
|
49
|
+
let settings_copy_row_json_schema_button_manager = $state(null)
|
|
50
|
+
let settings_copy_rows_json_schema_button_manager = $state(null)
|
|
48
51
|
let settings_preempt_delete_table_popover_button_manager = $state(null)
|
|
49
52
|
let settings_delete_table_popover_manager = $state(null)
|
|
50
53
|
let settings_delete_table_cancel_button_manager = $state(null)
|
|
@@ -109,6 +112,50 @@ export function create_table_advanced_manager(config) {
|
|
|
109
112
|
let rows_data = $derived(get_def_from_variable_path(rows_data_from_variable_path, definition_stack))
|
|
110
113
|
let row_indexes_display_order = $derived(get_available_row_indexes())
|
|
111
114
|
let row_indexes_display_order_shown = $derived(get_row_indexes_shown())
|
|
115
|
+
let row_json_schema = $derived(get_row_json_schema(columns_prepped))
|
|
116
|
+
|
|
117
|
+
function get_row_json_schema(input) {
|
|
118
|
+
let properties = {}
|
|
119
|
+
if (Object.keys(input || {}).length > 0) {
|
|
120
|
+
for (let key of Object.keys(input)) {
|
|
121
|
+
if (input?.[key]?.is_db_column && !input?.[key]?.is_autogenerated) {
|
|
122
|
+
properties[key] = get_json_schema_from_db_type(input?.[key]?.db_data_type)
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
} else {
|
|
126
|
+
return null
|
|
127
|
+
}
|
|
128
|
+
return JSON.stringify({
|
|
129
|
+
type: "object",
|
|
130
|
+
properties: properties,
|
|
131
|
+
required: Object.keys(properties),
|
|
132
|
+
additionalProperties: false,
|
|
133
|
+
})
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
function get_json_schema_from_db_type(input) {
|
|
137
|
+
if (input?.type == "array_uniform_literal") {
|
|
138
|
+
return {
|
|
139
|
+
type: "array",
|
|
140
|
+
items: get_json_schema_from_db_type(input?.items),
|
|
141
|
+
}
|
|
142
|
+
} else if (input?.type == "object_literal") {
|
|
143
|
+
let properties = {}
|
|
144
|
+
for (let key of Object.keys(input?.properties)) {
|
|
145
|
+
properties[key] = get_json_schema_from_db_type(input?.properties?.[key])
|
|
146
|
+
}
|
|
147
|
+
return { type: "object", properties: properties, required: Object.keys(properties), additionalProperties: false }
|
|
148
|
+
}
|
|
149
|
+
let default_json_schema = literal_types?.[input?.type]?.json_schema
|
|
150
|
+
if (default_json_schema?.type == "object") {
|
|
151
|
+
default_json_schema = {
|
|
152
|
+
...default_json_schema,
|
|
153
|
+
required: Object.keys(default_json_schema?.properties),
|
|
154
|
+
additionalProperties: false,
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return default_json_schema
|
|
158
|
+
}
|
|
112
159
|
|
|
113
160
|
let cur_page_to_use = $derived(
|
|
114
161
|
!Array.isArray(row_indexes_display_order) || row_indexes_display_order.length < rows_per_page_dropdown_manager?.val
|
|
@@ -319,6 +366,7 @@ export function create_table_advanced_manager(config) {
|
|
|
319
366
|
}
|
|
320
367
|
}
|
|
321
368
|
columns_prepped = columns_prepped_loc
|
|
369
|
+
console.log("columns_prepped", deep_copy(columns_prepped))
|
|
322
370
|
return columns_prepped
|
|
323
371
|
}
|
|
324
372
|
|
|
@@ -1031,7 +1079,7 @@ export function create_table_advanced_manager(config) {
|
|
|
1031
1079
|
})
|
|
1032
1080
|
settings_popover_manager = create_popover_manager({
|
|
1033
1081
|
type: "dropdown",
|
|
1034
|
-
target_width:
|
|
1082
|
+
target_width: 260,
|
|
1035
1083
|
target_height: 300,
|
|
1036
1084
|
anchor_id: () => `button_${settings_popover_toggle_button_manager?.id}`,
|
|
1037
1085
|
})
|
|
@@ -1134,6 +1182,25 @@ export function create_table_advanced_manager(config) {
|
|
|
1134
1182
|
min_height: 2.4,
|
|
1135
1183
|
popover_target: () => `popover_${settings_update_table_description_text_input_manager?.popover_manager?.id}`,
|
|
1136
1184
|
})
|
|
1185
|
+
settings_copy_row_json_schema_button_manager = create_button_manager({
|
|
1186
|
+
type: "outlined",
|
|
1187
|
+
text: "Copy Row JSON Schema",
|
|
1188
|
+
is_success_animation: true,
|
|
1189
|
+
support_icon: "clipboard",
|
|
1190
|
+
mb: 1,
|
|
1191
|
+
on_click: () => copy_to_clipboard(row_json_schema),
|
|
1192
|
+
})
|
|
1193
|
+
settings_copy_rows_json_schema_button_manager = create_button_manager({
|
|
1194
|
+
type: "outlined",
|
|
1195
|
+
text: "Copy Rows JSON Schema",
|
|
1196
|
+
is_success_animation: true,
|
|
1197
|
+
support_icon: "clipboard",
|
|
1198
|
+
on_click: () =>
|
|
1199
|
+
copy_to_clipboard({
|
|
1200
|
+
type: "array",
|
|
1201
|
+
items: row_json_schema,
|
|
1202
|
+
}),
|
|
1203
|
+
})
|
|
1137
1204
|
let delete_table_is_loading = $state(false)
|
|
1138
1205
|
settings_delete_table_popover_manager = create_popover_manager({
|
|
1139
1206
|
type: "center",
|
|
@@ -1457,6 +1524,12 @@ export function create_table_advanced_manager(config) {
|
|
|
1457
1524
|
get settings_update_table_description_text_input_manager() {
|
|
1458
1525
|
return settings_update_table_description_text_input_manager
|
|
1459
1526
|
},
|
|
1527
|
+
get settings_copy_row_json_schema_button_manager() {
|
|
1528
|
+
return settings_copy_row_json_schema_button_manager
|
|
1529
|
+
},
|
|
1530
|
+
get settings_copy_rows_json_schema_button_manager() {
|
|
1531
|
+
return settings_copy_rows_json_schema_button_manager
|
|
1532
|
+
},
|
|
1460
1533
|
get settings_preempt_delete_table_popover_button_manager() {
|
|
1461
1534
|
return settings_preempt_delete_table_popover_button_manager
|
|
1462
1535
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sveltekit-ui",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.76",
|
|
4
4
|
"description": "A SvelteKit UI component library for building modern web applications",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -19,19 +19,19 @@
|
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"context-filter-polyfill": "^0.3.23",
|
|
21
21
|
"qr-code-styling": "^1.9.2",
|
|
22
|
-
"svelte": "^5.39.
|
|
22
|
+
"svelte": "^5.39.10"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
25
|
"@sveltejs/kit": "^2.22.2"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@sveltejs/adapter-vercel": "^5.10.3",
|
|
29
|
-
"@sveltejs/kit": "^2.
|
|
29
|
+
"@sveltejs/kit": "^2.46.2",
|
|
30
30
|
"@sveltejs/package": "^2.5.4",
|
|
31
31
|
"@sveltejs/vite-plugin-svelte": "^6.2.1",
|
|
32
32
|
"@vercel/analytics": "^1.5.0",
|
|
33
33
|
"typescript": "^5.9.3",
|
|
34
|
-
"vite": "^7.1.
|
|
34
|
+
"vite": "^7.1.9"
|
|
35
35
|
},
|
|
36
36
|
"homepage": "https://www.sveltekit-ui.com",
|
|
37
37
|
"keywords": [
|
|
@@ -45,6 +45,12 @@
|
|
|
45
45
|
{#if manager?.table_description}
|
|
46
46
|
<p>{manager?.table_description}</p>
|
|
47
47
|
{/if}
|
|
48
|
+
|
|
49
|
+
<div>
|
|
50
|
+
<h4 class="label">JSON Schema</h4>
|
|
51
|
+
<Button manager={manager?.settings_copy_row_json_schema_button_manager} />
|
|
52
|
+
<Button manager={manager?.settings_copy_rows_json_schema_button_manager} />
|
|
53
|
+
</div>
|
|
48
54
|
{#if manager?.is_data_editable}
|
|
49
55
|
<Button manager={manager?.settings_preempt_delete_table_popover_button_manager} />
|
|
50
56
|
<Popover manager={manager?.settings_delete_table_popover_manager}>
|
|
@@ -20,6 +20,7 @@ import {
|
|
|
20
20
|
} from "$lib/client/index.js"
|
|
21
21
|
import { tick } from "svelte"
|
|
22
22
|
import { browser } from "$app/environment"
|
|
23
|
+
import { literal_types } from "$lib/client/types/index.js"
|
|
23
24
|
|
|
24
25
|
export function create_table_advanced_manager(config) {
|
|
25
26
|
const id = create_unique_id(null, 20)
|
|
@@ -45,6 +46,8 @@ export function create_table_advanced_manager(config) {
|
|
|
45
46
|
let settings_update_table_name_text_input_manager = $state(null)
|
|
46
47
|
let settings_update_table_description_button_manager = $state(null)
|
|
47
48
|
let settings_update_table_description_text_input_manager = $state(null)
|
|
49
|
+
let settings_copy_row_json_schema_button_manager = $state(null)
|
|
50
|
+
let settings_copy_rows_json_schema_button_manager = $state(null)
|
|
48
51
|
let settings_preempt_delete_table_popover_button_manager = $state(null)
|
|
49
52
|
let settings_delete_table_popover_manager = $state(null)
|
|
50
53
|
let settings_delete_table_cancel_button_manager = $state(null)
|
|
@@ -109,6 +112,50 @@ export function create_table_advanced_manager(config) {
|
|
|
109
112
|
let rows_data = $derived(get_def_from_variable_path(rows_data_from_variable_path, definition_stack))
|
|
110
113
|
let row_indexes_display_order = $derived(get_available_row_indexes())
|
|
111
114
|
let row_indexes_display_order_shown = $derived(get_row_indexes_shown())
|
|
115
|
+
let row_json_schema = $derived(get_row_json_schema(columns_prepped))
|
|
116
|
+
|
|
117
|
+
function get_row_json_schema(input) {
|
|
118
|
+
let properties = {}
|
|
119
|
+
if (Object.keys(input || {}).length > 0) {
|
|
120
|
+
for (let key of Object.keys(input)) {
|
|
121
|
+
if (input?.[key]?.is_db_column && !input?.[key]?.is_autogenerated) {
|
|
122
|
+
properties[key] = get_json_schema_from_db_type(input?.[key]?.db_data_type)
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
} else {
|
|
126
|
+
return null
|
|
127
|
+
}
|
|
128
|
+
return JSON.stringify({
|
|
129
|
+
type: "object",
|
|
130
|
+
properties: properties,
|
|
131
|
+
required: Object.keys(properties),
|
|
132
|
+
additionalProperties: false,
|
|
133
|
+
})
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
function get_json_schema_from_db_type(input) {
|
|
137
|
+
if (input?.type == "array_uniform_literal") {
|
|
138
|
+
return {
|
|
139
|
+
type: "array",
|
|
140
|
+
items: get_json_schema_from_db_type(input?.items),
|
|
141
|
+
}
|
|
142
|
+
} else if (input?.type == "object_literal") {
|
|
143
|
+
let properties = {}
|
|
144
|
+
for (let key of Object.keys(input?.properties)) {
|
|
145
|
+
properties[key] = get_json_schema_from_db_type(input?.properties?.[key])
|
|
146
|
+
}
|
|
147
|
+
return { type: "object", properties: properties, required: Object.keys(properties), additionalProperties: false }
|
|
148
|
+
}
|
|
149
|
+
let default_json_schema = literal_types?.[input?.type]?.json_schema
|
|
150
|
+
if (default_json_schema?.type == "object") {
|
|
151
|
+
default_json_schema = {
|
|
152
|
+
...default_json_schema,
|
|
153
|
+
required: Object.keys(default_json_schema?.properties),
|
|
154
|
+
additionalProperties: false,
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return default_json_schema
|
|
158
|
+
}
|
|
112
159
|
|
|
113
160
|
let cur_page_to_use = $derived(
|
|
114
161
|
!Array.isArray(row_indexes_display_order) || row_indexes_display_order.length < rows_per_page_dropdown_manager?.val
|
|
@@ -319,6 +366,7 @@ export function create_table_advanced_manager(config) {
|
|
|
319
366
|
}
|
|
320
367
|
}
|
|
321
368
|
columns_prepped = columns_prepped_loc
|
|
369
|
+
console.log("columns_prepped", deep_copy(columns_prepped))
|
|
322
370
|
return columns_prepped
|
|
323
371
|
}
|
|
324
372
|
|
|
@@ -1031,7 +1079,7 @@ export function create_table_advanced_manager(config) {
|
|
|
1031
1079
|
})
|
|
1032
1080
|
settings_popover_manager = create_popover_manager({
|
|
1033
1081
|
type: "dropdown",
|
|
1034
|
-
target_width:
|
|
1082
|
+
target_width: 260,
|
|
1035
1083
|
target_height: 300,
|
|
1036
1084
|
anchor_id: () => `button_${settings_popover_toggle_button_manager?.id}`,
|
|
1037
1085
|
})
|
|
@@ -1134,6 +1182,25 @@ export function create_table_advanced_manager(config) {
|
|
|
1134
1182
|
min_height: 2.4,
|
|
1135
1183
|
popover_target: () => `popover_${settings_update_table_description_text_input_manager?.popover_manager?.id}`,
|
|
1136
1184
|
})
|
|
1185
|
+
settings_copy_row_json_schema_button_manager = create_button_manager({
|
|
1186
|
+
type: "outlined",
|
|
1187
|
+
text: "Copy Row JSON Schema",
|
|
1188
|
+
is_success_animation: true,
|
|
1189
|
+
support_icon: "clipboard",
|
|
1190
|
+
mb: 1,
|
|
1191
|
+
on_click: () => copy_to_clipboard(row_json_schema),
|
|
1192
|
+
})
|
|
1193
|
+
settings_copy_rows_json_schema_button_manager = create_button_manager({
|
|
1194
|
+
type: "outlined",
|
|
1195
|
+
text: "Copy Rows JSON Schema",
|
|
1196
|
+
is_success_animation: true,
|
|
1197
|
+
support_icon: "clipboard",
|
|
1198
|
+
on_click: () =>
|
|
1199
|
+
copy_to_clipboard({
|
|
1200
|
+
type: "array",
|
|
1201
|
+
items: row_json_schema,
|
|
1202
|
+
}),
|
|
1203
|
+
})
|
|
1137
1204
|
let delete_table_is_loading = $state(false)
|
|
1138
1205
|
settings_delete_table_popover_manager = create_popover_manager({
|
|
1139
1206
|
type: "center",
|
|
@@ -1457,6 +1524,12 @@ export function create_table_advanced_manager(config) {
|
|
|
1457
1524
|
get settings_update_table_description_text_input_manager() {
|
|
1458
1525
|
return settings_update_table_description_text_input_manager
|
|
1459
1526
|
},
|
|
1527
|
+
get settings_copy_row_json_schema_button_manager() {
|
|
1528
|
+
return settings_copy_row_json_schema_button_manager
|
|
1529
|
+
},
|
|
1530
|
+
get settings_copy_rows_json_schema_button_manager() {
|
|
1531
|
+
return settings_copy_rows_json_schema_button_manager
|
|
1532
|
+
},
|
|
1460
1533
|
get settings_preempt_delete_table_popover_button_manager() {
|
|
1461
1534
|
return settings_preempt_delete_table_popover_button_manager
|
|
1462
1535
|
},
|