@valencets/cms 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/editor/admin-client.js +2 -0
- package/dist/admin/editor/admin-client.js.map +1 -1
- package/dist/admin/editor/blocks-client.d.ts +2 -0
- package/dist/admin/editor/blocks-client.d.ts.map +1 -0
- package/dist/admin/editor/blocks-client.js +100 -0
- package/dist/admin/editor/blocks-client.js.map +1 -0
- package/dist/admin/field-renderers.d.ts.map +1 -1
- package/dist/admin/field-renderers.js +34 -1
- package/dist/admin/field-renderers.js.map +1 -1
- package/dist/admin/layout.d.ts.map +1 -1
- package/dist/admin/layout.js +62 -0
- package/dist/admin/layout.js.map +1 -1
- package/dist/admin-client.js +11 -11
- package/dist/auth/auth-routes.d.ts +2 -1
- package/dist/auth/auth-routes.d.ts.map +1 -1
- package/dist/auth/auth-routes.js +31 -10
- package/dist/auth/auth-routes.js.map +1 -1
- package/dist/auth/index.d.ts +3 -3
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +2 -2
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/middleware.d.ts +8 -0
- package/dist/auth/middleware.d.ts.map +1 -1
- package/dist/auth/middleware.js +38 -0
- package/dist/auth/middleware.js.map +1 -1
- package/dist/auth/session.d.ts +3 -2
- package/dist/auth/session.d.ts.map +1 -1
- package/dist/auth/session.js +9 -4
- package/dist/auth/session.js.map +1 -1
- package/dist/config/cms-config.d.ts +1 -0
- package/dist/config/cms-config.d.ts.map +1 -1
- package/dist/config/cms-config.js +1 -1
- package/dist/config/cms-config.js.map +1 -1
- package/dist/db/column-map.d.ts.map +1 -1
- package/dist/db/column-map.js +2 -1
- package/dist/db/column-map.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/schema/field-types.d.ts +16 -1
- package/dist/schema/field-types.d.ts.map +1 -1
- package/dist/schema/field-types.js +2 -1
- package/dist/schema/field-types.js.map +1 -1
- package/dist/schema/fields.d.ts +2 -1
- package/dist/schema/fields.d.ts.map +1 -1
- package/dist/schema/fields.js +3 -0
- package/dist/schema/fields.js.map +1 -1
- package/dist/schema/index.d.ts +1 -1
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/infer.d.ts +5 -2
- package/dist/schema/infer.d.ts.map +1 -1
- package/dist/validation/zod-generator.d.ts.map +1 -1
- package/dist/validation/zod-generator.js +31 -1
- package/dist/validation/zod-generator.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { initBlocksFields } from './blocks-client.js';
|
|
1
2
|
import { initAllEditors } from './lexical-entry.js';
|
|
2
3
|
// Script is defer'd so DOM is ready — no need for DOMContentLoaded
|
|
3
4
|
initAllEditors();
|
|
5
|
+
initBlocksFields();
|
|
4
6
|
// Wire up delete dialog triggers
|
|
5
7
|
const trigger = document.querySelector('.delete-trigger');
|
|
6
8
|
const dialog = document.getElementById('delete-dialog');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-client.js","sourceRoot":"","sources":["../../../src/admin/editor/admin-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,mEAAmE;AACnE,cAAc,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"admin-client.js","sourceRoot":"","sources":["../../../src/admin/editor/admin-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blocks-client.d.ts","sourceRoot":"","sources":["../../../src/admin/editor/blocks-client.ts"],"names":[],"mappings":"AA2EA,wBAAgB,gBAAgB,IAAK,IAAI,CA0CxC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
function serializeBlocks(container) {
|
|
2
|
+
const hidden = container.querySelector('input[type="hidden"]');
|
|
3
|
+
if (!hidden)
|
|
4
|
+
return;
|
|
5
|
+
const items = container.querySelectorAll('.blocks-item');
|
|
6
|
+
const blocks = [];
|
|
7
|
+
for (const item of items) {
|
|
8
|
+
const blockType = item.getAttribute('data-block-type') ?? '';
|
|
9
|
+
const entry = { blockType };
|
|
10
|
+
const inputs = item.querySelectorAll('input:not([type="hidden"]), textarea, select');
|
|
11
|
+
for (const input of inputs) {
|
|
12
|
+
if (input.name) {
|
|
13
|
+
entry[input.name] = input.value;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
blocks.push(entry);
|
|
17
|
+
}
|
|
18
|
+
hidden.value = JSON.stringify(blocks);
|
|
19
|
+
}
|
|
20
|
+
function createBlockFieldset(blockDef, index, container) {
|
|
21
|
+
const fieldset = document.createElement('fieldset');
|
|
22
|
+
fieldset.className = 'blocks-item';
|
|
23
|
+
fieldset.setAttribute('data-block-index', String(index));
|
|
24
|
+
fieldset.setAttribute('data-block-type', blockDef.slug);
|
|
25
|
+
const legend = document.createElement('legend');
|
|
26
|
+
legend.textContent = blockDef.labels?.singular ?? blockDef.slug;
|
|
27
|
+
fieldset.appendChild(legend);
|
|
28
|
+
for (const f of blockDef.fields) {
|
|
29
|
+
const label = document.createElement('label');
|
|
30
|
+
label.className = 'form-field';
|
|
31
|
+
const span = document.createElement('span');
|
|
32
|
+
span.textContent = f.name;
|
|
33
|
+
label.appendChild(span);
|
|
34
|
+
const input = document.createElement('input');
|
|
35
|
+
input.className = 'form-input';
|
|
36
|
+
input.type = 'text';
|
|
37
|
+
input.name = f.name;
|
|
38
|
+
input.value = '';
|
|
39
|
+
label.appendChild(input);
|
|
40
|
+
fieldset.appendChild(label);
|
|
41
|
+
input.addEventListener('input', () => serializeBlocks(container));
|
|
42
|
+
}
|
|
43
|
+
const removeBtn = document.createElement('button');
|
|
44
|
+
removeBtn.type = 'button';
|
|
45
|
+
removeBtn.className = 'blocks-remove';
|
|
46
|
+
removeBtn.textContent = 'Remove';
|
|
47
|
+
removeBtn.addEventListener('click', () => {
|
|
48
|
+
fieldset.remove();
|
|
49
|
+
serializeBlocks(container);
|
|
50
|
+
});
|
|
51
|
+
fieldset.appendChild(removeBtn);
|
|
52
|
+
return fieldset;
|
|
53
|
+
}
|
|
54
|
+
export function initBlocksFields() {
|
|
55
|
+
const containers = document.querySelectorAll('.blocks-field');
|
|
56
|
+
for (const container of containers) {
|
|
57
|
+
const configAttr = container.getAttribute('data-blocks-config');
|
|
58
|
+
if (!configAttr)
|
|
59
|
+
continue;
|
|
60
|
+
let blockDefs = [];
|
|
61
|
+
try {
|
|
62
|
+
blockDefs = JSON.parse(configAttr);
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
const addSection = container.querySelector('.blocks-add');
|
|
68
|
+
const select = container.querySelector('.blocks-type-select');
|
|
69
|
+
const addBtn = container.querySelector('.blocks-add-btn');
|
|
70
|
+
// Wire existing remove buttons
|
|
71
|
+
const existingRemoves = container.querySelectorAll('.blocks-remove');
|
|
72
|
+
for (const btn of existingRemoves) {
|
|
73
|
+
btn.addEventListener('click', () => {
|
|
74
|
+
const item = btn.closest('.blocks-item');
|
|
75
|
+
if (item) {
|
|
76
|
+
item.remove();
|
|
77
|
+
serializeBlocks(container);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
// Wire existing field inputs
|
|
82
|
+
const existingInputs = container.querySelectorAll('.blocks-item input:not([type="hidden"])');
|
|
83
|
+
for (const input of existingInputs) {
|
|
84
|
+
input.addEventListener('input', () => serializeBlocks(container));
|
|
85
|
+
}
|
|
86
|
+
if (!addBtn || !select || !addSection)
|
|
87
|
+
continue;
|
|
88
|
+
addBtn.addEventListener('click', () => {
|
|
89
|
+
const selectedSlug = select.value;
|
|
90
|
+
const def = blockDefs.find(b => b.slug === selectedSlug);
|
|
91
|
+
if (!def)
|
|
92
|
+
return;
|
|
93
|
+
const items = container.querySelectorAll('.blocks-item');
|
|
94
|
+
const fieldset = createBlockFieldset(def, items.length, container);
|
|
95
|
+
container.insertBefore(fieldset, addSection);
|
|
96
|
+
serializeBlocks(container);
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=blocks-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blocks-client.js","sourceRoot":"","sources":["../../../src/admin/editor/blocks-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-renderers.d.ts","sourceRoot":"","sources":["../../src/admin/field-renderers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAG3D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,cAAc,EAAE,CAAA;CACxD;
|
|
1
|
+
{"version":3,"file":"field-renderers.d.ts","sourceRoot":"","sources":["../../src/admin/field-renderers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAG3D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,cAAc,EAAE,CAAA;CACxD;AAwKD,wBAAgB,gBAAgB,CAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,CAKlG"}
|
|
@@ -17,7 +17,8 @@ const RENDERER_MAP = {
|
|
|
17
17
|
json: renderJsonTextarea,
|
|
18
18
|
color: renderColorInput,
|
|
19
19
|
multiselect: renderMultiselect,
|
|
20
|
-
array: renderArrayField
|
|
20
|
+
array: renderArrayField,
|
|
21
|
+
blocks: renderBlocksField
|
|
21
22
|
};
|
|
22
23
|
function renderTextInput(f, value) {
|
|
23
24
|
const req = f.required ? ' required' : '';
|
|
@@ -117,6 +118,38 @@ function renderMultiselect(f, value) {
|
|
|
117
118
|
function renderArrayField(f, value) {
|
|
118
119
|
return `<div class="array-field"><label class="form-field"><span>${escapeHtml(f.label ?? f.name)}</span></label><input type="hidden" name="${escapeHtml(f.name)}" value="${escapeHtml(value)}"><div class="array-rows" data-field="${escapeHtml(f.name)}"></div><button type="button" class="array-add" data-field="${escapeHtml(f.name)}">+ Add row</button></div>`;
|
|
119
120
|
}
|
|
121
|
+
/** JSON.parse boundary for blocks field value — sync equivalent of safeJsonParse. */
|
|
122
|
+
function parseBlocksJson(value) {
|
|
123
|
+
if (!value)
|
|
124
|
+
return [];
|
|
125
|
+
try {
|
|
126
|
+
return JSON.parse(value);
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
return [];
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
function renderBlocksField(f, value) {
|
|
133
|
+
const blocks = parseBlocksJson(value);
|
|
134
|
+
const blockDefs = 'blocks' in f ? f.blocks : [];
|
|
135
|
+
const blockOptions = blockDefs.map(b => {
|
|
136
|
+
const label = b.labels?.singular ?? b.slug;
|
|
137
|
+
return '<option value="' + escapeHtml(b.slug) + '">' + escapeHtml(label) + '</option>';
|
|
138
|
+
}).join('');
|
|
139
|
+
const blockFieldsets = blocks.map((block, i) => {
|
|
140
|
+
const def = blockDefs.find(b => b.slug === block.blockType);
|
|
141
|
+
if (!def)
|
|
142
|
+
return '';
|
|
143
|
+
const legend = def.labels?.singular ?? def.slug;
|
|
144
|
+
const fieldInputs = def.fields.map(child => {
|
|
145
|
+
const childVal = block[child.name] ?? '';
|
|
146
|
+
return renderFieldInput(child, childVal);
|
|
147
|
+
}).join('\n');
|
|
148
|
+
return '<fieldset class="blocks-item" data-block-index="' + i + '" data-block-type="' + escapeHtml(block.blockType ?? '') + '"><legend>' + escapeHtml(legend) + '</legend>' + fieldInputs + '<button type="button" class="blocks-remove">Remove</button></fieldset>';
|
|
149
|
+
}).join('\n');
|
|
150
|
+
const configJson = escapeHtml(JSON.stringify(blockDefs.map(b => ({ slug: b.slug, fields: b.fields.map(bf => ({ type: bf.type, name: bf.name })), labels: b.labels }))));
|
|
151
|
+
return '<div class="blocks-field" data-blocks-config="' + configJson + '"><label class="form-field"><span>' + escapeHtml(f.label ?? f.name) + '</span></label><input type="hidden" name="' + escapeHtml(f.name) + '" value="' + escapeHtml(value) + '">' + blockFieldsets + '<div class="blocks-add"><select class="blocks-type-select">' + blockOptions + '</select><button type="button" class="blocks-add-btn">+ Add block</button></div></div>';
|
|
152
|
+
}
|
|
120
153
|
export function renderFieldInput(f, value, context) {
|
|
121
154
|
const renderer = RENDERER_MAP[f.type];
|
|
122
155
|
if (!renderer)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-renderers.js","sourceRoot":"","sources":["../../src/admin/field-renderers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAWxC,MAAM,YAAY,GAA8D;IAC9E,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,oBAAoB;IAC9B,MAAM,EAAE,iBAAiB;IACzB,OAAO,EAAE,cAAc;IACvB,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,iBAAiB;IACxB,QAAQ,EAAE,cAAc;IACxB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,gBAAgB;IACvB,GAAG,EAAE,cAAc;IACnB,QAAQ,EAAE,mBAAmB;IAC7B,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE,gBAAgB;IACvB,WAAW,EAAE,iBAAiB;IAC9B,KAAK,EAAE,gBAAgB;
|
|
1
|
+
{"version":3,"file":"field-renderers.js","sourceRoot":"","sources":["../../src/admin/field-renderers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/admin/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAI9C,UAAU,UAAU;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,CAAA;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;CAClD;AAED,wBAAgB,YAAY,CAAE,IAAI,EAAE,UAAU,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/admin/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAI9C,UAAU,UAAU;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,SAAS,gBAAgB,EAAE,CAAA;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,SAAS,CAAA;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;CAClD;AAED,wBAAgB,YAAY,CAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CA2kBtD"}
|
package/dist/admin/layout.js
CHANGED
|
@@ -416,6 +416,68 @@ export function renderLayout(args) {
|
|
|
416
416
|
color: var(--val-color-text);
|
|
417
417
|
}
|
|
418
418
|
|
|
419
|
+
|
|
420
|
+
/* --- Blocks field --- */
|
|
421
|
+
.blocks-field {
|
|
422
|
+
display: flex;
|
|
423
|
+
flex-direction: column;
|
|
424
|
+
gap: 0.75rem;
|
|
425
|
+
}
|
|
426
|
+
.blocks-item {
|
|
427
|
+
border: 1px solid var(--val-color-border);
|
|
428
|
+
border-radius: var(--val-radius-lg);
|
|
429
|
+
padding: 1rem;
|
|
430
|
+
display: flex;
|
|
431
|
+
flex-direction: column;
|
|
432
|
+
gap: 0.75rem;
|
|
433
|
+
}
|
|
434
|
+
.blocks-item legend {
|
|
435
|
+
font-size: var(--val-text-sm);
|
|
436
|
+
font-weight: var(--val-weight-semibold);
|
|
437
|
+
color: var(--val-color-text-muted);
|
|
438
|
+
padding: 0 0.5rem;
|
|
439
|
+
}
|
|
440
|
+
.blocks-remove {
|
|
441
|
+
align-self: flex-end;
|
|
442
|
+
background: none;
|
|
443
|
+
border: 1px solid var(--val-color-error);
|
|
444
|
+
border-radius: var(--val-radius-md);
|
|
445
|
+
padding: 0.25rem 0.5rem;
|
|
446
|
+
color: var(--val-color-error);
|
|
447
|
+
font-size: var(--val-text-xs);
|
|
448
|
+
cursor: pointer;
|
|
449
|
+
}
|
|
450
|
+
.blocks-remove:hover {
|
|
451
|
+
background: var(--val-color-error);
|
|
452
|
+
color: oklch(1 0 0);
|
|
453
|
+
}
|
|
454
|
+
.blocks-add {
|
|
455
|
+
display: flex;
|
|
456
|
+
gap: 0.5rem;
|
|
457
|
+
align-items: center;
|
|
458
|
+
}
|
|
459
|
+
.blocks-type-select {
|
|
460
|
+
background: var(--val-color-bg-muted);
|
|
461
|
+
border: 1px solid var(--val-color-border);
|
|
462
|
+
border-radius: var(--val-radius-md);
|
|
463
|
+
padding: 0.375rem 0.75rem;
|
|
464
|
+
color: var(--val-color-text);
|
|
465
|
+
font-size: var(--val-text-sm);
|
|
466
|
+
}
|
|
467
|
+
.blocks-add-btn {
|
|
468
|
+
background: var(--val-color-bg-muted);
|
|
469
|
+
border: 1px dashed var(--val-color-border);
|
|
470
|
+
border-radius: var(--val-radius-md);
|
|
471
|
+
padding: 0.375rem 0.75rem;
|
|
472
|
+
color: var(--val-color-text-muted);
|
|
473
|
+
font-size: var(--val-text-sm);
|
|
474
|
+
cursor: pointer;
|
|
475
|
+
}
|
|
476
|
+
.blocks-add-btn:hover {
|
|
477
|
+
border-color: var(--val-blue-500);
|
|
478
|
+
color: var(--val-color-text);
|
|
479
|
+
}
|
|
480
|
+
|
|
419
481
|
/* --- Edit meta + revisions --- */
|
|
420
482
|
.edit-meta {
|
|
421
483
|
margin-top: 1rem;
|
package/dist/admin/layout.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/admin/layout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAWxC,MAAM,UAAU,YAAY,CAAE,IAAgB;IAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAA;QACpD,OAAO,uBAAuB,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,WAAW,CAAA;IACvE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACb,MAAM,QAAQ,GAAG,aAAa,GAAG,uJAAuJ,CAAA;IAExL,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAE3D,OAAO;;;;;WAKE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7B,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/admin/layout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAWxC,MAAM,UAAU,YAAY,CAAE,IAAgB;IAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAA;QACpD,OAAO,uBAAuB,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,WAAW,CAAA;IACvE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACb,MAAM,QAAQ,GAAG,aAAa,GAAG,uJAAuJ,CAAA;IAExL,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAE3D,OAAO;;;;;WAKE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7B,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsiBpC,QAAQ;;;;MAIJ,SAAS;UACL,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;MAC1B,IAAI,CAAC,OAAO;;IAEd,SAAS;QACT,CAAC,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,qBAAqB,GAAG,GAAG;;;;;;;;YAQpF;QACR,CAAC,CAAC,EAAE;gDACwC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,qBAAqB,GAAG,GAAG;;QAExH,CAAA;AACR,CAAC"}
|