@oktis-works/admin 0.1.2 → 0.1.4
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/dist/client/_astro/BaseLayout.COf3Eran.css +1 -0
- package/dist/client/_astro/ContentEditor.COyD6bGV.js +1 -0
- package/dist/client/_astro/PostTypesManager.APvO7Cs9.js +1 -0
- package/dist/client/_astro/TaxonomiesManager.CVFdfaUR.js +1 -0
- package/dist/client/_astro/api.DSP61PKM.js +1 -0
- package/dist/client/_astro/client.D7G9q8lk.js +1 -0
- package/dist/client/_astro/login.astro_astro_type_script_index_0_lang.BLhqPWk8.js +1 -0
- package/dist/client/_astro/web.BRlgYXBp.js +1 -0
- package/dist/server/chunks/BaseLayout_Mvr1_6Ng.mjs +12 -0
- package/dist/server/chunks/DashboardLayout_CP5ag-_P.mjs +17 -0
- package/dist/server/chunks/_virtual_astro_server-island-manifest_C1Q2srgE.mjs +5 -0
- package/dist/server/chunks/_virtual_astro_session-driver_Ei6unT4E.mjs +123 -0
- package/dist/server/chunks/api_Cy8sbUHf.mjs +153 -0
- package/dist/server/chunks/compiler_CYjwXhLT.mjs +35 -0
- package/dist/server/chunks/console_tZnymcoE.mjs +170 -0
- package/dist/server/chunks/dist_CP9QIrJI.mjs +7807 -0
- package/dist/server/chunks/edit_D14rRl_p.mjs +845 -0
- package/dist/server/chunks/errors_mm28nMpQ.mjs +383 -0
- package/dist/server/chunks/index_BgbHlcwr.mjs +23 -0
- package/dist/server/chunks/index_c3b5hMDp.mjs +22 -0
- package/dist/server/chunks/login_B7vbWIed.mjs +40 -0
- package/dist/server/chunks/node_C0YbdEL-.mjs +2263 -0
- package/dist/server/chunks/noop-entrypoint_Z3zFhrGC.mjs +4 -0
- package/dist/server/chunks/post-types_BtNyF2Iv.mjs +137 -0
- package/dist/server/chunks/remote_DUw5DMmE.mjs +169 -0
- package/dist/server/chunks/rolldown-runtime_BMI-E3GI.mjs +44 -0
- package/dist/server/chunks/semver_WbqCUY_o.mjs +1395 -0
- package/dist/server/chunks/server_CnzC2Y0K.mjs +7582 -0
- package/dist/server/chunks/sharp_CfXj7Ul-.mjs +152 -0
- package/dist/server/chunks/taxonomies_DSgstawN.mjs +126 -0
- package/dist/server/entry.mjs +17510 -9592
- package/dist/server/virtual_astro_middleware.mjs +4 -0
- package/package.json +9 -9
- package/dist/client/_astro/ContentEditor.A5N-aCxT.js +0 -1
- package/dist/client/_astro/PostTypesManager.w66_1tDh.js +0 -1
- package/dist/client/_astro/TaxonomiesManager.Dv_OOCEw.js +0 -1
- package/dist/client/_astro/api.GqKwASBH.js +0 -1
- package/dist/client/_astro/client.CCQ0X2AX.js +0 -1
- package/dist/client/_astro/edit.B4LyOiwH.css +0 -1
- package/dist/client/_astro/hoisted.SqllSTyr.js +0 -1
- package/dist/client/_astro/web.D5F0ytYW.js +0 -1
- package/dist/server/_empty-middleware.mjs +0 -3
- package/dist/server/chunks/astro/assets-service_BADPYD54.mjs +0 -438
- package/dist/server/chunks/astro_C5DJOQ1V.mjs +0 -2038
- package/dist/server/chunks/edit_C98B4jh0.mjs +0 -6
- package/dist/server/chunks/index_53XIf90M.mjs +0 -6
- package/dist/server/chunks/index_CHiEzckm.mjs +0 -6
- package/dist/server/chunks/login_C_Jl-EtG.mjs +0 -6
- package/dist/server/chunks/node_Cb_YHUva.mjs +0 -6
- package/dist/server/chunks/pages/edit_AQihQPyy.mjs +0 -2173
- package/dist/server/chunks/pages/index_NImiBHcL.mjs +0 -61
- package/dist/server/chunks/pages/login_B9ODIzLV.mjs +0 -12
- package/dist/server/chunks/pages/node_B3GvoMAw.mjs +0 -268
- package/dist/server/chunks/pages/post-types_ClxoBrjv.mjs +0 -246
- package/dist/server/chunks/pages/taxonomies_CMtxsQlk.mjs +0 -69
- package/dist/server/chunks/post-types_w-FxNhTw.mjs +0 -6
- package/dist/server/chunks/taxonomies_4sch1jA4.mjs +0 -6
- package/dist/server/manifest_BFbh2uLo.mjs +0 -455
- package/dist/server/renderers.mjs +0 -101
|
@@ -0,0 +1,845 @@
|
|
|
1
|
+
import { r as __exportAll } from "./rolldown-runtime_BMI-E3GI.mjs";
|
|
2
|
+
import { d as maybeRenderHead, i as renderComponent, u as renderTemplate } from "./server_CnzC2Y0K.mjs";
|
|
3
|
+
import { t as createComponent$1 } from "./compiler_CYjwXhLT.mjs";
|
|
4
|
+
import { t as $$DashboardLayout } from "./DashboardLayout_CP5ag-_P.mjs";
|
|
5
|
+
import { t as apiClient } from "./api_Cy8sbUHf.mjs";
|
|
6
|
+
import { t as require_semver } from "./semver_WbqCUY_o.mjs";
|
|
7
|
+
import { createComponent, escape, memo, ssr, ssrAttribute, ssrHydrationKey } from "solid-js/web";
|
|
8
|
+
import { For, For as For$1, Show, Show as Show$1, createMemo, createMemo as createMemo$1, createSignal, createSignal as createSignal$1, onMount } from "solid-js";
|
|
9
|
+
//#region src/lib/validation.ts
|
|
10
|
+
function validateFieldClient(_field, _value) {
|
|
11
|
+
return {
|
|
12
|
+
valid: true,
|
|
13
|
+
errors: []
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function expandCloneFields(fields) {
|
|
17
|
+
return fields;
|
|
18
|
+
}
|
|
19
|
+
require_semver();
|
|
20
|
+
//#endregion
|
|
21
|
+
//#region src/components/content/RelationshipPicker.tsx
|
|
22
|
+
var _tmpl$$3 = [
|
|
23
|
+
"<ul",
|
|
24
|
+
" class=\"relationship-picker__selection\">",
|
|
25
|
+
"</ul>"
|
|
26
|
+
];
|
|
27
|
+
var _tmpl$2$3 = ["<li", " class=\"relationship-picker__empty\">Buscando...</li>"];
|
|
28
|
+
var _tmpl$3$3 = ["<li", " class=\"relationship-picker__empty\">Nenhum resultado</li>"];
|
|
29
|
+
var _tmpl$4$3 = [
|
|
30
|
+
"<ul",
|
|
31
|
+
" class=\"relationship-picker__results\"><!--$-->",
|
|
32
|
+
"<!--/--><!--$-->",
|
|
33
|
+
"<!--/--><!--$-->",
|
|
34
|
+
"<!--/--></ul>"
|
|
35
|
+
];
|
|
36
|
+
var _tmpl$5$3 = [
|
|
37
|
+
"<div",
|
|
38
|
+
" class=\"relationship-picker\"><!--$-->",
|
|
39
|
+
"<!--/--><input type=\"search\" class=\"input\"",
|
|
40
|
+
"><!--$-->",
|
|
41
|
+
"<!--/--></div>"
|
|
42
|
+
];
|
|
43
|
+
var _tmpl$6$2 = [
|
|
44
|
+
"<li",
|
|
45
|
+
"><!--$-->",
|
|
46
|
+
"<!--/--><button type=\"button\" aria-label=\"Remover\">×</button></li>"
|
|
47
|
+
];
|
|
48
|
+
var _tmpl$7$2 = [
|
|
49
|
+
"<li",
|
|
50
|
+
"><button type=\"button\"><!--$-->",
|
|
51
|
+
"<!--/--><span class=\"relationship-picker__type\">",
|
|
52
|
+
"</span></button></li>"
|
|
53
|
+
];
|
|
54
|
+
function RelationshipPicker(props) {
|
|
55
|
+
const [query, setQuery] = createSignal$1("");
|
|
56
|
+
const [results, setResults] = createSignal$1([]);
|
|
57
|
+
const [selected, setSelected] = createSignal$1([]);
|
|
58
|
+
const [loading, setLoading] = createSignal$1(false);
|
|
59
|
+
const [open, setOpen] = createSignal$1(false);
|
|
60
|
+
const selectedIds = createMemo$1(() => {
|
|
61
|
+
const value = props.value;
|
|
62
|
+
if (Array.isArray(value)) return value.map(String);
|
|
63
|
+
return value ? [String(value)] : [];
|
|
64
|
+
});
|
|
65
|
+
return ssr(_tmpl$5$3, ssrHydrationKey(), escape(createComponent(Show$1, {
|
|
66
|
+
get when() {
|
|
67
|
+
return selected().length > 0 || selectedIds().length > 0;
|
|
68
|
+
},
|
|
69
|
+
get children() {
|
|
70
|
+
return ssr(_tmpl$$3, ssrHydrationKey(), escape(createComponent(For$1, {
|
|
71
|
+
get each() {
|
|
72
|
+
return selected();
|
|
73
|
+
},
|
|
74
|
+
children: (entry) => ssr(_tmpl$6$2, ssrHydrationKey(), escape(entry.title))
|
|
75
|
+
})));
|
|
76
|
+
}
|
|
77
|
+
})), ssrAttribute("placeholder", escape(props.placeholder ?? "Buscar conteúdo...", true), false) + ssrAttribute("value", escape(query(), true), false), escape(createComponent(Show$1, {
|
|
78
|
+
get when() {
|
|
79
|
+
return memo(() => !!open())() && (loading() || results().length > 0);
|
|
80
|
+
},
|
|
81
|
+
get children() {
|
|
82
|
+
return ssr(_tmpl$4$3, ssrHydrationKey(), escape(createComponent(Show$1, {
|
|
83
|
+
get when() {
|
|
84
|
+
return loading();
|
|
85
|
+
},
|
|
86
|
+
get children() {
|
|
87
|
+
return ssr(_tmpl$2$3, ssrHydrationKey());
|
|
88
|
+
}
|
|
89
|
+
})), escape(createComponent(For$1, {
|
|
90
|
+
get each() {
|
|
91
|
+
return results();
|
|
92
|
+
},
|
|
93
|
+
children: (option) => ssr(_tmpl$7$2, ssrHydrationKey(), escape(option.title), escape(option.type))
|
|
94
|
+
})), escape(createComponent(Show$1, {
|
|
95
|
+
get when() {
|
|
96
|
+
return memo(() => !!!loading())() && results().length === 0;
|
|
97
|
+
},
|
|
98
|
+
get children() {
|
|
99
|
+
return ssr(_tmpl$3$3, ssrHydrationKey());
|
|
100
|
+
}
|
|
101
|
+
})));
|
|
102
|
+
}
|
|
103
|
+
})));
|
|
104
|
+
}
|
|
105
|
+
//#endregion
|
|
106
|
+
//#region src/components/content/FieldRenderer.tsx
|
|
107
|
+
var _tmpl$$2 = ["<span", " class=\"field-renderer__required\">*</span>"];
|
|
108
|
+
var _tmpl$2$2 = [
|
|
109
|
+
"<p",
|
|
110
|
+
" class=\"field-renderer__instructions\">",
|
|
111
|
+
"</p>"
|
|
112
|
+
];
|
|
113
|
+
var _tmpl$3$2 = [
|
|
114
|
+
"<p",
|
|
115
|
+
" class=\"field-renderer__error\" role=\"alert\">",
|
|
116
|
+
"</p>"
|
|
117
|
+
];
|
|
118
|
+
var _tmpl$4$2 = [
|
|
119
|
+
"<div",
|
|
120
|
+
" class=\"field-renderer\"",
|
|
121
|
+
"><label class=\"field-renderer__label\"><!--$-->",
|
|
122
|
+
"<!--/--><!--$-->",
|
|
123
|
+
"<!--/--></label><!--$-->",
|
|
124
|
+
"<!--/--><!--$-->",
|
|
125
|
+
"<!--/--><!--$-->",
|
|
126
|
+
"<!--/--></div>"
|
|
127
|
+
];
|
|
128
|
+
var _tmpl$5$2 = [
|
|
129
|
+
"<input",
|
|
130
|
+
" type=\"text\" class=\"input\"",
|
|
131
|
+
">"
|
|
132
|
+
];
|
|
133
|
+
var _tmpl$6$1 = [
|
|
134
|
+
"<textarea",
|
|
135
|
+
" class=\"input\" rows=\"4\"",
|
|
136
|
+
"></textarea>"
|
|
137
|
+
];
|
|
138
|
+
var _tmpl$7$1 = ["<textarea", " class=\"input wysiwyg\" rows=\"8\"></textarea>"];
|
|
139
|
+
var _tmpl$8$1 = [
|
|
140
|
+
"<input",
|
|
141
|
+
" type=\"number\" class=\"input\"",
|
|
142
|
+
">"
|
|
143
|
+
];
|
|
144
|
+
var _tmpl$9$1 = ["<input", " type=\"email\" class=\"input\">"];
|
|
145
|
+
var _tmpl$0 = ["<input", " type=\"url\" class=\"input\" placeholder=\"https://\">"];
|
|
146
|
+
var _tmpl$1 = ["<input", " type=\"password\" class=\"input\">"];
|
|
147
|
+
var _tmpl$10 = [
|
|
148
|
+
"<input",
|
|
149
|
+
" type=\"checkbox\"",
|
|
150
|
+
">"
|
|
151
|
+
];
|
|
152
|
+
var _tmpl$11 = [
|
|
153
|
+
"<select",
|
|
154
|
+
" class=\"input\"",
|
|
155
|
+
">",
|
|
156
|
+
"</select>"
|
|
157
|
+
];
|
|
158
|
+
var _tmpl$12 = [
|
|
159
|
+
"<option",
|
|
160
|
+
">",
|
|
161
|
+
"</option>"
|
|
162
|
+
];
|
|
163
|
+
var _tmpl$13 = [
|
|
164
|
+
"<div",
|
|
165
|
+
" class=\"field-renderer__choices\">",
|
|
166
|
+
"</div>"
|
|
167
|
+
];
|
|
168
|
+
var _tmpl$14 = [
|
|
169
|
+
"<label",
|
|
170
|
+
"><input type=\"radio\"",
|
|
171
|
+
"",
|
|
172
|
+
"> <!--$-->",
|
|
173
|
+
"<!--/--></label>"
|
|
174
|
+
];
|
|
175
|
+
var _tmpl$15 = [
|
|
176
|
+
"<label",
|
|
177
|
+
"><input type=\"checkbox\"",
|
|
178
|
+
"> <!--$-->",
|
|
179
|
+
"<!--/--></label>"
|
|
180
|
+
];
|
|
181
|
+
var _tmpl$16 = ["<input", " type=\"date\" class=\"input\">"];
|
|
182
|
+
var _tmpl$17 = ["<input", " type=\"datetime-local\" class=\"input\">"];
|
|
183
|
+
var _tmpl$18 = ["<input", " type=\"time\" class=\"input\">"];
|
|
184
|
+
var _tmpl$19 = ["<input", " type=\"color\">"];
|
|
185
|
+
var _tmpl$20 = ["<div", " class=\"field-renderer__map\"><input type=\"text\" class=\"input\" placeholder=\"Endereço\"><input type=\"number\" class=\"input\" placeholder=\"Latitude (-90 a 90)\" step=\"any\" min=\"-90\" max=\"90\"><input type=\"number\" class=\"input\" placeholder=\"Longitude (-180 a 180)\" step=\"any\" min=\"-180\" max=\"180\"></div>"];
|
|
186
|
+
var _tmpl$21 = ["<div", " class=\"field-renderer__link\"><input type=\"url\" class=\"input\" placeholder=\"https:// ou /caminho\"><select class=\"input\"><option value=\"_self\">Mesma janela</option><option value=\"_blank\">Nova janela</option></select></div>"];
|
|
187
|
+
var _tmpl$22 = [
|
|
188
|
+
"<div",
|
|
189
|
+
" class=\"field-renderer__rows\"><!--$-->",
|
|
190
|
+
"<!--/--><button type=\"button\" class=\"btn\">+ Adicionar linha</button></div>"
|
|
191
|
+
];
|
|
192
|
+
var _tmpl$23 = [
|
|
193
|
+
"<div",
|
|
194
|
+
" class=\"field-renderer__rows\"><!--$-->",
|
|
195
|
+
"<!--/--><select class=\"input\" value><option value>+ Adicionar layout...</option><!--$-->",
|
|
196
|
+
"<!--/--></select></div>"
|
|
197
|
+
];
|
|
198
|
+
var _tmpl$24 = [
|
|
199
|
+
"<div",
|
|
200
|
+
" class=\"field-renderer__row\"><div class=\"field-renderer__row-header\"><span><!--$-->",
|
|
201
|
+
"<!--/--> <!--$-->",
|
|
202
|
+
"<!--/--></span><button type=\"button\" class=\"btn\"",
|
|
203
|
+
">↑</button><button type=\"button\" class=\"btn\"",
|
|
204
|
+
">↓</button><button type=\"button\" class=\"btn btn-danger\">Remover</button></div><!--$-->",
|
|
205
|
+
"<!--/--></div>"
|
|
206
|
+
];
|
|
207
|
+
var _tmpl$25 = [
|
|
208
|
+
"<p",
|
|
209
|
+
" class=\"field-renderer__instructions\">Layout \"<!--$-->",
|
|
210
|
+
"<!--/-->\" não encontrado.</p>"
|
|
211
|
+
];
|
|
212
|
+
var _tmpl$26 = [
|
|
213
|
+
"<fieldset",
|
|
214
|
+
" class=\"field-renderer__group\">",
|
|
215
|
+
"</fieldset>"
|
|
216
|
+
];
|
|
217
|
+
var _tmpl$27 = ["<input", " type=\"text\" class=\"input\">"];
|
|
218
|
+
var _tmpl$28 = [
|
|
219
|
+
"<div",
|
|
220
|
+
" class=\"field-renderer__row\"><div class=\"field-renderer__row-header\"><span>Linha <!--$-->",
|
|
221
|
+
"<!--/--></span><button type=\"button\" class=\"btn btn-danger\">Remover</button></div><!--$-->",
|
|
222
|
+
"<!--/--></div>"
|
|
223
|
+
];
|
|
224
|
+
var _tmpl$29 = [
|
|
225
|
+
"<input",
|
|
226
|
+
" type=\"file\" class=\"input\"",
|
|
227
|
+
">"
|
|
228
|
+
];
|
|
229
|
+
var _tmpl$30 = [
|
|
230
|
+
"<option",
|
|
231
|
+
"",
|
|
232
|
+
">",
|
|
233
|
+
"</option>"
|
|
234
|
+
];
|
|
235
|
+
function isEmpty(value) {
|
|
236
|
+
return value === void 0 || value === null || value === "" || Array.isArray(value) && value.length === 0 || typeof value === "boolean" && !value;
|
|
237
|
+
}
|
|
238
|
+
function looseEquals(a, b) {
|
|
239
|
+
if (typeof b === "boolean") return Boolean(a) === b;
|
|
240
|
+
const na = Number(a);
|
|
241
|
+
const nb = Number(b);
|
|
242
|
+
return a === b || !Number.isNaN(na) && !Number.isNaN(nb) && na === nb;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Avalia a lógica condicional do campo no cliente (mesmas regras do core).
|
|
246
|
+
*/
|
|
247
|
+
function isFieldVisible(field, values) {
|
|
248
|
+
const logic = field.conditionalLogic;
|
|
249
|
+
if (!logic?.groups || logic.groups.length === 0) return true;
|
|
250
|
+
const evaluateGroup = (group) => {
|
|
251
|
+
const rules = group.rules ?? [];
|
|
252
|
+
if (rules.length === 0) return true;
|
|
253
|
+
const results = rules.map((rule) => {
|
|
254
|
+
const target = values[rule.field];
|
|
255
|
+
switch (rule.operator) {
|
|
256
|
+
case "eq": return looseEquals(target, rule.value);
|
|
257
|
+
case "neq": return !looseEquals(target, rule.value);
|
|
258
|
+
case "gt": return Number(target) > Number(rule.value);
|
|
259
|
+
case "lt": return Number(target) < Number(rule.value);
|
|
260
|
+
case "contains": return Array.isArray(target) ? target.includes(rule.value) : String(target ?? "").includes(String(rule.value));
|
|
261
|
+
case "pattern_matches": try {
|
|
262
|
+
return new RegExp(String(rule.value)).test(String(target ?? ""));
|
|
263
|
+
} catch {
|
|
264
|
+
return false;
|
|
265
|
+
}
|
|
266
|
+
case "has_any_value": return !isEmpty(target);
|
|
267
|
+
case "has_no_value": return isEmpty(target);
|
|
268
|
+
default: return false;
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
return group.match === "ANY" ? results.some(Boolean) : results.every(Boolean);
|
|
272
|
+
};
|
|
273
|
+
return logic.groups.map(evaluateGroup).some(Boolean);
|
|
274
|
+
}
|
|
275
|
+
var LAYOUT_ONLY = /* @__PURE__ */ new Set([
|
|
276
|
+
"message",
|
|
277
|
+
"tab",
|
|
278
|
+
"accordion"
|
|
279
|
+
]);
|
|
280
|
+
function FieldRenderer(props) {
|
|
281
|
+
const visible = () => isFieldVisible(props.field, props.values);
|
|
282
|
+
const [dirty, setDirty] = createSignal(false);
|
|
283
|
+
const valueFor = () => props.values[props.field.name];
|
|
284
|
+
const validationError = createMemo(() => {
|
|
285
|
+
if (!dirty()) return null;
|
|
286
|
+
return validateFieldClient(props.field, props.values[props.field.name]);
|
|
287
|
+
});
|
|
288
|
+
const setValue = (value) => {
|
|
289
|
+
setDirty(true);
|
|
290
|
+
props.onChange(props.field.name, value);
|
|
291
|
+
};
|
|
292
|
+
return createComponent(Show, {
|
|
293
|
+
get when() {
|
|
294
|
+
return memo(() => !!visible())() && !LAYOUT_ONLY.has(props.field.type);
|
|
295
|
+
},
|
|
296
|
+
get children() {
|
|
297
|
+
return ssr(_tmpl$4$2, ssrHydrationKey(), ssrAttribute("data-field-type", escape(props.field.type, true), false), escape(props.field.label), escape(createComponent(Show, {
|
|
298
|
+
get when() {
|
|
299
|
+
return props.field.required;
|
|
300
|
+
},
|
|
301
|
+
get children() {
|
|
302
|
+
return ssr(_tmpl$$2, ssrHydrationKey());
|
|
303
|
+
}
|
|
304
|
+
})), escape(createComponent(Show, {
|
|
305
|
+
get when() {
|
|
306
|
+
return props.field.instructions;
|
|
307
|
+
},
|
|
308
|
+
get children() {
|
|
309
|
+
return ssr(_tmpl$2$2, ssrHydrationKey(), escape(props.field.instructions));
|
|
310
|
+
}
|
|
311
|
+
})), escape(createComponent(FieldControl, {
|
|
312
|
+
get field() {
|
|
313
|
+
return props.field;
|
|
314
|
+
},
|
|
315
|
+
get value() {
|
|
316
|
+
return valueFor();
|
|
317
|
+
},
|
|
318
|
+
onChange: setValue,
|
|
319
|
+
get values() {
|
|
320
|
+
return props.values;
|
|
321
|
+
}
|
|
322
|
+
})), escape(createComponent(Show, {
|
|
323
|
+
get when() {
|
|
324
|
+
return memo(() => !!validationError())() && !validationError()?.valid;
|
|
325
|
+
},
|
|
326
|
+
get children() {
|
|
327
|
+
return ssr(_tmpl$3$2, ssrHydrationKey(), escape(validationError()?.errors.join(", ")));
|
|
328
|
+
}
|
|
329
|
+
})));
|
|
330
|
+
}
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
function FieldControl(props) {
|
|
334
|
+
const config = () => props.field.config ?? {};
|
|
335
|
+
switch (props.field.type) {
|
|
336
|
+
case "text": return ssr(_tmpl$5$2, ssrHydrationKey(), ssrAttribute("maxlength", escape(config()["characterLimit"], true), false));
|
|
337
|
+
case "textarea": return ssr(_tmpl$6$1, ssrHydrationKey(), ssrAttribute("maxlength", escape(config()["characterLimit"], true), false));
|
|
338
|
+
case "wysiwyg": return ssr(_tmpl$7$1, ssrHydrationKey());
|
|
339
|
+
case "number":
|
|
340
|
+
case "range": return ssr(_tmpl$8$1, ssrHydrationKey(), ssrAttribute("min", escape(config()["minValue"], true), false) + ssrAttribute("max", escape(config()["maxValue"], true), false) + ssrAttribute("step", escape(config()["step"], true), false));
|
|
341
|
+
case "email": return ssr(_tmpl$9$1, ssrHydrationKey());
|
|
342
|
+
case "url": return ssr(_tmpl$0, ssrHydrationKey());
|
|
343
|
+
case "password": return ssr(_tmpl$1, ssrHydrationKey());
|
|
344
|
+
case "true_false": return ssr(_tmpl$10, ssrHydrationKey(), ssrAttribute("checked", Boolean(props.value), true));
|
|
345
|
+
case "select": return ssr(_tmpl$11, ssrHydrationKey(), ssrAttribute("multiple", config()["multiple"] === true, true), escape(createComponent(For, {
|
|
346
|
+
get each() {
|
|
347
|
+
return config()["choices"] ?? [];
|
|
348
|
+
},
|
|
349
|
+
children: (choice) => ssr(_tmpl$12, ssrHydrationKey() + ssrAttribute("value", escape(choice.value, true), false), escape(choice.label))
|
|
350
|
+
})));
|
|
351
|
+
case "radio": return ssr(_tmpl$13, ssrHydrationKey(), escape(createComponent(For, {
|
|
352
|
+
get each() {
|
|
353
|
+
return config()["choices"] ?? [];
|
|
354
|
+
},
|
|
355
|
+
children: (choice) => ssr(_tmpl$14, ssrHydrationKey(), ssrAttribute("name", escape(props.field.name, true), false), ssrAttribute("checked", props.value === choice.value, true), escape(choice.label))
|
|
356
|
+
})));
|
|
357
|
+
case "checkbox": return ssr(_tmpl$13, ssrHydrationKey(), escape(createComponent(For, {
|
|
358
|
+
get each() {
|
|
359
|
+
return config()["choices"] ?? [];
|
|
360
|
+
},
|
|
361
|
+
children: (choice) => {
|
|
362
|
+
const checked = () => Array.isArray(props.value) && props.value.includes(choice.value);
|
|
363
|
+
return ssr(_tmpl$15, ssrHydrationKey(), ssrAttribute("checked", checked(), true), escape(choice.label));
|
|
364
|
+
}
|
|
365
|
+
})));
|
|
366
|
+
case "date_picker": return ssr(_tmpl$16, ssrHydrationKey());
|
|
367
|
+
case "date_time_picker": return ssr(_tmpl$17, ssrHydrationKey());
|
|
368
|
+
case "time_picker": return ssr(_tmpl$18, ssrHydrationKey());
|
|
369
|
+
case "color_picker": return ssr(_tmpl$19, ssrHydrationKey());
|
|
370
|
+
case "image":
|
|
371
|
+
case "file": return createComponent(MediaPickerInput, {
|
|
372
|
+
multiple: false,
|
|
373
|
+
get onChange() {
|
|
374
|
+
return props.onChange;
|
|
375
|
+
},
|
|
376
|
+
get accept() {
|
|
377
|
+
return props.field.type === "image" ? "image/*" : void 0;
|
|
378
|
+
}
|
|
379
|
+
});
|
|
380
|
+
case "gallery": return createComponent(MediaPickerInput, {
|
|
381
|
+
multiple: true,
|
|
382
|
+
get onChange() {
|
|
383
|
+
return props.onChange;
|
|
384
|
+
},
|
|
385
|
+
accept: "image/*"
|
|
386
|
+
});
|
|
387
|
+
case "google_map": return ssr(_tmpl$20, ssrHydrationKey());
|
|
388
|
+
case "link": return ssr(_tmpl$21, ssrHydrationKey());
|
|
389
|
+
case "relationship":
|
|
390
|
+
case "post_object": return createComponent(RelationshipPicker, {
|
|
391
|
+
get postType() {
|
|
392
|
+
return config()["postType"];
|
|
393
|
+
},
|
|
394
|
+
get multiple() {
|
|
395
|
+
return config()["multiple"] !== false;
|
|
396
|
+
},
|
|
397
|
+
get value() {
|
|
398
|
+
return props.value;
|
|
399
|
+
},
|
|
400
|
+
get onChange() {
|
|
401
|
+
return props.onChange;
|
|
402
|
+
}
|
|
403
|
+
});
|
|
404
|
+
case "taxonomy":
|
|
405
|
+
case "user": return createComponent(RelationshipSelector, {
|
|
406
|
+
get field() {
|
|
407
|
+
return props.field;
|
|
408
|
+
},
|
|
409
|
+
get value() {
|
|
410
|
+
return props.value;
|
|
411
|
+
},
|
|
412
|
+
get onChange() {
|
|
413
|
+
return props.onChange;
|
|
414
|
+
},
|
|
415
|
+
get multiple() {
|
|
416
|
+
return config()["multiple"] !== false;
|
|
417
|
+
}
|
|
418
|
+
});
|
|
419
|
+
case "repeater": {
|
|
420
|
+
const rows = () => Array.isArray(props.value) ? props.value : [];
|
|
421
|
+
return ssr(_tmpl$22, ssrHydrationKey(), escape(createComponent(For, {
|
|
422
|
+
get each() {
|
|
423
|
+
return rows();
|
|
424
|
+
},
|
|
425
|
+
children: (row, index) => createComponent(RepeaterRow, {
|
|
426
|
+
get field() {
|
|
427
|
+
return props.field;
|
|
428
|
+
},
|
|
429
|
+
row,
|
|
430
|
+
get index() {
|
|
431
|
+
return index();
|
|
432
|
+
},
|
|
433
|
+
onUpdate: (updated) => {
|
|
434
|
+
const next = [...rows()];
|
|
435
|
+
next[index()] = updated;
|
|
436
|
+
props.onChange(next);
|
|
437
|
+
},
|
|
438
|
+
onRemove: () => {
|
|
439
|
+
props.onChange(rows().filter((_, i) => i !== index()));
|
|
440
|
+
}
|
|
441
|
+
})
|
|
442
|
+
})));
|
|
443
|
+
}
|
|
444
|
+
case "flexible_content": {
|
|
445
|
+
const layouts = () => config()["layouts"] ?? [];
|
|
446
|
+
const rows = () => {
|
|
447
|
+
return (Array.isArray(props.value) ? props.value : []).map((row) => ({
|
|
448
|
+
acf_fc_layout: String(row["acf_fc_layout"] ?? ""),
|
|
449
|
+
data: row
|
|
450
|
+
}));
|
|
451
|
+
};
|
|
452
|
+
return ssr(_tmpl$23, ssrHydrationKey(), escape(createComponent(For, {
|
|
453
|
+
get each() {
|
|
454
|
+
return rows();
|
|
455
|
+
},
|
|
456
|
+
children: (row, index) => {
|
|
457
|
+
const layout = () => layouts().find((entry) => entry.name === row.acf_fc_layout);
|
|
458
|
+
const rowData = () => {
|
|
459
|
+
const { acf_fc_layout: _layout, ...data } = row.data;
|
|
460
|
+
return data;
|
|
461
|
+
};
|
|
462
|
+
return ssr(_tmpl$24, ssrHydrationKey(), escape(layout()?.label || row.acf_fc_layout || "Linha"), escape(index()) + 1, ssrAttribute("disabled", index() === 0, true), ssrAttribute("disabled", index() === rows().length - 1, true), escape(createComponent(Show, {
|
|
463
|
+
get when() {
|
|
464
|
+
return layout();
|
|
465
|
+
},
|
|
466
|
+
get fallback() {
|
|
467
|
+
return ssr(_tmpl$25, ssrHydrationKey(), escape(row.acf_fc_layout));
|
|
468
|
+
},
|
|
469
|
+
get children() {
|
|
470
|
+
return createComponent(For, {
|
|
471
|
+
get each() {
|
|
472
|
+
return layout().subFields ?? [];
|
|
473
|
+
},
|
|
474
|
+
children: (sub) => createComponent(FieldRenderer, {
|
|
475
|
+
field: sub,
|
|
476
|
+
get values() {
|
|
477
|
+
return rowData();
|
|
478
|
+
},
|
|
479
|
+
onChange: (name, value) => {
|
|
480
|
+
const current = [...Array.isArray(props.value) ? props.value : []];
|
|
481
|
+
current[index()] = {
|
|
482
|
+
...current[index()],
|
|
483
|
+
[name]: value
|
|
484
|
+
};
|
|
485
|
+
props.onChange(current);
|
|
486
|
+
}
|
|
487
|
+
})
|
|
488
|
+
});
|
|
489
|
+
}
|
|
490
|
+
})));
|
|
491
|
+
}
|
|
492
|
+
})), escape(createComponent(For, {
|
|
493
|
+
get each() {
|
|
494
|
+
return layouts();
|
|
495
|
+
},
|
|
496
|
+
children: (layout) => ssr(_tmpl$12, ssrHydrationKey() + ssrAttribute("value", escape(layout.name, true), false), escape(layout.label ?? layout.name))
|
|
497
|
+
})));
|
|
498
|
+
}
|
|
499
|
+
case "group": return ssr(_tmpl$26, ssrHydrationKey(), escape(createComponent(For, {
|
|
500
|
+
get each() {
|
|
501
|
+
return props.field.subFields ?? [];
|
|
502
|
+
},
|
|
503
|
+
children: (sub) => createComponent(FieldRenderer, {
|
|
504
|
+
field: sub,
|
|
505
|
+
get values() {
|
|
506
|
+
return props.value ?? {};
|
|
507
|
+
},
|
|
508
|
+
onChange: (name, val) => props.onChange({
|
|
509
|
+
...props.value ?? {},
|
|
510
|
+
[name]: val
|
|
511
|
+
})
|
|
512
|
+
})
|
|
513
|
+
})));
|
|
514
|
+
default: return ssr(_tmpl$27, ssrHydrationKey());
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
function RepeaterRow(props) {
|
|
518
|
+
return ssr(_tmpl$28, ssrHydrationKey(), escape(props.index) + 1, escape(createComponent(For, {
|
|
519
|
+
get each() {
|
|
520
|
+
return props.field.subFields ?? [];
|
|
521
|
+
},
|
|
522
|
+
children: (sub) => createComponent(FieldRenderer, {
|
|
523
|
+
field: sub,
|
|
524
|
+
get values() {
|
|
525
|
+
return props.row;
|
|
526
|
+
},
|
|
527
|
+
onChange: (name, value) => props.onUpdate({
|
|
528
|
+
...props.row,
|
|
529
|
+
[name]: value
|
|
530
|
+
})
|
|
531
|
+
})
|
|
532
|
+
})));
|
|
533
|
+
}
|
|
534
|
+
function MediaPickerInput(props) {
|
|
535
|
+
return ssr(_tmpl$29, ssrHydrationKey(), ssrAttribute("multiple", props.multiple, true) + ssrAttribute("accept", escape(props.accept, true), false));
|
|
536
|
+
}
|
|
537
|
+
function RelationshipSelector(props) {
|
|
538
|
+
const selectedIds = () => Array.isArray(props.value) ? props.value : props.value ? [props.value] : [];
|
|
539
|
+
return ssr(_tmpl$11, ssrHydrationKey(), ssrAttribute("multiple", props.multiple, true) + ssrAttribute("size", escape(Math.min(6, Math.max(3, (props.field.config?.["choices"] ?? []).length || 3)), true), false), escape(createComponent(For, {
|
|
540
|
+
get each() {
|
|
541
|
+
return props.field.config?.["choices"] ?? [];
|
|
542
|
+
},
|
|
543
|
+
children: (choice) => ssr(_tmpl$30, ssrHydrationKey() + ssrAttribute("value", escape(choice.value, true), false), ssrAttribute("selected", selectedIds().includes(choice.value), true), escape(choice.label))
|
|
544
|
+
})));
|
|
545
|
+
}
|
|
546
|
+
//#endregion
|
|
547
|
+
//#region src/components/content/FieldTypePicker.tsx
|
|
548
|
+
var _tmpl$$1 = [
|
|
549
|
+
"<div",
|
|
550
|
+
" class=\"field-type-picker__panel\" role=\"listbox\"><input type=\"search\" class=\"field-type-picker__search\" placeholder=\"Buscar tipo de campo...\"",
|
|
551
|
+
"><!--$-->",
|
|
552
|
+
"<!--/--></div>"
|
|
553
|
+
];
|
|
554
|
+
var _tmpl$2$1 = [
|
|
555
|
+
"<div",
|
|
556
|
+
" class=\"field-type-picker\"><button type=\"button\" class=\"field-type-picker__trigger\"",
|
|
557
|
+
"><span><!--$-->",
|
|
558
|
+
"<!--/--> <!--$-->",
|
|
559
|
+
"<!--/--></span><span aria-hidden=\"true\">",
|
|
560
|
+
"</span></button><!--$-->",
|
|
561
|
+
"<!--/--></div>"
|
|
562
|
+
];
|
|
563
|
+
var _tmpl$3$1 = [
|
|
564
|
+
"<div",
|
|
565
|
+
" class=\"field-type-picker__group\"><div class=\"field-type-picker__group-label\"><!--$-->",
|
|
566
|
+
"<!--/--> <!--$-->",
|
|
567
|
+
"<!--/--></div><!--$-->",
|
|
568
|
+
"<!--/--></div>"
|
|
569
|
+
];
|
|
570
|
+
var _tmpl$4$1 = ["<span", " class=\"field-type-picker__hint\">sem lógica condicional</span>"];
|
|
571
|
+
var _tmpl$5$1 = [
|
|
572
|
+
"<button",
|
|
573
|
+
" type=\"button\" role=\"option\"",
|
|
574
|
+
" class=\"",
|
|
575
|
+
"\"><span>",
|
|
576
|
+
"</span><span>",
|
|
577
|
+
"</span><!--$-->",
|
|
578
|
+
"<!--/--></button>"
|
|
579
|
+
];
|
|
580
|
+
function FieldTypePicker(props) {
|
|
581
|
+
const [open, setOpen] = createSignal(false);
|
|
582
|
+
const [query, setQuery] = createSignal("");
|
|
583
|
+
const selected = () => props.types.find((type) => type.type === props.value);
|
|
584
|
+
const filteredTypes = () => {
|
|
585
|
+
const q = query().toLowerCase();
|
|
586
|
+
return q ? props.types.filter((type) => type.label.toLowerCase().includes(q) || type.type.includes(q)) : props.types;
|
|
587
|
+
};
|
|
588
|
+
return ssr(_tmpl$2$1, ssrHydrationKey(), ssrAttribute("aria-expanded", escape(open(), true), false), escape(selected()?.icon ?? " "), escape(selected()?.label ?? "Selecione o tipo"), open() ? "▴" : "▾", escape(createComponent(Show, {
|
|
589
|
+
get when() {
|
|
590
|
+
return open();
|
|
591
|
+
},
|
|
592
|
+
get children() {
|
|
593
|
+
return ssr(_tmpl$$1, ssrHydrationKey(), ssrAttribute("value", escape(query(), true), false), escape(createComponent(For, {
|
|
594
|
+
get each() {
|
|
595
|
+
return props.categories;
|
|
596
|
+
},
|
|
597
|
+
children: (category) => {
|
|
598
|
+
const categoryTypes = filteredTypes().filter((type) => type.category === category.id);
|
|
599
|
+
return createComponent(Show, {
|
|
600
|
+
get when() {
|
|
601
|
+
return categoryTypes.length > 0;
|
|
602
|
+
},
|
|
603
|
+
get children() {
|
|
604
|
+
return ssr(_tmpl$3$1, ssrHydrationKey(), escape(category.icon), escape(category.label), escape(createComponent(For, {
|
|
605
|
+
each: categoryTypes,
|
|
606
|
+
children: (type) => ssr(_tmpl$5$1, ssrHydrationKey(), ssrAttribute("aria-selected", escape(props.value, true) === escape(type.type, true), false), `field-type-picker__option ${props.value === type.type ? "is-selected" : ""}`, escape(type.icon), escape(type.label), escape(createComponent(Show, {
|
|
607
|
+
get when() {
|
|
608
|
+
return !type.supportsConditions;
|
|
609
|
+
},
|
|
610
|
+
get children() {
|
|
611
|
+
return ssr(_tmpl$4$1, ssrHydrationKey());
|
|
612
|
+
}
|
|
613
|
+
})))
|
|
614
|
+
})));
|
|
615
|
+
}
|
|
616
|
+
});
|
|
617
|
+
}
|
|
618
|
+
})));
|
|
619
|
+
}
|
|
620
|
+
})));
|
|
621
|
+
}
|
|
622
|
+
//#endregion
|
|
623
|
+
//#region src/components/content/ContentEditor.tsx
|
|
624
|
+
var _tmpl$ = [
|
|
625
|
+
"<div",
|
|
626
|
+
" class=\"notice notice--success\">",
|
|
627
|
+
"</div>"
|
|
628
|
+
];
|
|
629
|
+
var _tmpl$2 = [
|
|
630
|
+
"<label",
|
|
631
|
+
">Título<input class=\"input\" required",
|
|
632
|
+
"></label>"
|
|
633
|
+
];
|
|
634
|
+
var _tmpl$3 = [
|
|
635
|
+
"<label",
|
|
636
|
+
">Resumo<textarea class=\"input\" rows=\"3\"",
|
|
637
|
+
"></textarea></label>"
|
|
638
|
+
];
|
|
639
|
+
var _tmpl$4 = [
|
|
640
|
+
"<label",
|
|
641
|
+
">Imagem destacada (media ID)<input class=\"input\"",
|
|
642
|
+
"></label>"
|
|
643
|
+
];
|
|
644
|
+
var _tmpl$5 = [
|
|
645
|
+
"<label",
|
|
646
|
+
">Layout<select class=\"input\"",
|
|
647
|
+
"><option value>Automático (hierarquia do tema)</option><!--$-->",
|
|
648
|
+
"<!--/--></select></label>"
|
|
649
|
+
];
|
|
650
|
+
var _tmpl$6 = [
|
|
651
|
+
"<div",
|
|
652
|
+
" class=\"card custom-fields\"><h3>Campos personalizados</h3><!--$-->",
|
|
653
|
+
"<!--/--><details><summary>Inspecionar tipos disponíveis</summary><!--$-->",
|
|
654
|
+
"<!--/--></details></div>"
|
|
655
|
+
];
|
|
656
|
+
var _tmpl$7 = [
|
|
657
|
+
"<form",
|
|
658
|
+
" class=\"content-editor\"><!--$-->",
|
|
659
|
+
"<!--/--><!--$-->",
|
|
660
|
+
"<!--/--><div class=\"card\"><label>Tipo<select class=\"input\"",
|
|
661
|
+
">",
|
|
662
|
+
"</select></label><!--$-->",
|
|
663
|
+
"<!--/--><label>Slug<input class=\"input\"",
|
|
664
|
+
"></label><!--$-->",
|
|
665
|
+
"<!--/--><!--$-->",
|
|
666
|
+
"<!--/--><label>Status<select class=\"input\"",
|
|
667
|
+
"><option value=\"DRAFT\">Rascunho</option><option value=\"PUBLISHED\">Publicado</option><option value=\"ARCHIVED\">Arquivado</option></select></label><!--$-->",
|
|
668
|
+
"<!--/--></div><!--$-->",
|
|
669
|
+
"<!--/--><button type=\"submit\" class=\"btn btn-primary\"",
|
|
670
|
+
">Salvar</button></form>"
|
|
671
|
+
];
|
|
672
|
+
var _tmpl$8 = [
|
|
673
|
+
"<div",
|
|
674
|
+
" class=\"notice notice--error\">",
|
|
675
|
+
"</div>"
|
|
676
|
+
];
|
|
677
|
+
var _tmpl$9 = [
|
|
678
|
+
"<option",
|
|
679
|
+
">",
|
|
680
|
+
"</option>"
|
|
681
|
+
];
|
|
682
|
+
function ContentEditor() {
|
|
683
|
+
const [types, setTypes] = createSignal([]);
|
|
684
|
+
const [fieldTypes, setFieldTypes] = createSignal([]);
|
|
685
|
+
const [categories, setCategories] = createSignal([]);
|
|
686
|
+
const [groups, setGroups] = createSignal([]);
|
|
687
|
+
const [themes, setThemes] = createSignal([]);
|
|
688
|
+
const [data, setData] = createSignal({});
|
|
689
|
+
const [errors, setErrors] = createSignal([]);
|
|
690
|
+
const [saving, setSaving] = createSignal(false);
|
|
691
|
+
const [message, setMessage] = createSignal("");
|
|
692
|
+
const [draft, setDraft] = createSignal({
|
|
693
|
+
type: "post",
|
|
694
|
+
title: "",
|
|
695
|
+
status: "DRAFT"
|
|
696
|
+
});
|
|
697
|
+
const supports = () => new Set(types().find((t) => t.slug === draft().type)?.supports ?? ["title", "editor"]);
|
|
698
|
+
const hasSupport = (support) => supports().has(support);
|
|
699
|
+
onMount(async () => {
|
|
700
|
+
try {
|
|
701
|
+
const [typeList, fieldTypeCatalog, themeList] = await Promise.all([
|
|
702
|
+
apiClient.getContentTypes(),
|
|
703
|
+
apiClient.getFieldTypes(),
|
|
704
|
+
apiClient.getThemes().catch(() => [])
|
|
705
|
+
]);
|
|
706
|
+
setTypes(typeList);
|
|
707
|
+
setFieldTypes(fieldTypeCatalog.types);
|
|
708
|
+
setCategories(fieldTypeCatalog.categories);
|
|
709
|
+
setThemes(themeList);
|
|
710
|
+
} catch (err) {
|
|
711
|
+
setErrors([err instanceof Error ? err.message : String(err)]);
|
|
712
|
+
}
|
|
713
|
+
await loadGroups(draft().type);
|
|
714
|
+
});
|
|
715
|
+
const availableLayouts = () => {
|
|
716
|
+
const layouts = /* @__PURE__ */ new Set();
|
|
717
|
+
for (const theme of themes()) for (const layout of theme.manifest?.provides?.layouts ?? []) layouts.add(layout);
|
|
718
|
+
return [...layouts].sort();
|
|
719
|
+
};
|
|
720
|
+
const loadGroups = async (type) => {
|
|
721
|
+
try {
|
|
722
|
+
const all = await apiClient.getFieldGroups(type ? { type } : void 0);
|
|
723
|
+
const resolved = await Promise.all(all.filter((group) => group.active).map(async (group) => {
|
|
724
|
+
return (await apiClient.getFieldGroup(group.id)).fields ?? [];
|
|
725
|
+
}));
|
|
726
|
+
setGroups(expandCloneFields(resolved.flat()));
|
|
727
|
+
} catch (err) {
|
|
728
|
+
setErrors([err instanceof Error ? err.message : String(err)]);
|
|
729
|
+
}
|
|
730
|
+
};
|
|
731
|
+
return ssr(_tmpl$7, ssrHydrationKey(), escape(createComponent(Show, {
|
|
732
|
+
get when() {
|
|
733
|
+
return errors().length > 0;
|
|
734
|
+
},
|
|
735
|
+
get children() {
|
|
736
|
+
return createComponent(For, {
|
|
737
|
+
get each() {
|
|
738
|
+
return errors();
|
|
739
|
+
},
|
|
740
|
+
children: (err) => ssr(_tmpl$8, ssrHydrationKey(), escape(err))
|
|
741
|
+
});
|
|
742
|
+
}
|
|
743
|
+
})), escape(createComponent(Show, {
|
|
744
|
+
get when() {
|
|
745
|
+
return message();
|
|
746
|
+
},
|
|
747
|
+
get children() {
|
|
748
|
+
return ssr(_tmpl$, ssrHydrationKey(), escape(message()));
|
|
749
|
+
}
|
|
750
|
+
})), ssrAttribute("value", escape(draft().type, true), false), escape(createComponent(For, {
|
|
751
|
+
get each() {
|
|
752
|
+
return types();
|
|
753
|
+
},
|
|
754
|
+
children: (type) => ssr(_tmpl$9, ssrHydrationKey() + ssrAttribute("value", escape(type.slug, true), false), escape(type.pluralLabel))
|
|
755
|
+
})), escape(createComponent(Show, {
|
|
756
|
+
get when() {
|
|
757
|
+
return hasSupport("title");
|
|
758
|
+
},
|
|
759
|
+
get children() {
|
|
760
|
+
return ssr(_tmpl$2, ssrHydrationKey(), ssrAttribute("value", escape(draft().title, true), false));
|
|
761
|
+
}
|
|
762
|
+
})), ssrAttribute("value", escape(draft().slug ?? "", true), false), escape(createComponent(Show, {
|
|
763
|
+
get when() {
|
|
764
|
+
return hasSupport("excerpt");
|
|
765
|
+
},
|
|
766
|
+
get children() {
|
|
767
|
+
return ssr(_tmpl$3, ssrHydrationKey(), ssrAttribute("value", escape(draft().excerpt ?? "", true), false));
|
|
768
|
+
}
|
|
769
|
+
})), escape(createComponent(Show, {
|
|
770
|
+
get when() {
|
|
771
|
+
return hasSupport("thumbnail");
|
|
772
|
+
},
|
|
773
|
+
get children() {
|
|
774
|
+
return ssr(_tmpl$4, ssrHydrationKey(), ssrAttribute("value", escape(draft().featuredImageId ?? "", true), false));
|
|
775
|
+
}
|
|
776
|
+
})), ssrAttribute("value", escape(draft().status, true), false), escape(createComponent(Show, {
|
|
777
|
+
get when() {
|
|
778
|
+
return availableLayouts().length > 0;
|
|
779
|
+
},
|
|
780
|
+
get children() {
|
|
781
|
+
return ssr(_tmpl$5, ssrHydrationKey(), ssrAttribute("value", escape(draft().layout ?? "", true), false), escape(createComponent(For, {
|
|
782
|
+
get each() {
|
|
783
|
+
return availableLayouts();
|
|
784
|
+
},
|
|
785
|
+
children: (layout) => ssr(_tmpl$9, ssrHydrationKey() + ssrAttribute("value", escape(layout, true), false), escape(layout))
|
|
786
|
+
})));
|
|
787
|
+
}
|
|
788
|
+
})), escape(createComponent(Show, {
|
|
789
|
+
get when() {
|
|
790
|
+
return groups().length > 0 || fieldTypes().length > 0;
|
|
791
|
+
},
|
|
792
|
+
get children() {
|
|
793
|
+
return ssr(_tmpl$6, ssrHydrationKey(), escape(createComponent(For, {
|
|
794
|
+
get each() {
|
|
795
|
+
return groups();
|
|
796
|
+
},
|
|
797
|
+
children: (field) => createComponent(FieldRenderer, {
|
|
798
|
+
field,
|
|
799
|
+
get values() {
|
|
800
|
+
return data();
|
|
801
|
+
},
|
|
802
|
+
onChange: (name, value) => setData({
|
|
803
|
+
...data(),
|
|
804
|
+
[name]: value
|
|
805
|
+
})
|
|
806
|
+
})
|
|
807
|
+
})), escape(createComponent(FieldTypePicker, {
|
|
808
|
+
get categories() {
|
|
809
|
+
return categories();
|
|
810
|
+
},
|
|
811
|
+
get types() {
|
|
812
|
+
return fieldTypes();
|
|
813
|
+
},
|
|
814
|
+
value: "",
|
|
815
|
+
onChange: () => void 0
|
|
816
|
+
})));
|
|
817
|
+
}
|
|
818
|
+
})), ssrAttribute("disabled", saving(), true));
|
|
819
|
+
}
|
|
820
|
+
//#endregion
|
|
821
|
+
//#region src/pages/content/edit.astro
|
|
822
|
+
var edit_exports = /* @__PURE__ */ __exportAll({
|
|
823
|
+
default: () => $$Edit,
|
|
824
|
+
file: () => $$file,
|
|
825
|
+
url: () => $$url
|
|
826
|
+
});
|
|
827
|
+
var $$Edit = createComponent$1(($$result, $$props, $$slots) => {
|
|
828
|
+
return renderTemplate`${renderComponent($$result, "DashboardLayout", $$DashboardLayout, {
|
|
829
|
+
"title": "Editor de Conteúdo",
|
|
830
|
+
"data-astro-cid-4zhgedtj": true
|
|
831
|
+
}, { "default": ($$result) => renderTemplate`${maybeRenderHead($$result)}<div class="editor-page" data-astro-cid-4zhgedtj>${renderComponent($$result, "ContentEditor", ContentEditor, {
|
|
832
|
+
"client:load": true,
|
|
833
|
+
"data-astro-cid-4zhgedtj": true,
|
|
834
|
+
"client:component-hydration": "load",
|
|
835
|
+
"client:component-path": "/home/runner/work/cms/cms/apps/admin/src/components/content/ContentEditor.tsx",
|
|
836
|
+
"client:component-export": "ContentEditor"
|
|
837
|
+
})}</div>` })}`;
|
|
838
|
+
}, "/home/runner/work/cms/cms/apps/admin/src/pages/content/edit.astro", void 0);
|
|
839
|
+
var $$file = "/home/runner/work/cms/cms/apps/admin/src/pages/content/edit.astro";
|
|
840
|
+
var $$url = "/content/edit";
|
|
841
|
+
//#endregion
|
|
842
|
+
//#region \0virtual:astro:page:src/pages/content/edit@_@astro
|
|
843
|
+
var page = () => edit_exports;
|
|
844
|
+
//#endregion
|
|
845
|
+
export { page };
|