@kozou/svelte-ui 1.0.0 → 1.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.
Files changed (157) hide show
  1. package/README.md +25 -3
  2. package/build/client/_app/immutable/assets/0._vgqT-Ja.css +2 -0
  3. package/build/client/_app/immutable/assets/0._vgqT-Ja.css.br +0 -0
  4. package/build/client/_app/immutable/assets/{0.B45CfnXC.css.gz → 0._vgqT-Ja.css.gz} +0 -0
  5. package/build/client/_app/immutable/chunks/BgT5WiOF.js +2 -0
  6. package/build/client/_app/immutable/chunks/BgT5WiOF.js.br +0 -0
  7. package/build/client/_app/immutable/chunks/BgT5WiOF.js.gz +0 -0
  8. package/build/client/_app/immutable/chunks/CCUVvlTa.js +214 -0
  9. package/build/client/_app/immutable/chunks/CCUVvlTa.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/CCUVvlTa.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/D5sfkRNZ.js +1 -0
  12. package/build/client/_app/immutable/chunks/D5sfkRNZ.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/D5sfkRNZ.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/DdJtfEcD.js +4 -0
  15. package/build/client/_app/immutable/chunks/DdJtfEcD.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/DdJtfEcD.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/{Ds-FbTMg.js → De8foa1z.js} +1 -1
  18. package/build/client/_app/immutable/chunks/De8foa1z.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/De8foa1z.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/DxikiVqj.js +1 -0
  21. package/build/client/_app/immutable/chunks/DxikiVqj.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/DxikiVqj.js.gz +0 -0
  23. package/build/client/_app/immutable/entry/app.BkKlOvdn.js +2 -0
  24. package/build/client/_app/immutable/entry/app.BkKlOvdn.js.br +0 -0
  25. package/build/client/_app/immutable/entry/app.BkKlOvdn.js.gz +0 -0
  26. package/build/client/_app/immutable/entry/start.Cjh4JaF7.js +1 -0
  27. package/build/client/_app/immutable/entry/start.Cjh4JaF7.js.br +0 -0
  28. package/build/client/_app/immutable/entry/start.Cjh4JaF7.js.gz +0 -0
  29. package/build/client/_app/immutable/nodes/0.BTi1ueXu.js +1 -0
  30. package/build/client/_app/immutable/nodes/0.BTi1ueXu.js.br +0 -0
  31. package/build/client/_app/immutable/nodes/0.BTi1ueXu.js.gz +0 -0
  32. package/build/client/_app/immutable/nodes/1.CrygsmaA.js +1 -0
  33. package/build/client/_app/immutable/nodes/1.CrygsmaA.js.br +0 -0
  34. package/build/client/_app/immutable/nodes/1.CrygsmaA.js.gz +0 -0
  35. package/build/client/_app/immutable/nodes/2.CWOXCYvQ.js +1 -0
  36. package/build/client/_app/immutable/nodes/2.CWOXCYvQ.js.br +0 -0
  37. package/build/client/_app/immutable/nodes/2.CWOXCYvQ.js.gz +0 -0
  38. package/build/client/_app/immutable/nodes/3.BfuWEZdX.js +1 -0
  39. package/build/client/_app/immutable/nodes/3.BfuWEZdX.js.br +0 -0
  40. package/build/client/_app/immutable/nodes/3.BfuWEZdX.js.gz +0 -0
  41. package/build/client/_app/immutable/nodes/4.TqsoTNiI.js +1 -0
  42. package/build/client/_app/immutable/nodes/4.TqsoTNiI.js.br +0 -0
  43. package/build/client/_app/immutable/nodes/4.TqsoTNiI.js.gz +0 -0
  44. package/build/client/_app/immutable/nodes/5.6savDm4D.js +1 -0
  45. package/build/client/_app/immutable/nodes/5.6savDm4D.js.br +0 -0
  46. package/build/client/_app/immutable/nodes/5.6savDm4D.js.gz +0 -0
  47. package/build/client/_app/immutable/nodes/6.B6xlqPuj.js +1 -0
  48. package/build/client/_app/immutable/nodes/6.B6xlqPuj.js.br +0 -0
  49. package/build/client/_app/immutable/nodes/6.B6xlqPuj.js.gz +0 -0
  50. package/build/client/_app/immutable/nodes/{7.mp1zOZZv.js → 7.CjEmXoAF.js} +1 -1
  51. package/build/client/_app/immutable/nodes/7.CjEmXoAF.js.br +1 -0
  52. package/build/client/_app/immutable/nodes/7.CjEmXoAF.js.gz +0 -0
  53. package/build/client/_app/version.json +1 -1
  54. package/build/client/_app/version.json.br +0 -0
  55. package/build/client/_app/version.json.gz +0 -0
  56. package/build/server/chunks/{0-D3i8OEah.js → 0-C4CgvBlc.js} +3 -3
  57. package/build/server/chunks/{0-D3i8OEah.js.map → 0-C4CgvBlc.js.map} +1 -1
  58. package/build/server/chunks/{1-HR1yd0wU.js → 1-B5tolhxt.js} +3 -3
  59. package/build/server/chunks/{1-HR1yd0wU.js.map → 1-B5tolhxt.js.map} +1 -1
  60. package/build/server/chunks/{2-CE6m9qid.js → 2-D9il_3ty.js} +2 -2
  61. package/build/server/chunks/{2-CE6m9qid.js.map → 2-D9il_3ty.js.map} +1 -1
  62. package/build/server/chunks/{3-BfIWDc-d.js → 3-DfrqlU53.js} +3 -3
  63. package/build/server/chunks/3-DfrqlU53.js.map +1 -0
  64. package/build/server/chunks/{4-Dqn3l8BI.js → 4-D6Y076hP.js} +46 -4
  65. package/build/server/chunks/4-D6Y076hP.js.map +1 -0
  66. package/build/server/chunks/{5-DA-bCkUw.js → 5-DOvvx6kj.js} +25 -12
  67. package/build/server/chunks/5-DOvvx6kj.js.map +1 -0
  68. package/build/server/chunks/{6-DEjxcpBy.js → 6-BJn_aKxy.js} +22 -12
  69. package/build/server/chunks/6-BJn_aKxy.js.map +1 -0
  70. package/build/server/chunks/{7-BFDTBBBE.js → 7-CKkRKfs8.js} +3 -3
  71. package/build/server/chunks/7-CKkRKfs8.js.map +1 -0
  72. package/build/server/chunks/{_page.svelte-CyAlYQ7a.js → _page.svelte-BWAo_bI_.js} +3 -3
  73. package/build/server/chunks/{_page.svelte-CyAlYQ7a.js.map → _page.svelte-BWAo_bI_.js.map} +1 -1
  74. package/build/server/chunks/_page.svelte-D_706hfC.js +167 -0
  75. package/build/server/chunks/_page.svelte-D_706hfC.js.map +1 -0
  76. package/build/server/chunks/_page.svelte-DpoimUgp.js +167 -0
  77. package/build/server/chunks/_page.svelte-DpoimUgp.js.map +1 -0
  78. package/build/server/chunks/_server.ts-C-Wy675T.js +19 -0
  79. package/build/server/chunks/_server.ts-C-Wy675T.js.map +1 -0
  80. package/build/server/chunks/{adapter-1jZYeJkL.js → adapter-CXNsjV1V.js} +22 -10
  81. package/build/server/chunks/adapter-CXNsjV1V.js.map +1 -0
  82. package/build/server/chunks/{client-B9o82f8t.js → client-_87vxA9R.js} +2 -2
  83. package/build/server/chunks/{client-B9o82f8t.js.map → client-_87vxA9R.js.map} +1 -1
  84. package/build/server/chunks/{zod-from-table-D-zpiAdX.js → composite-form-C6ci57iZ.js} +248 -6
  85. package/build/server/chunks/composite-form-C6ci57iZ.js.map +1 -0
  86. package/build/server/chunks/{error.svelte-CCf63hYR.js → error.svelte-CsN316oS.js} +3 -3
  87. package/build/server/chunks/{error.svelte-CCf63hYR.js.map → error.svelte-CsN316oS.js.map} +1 -1
  88. package/build/server/chunks/{hooks.server-gNQ4wkwm.js → hooks.server-O5zJccZI.js} +35 -22
  89. package/build/server/chunks/hooks.server-O5zJccZI.js.map +1 -0
  90. package/build/server/chunks/{internal-CCj4Us-1.js → internal-Cuea68jL.js} +3 -3
  91. package/build/server/chunks/{internal-CCj4Us-1.js.map → internal-Cuea68jL.js.map} +1 -1
  92. package/build/server/chunks/relation-options-Dzy9DaQG.js +87 -0
  93. package/build/server/chunks/relation-options-Dzy9DaQG.js.map +1 -0
  94. package/build/server/chunks/{widget-registry-CYJ6dCZP.js → widget-registry-CohQ23di.js} +282 -42
  95. package/build/server/chunks/widget-registry-CohQ23di.js.map +1 -0
  96. package/build/server/index.js +1 -1
  97. package/build/server/manifest.js +16 -9
  98. package/build/server/manifest.js.map +1 -1
  99. package/package.json +4 -4
  100. package/build/client/_app/immutable/assets/0.B45CfnXC.css +0 -2
  101. package/build/client/_app/immutable/assets/0.B45CfnXC.css.br +0 -0
  102. package/build/client/_app/immutable/chunks/1PNfJiP5.js +0 -2
  103. package/build/client/_app/immutable/chunks/1PNfJiP5.js.br +0 -0
  104. package/build/client/_app/immutable/chunks/1PNfJiP5.js.gz +0 -0
  105. package/build/client/_app/immutable/chunks/BatBMP3E.js +0 -4
  106. package/build/client/_app/immutable/chunks/BatBMP3E.js.br +0 -0
  107. package/build/client/_app/immutable/chunks/BatBMP3E.js.gz +0 -0
  108. package/build/client/_app/immutable/chunks/DhQvJhgX.js +0 -214
  109. package/build/client/_app/immutable/chunks/DhQvJhgX.js.br +0 -0
  110. package/build/client/_app/immutable/chunks/DhQvJhgX.js.gz +0 -0
  111. package/build/client/_app/immutable/chunks/Ds-FbTMg.js.br +0 -0
  112. package/build/client/_app/immutable/chunks/Ds-FbTMg.js.gz +0 -0
  113. package/build/client/_app/immutable/chunks/y9cSQmno.js +0 -1
  114. package/build/client/_app/immutable/chunks/y9cSQmno.js.br +0 -0
  115. package/build/client/_app/immutable/chunks/y9cSQmno.js.gz +0 -0
  116. package/build/client/_app/immutable/entry/app.CZ136DH2.js +0 -2
  117. package/build/client/_app/immutable/entry/app.CZ136DH2.js.br +0 -0
  118. package/build/client/_app/immutable/entry/app.CZ136DH2.js.gz +0 -0
  119. package/build/client/_app/immutable/entry/start.B2SCrcq3.js +0 -1
  120. package/build/client/_app/immutable/entry/start.B2SCrcq3.js.br +0 -0
  121. package/build/client/_app/immutable/entry/start.B2SCrcq3.js.gz +0 -0
  122. package/build/client/_app/immutable/nodes/0.DAriStmJ.js +0 -1
  123. package/build/client/_app/immutable/nodes/0.DAriStmJ.js.br +0 -0
  124. package/build/client/_app/immutable/nodes/0.DAriStmJ.js.gz +0 -0
  125. package/build/client/_app/immutable/nodes/1.C6AP-LKV.js +0 -1
  126. package/build/client/_app/immutable/nodes/1.C6AP-LKV.js.br +0 -0
  127. package/build/client/_app/immutable/nodes/1.C6AP-LKV.js.gz +0 -0
  128. package/build/client/_app/immutable/nodes/2.C3ChRVrO.js +0 -1
  129. package/build/client/_app/immutable/nodes/2.C3ChRVrO.js.br +0 -0
  130. package/build/client/_app/immutable/nodes/2.C3ChRVrO.js.gz +0 -0
  131. package/build/client/_app/immutable/nodes/3.C2gCkFBC.js +0 -1
  132. package/build/client/_app/immutable/nodes/3.C2gCkFBC.js.br +0 -0
  133. package/build/client/_app/immutable/nodes/3.C2gCkFBC.js.gz +0 -0
  134. package/build/client/_app/immutable/nodes/4.BT4cE3lU.js +0 -1
  135. package/build/client/_app/immutable/nodes/4.BT4cE3lU.js.br +0 -0
  136. package/build/client/_app/immutable/nodes/4.BT4cE3lU.js.gz +0 -0
  137. package/build/client/_app/immutable/nodes/5.q_Qsfmij.js +0 -1
  138. package/build/client/_app/immutable/nodes/5.q_Qsfmij.js.br +0 -0
  139. package/build/client/_app/immutable/nodes/5.q_Qsfmij.js.gz +0 -0
  140. package/build/client/_app/immutable/nodes/6.Ca5RA2Y5.js +0 -1
  141. package/build/client/_app/immutable/nodes/6.Ca5RA2Y5.js.br +0 -0
  142. package/build/client/_app/immutable/nodes/6.Ca5RA2Y5.js.gz +0 -0
  143. package/build/client/_app/immutable/nodes/7.mp1zOZZv.js.br +0 -1
  144. package/build/client/_app/immutable/nodes/7.mp1zOZZv.js.gz +0 -0
  145. package/build/server/chunks/3-BfIWDc-d.js.map +0 -1
  146. package/build/server/chunks/4-Dqn3l8BI.js.map +0 -1
  147. package/build/server/chunks/5-DA-bCkUw.js.map +0 -1
  148. package/build/server/chunks/6-DEjxcpBy.js.map +0 -1
  149. package/build/server/chunks/7-BFDTBBBE.js.map +0 -1
  150. package/build/server/chunks/_page.svelte-CYEmRGgG.js +0 -70
  151. package/build/server/chunks/_page.svelte-CYEmRGgG.js.map +0 -1
  152. package/build/server/chunks/_page.svelte-NvCEA5JB.js +0 -70
  153. package/build/server/chunks/_page.svelte-NvCEA5JB.js.map +0 -1
  154. package/build/server/chunks/adapter-1jZYeJkL.js.map +0 -1
  155. package/build/server/chunks/hooks.server-gNQ4wkwm.js.map +0 -1
  156. package/build/server/chunks/widget-registry-CYJ6dCZP.js.map +0 -1
  157. package/build/server/chunks/zod-from-table-D-zpiAdX.js.map +0 -1
@@ -0,0 +1,87 @@
1
+ import { e as encodeResourceId } from './resource-id-PDcQeAnc.js';
2
+ import { e as error } from './index-5kYmxIr9.js';
3
+
4
+ var MAX_RELATION_LIMIT = 100;
5
+ function clampLimit(raw) {
6
+ if (raw === null) return 20;
7
+ const parsed = Number.parseInt(raw, 10);
8
+ if (!Number.isFinite(parsed) || parsed < 1) return 20;
9
+ return Math.min(parsed, MAX_RELATION_LIMIT);
10
+ }
11
+ /**
12
+ * Validate a relation-options request against the schema and run the search.
13
+ *
14
+ * The target `resource` must be a known table and both `label` and every
15
+ * `fields` entry must be real columns of that table, so a crafted request
16
+ * cannot point the picker at an unknown resource or push arbitrary identifiers
17
+ * into the adapter's query grammar. Throws a SvelteKit `error` (400/404) on a
18
+ * bad request; the endpoint surfaces it as the HTTP status.
19
+ */
20
+ async function searchRelationOptions(schema, adapter, request) {
21
+ const { resource, label } = request;
22
+ if (resource === null || resource.length === 0) throw error(400, "relation-options requires a \"resource\" query parameter.");
23
+ if (label === null || label.length === 0) throw error(400, "relation-options requires a \"label\" query parameter.");
24
+ const target = schema.tables.find((t) => t.qualifiedName === resource);
25
+ if (target === void 0) throw error(404, `Unknown relation target: ${resource}`);
26
+ const columnNames = new Set(target.columns.map((c) => c.name));
27
+ if (!columnNames.has(label)) throw error(400, `Unknown label column "${label}" on "${resource}".`);
28
+ const searchFields = request.fields ? request.fields.split(",").map((field) => field.trim()).filter((field) => field.length > 0) : [];
29
+ for (const field of searchFields) if (!columnNames.has(field)) throw error(400, `Unknown search field "${field}" on "${resource}".`);
30
+ return adapter.searchRelation(resource, {
31
+ query: request.query ?? "",
32
+ labelField: label,
33
+ searchFields,
34
+ limit: clampLimit(request.limit)
35
+ });
36
+ }
37
+ async function loadInitialRelationOptions(adapter, relations) {
38
+ const entries = await Promise.all(relations.map(async (relation) => {
39
+ try {
40
+ const options = await adapter.searchRelation(relation.resource, {
41
+ query: "",
42
+ labelField: relation.labelField,
43
+ searchFields: relation.searchFields,
44
+ limit: 20
45
+ });
46
+ return [relation.field, options];
47
+ } catch {
48
+ return [relation.field, []];
49
+ }
50
+ }));
51
+ return Object.fromEntries(entries);
52
+ }
53
+ /** Ensure each relation's currently-stored value is selectable by prepending
54
+ * it (with a resolved label) when the first page does not already include
55
+ * it. A composite relation assembles its current value from every component
56
+ * column — in key order, so it doubles as the target's item id — and is
57
+ * skipped when any component is missing (a partially-null composite foreign
58
+ * key is not a reference). Mutates `options` in place. */
59
+ async function ensureSelectedOptions(adapter, relations, row, options) {
60
+ await Promise.all(relations.map(async (relation) => {
61
+ const keyFields = relation.keyFields ?? [relation.field];
62
+ const components = [];
63
+ for (const field of keyFields) {
64
+ const value = row[field];
65
+ if (value === null || value === void 0) return;
66
+ if (typeof value !== "string" && typeof value !== "number") return;
67
+ if (value === "") return;
68
+ components.push(value);
69
+ }
70
+ const current = keyFields.length === 1 ? components[0] : components;
71
+ const currentKey = encodeResourceId(current);
72
+ const existing = options[relation.field] ?? [];
73
+ if (existing.some((option) => encodeResourceId(option.id) === currentKey)) return;
74
+ let label = components.map(String).join(", ");
75
+ try {
76
+ const projected = (await adapter.get(relation.resource, current))[relation.labelField];
77
+ if (projected !== null && projected !== void 0) label = String(projected);
78
+ } catch {}
79
+ options[relation.field] = [{
80
+ id: current,
81
+ label
82
+ }, ...existing];
83
+ }));
84
+ }
85
+
86
+ export { ensureSelectedOptions as e, loadInitialRelationOptions as l, searchRelationOptions as s };
87
+ //# sourceMappingURL=relation-options-Dzy9DaQG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation-options-Dzy9DaQG.js","sources":["../../../.svelte-kit/adapter-node/chunks/relation-options.js"],"sourcesContent":["import { t as encodeResourceId } from \"./resource-id.js\";\nimport { error } from \"@sveltejs/kit\";\nvar MAX_RELATION_LIMIT = 100;\nfunction clampLimit(raw) {\n\tif (raw === null) return 20;\n\tconst parsed = Number.parseInt(raw, 10);\n\tif (!Number.isFinite(parsed) || parsed < 1) return 20;\n\treturn Math.min(parsed, MAX_RELATION_LIMIT);\n}\n/**\n* Validate a relation-options request against the schema and run the search.\n*\n* The target `resource` must be a known table and both `label` and every\n* `fields` entry must be real columns of that table, so a crafted request\n* cannot point the picker at an unknown resource or push arbitrary identifiers\n* into the adapter's query grammar. Throws a SvelteKit `error` (400/404) on a\n* bad request; the endpoint surfaces it as the HTTP status.\n*/\nasync function searchRelationOptions(schema, adapter, request) {\n\tconst { resource, label } = request;\n\tif (resource === null || resource.length === 0) throw error(400, \"relation-options requires a \\\"resource\\\" query parameter.\");\n\tif (label === null || label.length === 0) throw error(400, \"relation-options requires a \\\"label\\\" query parameter.\");\n\tconst target = schema.tables.find((t) => t.qualifiedName === resource);\n\tif (target === void 0) throw error(404, `Unknown relation target: ${resource}`);\n\tconst columnNames = new Set(target.columns.map((c) => c.name));\n\tif (!columnNames.has(label)) throw error(400, `Unknown label column \"${label}\" on \"${resource}\".`);\n\tconst searchFields = request.fields ? request.fields.split(\",\").map((field) => field.trim()).filter((field) => field.length > 0) : [];\n\tfor (const field of searchFields) if (!columnNames.has(field)) throw error(400, `Unknown search field \"${field}\" on \"${resource}\".`);\n\treturn adapter.searchRelation(resource, {\n\t\tquery: request.query ?? \"\",\n\t\tlabelField: label,\n\t\tsearchFields,\n\t\tlimit: clampLimit(request.limit)\n\t});\n}\nasync function loadInitialRelationOptions(adapter, relations) {\n\tconst entries = await Promise.all(relations.map(async (relation) => {\n\t\ttry {\n\t\t\tconst options = await adapter.searchRelation(relation.resource, {\n\t\t\t\tquery: \"\",\n\t\t\t\tlabelField: relation.labelField,\n\t\t\t\tsearchFields: relation.searchFields,\n\t\t\t\tlimit: 20\n\t\t\t});\n\t\t\treturn [relation.field, options];\n\t\t} catch {\n\t\t\treturn [relation.field, []];\n\t\t}\n\t}));\n\treturn Object.fromEntries(entries);\n}\n/** Ensure each relation's currently-stored value is selectable by prepending\n* it (with a resolved label) when the first page does not already include\n* it. A composite relation assembles its current value from every component\n* column — in key order, so it doubles as the target's item id — and is\n* skipped when any component is missing (a partially-null composite foreign\n* key is not a reference). Mutates `options` in place. */\nasync function ensureSelectedOptions(adapter, relations, row, options) {\n\tawait Promise.all(relations.map(async (relation) => {\n\t\tconst keyFields = relation.keyFields ?? [relation.field];\n\t\tconst components = [];\n\t\tfor (const field of keyFields) {\n\t\t\tconst value = row[field];\n\t\t\tif (value === null || value === void 0) return;\n\t\t\tif (typeof value !== \"string\" && typeof value !== \"number\") return;\n\t\t\tif (value === \"\") return;\n\t\t\tcomponents.push(value);\n\t\t}\n\t\tconst current = keyFields.length === 1 ? components[0] : components;\n\t\tconst currentKey = encodeResourceId(current);\n\t\tconst existing = options[relation.field] ?? [];\n\t\tif (existing.some((option) => encodeResourceId(option.id) === currentKey)) return;\n\t\tlet label = components.map(String).join(\", \");\n\t\ttry {\n\t\t\tconst projected = (await adapter.get(relation.resource, current))[relation.labelField];\n\t\t\tif (projected !== null && projected !== void 0) label = String(projected);\n\t\t} catch {}\n\t\toptions[relation.field] = [{\n\t\t\tid: current,\n\t\t\tlabel\n\t\t}, ...existing];\n\t}));\n}\n//#endregion\nexport { loadInitialRelationOptions as n, searchRelationOptions as r, ensureSelectedOptions as t };\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,284 @@
1
- import { q as escape_html, d as attr, e as bind_props, o as ensure_array_like } from './dev-yFiAtg5l.js';
1
+ import { d as attr, q as escape_html, o as ensure_array_like, e as bind_props, m as derived } from './dev-yFiAtg5l.js';
2
+ import { e as encodeResourceId } from './resource-id-PDcQeAnc.js';
3
+ import { i as isPickableOption, c as compositeParamName, C as COMPOSITE_CLEAR_VALUE } from './composite-form-C6ci57iZ.js';
2
4
 
5
+ //#region src/lib/form/relation-options-client.ts
6
+ var RELATION_OPTIONS_PATH = "/relation-options";
7
+ /** Build the `/relation-options` query string for a relation search. */
8
+ function relationOptionsUrl(resource, params) {
9
+ const query = new URLSearchParams();
10
+ query.set("resource", resource);
11
+ query.set("label", params.labelField);
12
+ if (params.searchFields.length > 0) query.set("fields", params.searchFields.join(","));
13
+ if (params.query.length > 0) query.set("q", params.query);
14
+ if (params.limit !== void 0) query.set("limit", String(params.limit));
15
+ return `${RELATION_OPTIONS_PATH}?${query.toString()}`;
16
+ }
17
+ async function fetchRelationOptions(fetchFn, resource, params) {
18
+ const response = await fetchFn(relationOptionsUrl(resource, params));
19
+ if (!response.ok) return [];
20
+ const body = await response.json();
21
+ return Array.isArray(body.options) ? body.options : [];
22
+ }
23
+ //#endregion
24
+ //#region src/lib/form/relation-search.ts
25
+ var DEFAULT_DEBOUNCE_MS = 200;
26
+ var CANCELLED_REASON = "relation-search:cancelled";
27
+ var RelationSearchCancelledError = class extends Error {
28
+ constructor() {
29
+ super(CANCELLED_REASON);
30
+ this.name = "RelationSearchCancelledError";
31
+ }
32
+ };
33
+ function createRelationSearch(opts) {
34
+ const debounceMs = opts.debounceMs ?? DEFAULT_DEBOUNCE_MS;
35
+ const setTimeoutFn = opts.setTimeoutFn ?? globalThis.setTimeout;
36
+ const clearTimeoutFn = opts.clearTimeoutFn ?? globalThis.clearTimeout;
37
+ let pendingHandle = null;
38
+ let pendingReject = null;
39
+ let latestSeq = 0;
40
+ function cancelInternal() {
41
+ latestSeq += 1;
42
+ if (pendingHandle !== null) {
43
+ clearTimeoutFn(pendingHandle);
44
+ pendingHandle = null;
45
+ }
46
+ if (pendingReject !== null) {
47
+ pendingReject(new RelationSearchCancelledError());
48
+ pendingReject = null;
49
+ }
50
+ }
51
+ return {
52
+ search(query) {
53
+ cancelInternal();
54
+ const seq = latestSeq;
55
+ return new Promise((resolve, reject) => {
56
+ pendingReject = reject;
57
+ pendingHandle = setTimeoutFn(() => {
58
+ pendingHandle = null;
59
+ pendingReject = null;
60
+ opts.adapter.searchRelation(opts.resource, {
61
+ query,
62
+ labelField: opts.labelField,
63
+ searchFields: opts.searchFields,
64
+ limit: opts.limit
65
+ }).then((rows) => seq === latestSeq ? resolve(rows) : reject(new RelationSearchCancelledError()), (err) => seq === latestSeq ? reject(err) : reject(new RelationSearchCancelledError()));
66
+ }, debounceMs);
67
+ });
68
+ },
69
+ cancel() {
70
+ cancelInternal();
71
+ }
72
+ };
73
+ }
74
+ //#endregion
75
+ //#region src/lib/form/widgets/relation-select-composite-field.svelte
76
+ function Relation_select_composite_field($$renderer, $$props) {
77
+ $$renderer.component(($$renderer) => {
78
+ /** Base for the select's DOM id (the relation's first column). */
79
+ /** "schema.table" the picker searches. */
80
+ /** Target column shown as each option's label. */
81
+ /** Target columns the substring search filters on. */
82
+ /** Server-rendered first page (plus the current value on edit) so the
83
+ * picker has rows before the browser issues any request. */
84
+ /** Current component values, in the target's primary-key declaration
85
+ * order (the order option-id components use). */
86
+ /** Receives the picked option's components (same order), or `null` when
87
+ * the operator clears an optional relation. */
88
+ let { name, label, resource, labelField, searchFields, initialOptions, values, onpick, required = false, readonly = false, limit = 20 } = $$props;
89
+ let options = initialOptions.filter(isPickableOption);
90
+ let query = "";
91
+ const known = /* @__PURE__ */ new Map();
92
+ function remember(option) {
93
+ const components = Array.isArray(option.id) ? option.id : [option.id];
94
+ known.set(encodeResourceId(option.id), {
95
+ label: option.label,
96
+ components
97
+ });
98
+ }
99
+ for (const option of initialOptions.filter(isPickableOption)) remember(option);
100
+ const selectedKey = derived(() => {
101
+ if (values.length > 0 && values.every((value) => value === "")) return COMPOSITE_CLEAR_VALUE;
102
+ const components = [];
103
+ for (const value of values) {
104
+ if (value === null || value === void 0) return "";
105
+ if (typeof value !== "string" && typeof value !== "number") return "";
106
+ components.push(value);
107
+ }
108
+ return encodeResourceId(components);
109
+ });
110
+ createRelationSearch({
111
+ adapter: { searchRelation: (target, params) => fetchRelationOptions((url) => fetch(url), target, params) },
112
+ resource,
113
+ labelField,
114
+ searchFields,
115
+ limit
116
+ });
117
+ function handleChange(event) {
118
+ const key = event.target.value;
119
+ if (key === "__clear__") {
120
+ onpick(null);
121
+ return;
122
+ }
123
+ if (key === "") return;
124
+ const picked = known.get(key);
125
+ if (picked !== void 0) onpick(picked.components);
126
+ }
127
+ const selectId = derived(() => `relation-${name}`);
128
+ $$renderer.push(`<div class="block"><label${attr("for", selectId())} class="mb-1 block text-sm font-medium">${escape_html(label)}`);
129
+ if (required) {
130
+ $$renderer.push("<!--[0-->");
131
+ $$renderer.push(`<span class="text-destructive" aria-hidden="true">*</span>`);
132
+ } else $$renderer.push("<!--[-1-->");
133
+ $$renderer.push(`<!--]--></label> <input type="text" placeholder="Search…"${attr("aria-label", `Search ${label}`)}${attr("value", query)}${attr("disabled", readonly, true)} class="mb-2 w-full rounded-md border border-input bg-background px-3 py-2 text-sm"/> `);
134
+ $$renderer.select({
135
+ id: selectId(),
136
+ name: compositeParamName(name),
137
+ required,
138
+ disabled: readonly,
139
+ value: selectedKey(),
140
+ onchange: handleChange,
141
+ class: "w-full rounded-md border border-input bg-background px-3 py-2 text-sm"
142
+ }, ($$renderer) => {
143
+ $$renderer.option({
144
+ value: "",
145
+ disabled: true
146
+ }, ($$renderer) => {
147
+ $$renderer.push(`Select…`);
148
+ });
149
+ if (!required) {
150
+ $$renderer.push("<!--[0-->");
151
+ $$renderer.option({ value: COMPOSITE_CLEAR_VALUE }, ($$renderer) => {
152
+ $$renderer.push(`--`);
153
+ });
154
+ } else $$renderer.push("<!--[-1-->");
155
+ $$renderer.push(`<!--]--><!--[-->`);
156
+ const each_array = ensure_array_like(options);
157
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
158
+ let option = each_array[$$index];
159
+ $$renderer.option({ value: encodeResourceId(option.id) }, ($$renderer) => {
160
+ $$renderer.push(`${escape_html(option.label)}`);
161
+ });
162
+ }
163
+ $$renderer.push(`<!--]-->`);
164
+ });
165
+ $$renderer.push(`</div>`);
166
+ });
167
+ }
168
+ //#endregion
169
+ //#region src/lib/form/widgets/relation-select.svelte
170
+ function Relation_select($$renderer, $$props) {
171
+ $$renderer.component(($$renderer) => {
172
+ let { name, label, options, value = "", required = false, readonly = false, onsearch } = $$props;
173
+ let query = "";
174
+ const selectId = derived(() => `relation-${name}`);
175
+ $$renderer.push(`<div class="block"><label${attr("for", selectId())} class="mb-1 block text-sm font-medium">${escape_html(label)}`);
176
+ if (required) {
177
+ $$renderer.push("<!--[0-->");
178
+ $$renderer.push(`<span class="text-destructive" aria-hidden="true">*</span>`);
179
+ } else $$renderer.push("<!--[-1-->");
180
+ $$renderer.push(`<!--]--></label> `);
181
+ if (onsearch) {
182
+ $$renderer.push("<!--[0-->");
183
+ $$renderer.push(`<input type="text" placeholder="Search…"${attr("aria-label", `Search ${label}`)}${attr("value", query)}${attr("disabled", readonly, true)} class="mb-2 w-full rounded-md border border-input bg-background px-3 py-2 text-sm"/>`);
184
+ } else $$renderer.push("<!--[-1-->");
185
+ $$renderer.push(`<!--]--> `);
186
+ $$renderer.select({
187
+ id: selectId(),
188
+ name,
189
+ required,
190
+ disabled: readonly,
191
+ value,
192
+ class: "w-full rounded-md border border-input bg-background px-3 py-2 text-sm"
193
+ }, ($$renderer) => {
194
+ if (!required) {
195
+ $$renderer.push("<!--[0-->");
196
+ $$renderer.option({ value: "" }, ($$renderer) => {
197
+ $$renderer.push(`--`);
198
+ });
199
+ } else $$renderer.push("<!--[-1-->");
200
+ $$renderer.push(`<!--]--><!--[-->`);
201
+ const each_array = ensure_array_like(options);
202
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
203
+ let option = each_array[$$index];
204
+ $$renderer.option({ value: option.id }, ($$renderer) => {
205
+ $$renderer.push(`${escape_html(option.label)}`);
206
+ });
207
+ }
208
+ $$renderer.push(`<!--]-->`);
209
+ });
210
+ $$renderer.push(`</div>`);
211
+ bind_props($$props, { value });
212
+ });
213
+ }
214
+ //#endregion
215
+ //#region src/lib/form/widgets/relation-select-field.svelte
216
+ function Relation_select_field($$renderer, $$props) {
217
+ $$renderer.component(($$renderer) => {
218
+ /** "schema.table" the picker searches. */
219
+ /** Target column shown as each option's label. */
220
+ /** Target columns the substring search filters on. */
221
+ /** Server-rendered first page (plus the current value on edit) so the
222
+ * picker has rows before the browser issues any request. */
223
+ let { name, label, resource, labelField, searchFields, initialOptions, value = "", required = false, readonly = false, limit = 20 } = $$props;
224
+ let options = [...initialOptions];
225
+ const known = /* @__PURE__ */ new Map();
226
+ for (const option of initialOptions) known.set(encodeResourceId(option.id), option.label);
227
+ const search = createRelationSearch({
228
+ adapter: { searchRelation: (target, params) => fetchRelationOptions((url) => fetch(url), target, params) },
229
+ resource,
230
+ labelField,
231
+ searchFields,
232
+ limit
233
+ });
234
+ function withSelected(results) {
235
+ if (value === "" || value === null || value === void 0) return results;
236
+ const selected = value;
237
+ const selectedKey = encodeResourceId(selected);
238
+ if (results.some((option) => encodeResourceId(option.id) === selectedKey)) return results;
239
+ const selectedLabel = known.get(selectedKey);
240
+ if (selectedLabel === void 0) return results;
241
+ return [{
242
+ id: selected,
243
+ label: selectedLabel
244
+ }, ...results];
245
+ }
246
+ async function handleSearch(query) {
247
+ try {
248
+ const results = await search.search(query);
249
+ for (const option of results) known.set(encodeResourceId(option.id), option.label);
250
+ options = withSelected(results);
251
+ } catch {}
252
+ }
253
+ let $$settled = true;
254
+ let $$inner_renderer;
255
+ function $$render_inner($$renderer) {
256
+ Relation_select($$renderer, {
257
+ name,
258
+ label,
259
+ options,
260
+ required,
261
+ readonly,
262
+ onsearch: handleSearch,
263
+ get value() {
264
+ return value;
265
+ },
266
+ set value($$value) {
267
+ value = $$value;
268
+ $$settled = false;
269
+ }
270
+ });
271
+ }
272
+ do {
273
+ $$settled = true;
274
+ $$inner_renderer = $$renderer.copy();
275
+ $$render_inner($$inner_renderer);
276
+ } while (!$$settled);
277
+ $$renderer.subsume($$inner_renderer);
278
+ bind_props($$props, { value });
279
+ });
280
+ }
281
+ //#endregion
3
282
  //#region src/lib/form/widgets/boolean.svelte
4
283
  function Boolean($$renderer, $$props) {
5
284
  $$renderer.component(($$renderer) => {
@@ -135,45 +414,6 @@ function Number($$renderer, $$props) {
135
414
  });
136
415
  }
137
416
  //#endregion
138
- //#region src/lib/form/widgets/relation-select.svelte
139
- function Relation_select($$renderer, $$props) {
140
- $$renderer.component(($$renderer) => {
141
- let { name, label, options, value = "", required = false, readonly = false, onsearch } = $$props;
142
- let query = "";
143
- $$renderer.push(`<label class="block"><span class="mb-1 block text-sm font-medium">${escape_html(label)}`);
144
- if (required) {
145
- $$renderer.push("<!--[0-->");
146
- $$renderer.push(`<span class="text-destructive" aria-hidden="true">*</span>`);
147
- } else $$renderer.push("<!--[-1-->");
148
- $$renderer.push(`<!--]--></span> <input type="text" placeholder="Search…"${attr("value", query)}${attr("disabled", readonly, true)} class="mb-2 w-full rounded-md border border-input bg-background px-3 py-2 text-sm"/> `);
149
- $$renderer.select({
150
- name,
151
- required,
152
- disabled: readonly,
153
- value,
154
- class: "w-full rounded-md border border-input bg-background px-3 py-2 text-sm"
155
- }, ($$renderer) => {
156
- if (!required) {
157
- $$renderer.push("<!--[0-->");
158
- $$renderer.option({ value: "" }, ($$renderer) => {
159
- $$renderer.push(`--`);
160
- });
161
- } else $$renderer.push("<!--[-1-->");
162
- $$renderer.push(`<!--]--><!--[-->`);
163
- const each_array = ensure_array_like(options);
164
- for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
165
- let option = each_array[$$index];
166
- $$renderer.option({ value: option.id }, ($$renderer) => {
167
- $$renderer.push(`${escape_html(option.label)}`);
168
- });
169
- }
170
- $$renderer.push(`<!--]-->`);
171
- });
172
- $$renderer.push(`</label>`);
173
- bind_props($$props, { value });
174
- });
175
- }
176
- //#endregion
177
417
  //#region src/lib/form/widgets/text.svelte
178
418
  function Text($$renderer, $$props) {
179
419
  $$renderer.component(($$renderer) => {
@@ -238,5 +478,5 @@ function resolveWidget(widget) {
238
478
  return widgetRegistry[widget] ?? Text;
239
479
  }
240
480
 
241
- export { resolveWidget as r };
242
- //# sourceMappingURL=widget-registry-CYJ6dCZP.js.map
481
+ export { Relation_select_composite_field as R, Relation_select_field as a, resolveWidget as r };
482
+ //# sourceMappingURL=widget-registry-CohQ23di.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-registry-CohQ23di.js","sources":["../../../.svelte-kit/adapter-node/chunks/widget-registry.js"],"sourcesContent":["import { H as escape_html, V as attr, i as ensure_array_like, n as bind_props, r as derived } from \"./dev.js\";\nimport { t as encodeResourceId } from \"./resource-id.js\";\nimport { i as isPickableOption, n as compositeParamName, t as COMPOSITE_CLEAR_VALUE } from \"./relation-field-config.js\";\n//#region src/lib/form/relation-options-client.ts\nvar RELATION_OPTIONS_PATH = \"/relation-options\";\n/** Build the `/relation-options` query string for a relation search. */\nfunction relationOptionsUrl(resource, params) {\n\tconst query = new URLSearchParams();\n\tquery.set(\"resource\", resource);\n\tquery.set(\"label\", params.labelField);\n\tif (params.searchFields.length > 0) query.set(\"fields\", params.searchFields.join(\",\"));\n\tif (params.query.length > 0) query.set(\"q\", params.query);\n\tif (params.limit !== void 0) query.set(\"limit\", String(params.limit));\n\treturn `${RELATION_OPTIONS_PATH}?${query.toString()}`;\n}\nasync function fetchRelationOptions(fetchFn, resource, params) {\n\tconst response = await fetchFn(relationOptionsUrl(resource, params));\n\tif (!response.ok) return [];\n\tconst body = await response.json();\n\treturn Array.isArray(body.options) ? body.options : [];\n}\n//#endregion\n//#region src/lib/form/relation-search.ts\nvar DEFAULT_DEBOUNCE_MS = 200;\nvar CANCELLED_REASON = \"relation-search:cancelled\";\nvar RelationSearchCancelledError = class extends Error {\n\tconstructor() {\n\t\tsuper(CANCELLED_REASON);\n\t\tthis.name = \"RelationSearchCancelledError\";\n\t}\n};\nfunction createRelationSearch(opts) {\n\tconst debounceMs = opts.debounceMs ?? DEFAULT_DEBOUNCE_MS;\n\tconst setTimeoutFn = opts.setTimeoutFn ?? globalThis.setTimeout;\n\tconst clearTimeoutFn = opts.clearTimeoutFn ?? globalThis.clearTimeout;\n\tlet pendingHandle = null;\n\tlet pendingReject = null;\n\tlet latestSeq = 0;\n\tfunction cancelInternal() {\n\t\tlatestSeq += 1;\n\t\tif (pendingHandle !== null) {\n\t\t\tclearTimeoutFn(pendingHandle);\n\t\t\tpendingHandle = null;\n\t\t}\n\t\tif (pendingReject !== null) {\n\t\t\tpendingReject(new RelationSearchCancelledError());\n\t\t\tpendingReject = null;\n\t\t}\n\t}\n\treturn {\n\t\tsearch(query) {\n\t\t\tcancelInternal();\n\t\t\tconst seq = latestSeq;\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tpendingReject = reject;\n\t\t\t\tpendingHandle = setTimeoutFn(() => {\n\t\t\t\t\tpendingHandle = null;\n\t\t\t\t\tpendingReject = null;\n\t\t\t\t\topts.adapter.searchRelation(opts.resource, {\n\t\t\t\t\t\tquery,\n\t\t\t\t\t\tlabelField: opts.labelField,\n\t\t\t\t\t\tsearchFields: opts.searchFields,\n\t\t\t\t\t\tlimit: opts.limit\n\t\t\t\t\t}).then((rows) => seq === latestSeq ? resolve(rows) : reject(new RelationSearchCancelledError()), (err) => seq === latestSeq ? reject(err) : reject(new RelationSearchCancelledError()));\n\t\t\t\t}, debounceMs);\n\t\t\t});\n\t\t},\n\t\tcancel() {\n\t\t\tcancelInternal();\n\t\t}\n\t};\n}\n//#endregion\n//#region src/lib/form/widgets/relation-select-composite-field.svelte\nfunction Relation_select_composite_field($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\t/** Base for the select's DOM id (the relation's first column). */\n\t\t/** \"schema.table\" the picker searches. */\n\t\t/** Target column shown as each option's label. */\n\t\t/** Target columns the substring search filters on. */\n\t\t/** Server-rendered first page (plus the current value on edit) so the\n\t\t* picker has rows before the browser issues any request. */\n\t\t/** Current component values, in the target's primary-key declaration\n\t\t* order (the order option-id components use). */\n\t\t/** Receives the picked option's components (same order), or `null` when\n\t\t* the operator clears an optional relation. */\n\t\tlet { name, label, resource, labelField, searchFields, initialOptions, values, onpick, required = false, readonly = false, limit = 20 } = $$props;\n\t\tlet options = initialOptions.filter(isPickableOption);\n\t\tlet query = \"\";\n\t\tconst known = /* @__PURE__ */ new Map();\n\t\tfunction remember(option) {\n\t\t\tconst components = Array.isArray(option.id) ? option.id : [option.id];\n\t\t\tknown.set(encodeResourceId(option.id), {\n\t\t\t\tlabel: option.label,\n\t\t\t\tcomponents\n\t\t\t});\n\t\t}\n\t\tfor (const option of initialOptions.filter(isPickableOption)) remember(option);\n\t\tconst selectedKey = derived(() => {\n\t\t\tif (values.length > 0 && values.every((value) => value === \"\")) return COMPOSITE_CLEAR_VALUE;\n\t\t\tconst components = [];\n\t\t\tfor (const value of values) {\n\t\t\t\tif (value === null || value === void 0) return \"\";\n\t\t\t\tif (typeof value !== \"string\" && typeof value !== \"number\") return \"\";\n\t\t\t\tcomponents.push(value);\n\t\t\t}\n\t\t\treturn encodeResourceId(components);\n\t\t});\n\t\tcreateRelationSearch({\n\t\t\tadapter: { searchRelation: (target, params) => fetchRelationOptions((url) => fetch(url), target, params) },\n\t\t\tresource,\n\t\t\tlabelField,\n\t\t\tsearchFields,\n\t\t\tlimit\n\t\t});\n\t\tfunction handleChange(event) {\n\t\t\tconst key = event.target.value;\n\t\t\tif (key === \"__clear__\") {\n\t\t\t\tonpick(null);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (key === \"\") return;\n\t\t\tconst picked = known.get(key);\n\t\t\tif (picked !== void 0) onpick(picked.components);\n\t\t}\n\t\tconst selectId = derived(() => `relation-${name}`);\n\t\t$$renderer.push(`<div class=\"block\"><label${attr(\"for\", selectId())} class=\"mb-1 block text-sm font-medium\">${escape_html(label)}`);\n\t\tif (required) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<span class=\"text-destructive\" aria-hidden=\"true\">*</span>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></label> <input type=\"text\" placeholder=\"Search…\"${attr(\"aria-label\", `Search ${label}`)}${attr(\"value\", query)}${attr(\"disabled\", readonly, true)} class=\"mb-2 w-full rounded-md border border-input bg-background px-3 py-2 text-sm\"/> `);\n\t\t$$renderer.select({\n\t\t\tid: selectId(),\n\t\t\tname: compositeParamName(name),\n\t\t\trequired,\n\t\t\tdisabled: readonly,\n\t\t\tvalue: selectedKey(),\n\t\t\tonchange: handleChange,\n\t\t\tclass: \"w-full rounded-md border border-input bg-background px-3 py-2 text-sm\"\n\t\t}, ($$renderer) => {\n\t\t\t$$renderer.option({\n\t\t\t\tvalue: \"\",\n\t\t\t\tdisabled: true\n\t\t\t}, ($$renderer) => {\n\t\t\t\t$$renderer.push(`Select…`);\n\t\t\t});\n\t\t\tif (!required) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.option({ value: COMPOSITE_CLEAR_VALUE }, ($$renderer) => {\n\t\t\t\t\t$$renderer.push(`--`);\n\t\t\t\t});\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--><!--[-->`);\n\t\t\tconst each_array = ensure_array_like(options);\n\t\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\t\tlet option = each_array[$$index];\n\t\t\t\t$$renderer.option({ value: encodeResourceId(option.id) }, ($$renderer) => {\n\t\t\t\t\t$$renderer.push(`${escape_html(option.label)}`);\n\t\t\t\t});\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]-->`);\n\t\t});\n\t\t$$renderer.push(`</div>`);\n\t});\n}\n//#endregion\n//#region src/lib/form/widgets/relation-select.svelte\nfunction Relation_select($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { name, label, options, value = \"\", required = false, readonly = false, onsearch } = $$props;\n\t\tlet query = \"\";\n\t\tconst selectId = derived(() => `relation-${name}`);\n\t\t$$renderer.push(`<div class=\"block\"><label${attr(\"for\", selectId())} class=\"mb-1 block text-sm font-medium\">${escape_html(label)}`);\n\t\tif (required) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<span class=\"text-destructive\" aria-hidden=\"true\">*</span>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></label> `);\n\t\tif (onsearch) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<input type=\"text\" placeholder=\"Search…\"${attr(\"aria-label\", `Search ${label}`)}${attr(\"value\", query)}${attr(\"disabled\", readonly, true)} class=\"mb-2 w-full rounded-md border border-input bg-background px-3 py-2 text-sm\"/>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> `);\n\t\t$$renderer.select({\n\t\t\tid: selectId(),\n\t\t\tname,\n\t\t\trequired,\n\t\t\tdisabled: readonly,\n\t\t\tvalue,\n\t\t\tclass: \"w-full rounded-md border border-input bg-background px-3 py-2 text-sm\"\n\t\t}, ($$renderer) => {\n\t\t\tif (!required) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.option({ value: \"\" }, ($$renderer) => {\n\t\t\t\t\t$$renderer.push(`--`);\n\t\t\t\t});\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--><!--[-->`);\n\t\t\tconst each_array = ensure_array_like(options);\n\t\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\t\tlet option = each_array[$$index];\n\t\t\t\t$$renderer.option({ value: option.id }, ($$renderer) => {\n\t\t\t\t\t$$renderer.push(`${escape_html(option.label)}`);\n\t\t\t\t});\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]-->`);\n\t\t});\n\t\t$$renderer.push(`</div>`);\n\t\tbind_props($$props, { value });\n\t});\n}\n//#endregion\n//#region src/lib/form/widgets/relation-select-field.svelte\nfunction Relation_select_field($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\t/** \"schema.table\" the picker searches. */\n\t\t/** Target column shown as each option's label. */\n\t\t/** Target columns the substring search filters on. */\n\t\t/** Server-rendered first page (plus the current value on edit) so the\n\t\t* picker has rows before the browser issues any request. */\n\t\tlet { name, label, resource, labelField, searchFields, initialOptions, value = \"\", required = false, readonly = false, limit = 20 } = $$props;\n\t\tlet options = [...initialOptions];\n\t\tconst known = /* @__PURE__ */ new Map();\n\t\tfor (const option of initialOptions) known.set(encodeResourceId(option.id), option.label);\n\t\tconst search = createRelationSearch({\n\t\t\tadapter: { searchRelation: (target, params) => fetchRelationOptions((url) => fetch(url), target, params) },\n\t\t\tresource,\n\t\t\tlabelField,\n\t\t\tsearchFields,\n\t\t\tlimit\n\t\t});\n\t\tfunction withSelected(results) {\n\t\t\tif (value === \"\" || value === null || value === void 0) return results;\n\t\t\tconst selected = value;\n\t\t\tconst selectedKey = encodeResourceId(selected);\n\t\t\tif (results.some((option) => encodeResourceId(option.id) === selectedKey)) return results;\n\t\t\tconst selectedLabel = known.get(selectedKey);\n\t\t\tif (selectedLabel === void 0) return results;\n\t\t\treturn [{\n\t\t\t\tid: selected,\n\t\t\t\tlabel: selectedLabel\n\t\t\t}, ...results];\n\t\t}\n\t\tasync function handleSearch(query) {\n\t\t\ttry {\n\t\t\t\tconst results = await search.search(query);\n\t\t\t\tfor (const option of results) known.set(encodeResourceId(option.id), option.label);\n\t\t\t\toptions = withSelected(results);\n\t\t\t} catch {}\n\t\t}\n\t\tlet $$settled = true;\n\t\tlet $$inner_renderer;\n\t\tfunction $$render_inner($$renderer) {\n\t\t\tRelation_select($$renderer, {\n\t\t\t\tname,\n\t\t\t\tlabel,\n\t\t\t\toptions,\n\t\t\t\trequired,\n\t\t\t\treadonly,\n\t\t\t\tonsearch: handleSearch,\n\t\t\t\tget value() {\n\t\t\t\t\treturn value;\n\t\t\t\t},\n\t\t\t\tset value($$value) {\n\t\t\t\t\tvalue = $$value;\n\t\t\t\t\t$$settled = false;\n\t\t\t\t}\n\t\t\t});\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\tbind_props($$props, { value });\n\t});\n}\n//#endregion\n//#region src/lib/form/widgets/boolean.svelte\nfunction Boolean($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { name, label, value = false, readonly = false } = $$props;\n\t\t$$renderer.push(`<label class=\"flex items-center gap-2\"><input type=\"checkbox\"${attr(\"name\", name)}${attr(\"disabled\", readonly, true)}${attr(\"checked\", value, true)} class=\"h-4 w-4 rounded border border-input bg-background\"/> <span class=\"text-sm font-medium\">${escape_html(label)}</span></label>`);\n\t\tbind_props($$props, { value });\n\t});\n}\n//#endregion\n//#region src/lib/form/widgets/date.svelte\nfunction Date($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { name, label, value = \"\", required = false, readonly = false } = $$props;\n\t\t$$renderer.push(`<label class=\"block\"><span class=\"mb-1 block text-sm font-medium\">${escape_html(label)}`);\n\t\tif (required) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<span class=\"text-destructive\" aria-hidden=\"true\">*</span>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></span> <input type=\"date\"${attr(\"name\", name)}${attr(\"required\", required, true)}${attr(\"readonly\", readonly, true)}${attr(\"value\", value)} class=\"w-full rounded-md border border-input bg-background px-3 py-2 text-sm\"/></label>`);\n\t\tbind_props($$props, { value });\n\t});\n}\n//#endregion\n//#region src/lib/form/widgets/datetime.svelte\nfunction Datetime($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { name, label, value = \"\", required = false, readonly = false } = $$props;\n\t\t$$renderer.push(`<label class=\"block\"><span class=\"mb-1 block text-sm font-medium\">${escape_html(label)}`);\n\t\tif (required) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<span class=\"text-destructive\" aria-hidden=\"true\">*</span>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></span> <input type=\"datetime-local\"${attr(\"name\", name)}${attr(\"required\", required, true)}${attr(\"readonly\", readonly, true)}${attr(\"value\", value)} class=\"w-full rounded-md border border-input bg-background px-3 py-2 text-sm\"/></label>`);\n\t\tbind_props($$props, { value });\n\t});\n}\n//#endregion\n//#region src/lib/form/widgets/enum-select.svelte\nfunction Enum_select($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { name, label, options, value = \"\", required = false, readonly = false } = $$props;\n\t\t$$renderer.push(`<label class=\"block\"><span class=\"mb-1 block text-sm font-medium\">${escape_html(label)}`);\n\t\tif (required) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<span class=\"text-destructive\" aria-hidden=\"true\">*</span>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></span> `);\n\t\t$$renderer.select({\n\t\t\tname,\n\t\t\trequired,\n\t\t\tdisabled: readonly,\n\t\t\tvalue,\n\t\t\tclass: \"w-full rounded-md border border-input bg-background px-3 py-2 text-sm\"\n\t\t}, ($$renderer) => {\n\t\t\tif (!required) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.option({ value: \"\" }, ($$renderer) => {\n\t\t\t\t\t$$renderer.push(`--`);\n\t\t\t\t});\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--><!--[-->`);\n\t\t\tconst each_array = ensure_array_like(options);\n\t\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\t\tlet option = each_array[$$index];\n\t\t\t\t$$renderer.option({ value: option }, ($$renderer) => {\n\t\t\t\t\t$$renderer.push(`${escape_html(option)}`);\n\t\t\t\t});\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]-->`);\n\t\t});\n\t\t$$renderer.push(`</label>`);\n\t\tbind_props($$props, { value });\n\t});\n}\n//#endregion\n//#region src/lib/form/widgets/image-url.svelte\nfunction Image_url($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { name, label, value = \"\", required = false, placeholder = \"https://…\", readonly = false } = $$props;\n\t\t$$renderer.push(`<label class=\"block\"><span class=\"mb-1 block text-sm font-medium\">${escape_html(label)}`);\n\t\tif (required) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<span class=\"text-destructive\" aria-hidden=\"true\">*</span>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></span> <input type=\"url\"${attr(\"name\", name)}${attr(\"required\", required, true)}${attr(\"placeholder\", placeholder)}${attr(\"readonly\", readonly, true)}${attr(\"value\", value)} class=\"w-full rounded-md border border-input bg-background px-3 py-2 text-sm\"/> `);\n\t\tif (value) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<img${attr(\"src\", value)}${attr(\"alt\", label)} class=\"mt-2 max-h-32 rounded-md border border-border object-contain\" loading=\"lazy\"/>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></label>`);\n\t\tbind_props($$props, { value });\n\t});\n}\n//#endregion\n//#region src/lib/form/widgets/json.svelte\nfunction Json($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { name, label, value = void 0, required = false, readonly = false } = $$props;\n\t\tfunction formatInitial(input) {\n\t\t\tif (input === void 0 || input === null) return \"\";\n\t\t\tif (typeof input === \"string\") return input;\n\t\t\ttry {\n\t\t\t\treturn JSON.stringify(input, null, 2);\n\t\t\t} catch {\n\t\t\t\treturn \"\";\n\t\t\t}\n\t\t}\n\t\tlet text = formatInitial(value);\n\t\t$$renderer.push(`<label class=\"block\"><span class=\"mb-1 block text-sm font-medium\">${escape_html(label)}`);\n\t\tif (required) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<span class=\"text-destructive\" aria-hidden=\"true\">*</span>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></span> <textarea${attr(\"name\", name)}${attr(\"required\", required, true)}${attr(\"readonly\", readonly, true)}${attr(\"rows\", 6)} class=\"w-full rounded-md border border-input bg-background px-3 py-2 font-mono text-xs\">`);\n\t\tconst $$body = escape_html(text);\n\t\tif ($$body) $$renderer.push(`${$$body}`);\n\t\t$$renderer.push(`</textarea></label>`);\n\t\tbind_props($$props, { value });\n\t});\n}\n//#endregion\n//#region src/lib/form/widgets/number.svelte\nfunction Number($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { name, label, value = \"\", required = false, placeholder = \"\", readonly = false, step = \"any\" } = $$props;\n\t\t$$renderer.push(`<label class=\"block\"><span class=\"mb-1 block text-sm font-medium\">${escape_html(label)}`);\n\t\tif (required) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<span class=\"text-destructive\" aria-hidden=\"true\">*</span>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></span> <input type=\"number\"${attr(\"name\", name)}${attr(\"step\", step)}${attr(\"required\", required, true)}${attr(\"placeholder\", placeholder)}${attr(\"readonly\", readonly, true)}${attr(\"value\", value)} class=\"w-full rounded-md border border-input bg-background px-3 py-2 text-sm\"/></label>`);\n\t\tbind_props($$props, { value });\n\t});\n}\n//#endregion\n//#region src/lib/form/widgets/text.svelte\nfunction Text($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { name, label, value = \"\", required = false, placeholder = \"\", readonly = false } = $$props;\n\t\t$$renderer.push(`<label class=\"block\"><span class=\"mb-1 block text-sm font-medium\">${escape_html(label)}`);\n\t\tif (required) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<span class=\"text-destructive\" aria-hidden=\"true\">*</span>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></span> <input type=\"text\"${attr(\"name\", name)}${attr(\"value\", value)}${attr(\"required\", required, true)}${attr(\"placeholder\", placeholder)}${attr(\"readonly\", readonly, true)} class=\"w-full rounded-md border border-input bg-background px-3 py-2 text-sm\"/></label>`);\n\t\tbind_props($$props, { value });\n\t});\n}\n//#endregion\n//#region src/lib/form/widgets/textarea.svelte\nfunction Textarea($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { name, label, value = \"\", required = false, placeholder = \"\", readonly = false, rows = 4 } = $$props;\n\t\t$$renderer.push(`<label class=\"block\"><span class=\"mb-1 block text-sm font-medium\">${escape_html(label)}`);\n\t\tif (required) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<span class=\"text-destructive\" aria-hidden=\"true\">*</span>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></span> <textarea${attr(\"name\", name)}${attr(\"rows\", rows)}${attr(\"required\", required, true)}${attr(\"placeholder\", placeholder)}${attr(\"readonly\", readonly, true)} class=\"w-full rounded-md border border-input bg-background px-3 py-2 text-sm\">`);\n\t\tconst $$body = escape_html(value);\n\t\tif ($$body) $$renderer.push(`${$$body}`);\n\t\t$$renderer.push(`</textarea></label>`);\n\t\tbind_props($$props, { value });\n\t});\n}\n//#endregion\n//#region src/lib/form/widgets/uuid.svelte\nfunction Uuid($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { name, label, value = \"\", required = false, placeholder = \"00000000-0000-0000-0000-000000000000\", readonly = false } = $$props;\n\t\t$$renderer.push(`<label class=\"block\"><span class=\"mb-1 block text-sm font-medium\">${escape_html(label)}`);\n\t\tif (required) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<span class=\"text-destructive\" aria-hidden=\"true\">*</span>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></span> <input type=\"text\"${attr(\"name\", name)}${attr(\"required\", required, true)}${attr(\"placeholder\", placeholder)}${attr(\"readonly\", readonly, true)}${attr(\"value\", value)} pattern=\"[0-9a-fA-F]8-[0-9a-fA-F]4-[0-9a-fA-F]4-[0-9a-fA-F]4-[0-9a-fA-F]12\" class=\"w-full rounded-md border border-input bg-background px-3 py-2 font-mono text-xs\"/></label>`);\n\t\tbind_props($$props, { value });\n\t});\n}\n//#endregion\n//#region src/lib/form/widget-registry.ts\nvar widgetRegistry = {\n\ttext: Text,\n\ttextarea: Textarea,\n\tnumber: Number,\n\tcurrency: Number,\n\tboolean: Boolean,\n\tdate: Date,\n\tdatetime: Datetime,\n\t\"enum-select\": Enum_select,\n\t\"relation-select\": Relation_select,\n\tjson: Json,\n\t\"image-url\": Image_url,\n\tuuid: Uuid\n};\nfunction resolveWidget(widget) {\n\treturn widgetRegistry[widget] ?? Text;\n}\n//#endregion\nexport { Relation_select_field as n, Relation_select_composite_field as r, resolveWidget as t };\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { j as coalesce_to_error, s as get_status, q as get_message, a1 as with_request_store, G as parse, _ as __commonJSMin, E as options, N as set_private_env, O as set_public_env, p as get_hooks, y as noop, u as has_resolution_suffix, t as has_data_suffix, h as base, V as strip_resolution_suffix, U as strip_data_suffix, T as TRAILING_SLASH_PARAM, I as INVALIDATED_PARAM, m as decode_pathname, d as add_data_suffix, e as add_resolution_suffix, o as find_route, B as normalize_path, n as disable_search, J as public_env, Z as validate_layout_server_exports, Y as validate_layout_exports, a0 as validate_page_server_exports, $ as validate_page_exports, z as noop_span, M as resolve, K as read_implementation, r as get_relative_path, P as set_read_implementation, F as override, g as assets, L as reset, f as app_dir, l as create_remote_key, v as hash, W as text_encoder, k as compact, D as once, A as normalize_error, x as make_trackable, H as parse_remote_arg, R as stringify, S as stringify$1, Q as split_remote_key, i as base64_encode } from './chunks/internal-CCj4Us-1.js';
1
+ import { j as coalesce_to_error, s as get_status, q as get_message, a1 as with_request_store, G as parse, _ as __commonJSMin, E as options, N as set_private_env, O as set_public_env, p as get_hooks, y as noop, u as has_resolution_suffix, t as has_data_suffix, h as base, V as strip_resolution_suffix, U as strip_data_suffix, T as TRAILING_SLASH_PARAM, I as INVALIDATED_PARAM, m as decode_pathname, d as add_data_suffix, e as add_resolution_suffix, o as find_route, B as normalize_path, n as disable_search, J as public_env, Z as validate_layout_server_exports, Y as validate_layout_exports, a0 as validate_page_server_exports, $ as validate_page_exports, z as noop_span, M as resolve, K as read_implementation, r as get_relative_path, P as set_read_implementation, F as override, g as assets, L as reset, f as app_dir, l as create_remote_key, v as hash, W as text_encoder, k as compact, D as once, A as normalize_error, x as make_trackable, H as parse_remote_arg, R as stringify, S as stringify$1, Q as split_remote_key, i as base64_encode } from './chunks/internal-Cuea68jL.js';
2
2
  import { aa as uneval, X as readable, ad as writable } from './chunks/dev-yFiAtg5l.js';
3
3
  import { j as json, t as text, i as isRedirect, e as error } from './chunks/index-5kYmxIr9.js';
4
4
  import { H as HttpError, S as SvelteKitError, R as Redirect, A as ActionFailure } from './chunks/index-DBqjc0Yf.js';
@@ -10,16 +10,16 @@ return {
10
10
  assets: new Set([]),
11
11
  mimeTypes: {},
12
12
  _: {
13
- client: {start:"_app/immutable/entry/start.B2SCrcq3.js",app:"_app/immutable/entry/app.CZ136DH2.js",imports:["_app/immutable/entry/start.B2SCrcq3.js","_app/immutable/chunks/BatBMP3E.js","_app/immutable/chunks/1PNfJiP5.js","_app/immutable/entry/app.CZ136DH2.js","_app/immutable/chunks/1PNfJiP5.js","_app/immutable/chunks/kNaey6uv.js","_app/immutable/chunks/xihTtKlq.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
13
+ client: {start:"_app/immutable/entry/start.Cjh4JaF7.js",app:"_app/immutable/entry/app.BkKlOvdn.js",imports:["_app/immutable/entry/start.Cjh4JaF7.js","_app/immutable/chunks/DdJtfEcD.js","_app/immutable/chunks/BgT5WiOF.js","_app/immutable/entry/app.BkKlOvdn.js","_app/immutable/chunks/BgT5WiOF.js","_app/immutable/chunks/kNaey6uv.js","_app/immutable/chunks/xihTtKlq.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
14
14
  nodes: [
15
- __memo(() => import('./chunks/0-D3i8OEah.js')),
16
- __memo(() => import('./chunks/1-HR1yd0wU.js')),
17
- __memo(() => import('./chunks/2-CE6m9qid.js')),
18
- __memo(() => import('./chunks/3-BfIWDc-d.js')),
19
- __memo(() => import('./chunks/4-Dqn3l8BI.js')),
20
- __memo(() => import('./chunks/5-DA-bCkUw.js')),
21
- __memo(() => import('./chunks/6-DEjxcpBy.js')),
22
- __memo(() => import('./chunks/7-BFDTBBBE.js'))
15
+ __memo(() => import('./chunks/0-C4CgvBlc.js')),
16
+ __memo(() => import('./chunks/1-B5tolhxt.js')),
17
+ __memo(() => import('./chunks/2-D9il_3ty.js')),
18
+ __memo(() => import('./chunks/3-DfrqlU53.js')),
19
+ __memo(() => import('./chunks/4-D6Y076hP.js')),
20
+ __memo(() => import('./chunks/5-DOvvx6kj.js')),
21
+ __memo(() => import('./chunks/6-BJn_aKxy.js')),
22
+ __memo(() => import('./chunks/7-CKkRKfs8.js'))
23
23
  ],
24
24
  remotes: {
25
25
 
@@ -32,6 +32,13 @@ return {
32
32
  page: { layouts: [0,], errors: [1,], leaf: 2 },
33
33
  endpoint: null
34
34
  },
35
+ {
36
+ id: "/relation-options",
37
+ pattern: /^\/relation-options\/?$/,
38
+ params: [],
39
+ page: null,
40
+ endpoint: __memo(() => import('./chunks/_server.ts-C-Wy675T.js'))
41
+ },
35
42
  {
36
43
  id: "/tables/[table]",
37
44
  pattern: /^\/tables\/([^/]+?)\/?$/,
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([]),\n\tmimeTypes: {},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.B2SCrcq3.js\",app:\"_app/immutable/entry/app.CZ136DH2.js\",imports:[\"_app/immutable/entry/start.B2SCrcq3.js\",\"_app/immutable/chunks/BatBMP3E.js\",\"_app/immutable/chunks/1PNfJiP5.js\",\"_app/immutable/entry/app.CZ136DH2.js\",\"_app/immutable/chunks/1PNfJiP5.js\",\"_app/immutable/chunks/kNaey6uv.js\",\"_app/immutable/chunks/xihTtKlq.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js')),\n\t\t\t__memo(() => import('./nodes/5.js')),\n\t\t\t__memo(() => import('./nodes/6.js')),\n\t\t\t__memo(() => import('./nodes/7.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 2 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/tables/[table]\",\n\t\t\t\tpattern: /^\\/tables\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"table\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 3 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/tables/[table]/new\",\n\t\t\t\tpattern: /^\\/tables\\/([^/]+?)\\/new\\/?$/,\n\t\t\t\tparams: [{\"name\":\"table\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 6 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/tables/[table]/[id]\",\n\t\t\t\tpattern: /^\\/tables\\/([^/]+?)\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"table\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 4 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/tables/[table]/[id]/edit\",\n\t\t\t\tpattern: /^\\/tables\\/([^/]+?)\\/([^/]+?)\\/edit\\/?$/,\n\t\t\t\tparams: [{\"name\":\"table\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 5 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/views/[view]\",\n\t\t\t\tpattern: /^\\/views\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"view\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 7 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([]),\n\tmimeTypes: {},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.Cjh4JaF7.js\",app:\"_app/immutable/entry/app.BkKlOvdn.js\",imports:[\"_app/immutable/entry/start.Cjh4JaF7.js\",\"_app/immutable/chunks/DdJtfEcD.js\",\"_app/immutable/chunks/BgT5WiOF.js\",\"_app/immutable/entry/app.BkKlOvdn.js\",\"_app/immutable/chunks/BgT5WiOF.js\",\"_app/immutable/chunks/kNaey6uv.js\",\"_app/immutable/chunks/xihTtKlq.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js')),\n\t\t\t__memo(() => import('./nodes/5.js')),\n\t\t\t__memo(() => import('./nodes/6.js')),\n\t\t\t__memo(() => import('./nodes/7.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 2 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/relation-options\",\n\t\t\t\tpattern: /^\\/relation-options\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/relation-options/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/tables/[table]\",\n\t\t\t\tpattern: /^\\/tables\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"table\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 3 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/tables/[table]/new\",\n\t\t\t\tpattern: /^\\/tables\\/([^/]+?)\\/new\\/?$/,\n\t\t\t\tparams: [{\"name\":\"table\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 6 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/tables/[table]/[id]\",\n\t\t\t\tpattern: /^\\/tables\\/([^/]+?)\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"table\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 4 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/tables/[table]/[id]/edit\",\n\t\t\t\tpattern: /^\\/tables\\/([^/]+?)\\/([^/]+?)\\/edit\\/?$/,\n\t\t\t\tparams: [{\"name\":\"table\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 5 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/views/[view]\",\n\t\t\t\tpattern: /^\\/views\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"view\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 7 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"AAAY,MAAC,QAAQ,GAAG,CAAC,MAAM;AAC/B,SAAS,MAAM,CAAC,EAAE,EAAE;AACpB,CAAC,IAAI,KAAK;AACV,CAAC,OAAO,MAAM,KAAK,MAAM,KAAK,GAAG,EAAE,EAAE,CAAC;AACtC;;AAEA,OAAO;AACP,CAAC,MAAM,EAAE,MAAM;AACf,CAAC,OAAO,EAAE,MAAM;AAChB,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;AACpB,CAAC,SAAS,EAAE,EAAE;AACd,CAAC,CAAC,EAAE;AACJ,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,wCAAwC,CAAC,GAAG,CAAC,sCAAsC,CAAC,OAAO,CAAC,CAAC,wCAAwC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,sCAAsC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC;AACza,EAAE,KAAK,EAAE;AACT,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC;AACtC,GAAG;AACH,EAAE,OAAO,EAAE;AACX;AACA,GAAG;AACH,EAAE,MAAM,EAAE;AACV,GAAG;AACH,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,mBAAmB;AAC3B,IAAI,OAAO,EAAE,yBAAyB;AACtC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,iCAAoD,CAAC;AACvF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,iBAAiB;AACzB,IAAI,OAAO,EAAE,yBAAyB;AACtC,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC5E,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,qBAAqB;AAC7B,IAAI,OAAO,EAAE,8BAA8B;AAC3C,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC5E,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,sBAAsB;AAC9B,IAAI,OAAO,EAAE,mCAAmC;AAChD,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACxI,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,2BAA2B;AACnC,IAAI,OAAO,EAAE,yCAAyC;AACtD,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACxI,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,eAAe;AACvB,IAAI,OAAO,EAAE,wBAAwB;AACrC,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC3E,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd;AACA,GAAG;AACH,EAAE,kBAAkB,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;AACjC,EAAE,QAAQ,EAAE,YAAY;AACxB;AACA,GAAG,OAAO,IAAI;AACd,EAAE,CAAC;AACH,EAAE,aAAa,EAAE;AACjB;AACA;AACA,CAAC;;AAEW,MAAC,WAAW,GAAG,IAAI,GAAG,CAAC,EAAE;;AAEzB,MAAC,IAAI,GAAG;;;;"}