@kozou/svelte-ui 0.0.1 → 0.1.0
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/LICENSE +202 -0
- package/README.md +108 -1
- package/build/client/_app/immutable/assets/0.Cg4B63gQ.css +2 -0
- package/build/client/_app/immutable/assets/0.Cg4B63gQ.css.br +0 -0
- package/build/client/_app/immutable/assets/0.Cg4B63gQ.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BpIM_fT8.js +2 -0
- package/build/client/_app/immutable/chunks/BpIM_fT8.js.br +0 -0
- package/build/client/_app/immutable/chunks/BpIM_fT8.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D4orYVgu.js +4 -0
- package/build/client/_app/immutable/chunks/D4orYVgu.js.br +0 -0
- package/build/client/_app/immutable/chunks/D4orYVgu.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DdEzykkf.js +1 -0
- package/build/client/_app/immutable/chunks/DdEzykkf.js.br +0 -0
- package/build/client/_app/immutable/chunks/DdEzykkf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dq0SIjgq.js +214 -0
- package/build/client/_app/immutable/chunks/Dq0SIjgq.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dq0SIjgq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/kNaey6uv.js +1 -0
- package/build/client/_app/immutable/chunks/kNaey6uv.js.br +0 -0
- package/build/client/_app/immutable/chunks/kNaey6uv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/xihTtKlq.js +1 -0
- package/build/client/_app/immutable/chunks/xihTtKlq.js.br +1 -0
- package/build/client/_app/immutable/chunks/xihTtKlq.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.B2E2jsYG.js +2 -0
- package/build/client/_app/immutable/entry/app.B2E2jsYG.js.br +0 -0
- package/build/client/_app/immutable/entry/app.B2E2jsYG.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.Ccv3-hR2.js +1 -0
- package/build/client/_app/immutable/entry/start.Ccv3-hR2.js.br +0 -0
- package/build/client/_app/immutable/entry/start.Ccv3-hR2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.C77vZJGR.js +1 -0
- package/build/client/_app/immutable/nodes/0.C77vZJGR.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.C77vZJGR.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.9-mDK_1B.js +1 -0
- package/build/client/_app/immutable/nodes/1.9-mDK_1B.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.9-mDK_1B.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DKSRkbg2.js +1 -0
- package/build/client/_app/immutable/nodes/2.DKSRkbg2.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DKSRkbg2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.BRseKH3J.js +1 -0
- package/build/client/_app/immutable/nodes/3.BRseKH3J.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.BRseKH3J.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.D1ErMjLn.js +1 -0
- package/build/client/_app/immutable/nodes/4.D1ErMjLn.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.D1ErMjLn.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.U1CG0AZz.js +1 -0
- package/build/client/_app/immutable/nodes/5.U1CG0AZz.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.U1CG0AZz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.BqfsXcpL.js +1 -0
- package/build/client/_app/immutable/nodes/6.BqfsXcpL.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BqfsXcpL.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.Bfhyc_gZ.js +1 -0
- package/build/client/_app/immutable/nodes/7.Bfhyc_gZ.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.Bfhyc_gZ.js.gz +0 -0
- package/build/client/_app/version.json +1 -0
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/env.js +94 -0
- package/build/handler.js +1494 -0
- package/build/index.js +345 -0
- package/build/server/chunks/0-Cpki24QE.js +24 -0
- package/build/server/chunks/0-Cpki24QE.js.map +1 -0
- package/build/server/chunks/1-C_Zl16E8.js +9 -0
- package/build/server/chunks/1-C_Zl16E8.js.map +1 -0
- package/build/server/chunks/2-Bb7ROZP0.js +35 -0
- package/build/server/chunks/2-Bb7ROZP0.js.map +1 -0
- package/build/server/chunks/3-dXQmFZGn.js +71 -0
- package/build/server/chunks/3-dXQmFZGn.js.map +1 -0
- package/build/server/chunks/4-Dn5qQ29L.js +54 -0
- package/build/server/chunks/4-Dn5qQ29L.js.map +1 -0
- package/build/server/chunks/5-CKRn1yVS.js +69 -0
- package/build/server/chunks/5-CKRn1yVS.js.map +1 -0
- package/build/server/chunks/6-C7PGuXlN.js +70 -0
- package/build/server/chunks/6-C7PGuXlN.js.map +1 -0
- package/build/server/chunks/7-BtKcX-UD.js +66 -0
- package/build/server/chunks/7-BtKcX-UD.js.map +1 -0
- package/build/server/chunks/_layout.svelte-DcwZs9VT.js +15 -0
- package/build/server/chunks/_layout.svelte-DcwZs9VT.js.map +1 -0
- package/build/server/chunks/_page.svelte-69okwN_x.js +70 -0
- package/build/server/chunks/_page.svelte-69okwN_x.js.map +1 -0
- package/build/server/chunks/_page.svelte-7DhzytBp.js +79 -0
- package/build/server/chunks/_page.svelte-7DhzytBp.js.map +1 -0
- package/build/server/chunks/_page.svelte-BpS5HgaB.js +78 -0
- package/build/server/chunks/_page.svelte-BpS5HgaB.js.map +1 -0
- package/build/server/chunks/_page.svelte-BywGr3Tk.js +51 -0
- package/build/server/chunks/_page.svelte-BywGr3Tk.js.map +1 -0
- package/build/server/chunks/_page.svelte-ClFWSFQK.js +70 -0
- package/build/server/chunks/_page.svelte-ClFWSFQK.js.map +1 -0
- package/build/server/chunks/_page.svelte-Dfaz3pC_.js +86 -0
- package/build/server/chunks/_page.svelte-Dfaz3pC_.js.map +1 -0
- package/build/server/chunks/adapter-DSZ-_PM_.js +273 -0
- package/build/server/chunks/adapter-DSZ-_PM_.js.map +1 -0
- package/build/server/chunks/app-C1bzfcjj.js +12 -0
- package/build/server/chunks/app-C1bzfcjj.js.map +1 -0
- package/build/server/chunks/client-nr13Vsqj.js +69 -0
- package/build/server/chunks/client-nr13Vsqj.js.map +1 -0
- package/build/server/chunks/dev-yRSoS_kM.js +4498 -0
- package/build/server/chunks/dev-yRSoS_kM.js.map +1 -0
- package/build/server/chunks/error.svelte-B8LolEv3.js +68 -0
- package/build/server/chunks/error.svelte-B8LolEv3.js.map +1 -0
- package/build/server/chunks/hooks.server-BgTiHdgV.js +11706 -0
- package/build/server/chunks/hooks.server-BgTiHdgV.js.map +1 -0
- package/build/server/chunks/index-5kYmxIr9.js +191 -0
- package/build/server/chunks/index-5kYmxIr9.js.map +1 -0
- package/build/server/chunks/index-DBqjc0Yf.js +77 -0
- package/build/server/chunks/index-DBqjc0Yf.js.map +1 -0
- package/build/server/chunks/internal-Dtmf8fV4.js +1759 -0
- package/build/server/chunks/internal-Dtmf8fV4.js.map +1 -0
- package/build/server/chunks/list-params-DjWk7B1o.js +44 -0
- package/build/server/chunks/list-params-DjWk7B1o.js.map +1 -0
- package/build/server/chunks/widget-registry-Bfc0OPDn.js +242 -0
- package/build/server/chunks/widget-registry-Bfc0OPDn.js.map +1 -0
- package/build/server/chunks/zod-from-table-HRMJdgEv.js +7936 -0
- package/build/server/chunks/zod-from-table-HRMJdgEv.js.map +1 -0
- package/build/server/index.js +4447 -0
- package/build/server/index.js.map +1 -0
- package/build/server/manifest.js +86 -0
- package/build/server/manifest.js.map +1 -0
- package/build/shims.js +32 -0
- package/package.json +65 -4
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { g as getAdapter } from './adapter-DSZ-_PM_.js';
|
|
2
|
+
import { a as superValidate, z as zod, b as zodFromTable } from './zod-from-table-HRMJdgEv.js';
|
|
3
|
+
import { e as error, f as fail, r as redirect } from './index-5kYmxIr9.js';
|
|
4
|
+
import './internal-Dtmf8fV4.js';
|
|
5
|
+
import 'node:module';
|
|
6
|
+
import './dev-yRSoS_kM.js';
|
|
7
|
+
import 'clsx';
|
|
8
|
+
import './index-DBqjc0Yf.js';
|
|
9
|
+
import './client-nr13Vsqj.js';
|
|
10
|
+
import './app-C1bzfcjj.js';
|
|
11
|
+
import 'zod/v3';
|
|
12
|
+
import 'zod';
|
|
13
|
+
|
|
14
|
+
//#region src/routes/tables/[table]/new/+page.server.ts
|
|
15
|
+
function findTable(tables, slug) {
|
|
16
|
+
return tables.find((t) => t.qualifiedName === slug) ?? null;
|
|
17
|
+
}
|
|
18
|
+
function tableViewModel(table) {
|
|
19
|
+
return {
|
|
20
|
+
qualifiedName: table.qualifiedName,
|
|
21
|
+
label: table.label,
|
|
22
|
+
primaryKey: table.primaryKey,
|
|
23
|
+
columns: table.columns.map((c) => ({
|
|
24
|
+
name: c.name,
|
|
25
|
+
label: c.label,
|
|
26
|
+
widget: c.widget,
|
|
27
|
+
enumValues: c.enumValues ?? [],
|
|
28
|
+
nullable: c.nullable,
|
|
29
|
+
readonly: c.readonly || c.isPrimaryKey && c.defaultExpr !== null,
|
|
30
|
+
isPrimaryKey: c.isPrimaryKey
|
|
31
|
+
}))
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
var load = async ({ params, locals }) => {
|
|
35
|
+
const table = findTable(locals.schema.tables, params.table);
|
|
36
|
+
if (!table) throw error(404, `Unknown table: ${params.table}`);
|
|
37
|
+
const form = await superValidate(zod(zodFromTable(table)));
|
|
38
|
+
return {
|
|
39
|
+
table: tableViewModel(table),
|
|
40
|
+
form
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
var actions = { default: async ({ request, params, locals }) => {
|
|
44
|
+
const table = findTable(locals.schema.tables, params.table);
|
|
45
|
+
if (!table) throw error(404, `Unknown table: ${params.table}`);
|
|
46
|
+
const form = await superValidate(request, zod(zodFromTable(table)));
|
|
47
|
+
if (!form.valid) return fail(400, { form });
|
|
48
|
+
const payload = Object.fromEntries(Object.entries(form.data));
|
|
49
|
+
const created = await getAdapter().create(table.qualifiedName, payload);
|
|
50
|
+
const pkField = table.primaryKey[0];
|
|
51
|
+
const id = pkField !== void 0 && created[pkField] !== void 0 ? String(created[pkField]) : "";
|
|
52
|
+
throw redirect(303, id.length > 0 ? `/tables/${table.qualifiedName}/${id}` : `/tables/${table.qualifiedName}`);
|
|
53
|
+
} };
|
|
54
|
+
|
|
55
|
+
var _page_server_ts = /*#__PURE__*/Object.freeze({
|
|
56
|
+
__proto__: null,
|
|
57
|
+
actions: actions,
|
|
58
|
+
load: load
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
const index = 6;
|
|
62
|
+
let component_cache;
|
|
63
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-ClFWSFQK.js')).default;
|
|
64
|
+
const server_id = "src/routes/tables/[table]/new/+page.server.ts";
|
|
65
|
+
const imports = ["_app/immutable/nodes/6.BqfsXcpL.js","_app/immutable/chunks/BpIM_fT8.js","_app/immutable/chunks/Dq0SIjgq.js","_app/immutable/chunks/D4orYVgu.js","_app/immutable/chunks/DdEzykkf.js","_app/immutable/chunks/xihTtKlq.js"];
|
|
66
|
+
const stylesheets = [];
|
|
67
|
+
const fonts = [];
|
|
68
|
+
|
|
69
|
+
export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
|
|
70
|
+
//# sourceMappingURL=6-C7PGuXlN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"6-C7PGuXlN.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/tables/_table_/new/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/6.js"],"sourcesContent":["import { t as getAdapter } from \"../../../../../chunks/adapter.js\";\nimport { t as superValidate } from \"../../../../../chunks/dist.js\";\nimport { n as zod, t as zodFromTable } from \"../../../../../chunks/zod-from-table.js\";\nimport { error, fail, redirect } from \"@sveltejs/kit\";\n//#region src/routes/tables/[table]/new/+page.server.ts\nfunction findTable(tables, slug) {\n\treturn tables.find((t) => t.qualifiedName === slug) ?? null;\n}\nfunction tableViewModel(table) {\n\treturn {\n\t\tqualifiedName: table.qualifiedName,\n\t\tlabel: table.label,\n\t\tprimaryKey: table.primaryKey,\n\t\tcolumns: table.columns.map((c) => ({\n\t\t\tname: c.name,\n\t\t\tlabel: c.label,\n\t\t\twidget: c.widget,\n\t\t\tenumValues: c.enumValues ?? [],\n\t\t\tnullable: c.nullable,\n\t\t\treadonly: c.readonly || c.isPrimaryKey && c.defaultExpr !== null,\n\t\t\tisPrimaryKey: c.isPrimaryKey\n\t\t}))\n\t};\n}\nvar load = async ({ params, locals }) => {\n\tconst table = findTable(locals.schema.tables, params.table);\n\tif (!table) throw error(404, `Unknown table: ${params.table}`);\n\tconst form = await superValidate(zod(zodFromTable(table)));\n\treturn {\n\t\ttable: tableViewModel(table),\n\t\tform\n\t};\n};\nvar actions = { default: async ({ request, params, locals }) => {\n\tconst table = findTable(locals.schema.tables, params.table);\n\tif (!table) throw error(404, `Unknown table: ${params.table}`);\n\tconst form = await superValidate(request, zod(zodFromTable(table)));\n\tif (!form.valid) return fail(400, { form });\n\tconst payload = Object.fromEntries(Object.entries(form.data));\n\tconst created = await getAdapter().create(table.qualifiedName, payload);\n\tconst pkField = table.primaryKey[0];\n\tconst id = pkField !== void 0 && created[pkField] !== void 0 ? String(created[pkField]) : \"\";\n\tthrow redirect(303, id.length > 0 ? `/tables/${table.qualifiedName}/${id}` : `/tables/${table.qualifiedName}`);\n} };\n//#endregion\nexport { actions, load };\n","import * as server from '../entries/pages/tables/_table_/new/_page.server.ts.js';\n\nexport const index = 6;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/tables/_table_/new/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/tables/[table]/new/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/6.BqfsXcpL.js\",\"_app/immutable/chunks/BpIM_fT8.js\",\"_app/immutable/chunks/Dq0SIjgq.js\",\"_app/immutable/chunks/D4orYVgu.js\",\"_app/immutable/chunks/DdEzykkf.js\",\"_app/immutable/chunks/xihTtKlq.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { g as getAdapter } from './adapter-DSZ-_PM_.js';
|
|
2
|
+
import { p as parseListParamsFromUrl } from './list-params-DjWk7B1o.js';
|
|
3
|
+
import { e as error } from './index-5kYmxIr9.js';
|
|
4
|
+
import './index-DBqjc0Yf.js';
|
|
5
|
+
|
|
6
|
+
//#region src/lib/view/columns.ts
|
|
7
|
+
var DISPLAY_COLUMN_LIMIT = 5;
|
|
8
|
+
var TEXT_LIKE_TYPE_PREFIXES = [
|
|
9
|
+
"text",
|
|
10
|
+
"character",
|
|
11
|
+
"varchar",
|
|
12
|
+
"citext",
|
|
13
|
+
"name",
|
|
14
|
+
"uuid"
|
|
15
|
+
];
|
|
16
|
+
function pickViewDisplayColumns(view) {
|
|
17
|
+
return view.columns.slice(0, DISPLAY_COLUMN_LIMIT);
|
|
18
|
+
}
|
|
19
|
+
function pickViewSearchFields(view) {
|
|
20
|
+
return view.columns.filter((c) => TEXT_LIKE_TYPE_PREFIXES.some((prefix) => c.dataType.toLowerCase().startsWith(prefix))).map((c) => c.name);
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
//#region src/routes/views/[view]/+page.server.ts
|
|
24
|
+
var load = async ({ params, locals, url }) => {
|
|
25
|
+
const view = locals.schema.views.find((v) => v.qualifiedName === params.view);
|
|
26
|
+
if (!view) throw error(404, `Unknown view: ${params.view}`);
|
|
27
|
+
const displayColumns = pickViewDisplayColumns(view);
|
|
28
|
+
const listParams = parseListParamsFromUrl({
|
|
29
|
+
url,
|
|
30
|
+
searchFields: pickViewSearchFields(view)
|
|
31
|
+
});
|
|
32
|
+
const result = await getAdapter().list(view.qualifiedName, listParams);
|
|
33
|
+
return {
|
|
34
|
+
view: {
|
|
35
|
+
qualifiedName: view.qualifiedName,
|
|
36
|
+
label: view.label,
|
|
37
|
+
columns: displayColumns.map((c) => ({
|
|
38
|
+
name: c.name,
|
|
39
|
+
label: c.label
|
|
40
|
+
}))
|
|
41
|
+
},
|
|
42
|
+
list: result,
|
|
43
|
+
listParams: {
|
|
44
|
+
search: listParams.search,
|
|
45
|
+
sort: listParams.sort,
|
|
46
|
+
page: listParams.page,
|
|
47
|
+
pageSize: listParams.pageSize
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
var _page_server_ts = /*#__PURE__*/Object.freeze({
|
|
53
|
+
__proto__: null,
|
|
54
|
+
load: load
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
const index = 7;
|
|
58
|
+
let component_cache;
|
|
59
|
+
const component = async () => component_cache ??= (await import('./_page.svelte-BpS5HgaB.js')).default;
|
|
60
|
+
const server_id = "src/routes/views/[view]/+page.server.ts";
|
|
61
|
+
const imports = ["_app/immutable/nodes/7.Bfhyc_gZ.js","_app/immutable/chunks/BpIM_fT8.js","_app/immutable/chunks/xihTtKlq.js"];
|
|
62
|
+
const stylesheets = [];
|
|
63
|
+
const fonts = [];
|
|
64
|
+
|
|
65
|
+
export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
|
|
66
|
+
//# sourceMappingURL=7-BtKcX-UD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"7-BtKcX-UD.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/views/_view_/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/7.js"],"sourcesContent":["import { t as getAdapter } from \"../../../../chunks/adapter.js\";\nimport { t as parseListParamsFromUrl } from \"../../../../chunks/list-params.js\";\nimport { error } from \"@sveltejs/kit\";\n//#region src/lib/view/columns.ts\nvar DISPLAY_COLUMN_LIMIT = 5;\nvar TEXT_LIKE_TYPE_PREFIXES = [\n\t\"text\",\n\t\"character\",\n\t\"varchar\",\n\t\"citext\",\n\t\"name\",\n\t\"uuid\"\n];\nfunction pickViewDisplayColumns(view) {\n\treturn view.columns.slice(0, DISPLAY_COLUMN_LIMIT);\n}\nfunction pickViewSearchFields(view) {\n\treturn view.columns.filter((c) => TEXT_LIKE_TYPE_PREFIXES.some((prefix) => c.dataType.toLowerCase().startsWith(prefix))).map((c) => c.name);\n}\n//#endregion\n//#region src/routes/views/[view]/+page.server.ts\nvar load = async ({ params, locals, url }) => {\n\tconst view = locals.schema.views.find((v) => v.qualifiedName === params.view);\n\tif (!view) throw error(404, `Unknown view: ${params.view}`);\n\tconst displayColumns = pickViewDisplayColumns(view);\n\tconst listParams = parseListParamsFromUrl({\n\t\turl,\n\t\tsearchFields: pickViewSearchFields(view)\n\t});\n\tconst result = await getAdapter().list(view.qualifiedName, listParams);\n\treturn {\n\t\tview: {\n\t\t\tqualifiedName: view.qualifiedName,\n\t\t\tlabel: view.label,\n\t\t\tcolumns: displayColumns.map((c) => ({\n\t\t\t\tname: c.name,\n\t\t\t\tlabel: c.label\n\t\t\t}))\n\t\t},\n\t\tlist: result,\n\t\tlistParams: {\n\t\t\tsearch: listParams.search,\n\t\t\tsort: listParams.sort,\n\t\t\tpage: listParams.page,\n\t\t\tpageSize: listParams.pageSize\n\t\t}\n\t};\n};\n//#endregion\nexport { load };\n","import * as server from '../entries/pages/views/_view_/_page.server.ts.js';\n\nexport const index = 7;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/views/_view_/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/views/[view]/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/7.Bfhyc_gZ.js\",\"_app/immutable/chunks/BpIM_fT8.js\",\"_app/immutable/chunks/xihTtKlq.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;AAGA;AACA,IAAI,oBAAoB,GAAG,CAAC;AAC5B,IAAI,uBAAuB,GAAG;AAC9B,CAAC,MAAM;AACP,CAAC,WAAW;AACZ,CAAC,SAAS;AACV,CAAC,QAAQ;AACT,CAAC,MAAM;AACP,CAAC;AACD,CAAC;AACD,SAAS,sBAAsB,CAAC,IAAI,EAAE;AACtC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC;AACnD;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,uBAAuB,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AAC5I;AACA;AACA;AACA,IAAI,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;AAC9C,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,KAAK,MAAM,CAAC,IAAI,CAAC;AAC9E,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC,MAAM,cAAc,GAAG,sBAAsB,CAAC,IAAI,CAAC;AACpD,CAAC,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAC3C,EAAE,GAAG;AACL,EAAE,YAAY,EAAE,oBAAoB,CAAC,IAAI;AACzC,EAAE,CAAC;AACH,CAAC,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;AACvE,CAAC,OAAO;AACR,EAAE,IAAI,EAAE;AACR,GAAG,aAAa,EAAE,IAAI,CAAC,aAAa;AACpC,GAAG,KAAK,EAAE,IAAI,CAAC,KAAK;AACpB,GAAG,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AACvC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI;AAChB,IAAI,KAAK,EAAE,CAAC,CAAC;AACb,IAAI,CAAC;AACL,GAAG;AACH,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,UAAU,EAAE;AACd,GAAG,MAAM,EAAE,UAAU,CAAC,MAAM;AAC5B,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI;AACxB,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI;AACxB,GAAG,QAAQ,EAAE,UAAU,CAAC;AACxB;AACA,EAAE;AACF,CAAC;;;;;;;AC7CW,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA+C,CAAC,EAAE;AAE7G,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC;AACxH,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { q as escape_html } from './dev-yRSoS_kM.js';
|
|
2
|
+
import 'clsx';
|
|
3
|
+
|
|
4
|
+
//#region src/routes/+layout.svelte
|
|
5
|
+
function _layout($$renderer, $$props) {
|
|
6
|
+
$$renderer.component(($$renderer) => {
|
|
7
|
+
let { data, children } = $$props;
|
|
8
|
+
$$renderer.push(`<div class="min-h-screen bg-background text-foreground"><header class="border-b border-border"><div class="mx-auto flex max-w-5xl items-center justify-between px-6 py-4"><a href="/" class="text-lg font-semibold">${escape_html(data.appName)}</a> <nav class="flex items-center gap-4 text-sm text-muted-foreground"><span>${escape_html(data.tableCount)} tables</span> <span aria-hidden="true">/</span> <span>${escape_html(data.viewCount)} views</span></nav></div></header> <main class="mx-auto max-w-5xl px-6 py-8">`);
|
|
9
|
+
children($$renderer);
|
|
10
|
+
$$renderer.push(`<!----></main></div>`);
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export { _layout as default };
|
|
15
|
+
//# sourceMappingURL=_layout.svelte-DcwZs9VT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_layout.svelte-DcwZs9VT.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_layout.svelte.js"],"sourcesContent":["import { H as escape_html } from \"../../chunks/dev.js\";\n//#region src/routes/+layout.svelte\nfunction _layout($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { data, children } = $$props;\n\t\t$$renderer.push(`<div class=\"min-h-screen bg-background text-foreground\"><header class=\"border-b border-border\"><div class=\"mx-auto flex max-w-5xl items-center justify-between px-6 py-4\"><a href=\"/\" class=\"text-lg font-semibold\">${escape_html(data.appName)}</a> <nav class=\"flex items-center gap-4 text-sm text-muted-foreground\"><span>${escape_html(data.tableCount)} tables</span> <span aria-hidden=\"true\">/</span> <span>${escape_html(data.viewCount)} views</span></nav></div></header> <main class=\"mx-auto max-w-5xl px-6 py-8\">`);\n\t\tchildren($$renderer);\n\t\t$$renderer.push(`<!----></main></div>`);\n\t});\n}\n//#endregion\nexport { _layout as default };\n"],"names":[],"mappings":";;;AACA;AACA,SAAS,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE;AACtC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AACtC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO;AAClC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,oNAAoN,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,8EAA8E,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,uDAAuD,EAAE,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,6EAA6E,CAAC,CAAC;AACphB,EAAE,QAAQ,CAAC,UAAU,CAAC;AACtB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AACH;;;;"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { q as escape_html, o as ensure_array_like, a7 as store_mutate, a6 as store_get, d as attr, ab as unsubscribe_stores } from './dev-yRSoS_kM.js';
|
|
2
|
+
import { s as superForm } from './zod-from-table-HRMJdgEv.js';
|
|
3
|
+
import { r as resolveWidget } from './widget-registry-Bfc0OPDn.js';
|
|
4
|
+
import 'clsx';
|
|
5
|
+
import './internal-Dtmf8fV4.js';
|
|
6
|
+
import 'node:module';
|
|
7
|
+
import './index-DBqjc0Yf.js';
|
|
8
|
+
import './client-nr13Vsqj.js';
|
|
9
|
+
import './app-C1bzfcjj.js';
|
|
10
|
+
import './index-5kYmxIr9.js';
|
|
11
|
+
import 'zod/v3';
|
|
12
|
+
import 'zod';
|
|
13
|
+
|
|
14
|
+
//#region src/routes/tables/[table]/[id]/edit/+page.svelte
|
|
15
|
+
function _page($$renderer, $$props) {
|
|
16
|
+
$$renderer.component(($$renderer) => {
|
|
17
|
+
var $$store_subs;
|
|
18
|
+
let { data } = $$props;
|
|
19
|
+
const { form, errors, submitting } = superForm(data.form, { dataType: "json" });
|
|
20
|
+
let $$settled = true;
|
|
21
|
+
let $$inner_renderer;
|
|
22
|
+
function $$render_inner($$renderer) {
|
|
23
|
+
$$renderer.push(`<h1 class="mb-1 text-2xl font-semibold">Edit ${escape_html(data.table.label)}</h1> <p class="mb-6 text-sm text-muted-foreground">${escape_html(data.table.qualifiedName)} / ${escape_html(data.id)}</p> <form method="POST" class="space-y-4"><!--[-->`);
|
|
24
|
+
const each_array = ensure_array_like(data.table.columns);
|
|
25
|
+
for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
|
|
26
|
+
let col = each_array[$$index];
|
|
27
|
+
const Widget = resolveWidget(col.widget);
|
|
28
|
+
$$renderer.push(`<div>`);
|
|
29
|
+
if (Widget) {
|
|
30
|
+
$$renderer.push("<!--[-->");
|
|
31
|
+
Widget($$renderer, {
|
|
32
|
+
name: col.name,
|
|
33
|
+
label: col.label,
|
|
34
|
+
options: col.enumValues,
|
|
35
|
+
required: !col.nullable && !col.readonly && !col.isPrimaryKey,
|
|
36
|
+
readonly: col.readonly,
|
|
37
|
+
get value() {
|
|
38
|
+
return store_get($$store_subs ??= {}, "$form", form)[col.name];
|
|
39
|
+
},
|
|
40
|
+
set value($$value) {
|
|
41
|
+
store_mutate($$store_subs ??= {}, "$form", form, store_get($$store_subs ??= {}, "$form", form)[col.name] = $$value);
|
|
42
|
+
$$settled = false;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
$$renderer.push("<!--]-->");
|
|
46
|
+
} else {
|
|
47
|
+
$$renderer.push("<!--[!-->");
|
|
48
|
+
$$renderer.push("<!--]-->");
|
|
49
|
+
}
|
|
50
|
+
$$renderer.push(` `);
|
|
51
|
+
if (store_get($$store_subs ??= {}, "$errors", errors)[col.name]) {
|
|
52
|
+
$$renderer.push("<!--[0-->");
|
|
53
|
+
$$renderer.push(`<p class="mt-1 text-sm text-destructive">${escape_html(store_get($$store_subs ??= {}, "$errors", errors)[col.name])}</p>`);
|
|
54
|
+
} else $$renderer.push("<!--[-1-->");
|
|
55
|
+
$$renderer.push(`<!--]--></div>`);
|
|
56
|
+
}
|
|
57
|
+
$$renderer.push(`<!--]--> <div class="flex gap-3"><button type="submit"${attr("disabled", store_get($$store_subs ??= {}, "$submitting", submitting), true)} class="rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground disabled:opacity-50">${escape_html(store_get($$store_subs ??= {}, "$submitting", submitting) ? "Saving…" : "Save")}</button> <a${attr("href", `/tables/${data.table.qualifiedName}/${data.id}`)} class="rounded-md border border-border px-4 py-2 text-sm font-medium">Cancel</a></div></form>`);
|
|
58
|
+
}
|
|
59
|
+
do {
|
|
60
|
+
$$settled = true;
|
|
61
|
+
$$inner_renderer = $$renderer.copy();
|
|
62
|
+
$$render_inner($$inner_renderer);
|
|
63
|
+
} while (!$$settled);
|
|
64
|
+
$$renderer.subsume($$inner_renderer);
|
|
65
|
+
if ($$store_subs) unsubscribe_stores($$store_subs);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export { _page as default };
|
|
70
|
+
//# sourceMappingURL=_page.svelte-69okwN_x.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_page.svelte-69okwN_x.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/tables/_table_/_id_/edit/_page.svelte.js"],"sourcesContent":["import { H as escape_html, V as attr, c as unsubscribe_stores, i as ensure_array_like, o as store_get, s as store_mutate } from \"../../../../../../chunks/dev.js\";\nimport { r as superForm } from \"../../../../../../chunks/dist.js\";\nimport { t as resolveWidget } from \"../../../../../../chunks/widget-registry.js\";\n//#region src/routes/tables/[table]/[id]/edit/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tvar $$store_subs;\n\t\tlet { data } = $$props;\n\t\tconst { form, errors, enhance, submitting } = superForm(data.form, { dataType: \"json\" });\n\t\tlet $$settled = true;\n\t\tlet $$inner_renderer;\n\t\tfunction $$render_inner($$renderer) {\n\t\t\t$$renderer.push(`<h1 class=\"mb-1 text-2xl font-semibold\">Edit ${escape_html(data.table.label)}</h1> <p class=\"mb-6 text-sm text-muted-foreground\">${escape_html(data.table.qualifiedName)} / ${escape_html(data.id)}</p> <form method=\"POST\" class=\"space-y-4\"><!--[-->`);\n\t\t\tconst each_array = ensure_array_like(data.table.columns);\n\t\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\t\tlet col = each_array[$$index];\n\t\t\t\tconst Widget = resolveWidget(col.widget);\n\t\t\t\t$$renderer.push(`<div>`);\n\t\t\t\tif (Widget) {\n\t\t\t\t\t$$renderer.push(\"<!--[-->\");\n\t\t\t\t\tWidget($$renderer, {\n\t\t\t\t\t\tname: col.name,\n\t\t\t\t\t\tlabel: col.label,\n\t\t\t\t\t\toptions: col.enumValues,\n\t\t\t\t\t\trequired: !col.nullable && !col.readonly && !col.isPrimaryKey,\n\t\t\t\t\t\treadonly: col.readonly,\n\t\t\t\t\t\tget value() {\n\t\t\t\t\t\t\treturn store_get($$store_subs ??= {}, \"$form\", form)[col.name];\n\t\t\t\t\t\t},\n\t\t\t\t\t\tset value($$value) {\n\t\t\t\t\t\t\tstore_mutate($$store_subs ??= {}, \"$form\", form, store_get($$store_subs ??= {}, \"$form\", form)[col.name] = $$value);\n\t\t\t\t\t\t\t$$settled = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\t$$renderer.push(\"<!--]-->\");\n\t\t\t\t} else {\n\t\t\t\t\t$$renderer.push(\"<!--[!-->\");\n\t\t\t\t\t$$renderer.push(\"<!--]-->\");\n\t\t\t\t}\n\t\t\t\t$$renderer.push(` `);\n\t\t\t\tif (store_get($$store_subs ??= {}, \"$errors\", errors)[col.name]) {\n\t\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t\t$$renderer.push(`<p class=\"mt-1 text-sm text-destructive\">${escape_html(store_get($$store_subs ??= {}, \"$errors\", errors)[col.name])}</p>`);\n\t\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<!--]--></div>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--> <div class=\"flex gap-3\"><button type=\"submit\"${attr(\"disabled\", store_get($$store_subs ??= {}, \"$submitting\", submitting), true)} class=\"rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground disabled:opacity-50\">${escape_html(store_get($$store_subs ??= {}, \"$submitting\", submitting) ? \"Saving…\" : \"Save\")}</button> <a${attr(\"href\", `/tables/${data.table.qualifiedName}/${data.id}`)} class=\"rounded-md border border-border px-4 py-2 text-sm font-medium\">Cancel</a></div></form>`);\n\t\t}\n\t\tdo {\n\t\t\t$$settled = true;\n\t\t\t$$inner_renderer = $$renderer.copy();\n\t\t\t$$render_inner($$inner_renderer);\n\t\t} while (!$$settled);\n\t\t$$renderer.subsume($$inner_renderer);\n\t\tif ($$store_subs) unsubscribe_stores($$store_subs);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { q as escape_html, o as ensure_array_like, d as attr } from './dev-yRSoS_kM.js';
|
|
2
|
+
import './internal-Dtmf8fV4.js';
|
|
3
|
+
import './client-nr13Vsqj.js';
|
|
4
|
+
import 'clsx';
|
|
5
|
+
import 'node:module';
|
|
6
|
+
import './index-DBqjc0Yf.js';
|
|
7
|
+
|
|
8
|
+
//#region src/lib/detail/format-cell.ts
|
|
9
|
+
function formatCellValue(input) {
|
|
10
|
+
const { value, widget } = input;
|
|
11
|
+
if (value === null || value === void 0) return "";
|
|
12
|
+
switch (widget) {
|
|
13
|
+
case "boolean": return value ? "Yes" : "No";
|
|
14
|
+
case "date": return formatDate(value);
|
|
15
|
+
case "datetime": return formatDateTime(value);
|
|
16
|
+
case "json":
|
|
17
|
+
if (typeof value === "object") try {
|
|
18
|
+
return JSON.stringify(value, null, 2);
|
|
19
|
+
} catch {
|
|
20
|
+
return String(value);
|
|
21
|
+
}
|
|
22
|
+
return String(value);
|
|
23
|
+
default:
|
|
24
|
+
if (typeof value === "object") try {
|
|
25
|
+
return JSON.stringify(value);
|
|
26
|
+
} catch {
|
|
27
|
+
return String(value);
|
|
28
|
+
}
|
|
29
|
+
return String(value);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function formatDate(value) {
|
|
33
|
+
const d = new Date(value);
|
|
34
|
+
if (Number.isNaN(d.getTime())) return String(value);
|
|
35
|
+
return d.toISOString().slice(0, 10);
|
|
36
|
+
}
|
|
37
|
+
function formatDateTime(value) {
|
|
38
|
+
const d = new Date(value);
|
|
39
|
+
if (Number.isNaN(d.getTime())) return String(value);
|
|
40
|
+
return d.toISOString().replace("T", " ").slice(0, 19);
|
|
41
|
+
}
|
|
42
|
+
//#endregion
|
|
43
|
+
//#region src/routes/tables/[table]/[id]/+page.svelte
|
|
44
|
+
function _page($$renderer, $$props) {
|
|
45
|
+
$$renderer.component(($$renderer) => {
|
|
46
|
+
let { data } = $$props;
|
|
47
|
+
$$renderer.push(`<h1 class="mb-1 text-2xl font-semibold">${escape_html(data.table.label)}</h1> <p class="mb-6 text-sm text-muted-foreground">${escape_html(data.table.qualifiedName)} / ${escape_html(data.id)}</p> <dl class="space-y-4"><!--[-->`);
|
|
48
|
+
const each_array = ensure_array_like(data.table.columns);
|
|
49
|
+
for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
|
|
50
|
+
let col = each_array[$$index];
|
|
51
|
+
const rawValue = data.row[col.name];
|
|
52
|
+
$$renderer.push(`<div><dt class="text-sm font-medium text-muted-foreground">${escape_html(col.label)}</dt> <dd class="mt-1 text-sm">`);
|
|
53
|
+
if (col.widget === "json") {
|
|
54
|
+
$$renderer.push("<!--[0-->");
|
|
55
|
+
$$renderer.push(`<pre class="overflow-x-auto rounded-md bg-muted p-2 font-mono text-xs">${escape_html(formatCellValue({
|
|
56
|
+
value: rawValue,
|
|
57
|
+
widget: col.widget
|
|
58
|
+
}))}</pre>`);
|
|
59
|
+
} else if (col.widget === "image-url" && rawValue) {
|
|
60
|
+
$$renderer.push("<!--[1-->");
|
|
61
|
+
$$renderer.push(`<img${attr("src", String(rawValue))}${attr("alt", col.label)} class="max-h-48 rounded-md border border-border object-contain" loading="lazy"/>`);
|
|
62
|
+
} else if (rawValue === null || rawValue === void 0) {
|
|
63
|
+
$$renderer.push("<!--[2-->");
|
|
64
|
+
$$renderer.push(`<span class="text-muted-foreground">—</span>`);
|
|
65
|
+
} else {
|
|
66
|
+
$$renderer.push("<!--[-1-->");
|
|
67
|
+
$$renderer.push(`${escape_html(formatCellValue({
|
|
68
|
+
value: rawValue,
|
|
69
|
+
widget: col.widget
|
|
70
|
+
}))}`);
|
|
71
|
+
}
|
|
72
|
+
$$renderer.push(`<!--]--></dd></div>`);
|
|
73
|
+
}
|
|
74
|
+
$$renderer.push(`<!--]--></dl> <div class="mt-8 flex flex-wrap gap-3"><a${attr("href", `/tables/${data.table.qualifiedName}/${data.id}/edit`)} class="rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground">Edit</a> <form method="POST" action="?/delete"><button type="submit" class="rounded-md border border-destructive px-4 py-2 text-sm font-medium text-destructive">Delete</button></form> <a${attr("href", `/tables/${data.table.qualifiedName}`)} class="rounded-md border border-border px-4 py-2 text-sm font-medium">Back</a></div>`);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export { _page as default };
|
|
79
|
+
//# sourceMappingURL=_page.svelte-7DhzytBp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_page.svelte-7DhzytBp.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/tables/_table_/_id_/_page.svelte.js"],"sourcesContent":["import { H as escape_html, V as attr, i as ensure_array_like } from \"../../../../../chunks/dev.js\";\nimport \"../../../../../chunks/forms.js\";\n//#region src/lib/detail/format-cell.ts\nfunction formatCellValue(input) {\n\tconst { value, widget } = input;\n\tif (value === null || value === void 0) return \"\";\n\tswitch (widget) {\n\t\tcase \"boolean\": return value ? \"Yes\" : \"No\";\n\t\tcase \"date\": return formatDate(value);\n\t\tcase \"datetime\": return formatDateTime(value);\n\t\tcase \"json\":\n\t\t\tif (typeof value === \"object\") try {\n\t\t\t\treturn JSON.stringify(value, null, 2);\n\t\t\t} catch {\n\t\t\t\treturn String(value);\n\t\t\t}\n\t\t\treturn String(value);\n\t\tdefault:\n\t\t\tif (typeof value === \"object\") try {\n\t\t\t\treturn JSON.stringify(value);\n\t\t\t} catch {\n\t\t\t\treturn String(value);\n\t\t\t}\n\t\t\treturn String(value);\n\t}\n}\nfunction formatDate(value) {\n\tconst d = new Date(value);\n\tif (Number.isNaN(d.getTime())) return String(value);\n\treturn d.toISOString().slice(0, 10);\n}\nfunction formatDateTime(value) {\n\tconst d = new Date(value);\n\tif (Number.isNaN(d.getTime())) return String(value);\n\treturn d.toISOString().replace(\"T\", \" \").slice(0, 19);\n}\n//#endregion\n//#region src/routes/tables/[table]/[id]/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { data } = $$props;\n\t\t$$renderer.push(`<h1 class=\"mb-1 text-2xl font-semibold\">${escape_html(data.table.label)}</h1> <p class=\"mb-6 text-sm text-muted-foreground\">${escape_html(data.table.qualifiedName)} / ${escape_html(data.id)}</p> <dl class=\"space-y-4\"><!--[-->`);\n\t\tconst each_array = ensure_array_like(data.table.columns);\n\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\tlet col = each_array[$$index];\n\t\t\tconst rawValue = data.row[col.name];\n\t\t\t$$renderer.push(`<div><dt class=\"text-sm font-medium text-muted-foreground\">${escape_html(col.label)}</dt> <dd class=\"mt-1 text-sm\">`);\n\t\t\tif (col.widget === \"json\") {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<pre class=\"overflow-x-auto rounded-md bg-muted p-2 font-mono text-xs\">${escape_html(formatCellValue({\n\t\t\t\t\tvalue: rawValue,\n\t\t\t\t\twidget: col.widget\n\t\t\t\t}))}</pre>`);\n\t\t\t} else if (col.widget === \"image-url\" && rawValue) {\n\t\t\t\t$$renderer.push(\"<!--[1-->\");\n\t\t\t\t$$renderer.push(`<img${attr(\"src\", String(rawValue))}${attr(\"alt\", col.label)} class=\"max-h-48 rounded-md border border-border object-contain\" loading=\"lazy\"/>`);\n\t\t\t} else if (rawValue === null || rawValue === void 0) {\n\t\t\t\t$$renderer.push(\"<!--[2-->\");\n\t\t\t\t$$renderer.push(`<span class=\"text-muted-foreground\">—</span>`);\n\t\t\t} else {\n\t\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`${escape_html(formatCellValue({\n\t\t\t\t\tvalue: rawValue,\n\t\t\t\t\twidget: col.widget\n\t\t\t\t}))}`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--></dd></div>`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></dl> <div class=\"mt-8 flex flex-wrap gap-3\"><a${attr(\"href\", `/tables/${data.table.qualifiedName}/${data.id}/edit`)} class=\"rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground\">Edit</a> <form method=\"POST\" action=\"?/delete\"><button type=\"submit\" class=\"rounded-md border border-destructive px-4 py-2 text-sm font-medium text-destructive\">Delete</button></form> <a${attr(\"href\", `/tables/${data.table.qualifiedName}`)} class=\"rounded-md border border-border px-4 py-2 text-sm font-medium\">Back</a></div>`);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { q as escape_html, d as attr, o as ensure_array_like, m as derived } from './dev-yRSoS_kM.js';
|
|
2
|
+
import 'clsx';
|
|
3
|
+
|
|
4
|
+
//#region src/routes/views/[view]/+page.svelte
|
|
5
|
+
function _page($$renderer, $$props) {
|
|
6
|
+
$$renderer.component(($$renderer) => {
|
|
7
|
+
let { data } = $$props;
|
|
8
|
+
const sortLookup = derived(() => new Map(data.listParams.sort.map((s) => [s.field, s.order])));
|
|
9
|
+
const totalPages = derived(() => Math.max(1, Math.ceil(data.list.total / data.list.pageSize)));
|
|
10
|
+
function buildHref(overrides) {
|
|
11
|
+
const params = new URLSearchParams();
|
|
12
|
+
if (data.listParams.search.length > 0) params.set("q", data.listParams.search);
|
|
13
|
+
if (data.listParams.sort.length > 0) params.set("sort", data.listParams.sort.map((s) => `${s.field}:${s.order}`).join(","));
|
|
14
|
+
if (data.listParams.page > 1) params.set("page", String(data.listParams.page));
|
|
15
|
+
if (data.listParams.pageSize !== 50) params.set("pageSize", String(data.listParams.pageSize));
|
|
16
|
+
for (const [key, value] of Object.entries(overrides)) if (value === null) params.delete(key);
|
|
17
|
+
else params.set(key, value);
|
|
18
|
+
const query = params.toString();
|
|
19
|
+
return query.length > 0 ? `?${query}` : ".";
|
|
20
|
+
}
|
|
21
|
+
function buildSortHref(field) {
|
|
22
|
+
return buildHref({
|
|
23
|
+
sort: `${field}:${sortLookup().get(field) === "asc" ? "desc" : "asc"}`,
|
|
24
|
+
page: null
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function formatCell(value) {
|
|
28
|
+
if (value === null || value === void 0) return "";
|
|
29
|
+
if (typeof value === "object") return JSON.stringify(value);
|
|
30
|
+
return String(value);
|
|
31
|
+
}
|
|
32
|
+
$$renderer.push(`<h1 class="mb-1 text-2xl font-semibold">${escape_html(data.view.label)}</h1> <p class="mb-6 text-sm text-muted-foreground">${escape_html(data.view.qualifiedName)}</p> <form method="GET" class="mb-4 flex flex-wrap items-center gap-2"><input type="text" name="q"${attr("value", data.listParams.search)} placeholder="Search…" class="min-w-0 flex-1 rounded-md border border-input bg-background px-3 py-2 text-sm"/> <button type="submit" class="rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground">Search</button></form> <div class="overflow-x-auto rounded-md border border-border"><table class="min-w-full text-sm"><thead class="bg-muted"><tr><!--[-->`);
|
|
33
|
+
const each_array = ensure_array_like(data.view.columns);
|
|
34
|
+
for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
|
|
35
|
+
let col = each_array[$$index];
|
|
36
|
+
$$renderer.push(`<th class="px-3 py-2 text-left font-medium"><a${attr("href", buildSortHref(col.name))} class="hover:underline">${escape_html(col.label)} `);
|
|
37
|
+
if (sortLookup().has(col.name)) {
|
|
38
|
+
$$renderer.push("<!--[0-->");
|
|
39
|
+
$$renderer.push(`<span aria-hidden="true">${escape_html(sortLookup().get(col.name) === "asc" ? "↑" : "↓")}</span>`);
|
|
40
|
+
} else $$renderer.push("<!--[-1-->");
|
|
41
|
+
$$renderer.push(`<!--]--></a></th>`);
|
|
42
|
+
}
|
|
43
|
+
$$renderer.push(`<!--]--></tr></thead><tbody>`);
|
|
44
|
+
if (data.list.rows.length === 0) {
|
|
45
|
+
$$renderer.push("<!--[0-->");
|
|
46
|
+
$$renderer.push(`<tr><td${attr("colspan", data.view.columns.length)} class="px-3 py-6 text-center text-muted-foreground">No rows.</td></tr>`);
|
|
47
|
+
} else {
|
|
48
|
+
$$renderer.push("<!--[-1-->");
|
|
49
|
+
$$renderer.push(`<!--[-->`);
|
|
50
|
+
const each_array_1 = ensure_array_like(data.list.rows);
|
|
51
|
+
for (let idx = 0, $$length = each_array_1.length; idx < $$length; idx++) {
|
|
52
|
+
let row = each_array_1[idx];
|
|
53
|
+
$$renderer.push(`<tr class="border-t border-border"><!--[-->`);
|
|
54
|
+
const each_array_2 = ensure_array_like(data.view.columns);
|
|
55
|
+
for (let $$index_1 = 0, $$length = each_array_2.length; $$index_1 < $$length; $$index_1++) {
|
|
56
|
+
let col = each_array_2[$$index_1];
|
|
57
|
+
$$renderer.push(`<td class="px-3 py-2">${escape_html(formatCell(row[col.name]))}</td>`);
|
|
58
|
+
}
|
|
59
|
+
$$renderer.push(`<!--]--></tr>`);
|
|
60
|
+
}
|
|
61
|
+
$$renderer.push(`<!--]-->`);
|
|
62
|
+
}
|
|
63
|
+
$$renderer.push(`<!--]--></tbody></table></div> <nav class="mt-4 flex items-center justify-between text-sm"><span class="text-muted-foreground">Page ${escape_html(data.listParams.page)} of ${escape_html(totalPages())} (${escape_html(data.list.total)} total)</span> <div class="flex gap-2">`);
|
|
64
|
+
if (data.listParams.page > 1) {
|
|
65
|
+
$$renderer.push("<!--[0-->");
|
|
66
|
+
$$renderer.push(`<a${attr("href", buildHref({ page: String(data.listParams.page - 1) }))} class="rounded-md border border-border px-3 py-1">← Prev</a>`);
|
|
67
|
+
} else $$renderer.push("<!--[-1-->");
|
|
68
|
+
$$renderer.push(`<!--]--> `);
|
|
69
|
+
if (data.listParams.page < totalPages()) {
|
|
70
|
+
$$renderer.push("<!--[0-->");
|
|
71
|
+
$$renderer.push(`<a${attr("href", buildHref({ page: String(data.listParams.page + 1) }))} class="rounded-md border border-border px-3 py-1">Next →</a>`);
|
|
72
|
+
} else $$renderer.push("<!--[-1-->");
|
|
73
|
+
$$renderer.push(`<!--]--></div></nav>`);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export { _page as default };
|
|
78
|
+
//# sourceMappingURL=_page.svelte-BpS5HgaB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_page.svelte-BpS5HgaB.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/views/_view_/_page.svelte.js"],"sourcesContent":["import { H as escape_html, V as attr, i as ensure_array_like, r as derived } from \"../../../../chunks/dev.js\";\n//#region src/routes/views/[view]/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { data } = $$props;\n\t\tconst sortLookup = derived(() => new Map(data.listParams.sort.map((s) => [s.field, s.order])));\n\t\tconst totalPages = derived(() => Math.max(1, Math.ceil(data.list.total / data.list.pageSize)));\n\t\tfunction buildHref(overrides) {\n\t\t\tconst params = new URLSearchParams();\n\t\t\tif (data.listParams.search.length > 0) params.set(\"q\", data.listParams.search);\n\t\t\tif (data.listParams.sort.length > 0) params.set(\"sort\", data.listParams.sort.map((s) => `${s.field}:${s.order}`).join(\",\"));\n\t\t\tif (data.listParams.page > 1) params.set(\"page\", String(data.listParams.page));\n\t\t\tif (data.listParams.pageSize !== 50) params.set(\"pageSize\", String(data.listParams.pageSize));\n\t\t\tfor (const [key, value] of Object.entries(overrides)) if (value === null) params.delete(key);\n\t\t\telse params.set(key, value);\n\t\t\tconst query = params.toString();\n\t\t\treturn query.length > 0 ? `?${query}` : \".\";\n\t\t}\n\t\tfunction buildSortHref(field) {\n\t\t\treturn buildHref({\n\t\t\t\tsort: `${field}:${sortLookup().get(field) === \"asc\" ? \"desc\" : \"asc\"}`,\n\t\t\t\tpage: null\n\t\t\t});\n\t\t}\n\t\tfunction formatCell(value) {\n\t\t\tif (value === null || value === void 0) return \"\";\n\t\t\tif (typeof value === \"object\") return JSON.stringify(value);\n\t\t\treturn String(value);\n\t\t}\n\t\t$$renderer.push(`<h1 class=\"mb-1 text-2xl font-semibold\">${escape_html(data.view.label)}</h1> <p class=\"mb-6 text-sm text-muted-foreground\">${escape_html(data.view.qualifiedName)}</p> <form method=\"GET\" class=\"mb-4 flex flex-wrap items-center gap-2\"><input type=\"text\" name=\"q\"${attr(\"value\", data.listParams.search)} placeholder=\"Search…\" class=\"min-w-0 flex-1 rounded-md border border-input bg-background px-3 py-2 text-sm\"/> <button type=\"submit\" class=\"rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground\">Search</button></form> <div class=\"overflow-x-auto rounded-md border border-border\"><table class=\"min-w-full text-sm\"><thead class=\"bg-muted\"><tr><!--[-->`);\n\t\tconst each_array = ensure_array_like(data.view.columns);\n\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\tlet col = each_array[$$index];\n\t\t\t$$renderer.push(`<th class=\"px-3 py-2 text-left font-medium\"><a${attr(\"href\", buildSortHref(col.name))} class=\"hover:underline\">${escape_html(col.label)} `);\n\t\t\tif (sortLookup().has(col.name)) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<span aria-hidden=\"true\">${escape_html(sortLookup().get(col.name) === \"asc\" ? \"↑\" : \"↓\")}</span>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--></a></th>`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></tr></thead><tbody>`);\n\t\tif (data.list.rows.length === 0) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<tr><td${attr(\"colspan\", data.view.columns.length)} class=\"px-3 py-6 text-center text-muted-foreground\">No rows.</td></tr>`);\n\t\t} else {\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--[-->`);\n\t\t\tconst each_array_1 = ensure_array_like(data.list.rows);\n\t\t\tfor (let idx = 0, $$length = each_array_1.length; idx < $$length; idx++) {\n\t\t\t\tlet row = each_array_1[idx];\n\t\t\t\t$$renderer.push(`<tr class=\"border-t border-border\"><!--[-->`);\n\t\t\t\tconst each_array_2 = ensure_array_like(data.view.columns);\n\t\t\t\tfor (let $$index_1 = 0, $$length = each_array_2.length; $$index_1 < $$length; $$index_1++) {\n\t\t\t\t\tlet col = each_array_2[$$index_1];\n\t\t\t\t\t$$renderer.push(`<td class=\"px-3 py-2\">${escape_html(formatCell(row[col.name]))}</td>`);\n\t\t\t\t}\n\t\t\t\t$$renderer.push(`<!--]--></tr>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]-->`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></tbody></table></div> <nav class=\"mt-4 flex items-center justify-between text-sm\"><span class=\"text-muted-foreground\">Page ${escape_html(data.listParams.page)} of ${escape_html(totalPages())} (${escape_html(data.list.total)} total)</span> <div class=\"flex gap-2\">`);\n\t\tif (data.listParams.page > 1) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<a${attr(\"href\", buildHref({ page: String(data.listParams.page - 1) }))} class=\"rounded-md border border-border px-3 py-1\">← Prev</a>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> `);\n\t\tif (data.listParams.page < totalPages()) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<a${attr(\"href\", buildHref({ page: String(data.listParams.page + 1) }))} class=\"rounded-md border border-border px-3 py-1\">Next →</a>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div></nav>`);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":";;;AACA;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AACtC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO;AACxB,EAAE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChG,EAAE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChG,EAAE,SAAS,SAAS,CAAC,SAAS,EAAE;AAChC,GAAG,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE;AACvC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AACjF,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9H,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACjF,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,KAAK,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAChG,GAAG,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;AAC/F,QAAQ,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;AAC9B,GAAG,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;AAClC,GAAG,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG;AAC9C,EAAE;AACF,EAAE,SAAS,aAAa,CAAC,KAAK,EAAE;AAChC,GAAG,OAAO,SAAS,CAAC;AACpB,IAAI,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;AAC1E,IAAI,IAAI,EAAE;AACV,IAAI,CAAC;AACL,EAAE;AACF,EAAE,SAAS,UAAU,CAAC,KAAK,EAAE;AAC7B,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,EAAE,OAAO,EAAE;AACpD,GAAG,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC9D,GAAG,OAAO,MAAM,CAAC,KAAK,CAAC;AACvB,EAAE;AACF,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,wCAAwC,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,oDAAoD,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,kGAAkG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,mXAAmX,CAAC,CAAC;AACprB,EAAE,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AACzD,EAAE,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE;AACrF,GAAG,IAAI,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC;AAChC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,8CAA8C,EAAE,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/J,GAAG,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACnC,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AAChC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,yBAAyB,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;AACvH,GAAG,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACvC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC;AACvC,EAAE;AACF,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,4BAA4B,CAAC,CAAC;AACjD,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AAC/B,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,uEAAuE,CAAC,CAAC;AAChJ,EAAE,CAAC,MAAM;AACT,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AAChC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC9B,GAAG,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACzD,GAAG,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,EAAE,EAAE;AAC5E,IAAI,IAAI,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC;AAC/B,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,2CAA2C,CAAC,CAAC;AAClE,IAAI,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7D,IAAI,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,EAAE,SAAS,EAAE,EAAE;AAC/F,KAAK,IAAI,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC;AACtC,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,sBAAsB,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC5F,IAAI;AACJ,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC;AACpC,GAAG;AACH,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC9B,EAAE;AACF,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,oIAAoI,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,uCAAuC,CAAC,CAAC;AACrS,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE;AAChC,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AAC/B,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC;AAC3J,EAAE,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AAC9B,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,UAAU,EAAE,EAAE;AAC3C,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AAC/B,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC;AAC3J,EAAE,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AACH;;;;"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { o as ensure_array_like, d as attr, q as escape_html } from './dev-yRSoS_kM.js';
|
|
2
|
+
import 'clsx';
|
|
3
|
+
|
|
4
|
+
//#region src/routes/+page.svelte
|
|
5
|
+
function _page($$renderer, $$props) {
|
|
6
|
+
$$renderer.component(($$renderer) => {
|
|
7
|
+
let { data } = $$props;
|
|
8
|
+
$$renderer.push(`<h1 class="mb-6 text-2xl font-semibold">Dashboard</h1> <section class="mb-10"><h2 class="mb-3 text-lg font-semibold">Tables</h2> `);
|
|
9
|
+
if (data.dashboard.tables.length === 0) {
|
|
10
|
+
$$renderer.push("<!--[0-->");
|
|
11
|
+
$$renderer.push(`<p class="text-sm text-muted-foreground">No tables in the current schema.</p>`);
|
|
12
|
+
} else {
|
|
13
|
+
$$renderer.push("<!--[-1-->");
|
|
14
|
+
$$renderer.push(`<ul class="space-y-2"><!--[-->`);
|
|
15
|
+
const each_array = ensure_array_like(data.dashboard.tables);
|
|
16
|
+
for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
|
|
17
|
+
let table = each_array[$$index];
|
|
18
|
+
$$renderer.push(`<li><a${attr("href", `/tables/${table.qualifiedName}`)} class="block rounded-md border border-border p-3 transition hover:bg-muted"><div class="font-medium">${escape_html(table.label)}</div> `);
|
|
19
|
+
if (table.description) {
|
|
20
|
+
$$renderer.push("<!--[0-->");
|
|
21
|
+
$$renderer.push(`<div class="text-sm text-muted-foreground">${escape_html(table.description)}</div>`);
|
|
22
|
+
} else $$renderer.push("<!--[-1-->");
|
|
23
|
+
$$renderer.push(`<!--]--></a></li>`);
|
|
24
|
+
}
|
|
25
|
+
$$renderer.push(`<!--]--></ul>`);
|
|
26
|
+
}
|
|
27
|
+
$$renderer.push(`<!--]--></section> <section><h2 class="mb-3 text-lg font-semibold">Views</h2> `);
|
|
28
|
+
if (data.dashboard.views.length === 0) {
|
|
29
|
+
$$renderer.push("<!--[0-->");
|
|
30
|
+
$$renderer.push(`<p class="text-sm text-muted-foreground">No views in the current schema.</p>`);
|
|
31
|
+
} else {
|
|
32
|
+
$$renderer.push("<!--[-1-->");
|
|
33
|
+
$$renderer.push(`<ul class="space-y-2"><!--[-->`);
|
|
34
|
+
const each_array_1 = ensure_array_like(data.dashboard.views);
|
|
35
|
+
for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
|
|
36
|
+
let view = each_array_1[$$index_1];
|
|
37
|
+
$$renderer.push(`<li><a${attr("href", `/views/${view.qualifiedName}`)} class="block rounded-md border border-border p-3 transition hover:bg-muted"><div class="font-medium">${escape_html(view.label)}</div> `);
|
|
38
|
+
if (view.description) {
|
|
39
|
+
$$renderer.push("<!--[0-->");
|
|
40
|
+
$$renderer.push(`<div class="text-sm text-muted-foreground">${escape_html(view.description)}</div>`);
|
|
41
|
+
} else $$renderer.push("<!--[-1-->");
|
|
42
|
+
$$renderer.push(`<!--]--></a></li>`);
|
|
43
|
+
}
|
|
44
|
+
$$renderer.push(`<!--]--></ul>`);
|
|
45
|
+
}
|
|
46
|
+
$$renderer.push(`<!--]--></section>`);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export { _page as default };
|
|
51
|
+
//# sourceMappingURL=_page.svelte-BywGr3Tk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_page.svelte-BywGr3Tk.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_page.svelte.js"],"sourcesContent":["import { H as escape_html, V as attr, i as ensure_array_like } from \"../../chunks/dev.js\";\n//#region src/routes/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { data } = $$props;\n\t\t$$renderer.push(`<h1 class=\"mb-6 text-2xl font-semibold\">Dashboard</h1> <section class=\"mb-10\"><h2 class=\"mb-3 text-lg font-semibold\">Tables</h2> `);\n\t\tif (data.dashboard.tables.length === 0) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<p class=\"text-sm text-muted-foreground\">No tables in the current schema.</p>`);\n\t\t} else {\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<ul class=\"space-y-2\"><!--[-->`);\n\t\t\tconst each_array = ensure_array_like(data.dashboard.tables);\n\t\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\t\tlet table = each_array[$$index];\n\t\t\t\t$$renderer.push(`<li><a${attr(\"href\", `/tables/${table.qualifiedName}`)} class=\"block rounded-md border border-border p-3 transition hover:bg-muted\"><div class=\"font-medium\">${escape_html(table.label)}</div> `);\n\t\t\t\tif (table.description) {\n\t\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t\t$$renderer.push(`<div class=\"text-sm text-muted-foreground\">${escape_html(table.description)}</div>`);\n\t\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<!--]--></a></li>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--></ul>`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></section> <section><h2 class=\"mb-3 text-lg font-semibold\">Views</h2> `);\n\t\tif (data.dashboard.views.length === 0) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<p class=\"text-sm text-muted-foreground\">No views in the current schema.</p>`);\n\t\t} else {\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<ul class=\"space-y-2\"><!--[-->`);\n\t\t\tconst each_array_1 = ensure_array_like(data.dashboard.views);\n\t\t\tfor (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {\n\t\t\t\tlet view = each_array_1[$$index_1];\n\t\t\t\t$$renderer.push(`<li><a${attr(\"href\", `/views/${view.qualifiedName}`)} class=\"block rounded-md border border-border p-3 transition hover:bg-muted\"><div class=\"font-medium\">${escape_html(view.label)}</div> `);\n\t\t\t\tif (view.description) {\n\t\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t\t$$renderer.push(`<div class=\"text-sm text-muted-foreground\">${escape_html(view.description)}</div>`);\n\t\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<!--]--></a></li>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--></ul>`);\n\t\t}\n\t\t$$renderer.push(`<!--]--></section>`);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { q as escape_html, o as ensure_array_like, a7 as store_mutate, a6 as store_get, d as attr, ab as unsubscribe_stores } from './dev-yRSoS_kM.js';
|
|
2
|
+
import { s as superForm } from './zod-from-table-HRMJdgEv.js';
|
|
3
|
+
import { r as resolveWidget } from './widget-registry-Bfc0OPDn.js';
|
|
4
|
+
import 'clsx';
|
|
5
|
+
import './internal-Dtmf8fV4.js';
|
|
6
|
+
import 'node:module';
|
|
7
|
+
import './index-DBqjc0Yf.js';
|
|
8
|
+
import './client-nr13Vsqj.js';
|
|
9
|
+
import './app-C1bzfcjj.js';
|
|
10
|
+
import './index-5kYmxIr9.js';
|
|
11
|
+
import 'zod/v3';
|
|
12
|
+
import 'zod';
|
|
13
|
+
|
|
14
|
+
//#region src/routes/tables/[table]/new/+page.svelte
|
|
15
|
+
function _page($$renderer, $$props) {
|
|
16
|
+
$$renderer.component(($$renderer) => {
|
|
17
|
+
var $$store_subs;
|
|
18
|
+
let { data } = $$props;
|
|
19
|
+
const { form, errors, submitting } = superForm(data.form, { dataType: "json" });
|
|
20
|
+
let $$settled = true;
|
|
21
|
+
let $$inner_renderer;
|
|
22
|
+
function $$render_inner($$renderer) {
|
|
23
|
+
$$renderer.push(`<h1 class="mb-1 text-2xl font-semibold">New ${escape_html(data.table.label)}</h1> <p class="mb-6 text-sm text-muted-foreground">${escape_html(data.table.qualifiedName)}</p> <form method="POST" class="space-y-4"><!--[-->`);
|
|
24
|
+
const each_array = ensure_array_like(data.table.columns);
|
|
25
|
+
for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
|
|
26
|
+
let col = each_array[$$index];
|
|
27
|
+
const Widget = resolveWidget(col.widget);
|
|
28
|
+
$$renderer.push(`<div>`);
|
|
29
|
+
if (Widget) {
|
|
30
|
+
$$renderer.push("<!--[-->");
|
|
31
|
+
Widget($$renderer, {
|
|
32
|
+
name: col.name,
|
|
33
|
+
label: col.label,
|
|
34
|
+
options: col.enumValues,
|
|
35
|
+
required: !col.nullable && !col.readonly && !col.isPrimaryKey,
|
|
36
|
+
readonly: col.readonly,
|
|
37
|
+
get value() {
|
|
38
|
+
return store_get($$store_subs ??= {}, "$form", form)[col.name];
|
|
39
|
+
},
|
|
40
|
+
set value($$value) {
|
|
41
|
+
store_mutate($$store_subs ??= {}, "$form", form, store_get($$store_subs ??= {}, "$form", form)[col.name] = $$value);
|
|
42
|
+
$$settled = false;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
$$renderer.push("<!--]-->");
|
|
46
|
+
} else {
|
|
47
|
+
$$renderer.push("<!--[!-->");
|
|
48
|
+
$$renderer.push("<!--]-->");
|
|
49
|
+
}
|
|
50
|
+
$$renderer.push(` `);
|
|
51
|
+
if (store_get($$store_subs ??= {}, "$errors", errors)[col.name]) {
|
|
52
|
+
$$renderer.push("<!--[0-->");
|
|
53
|
+
$$renderer.push(`<p class="mt-1 text-sm text-destructive">${escape_html(store_get($$store_subs ??= {}, "$errors", errors)[col.name])}</p>`);
|
|
54
|
+
} else $$renderer.push("<!--[-1-->");
|
|
55
|
+
$$renderer.push(`<!--]--></div>`);
|
|
56
|
+
}
|
|
57
|
+
$$renderer.push(`<!--]--> <div class="flex gap-3"><button type="submit"${attr("disabled", store_get($$store_subs ??= {}, "$submitting", submitting), true)} class="rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground disabled:opacity-50">${escape_html(store_get($$store_subs ??= {}, "$submitting", submitting) ? "Saving…" : "Save")}</button> <a${attr("href", `/tables/${data.table.qualifiedName}`)} class="rounded-md border border-border px-4 py-2 text-sm font-medium">Cancel</a></div></form>`);
|
|
58
|
+
}
|
|
59
|
+
do {
|
|
60
|
+
$$settled = true;
|
|
61
|
+
$$inner_renderer = $$renderer.copy();
|
|
62
|
+
$$render_inner($$inner_renderer);
|
|
63
|
+
} while (!$$settled);
|
|
64
|
+
$$renderer.subsume($$inner_renderer);
|
|
65
|
+
if ($$store_subs) unsubscribe_stores($$store_subs);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export { _page as default };
|
|
70
|
+
//# sourceMappingURL=_page.svelte-ClFWSFQK.js.map
|