@growth-labs/cms 0.6.6 → 0.6.8
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/README.md +20 -0
- package/dist/engine/foundry-dispatch.d.ts.map +1 -1
- package/dist/engine/foundry-dispatch.js +36 -7
- package/dist/engine/foundry-dispatch.js.map +1 -1
- package/dist/engine/fronts-publish-intent.d.ts +15 -4
- package/dist/engine/fronts-publish-intent.d.ts.map +1 -1
- package/dist/engine/fronts-publish-intent.js +52 -19
- package/dist/engine/fronts-publish-intent.js.map +1 -1
- package/dist/engine/fronts-publish.d.ts +19 -0
- package/dist/engine/fronts-publish.d.ts.map +1 -1
- package/dist/engine/fronts-publish.js +158 -5
- package/dist/engine/fronts-publish.js.map +1 -1
- package/dist/engine/index.d.ts +1 -0
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +1 -0
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/podcast-source.d.ts +28 -0
- package/dist/engine/podcast-source.d.ts.map +1 -0
- package/dist/engine/podcast-source.js +50 -0
- package/dist/engine/podcast-source.js.map +1 -0
- package/dist/engine/publication-current-guard.d.ts +10 -0
- package/dist/engine/publication-current-guard.d.ts.map +1 -0
- package/dist/engine/publication-current-guard.js +76 -0
- package/dist/engine/publication-current-guard.js.map +1 -0
- package/dist/engine/publication.d.ts +4 -0
- package/dist/engine/publication.d.ts.map +1 -1
- package/dist/engine/publication.js +13 -0
- package/dist/engine/publication.js.map +1 -1
- package/dist/engine/publisher.d.ts.map +1 -1
- package/dist/engine/publisher.js +20 -13
- package/dist/engine/publisher.js.map +1 -1
- package/dist/engine/soft-delete.js +2 -2
- package/dist/engine/soft-delete.js.map +1 -1
- package/dist/integration/options.d.ts +117 -0
- package/dist/integration/options.d.ts.map +1 -1
- package/dist/integration/options.js +19 -0
- package/dist/integration/options.js.map +1 -1
- package/dist/providers/types.d.ts +9 -3
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/routes/config.d.ts +4 -0
- package/dist/routes/config.d.ts.map +1 -1
- package/dist/routes/config.js +1 -0
- package/dist/routes/config.js.map +1 -1
- package/dist/routes/content.d.ts +2 -0
- package/dist/routes/content.d.ts.map +1 -1
- package/dist/routes/content.js +8 -6
- package/dist/routes/content.js.map +1 -1
- package/dist/routes/fronts-publish.d.ts +2 -2
- package/dist/routes/fronts-publish.d.ts.map +1 -1
- package/dist/routes/fronts-publish.js +52 -23
- package/dist/routes/fronts-publish.js.map +1 -1
- package/dist/routes/index.js +1 -1
- package/dist/routes/index.js.map +1 -1
- package/dist/schema/layout.d.ts +2 -2
- package/dist/ui/api/_content-config.d.ts.map +1 -1
- package/dist/ui/api/_content-config.js +7 -0
- package/dist/ui/api/_content-config.js.map +1 -1
- package/dist/ui/api/fronts/publish-callback.d.ts.map +1 -1
- package/dist/ui/api/fronts/publish-callback.js +2 -6
- package/dist/ui/api/fronts/publish-callback.js.map +1 -1
- package/dist/ui/api/fronts/schedule.d.ts.map +1 -1
- package/dist/ui/api/fronts/schedule.js +2 -6
- package/dist/ui/api/fronts/schedule.js.map +1 -1
- package/dist/ui/client/mount.d.ts.map +1 -1
- package/dist/ui/client/mount.js +1 -0
- package/dist/ui/client/mount.js.map +1 -1
- package/dist/ui/editor/ContentForm.d.ts +3 -2
- package/dist/ui/editor/ContentForm.d.ts.map +1 -1
- package/dist/ui/editor/ContentForm.js +18 -4
- package/dist/ui/editor/ContentForm.js.map +1 -1
- package/dist/ui/editor/content-payload.d.ts +4 -1
- package/dist/ui/editor/content-payload.d.ts.map +1 -1
- package/dist/ui/editor/content-payload.js +9 -1
- package/dist/ui/editor/content-payload.js.map +1 -1
- package/dist/ui/screens/ContentRoute.d.ts +3 -2
- package/dist/ui/screens/ContentRoute.d.ts.map +1 -1
- package/dist/ui/screens/ContentRoute.js +2 -2
- package/dist/ui/screens/ContentRoute.js.map +1 -1
- package/dist/ui/screens/EditorScreen.d.ts +3 -2
- package/dist/ui/screens/EditorScreen.d.ts.map +1 -1
- package/dist/ui/screens/EditorScreen.js +2 -2
- package/dist/ui/screens/EditorScreen.js.map +1 -1
- package/dist/ui/screens/registry.d.ts +3 -2
- package/dist/ui/screens/registry.d.ts.map +1 -1
- package/dist/ui/screens/registry.js +2 -2
- package/dist/ui/screens/registry.js.map +1 -1
- package/package.json +1 -1
- package/src/engine/foundry-dispatch.ts +67 -12
- package/src/engine/fronts-publish-intent.ts +78 -26
- package/src/engine/fronts-publish.ts +223 -5
- package/src/engine/index.ts +4 -0
- package/src/engine/podcast-source.ts +82 -0
- package/src/engine/publication-current-guard.ts +87 -0
- package/src/engine/publication.ts +23 -0
- package/src/engine/publisher.ts +21 -13
- package/src/engine/soft-delete.ts +2 -2
- package/src/integration/options.ts +23 -0
- package/src/providers/types.ts +6 -1
- package/src/routes/config.ts +5 -0
- package/src/routes/content.ts +11 -6
- package/src/routes/fronts-publish.ts +63 -25
- package/src/routes/index.ts +1 -1
- package/src/ui/api/_content-config.ts +11 -0
- package/src/ui/api/fronts/publish-callback.ts +2 -8
- package/src/ui/api/fronts/schedule.ts +2 -8
- package/src/ui/client/mount.tsx +1 -0
- package/src/ui/editor/ContentForm.tsx +45 -3
- package/src/ui/editor/content-payload.ts +8 -0
- package/src/ui/screens/ContentRoute.tsx +4 -1
- package/src/ui/screens/EditorScreen.tsx +4 -1
- package/src/ui/screens/registry.tsx +4 -1
|
@@ -60,7 +60,7 @@ export function frontsPublishStatusBackground(status) {
|
|
|
60
60
|
// ---------------------------------------------------------------------------
|
|
61
61
|
// EditorScreen
|
|
62
62
|
// ---------------------------------------------------------------------------
|
|
63
|
-
export function EditorScreen({ docRef, onClose, allowInlineAuthorCreation = true, primaryCategories = [], contentMetadataSelects = [], }) {
|
|
63
|
+
export function EditorScreen({ docRef, onClose, allowInlineAuthorCreation = true, primaryCategories = [], primaryTopic, contentMetadataSelects = [], }) {
|
|
64
64
|
const contentType = docRef.contentType ?? 'article';
|
|
65
65
|
const siteBase = typeof window !== 'undefined' ? window.location.origin : undefined;
|
|
66
66
|
// Resolved doc id — starts as null for new docs; set by onDocCreated
|
|
@@ -194,7 +194,7 @@ export function EditorScreen({ docRef, onClose, allowInlineAuthorCreation = true
|
|
|
194
194
|
// -------------------------------------------------------------------------
|
|
195
195
|
// Render
|
|
196
196
|
// -------------------------------------------------------------------------
|
|
197
|
-
return (_jsxs("div", { style: editorOuter, children: [_jsxs("header", { style: headerBar, children: [_jsxs("div", { style: headerLeft, children: [_jsxs("button", { type: "button", onClick: onClose, style: backBtn, "aria-label": "Back to content library", children: [_jsx(Icon, { name: "chevLeft", size: 16 }), _jsx("span", { children: "Content" })] }), _jsx("div", { style: headerDivider }), _jsx(Icon, { name: contentTypeIcon(contentType), size: 15, style: { color: 'var(--ink-muted)', flexShrink: 0 } }), _jsx("span", { style: headerTitleText, title: headerTitle || 'Untitled', children: headerTitle || 'Untitled' }), _jsx("span", { style: statusPill(status), children: status }), frontsPublishStatus != null && (_jsxs("span", { style: frontsPublishStatusPill(frontsPublishStatus), title: "Fronts publish status (Go path)", children: ["Go: ", frontsPublishStatus] }))] }), _jsxs("div", { style: headerRight, children: [_jsxs("fieldset", { style: fieldsetReset, children: [_jsx("legend", { style: legendHidden, children: "Preview position" }), _jsx("div", { style: segmentGroup, children: ['off', 'right', 'bottom'].map((pos) => (_jsx("button", { type: "button", onClick: () => setPreviewPos(pos), style: segmentBtn(previewPos === pos), "aria-pressed": previewPos === pos, title: `Preview ${pos}`, children: _jsx(Icon, { name: previewPosIcon(pos), size: 14 }) }, pos))) })] }), previewPos !== 'off' && (_jsxs("fieldset", { style: fieldsetReset, children: [_jsx("legend", { style: legendHidden, children: "Preview device" }), _jsx("div", { style: segmentGroup, children: ['desktop', 'tablet', 'mobile'].map((dev) => (_jsx("button", { type: "button", onClick: () => setDevice(dev), style: segmentBtn(device === dev), "aria-pressed": device === dev, title: `${dev} preview`, children: _jsx(Icon, { name: dev, size: 14 }) }, dev))) })] })), previewPos !== 'off' && docId && (_jsx("button", { type: "button", onClick: () => void handlePreviewInTab(), style: actionBtn, title: "Open preview in new tab", children: _jsx(Icon, { name: "globe", size: 14 }) })), contentType === 'article' && docId && previewDoc.slug && (_jsx("button", { type: "button", onClick: handleOpenAnalytics, style: actionBtn, title: "Open article analytics", children: _jsx(Icon, { name: "chart", size: 14 }) })), _jsx("button", { type: "button", onClick: () => setShareOpen(true), style: actionBtn, title: "Share", children: _jsx(Icon, { name: "share", size: 14 }) }), _jsxs("button", { type: "button", onClick: handleSaveDraft, style: saveBtn, disabled: saveState.saving, title: saveState.saving ? 'Saving draft' : 'Save draft changes', children: [_jsx(Icon, { name: "check", size: 14 }), saveState.saving ? 'Saving...' : status === 'draft' ? 'Save draft' : 'Save'] }), _jsxs("button", { type: "button", onClick: () => void handlePublish(), style: publishBtn, disabled: !docId, title: docId ? 'Publish' : 'Save first to publish', children: [_jsx(Icon, { name: "bolt", size: 14 }), "Publish"] })] })] }), _jsxs("div", { style: grid.container, children: [_jsx("div", { style: grid.formColumn, children: _jsxs("div", { style: formAndInspector, children: [_jsx("div", { style: formArea, children: _jsx(ContentForm, { docId: docId, contentType: contentType, onDocCreated: handleDocCreated, onTitleChange: handleTitleChange, onDraftChange: handleDraftChange, saveRequest: saveRequest, onStatusChange: setStatus, onFrontsPublishStatusChange: setFrontsPublishStatus, onSaveStateChange: handleSaveStateChange, primaryCategories: primaryCategories, contentMetadataSelects: contentMetadataSelects }) }), _jsx("aside", { style: inspectorSlot, "aria-label": "Inspector", children: _jsx(Inspector, { docId: docId, contentType: contentType, onStatusChange: setStatus, onAuthorChange: handleAuthorChange }) })] }) }), previewPos !== 'off' && (_jsx("div", { style: grid.previewPane, children: _jsx(DraftPage, { doc: previewDoc, device: device }) }))] }), shareOpen && (_jsx(ShareModal, { prefill: buildSharePrefill({
|
|
197
|
+
return (_jsxs("div", { style: editorOuter, children: [_jsxs("header", { style: headerBar, children: [_jsxs("div", { style: headerLeft, children: [_jsxs("button", { type: "button", onClick: onClose, style: backBtn, "aria-label": "Back to content library", children: [_jsx(Icon, { name: "chevLeft", size: 16 }), _jsx("span", { children: "Content" })] }), _jsx("div", { style: headerDivider }), _jsx(Icon, { name: contentTypeIcon(contentType), size: 15, style: { color: 'var(--ink-muted)', flexShrink: 0 } }), _jsx("span", { style: headerTitleText, title: headerTitle || 'Untitled', children: headerTitle || 'Untitled' }), _jsx("span", { style: statusPill(status), children: status }), frontsPublishStatus != null && (_jsxs("span", { style: frontsPublishStatusPill(frontsPublishStatus), title: "Fronts publish status (Go path)", children: ["Go: ", frontsPublishStatus] }))] }), _jsxs("div", { style: headerRight, children: [_jsxs("fieldset", { style: fieldsetReset, children: [_jsx("legend", { style: legendHidden, children: "Preview position" }), _jsx("div", { style: segmentGroup, children: ['off', 'right', 'bottom'].map((pos) => (_jsx("button", { type: "button", onClick: () => setPreviewPos(pos), style: segmentBtn(previewPos === pos), "aria-pressed": previewPos === pos, title: `Preview ${pos}`, children: _jsx(Icon, { name: previewPosIcon(pos), size: 14 }) }, pos))) })] }), previewPos !== 'off' && (_jsxs("fieldset", { style: fieldsetReset, children: [_jsx("legend", { style: legendHidden, children: "Preview device" }), _jsx("div", { style: segmentGroup, children: ['desktop', 'tablet', 'mobile'].map((dev) => (_jsx("button", { type: "button", onClick: () => setDevice(dev), style: segmentBtn(device === dev), "aria-pressed": device === dev, title: `${dev} preview`, children: _jsx(Icon, { name: dev, size: 14 }) }, dev))) })] })), previewPos !== 'off' && docId && (_jsx("button", { type: "button", onClick: () => void handlePreviewInTab(), style: actionBtn, title: "Open preview in new tab", children: _jsx(Icon, { name: "globe", size: 14 }) })), contentType === 'article' && docId && previewDoc.slug && (_jsx("button", { type: "button", onClick: handleOpenAnalytics, style: actionBtn, title: "Open article analytics", children: _jsx(Icon, { name: "chart", size: 14 }) })), _jsx("button", { type: "button", onClick: () => setShareOpen(true), style: actionBtn, title: "Share", children: _jsx(Icon, { name: "share", size: 14 }) }), _jsxs("button", { type: "button", onClick: handleSaveDraft, style: saveBtn, disabled: saveState.saving, title: saveState.saving ? 'Saving draft' : 'Save draft changes', children: [_jsx(Icon, { name: "check", size: 14 }), saveState.saving ? 'Saving...' : status === 'draft' ? 'Save draft' : 'Save'] }), _jsxs("button", { type: "button", onClick: () => void handlePublish(), style: publishBtn, disabled: !docId, title: docId ? 'Publish' : 'Save first to publish', children: [_jsx(Icon, { name: "bolt", size: 14 }), "Publish"] })] })] }), _jsxs("div", { style: grid.container, children: [_jsx("div", { style: grid.formColumn, children: _jsxs("div", { style: formAndInspector, children: [_jsx("div", { style: formArea, children: _jsx(ContentForm, { docId: docId, contentType: contentType, onDocCreated: handleDocCreated, onTitleChange: handleTitleChange, onDraftChange: handleDraftChange, saveRequest: saveRequest, onStatusChange: setStatus, onFrontsPublishStatusChange: setFrontsPublishStatus, onSaveStateChange: handleSaveStateChange, primaryCategories: primaryCategories, primaryTopic: primaryTopic, contentMetadataSelects: contentMetadataSelects }) }), _jsx("aside", { style: inspectorSlot, "aria-label": "Inspector", children: _jsx(Inspector, { docId: docId, contentType: contentType, onStatusChange: setStatus, onAuthorChange: handleAuthorChange }) })] }) }), previewPos !== 'off' && (_jsx("div", { style: grid.previewPane, children: _jsx(DraftPage, { doc: previewDoc, device: device }) }))] }), shareOpen && (_jsx(ShareModal, { prefill: buildSharePrefill({
|
|
198
198
|
type: previewDoc.type,
|
|
199
199
|
slug: previewDoc.slug,
|
|
200
200
|
authorId: previewDoc.authorId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorScreen.js","sourceRoot":"","sources":["../../../src/ui/screens/EditorScreen.tsx"],"names":[],"mappings":";AAAA,kGAAkG;AAClG,EAAE;AACF,0BAA0B;AAC1B,4EAA4E;AAC5E,8EAA8E;AAC9E,qBAAqB;AACrB,mFAAmF;AACnF,iFAAiF;AACjF,8BAA8B;AAC9B,uFAAuF;AACvF,+BAA+B;AAC/B,8EAA8E;AAC9E,iDAAiD;AACjD,EAAE;AACF,8EAA8E;AAC9E,6EAA6E;AAC7E,6BAA6B;AAE7B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAG7C,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAC3E,OAAO,EACN,WAAW,GAGX,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAsBpD,MAAM,mBAAmB,GAAgC;IACxD,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,MAAM;CACZ,CAAA;AAED,MAAM,kBAAkB,GAAkC;IACzD,KAAK,EAAE,kBAAkB;IACzB,MAAM,EAAE,cAAc;IACtB,SAAS,EAAE,eAAe;IAC1B,SAAS,EAAE,cAAc;IACzB,QAAQ,EAAE,kBAAkB;CAC5B,CAAA;AAED,4EAA4E;AAC5E,oEAAoE;AACpE,MAAM,4BAA4B,GAAwC;IACzE,MAAM,EAAE,kBAAkB;IAC1B,UAAU,EAAE,eAAe;IAC3B,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,cAAc;CACtB,CAAA;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAqB;IACtD,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAqB;IAC3D,OAAO,sBAAsB,iBAAiB,CAAC,MAAM,CAAC,oBAAoB,CAAA;AAC3E,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAA2B;IACnE,OAAO,4BAA4B,CAAC,MAAM,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,MAA2B;IACxE,OAAO,sBAAsB,wBAAwB,CAAC,MAAM,CAAC,oBAAoB,CAAA;AAClF,CAAC;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,MAAM,UAAU,YAAY,CAAC,EAC5B,MAAM,EACN,OAAO,EACP,yBAAyB,GAAG,IAAI,EAChC,iBAAiB,GAAG,EAAE,EACtB,sBAAsB,GAAG,EAAE,GACR;IACnB,MAAM,WAAW,GAAiB,MAAM,CAAC,WAAuC,IAAI,SAAS,CAAA;IAC7F,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;IAEnF,qEAAqE;IACrE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,MAAM,CAAC,EAAE,CAAC,CAAA;IAE5D,oEAAoE;IACpE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAW;QACtD,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,OAAO;QACxB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,IAAI;QAClB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,IAAI;KAChB,CAAC,CAAA;IAEF,4DAA4D;IAC5D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAgB,OAAO,CAAC,CAAA;IAC5D,uDAAuD;IACvD,wEAAwE;IACxE,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAA6B,IAAI,CAAC,CAAA;IAChG,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACjD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAmB;QAC5D,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,MAAM,CAAC,EAAE;KAClB,CAAC,CAAA;IAEF,yEAAyE;IACzE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAkB,KAAK,CAAC,CAAA;IAEpE,8BAA8B;IAC9B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAgB,SAAS,CAAC,CAAA;IAE9D,+FAA+F;IAC/F,gDAAgD;IAChD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAA;IAE1D,2EAA2E;IAC3E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEjD,4DAA4D;IAC5D,MAAM,kBAAkB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACjD,MAAM,EAAE,GAAG,KAAK,CAAA;QAChB,IAAI,CAAC,EAAE;YAAE,OAAM;QACf,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,sBAAsB,EAAE,gBAAgB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;YACrF,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAM;YACnB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAqC,CAAA;YACnE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAA;YAClC,IAAI,GAAG;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QACpC,CAAC;QAAC,MAAM,CAAC;YACR,YAAY;QACb,CAAC;IACF,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5C,IAAI,CAAC,UAAU,CAAC,IAAI;YAAE,OAAM;QAC5B,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,wBAAwB,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAA;IACrF,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IAErB,iEAAiE;IACjE,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC5C,MAAM,EAAE,GAAG,KAAK,CAAA;QAChB,IAAI,CAAC,EAAE;YAAE,OAAM;QACf,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;YACtF,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAA+B,CAAA;gBAC/E,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,CAAA;YACtC,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,YAAY;QACb,CAAC;IACF,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IACrC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,0DAA0D;IAC1D,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,EAAU,EAAE,EAAE;QACnD,QAAQ,CAAC,EAAE,CAAC,CAAA;QACZ,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;QAClD,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IAC3C,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,qBAAqB,GAAG,WAAW,CAAC,CAAC,IAAsB,EAAE,EAAE;QACpE,YAAY,CAAC,IAAI,CAAC,CAAA;IACnB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,kBAAkB,GAAG,WAAW,CACrC,CAAC,MAAyF,EAAE,EAAE;QAC7F,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACxB,GAAG,IAAI;YACP,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;SAC7B,CAAC,CAAC,CAAA;IACJ,CAAC,EACD,EAAE,CACF,CAAA;IAED,iDAAiD;IACjD,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,KAAa,EAAE,EAAE;QACvD,cAAc,CAAC,KAAK,CAAC,CAAA;QACrB,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IAC9C,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,KAA0B,EAAE,EAAE;QACpE,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC3B,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACxB,GAAG,IAAI;YACP,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;SAC5B,CAAC,CAAC,CAAA;IACJ,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,MAAM,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;IAErC,4EAA4E;IAC5E,SAAS;IACT,4EAA4E;IAE5E,OAAO,CACN,eAAK,KAAK,EAAE,WAAW,aAItB,kBAAQ,KAAK,EAAE,SAAS,aAEvB,eAAK,KAAK,EAAE,UAAU,aACrB,kBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,OAAO,gBACH,yBAAyB,aAEpC,KAAC,IAAI,IAAC,IAAI,EAAC,UAAU,EAAC,IAAI,EAAE,EAAE,GAAI,EAClC,qCAAoB,IACZ,EAET,cAAK,KAAK,EAAE,aAAa,GAAI,EAE7B,KAAC,IAAI,IACJ,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,EAClC,IAAI,EAAE,EAAE,EACR,KAAK,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC,EAAE,GAClD,EAEF,eAAM,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,IAAI,UAAU,YAC5D,WAAW,IAAI,UAAU,GACpB,EAEP,eAAM,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,YAAG,MAAM,GAAQ,EAC/C,mBAAmB,IAAI,IAAI,IAAI,CAC/B,gBACC,KAAK,EAAE,uBAAuB,CAAC,mBAAmB,CAAC,EACnD,KAAK,EAAC,iCAAiC,qBAElC,mBAAmB,IAClB,CACP,IACI,EAGN,eAAK,KAAK,EAAE,WAAW,aAEtB,oBAAU,KAAK,EAAE,aAAa,aAC7B,iBAAQ,KAAK,EAAE,YAAY,iCAA2B,EACtD,cAAK,KAAK,EAAE,YAAY,YACrB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAuB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAC/D,iBAEC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,EACjC,KAAK,EAAE,UAAU,CAAC,UAAU,KAAK,GAAG,CAAC,kBACvB,UAAU,KAAK,GAAG,EAChC,KAAK,EAAE,WAAW,GAAG,EAAE,YAEvB,KAAC,IAAI,IAAC,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI,IAPxC,GAAG,CAQA,CACT,CAAC,GACG,IACI,EAGV,UAAU,KAAK,KAAK,IAAI,CACxB,oBAAU,KAAK,EAAE,aAAa,aAC7B,iBAAQ,KAAK,EAAE,YAAY,+BAAyB,EACpD,cAAK,KAAK,EAAE,YAAY,YACrB,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAqB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAClE,iBAEC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAC7B,KAAK,EAAE,UAAU,CAAC,MAAM,KAAK,GAAG,CAAC,kBACnB,MAAM,KAAK,GAAG,EAC5B,KAAK,EAAE,GAAG,GAAG,UAAU,YAEvB,KAAC,IAAI,IAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,GAAI,IAPxB,GAAG,CAQA,CACT,CAAC,GACG,IACI,CACX,EAGA,UAAU,KAAK,KAAK,IAAI,KAAK,IAAI,CACjC,iBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,kBAAkB,EAAE,EACxC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAC,yBAAyB,YAE/B,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,EAAE,GAAI,GACvB,CACT,EAEA,WAAW,KAAK,SAAS,IAAI,KAAK,IAAI,UAAU,CAAC,IAAI,IAAI,CACzD,iBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,SAAS,EAChB,KAAK,EAAC,wBAAwB,YAE9B,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,EAAE,GAAI,GACvB,CACT,EAGD,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAC,OAAO,YACvF,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,EAAE,GAAI,GACvB,EAGT,kBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,SAAS,CAAC,MAAM,EAC1B,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,oBAAoB,aAE/D,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,EAAE,GAAI,EAC9B,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,IACpE,EAGT,kBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,aAAa,EAAE,EACnC,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,CAAC,KAAK,EAChB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,aAElD,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAE,EAAE,GAAI,eAEtB,IACJ,IACE,EAKT,eAAK,KAAK,EAAE,IAAI,CAAC,SAAS,aAEzB,cAAK,KAAK,EAAE,IAAI,CAAC,UAAU,YAE1B,eAAK,KAAK,EAAE,gBAAgB,aAE3B,cAAK,KAAK,EAAE,QAAQ,YACnB,KAAC,WAAW,IACX,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,gBAAgB,EAC9B,aAAa,EAAE,iBAAiB,EAChC,aAAa,EAAE,iBAAiB,EAChC,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,SAAS,EACzB,2BAA2B,EAAE,sBAAsB,EACnD,iBAAiB,EAAE,qBAAqB,EACxC,iBAAiB,EAAE,iBAAiB,EACpC,sBAAsB,EAAE,sBAAsB,GAC7C,GACG,EAGN,gBAAO,KAAK,EAAE,aAAa,gBAAa,WAAW,YAClD,KAAC,SAAS,IACT,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,SAAS,EACzB,cAAc,EAAE,kBAAkB,GACjC,GACK,IACH,GACD,EAGL,UAAU,KAAK,KAAK,IAAI,CACxB,cAAK,KAAK,EAAE,IAAI,CAAC,WAAW,YAC3B,KAAC,SAAS,IAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAI,GACzC,CACN,IACI,EAGL,SAAS,IAAI,CACb,KAAC,UAAU,IACV,OAAO,EAAE,iBAAiB,CACzB;oBACC,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,UAAU,EAAE,UAAU,CAAC,UAAU;oBACjC,UAAU,EAAE,UAAU,CAAC,UAAU;iBACjC,EACD,QAAQ,CACR,EACD,yBAAyB,EAAE,yBAAyB,EACpD,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,GACjC,CACF,IACI,CACN,CAAA;AACF,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,SAAS,YAAY,CAAC,GAAoB;IAKzC,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO;YACN,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;YAC3D,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE;YACrF,WAAW,EAAE,EAAE;SACf,CAAA;IACF,CAAC;IACD,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO;YACN,SAAS,EAAE;gBACV,IAAI,EAAE,CAAC;gBACP,OAAO,EAAE,MAAM;gBACf,aAAa,EAAE,KAAK;gBACpB,QAAQ,EAAE,QAAQ;aAClB;YACD,UAAU,EAAE;gBACX,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,MAAM;gBACf,aAAa,EAAE,QAAQ;gBACvB,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,yBAAyB;aACtC;YACD,WAAW,EAAE;gBACZ,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,MAAM;gBACf,aAAa,EAAE,QAAQ;gBACvB,QAAQ,EAAE,QAAQ;aAClB;SACD,CAAA;IACF,CAAC;IACD,SAAS;IACT,OAAO;QACN,SAAS,EAAE;YACV,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,QAAQ,EAAE,QAAQ;SAClB;QACD,UAAU,EAAE;YACX,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,yBAAyB;SACvC;QACD,WAAW,EAAE;YACZ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,QAAQ,EAAE,QAAQ;SAClB;KACD,CAAA;AACF,CAAC;AAED,SAAS,eAAe,CAAC,IAAiB;IACzC,MAAM,GAAG,GAAwD;QAChE,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,MAAM;QAClB,IAAI,EAAE,KAAK;KACX,CAAA;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,CAAA;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,GAAoB;IAC3C,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,SAAS,CAAA;IACrC,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAA;IACnC,OAAO,KAAK,CAAA;AACb,CAAC;AAED,SAAS,UAAU,CAAC,MAAqB;IACxC,OAAO;QACN,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,QAAQ;QACpB,OAAO,EAAE,SAAS;QAClB,YAAY,EAAE,EAAE;QAChB,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,GAAG;QACf,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,sBAAsB,CAAC,MAAM,CAAC;QAC1C,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC;QAChC,UAAU,EAAE,CAAC;KACb,CAAA;AACF,CAAC;AAED,SAAS,uBAAuB,CAAC,MAA2B;IAC3D,OAAO;QACN,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,QAAQ;QACpB,OAAO,EAAE,SAAS;QAClB,YAAY,EAAE,EAAE;QAChB,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,GAAG;QACf,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,6BAA6B,CAAC,MAAM,CAAC;QACjD,KAAK,EAAE,wBAAwB,CAAC,MAAM,CAAC;QACvC,UAAU,EAAE,CAAC;KACb,CAAA;AACF,CAAC;AAED,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,MAAM,WAAW,GAAwB;IACxC,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,WAAW;CACvB,CAAA;AAED,MAAM,SAAS,GAAwB;IACtC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,eAAe;IAC/B,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,QAAQ;IACjB,YAAY,EAAE,yBAAyB;IACvC,UAAU,EAAE,2BAA2B;IACvC,UAAU,EAAE,CAAC;IACb,GAAG,EAAE,EAAE;CACP,CAAA;AAED,MAAM,UAAU,GAAwB;IACvC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,GAAG,EAAE,CAAC;IACN,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,CAAC;CACP,CAAA;AAED,MAAM,WAAW,GAAwB;IACxC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,GAAG,EAAE,CAAC;IACN,UAAU,EAAE,CAAC;CACb,CAAA;AAED,MAAM,OAAO,GAAwB;IACpC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,GAAG,EAAE,CAAC;IACN,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,kBAAkB;IACzB,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;IACf,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,CAAC;IACf,UAAU,EAAE,CAAC;CACb,CAAA;AAED,MAAM,aAAa,GAAwB;IAC1C,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,EAAE;IACV,UAAU,EAAE,eAAe;IAC3B,UAAU,EAAE,CAAC;CACb,CAAA;AAED,MAAM,eAAe,GAAwB;IAC5C,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;IACf,KAAK,EAAE,YAAY;IACnB,QAAQ,EAAE,QAAQ;IAClB,YAAY,EAAE,UAAU;IACxB,UAAU,EAAE,QAAQ;IACpB,QAAQ,EAAE,CAAC;CACX,CAAA;AAED,MAAM,YAAY,GAAwB;IACzC,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,yBAAyB;IACjC,YAAY,EAAE,CAAC;IACf,QAAQ,EAAE,QAAQ;CAClB,CAAA;AAED,SAAS,UAAU,CAAC,MAAe;IAClC,OAAO;QACN,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;QACxB,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa;QACpD,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB;QACpD,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,yBAAyB;KACtC,CAAA;AACF,CAAC;AAED,MAAM,SAAS,GAAwB;IACtC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,QAAQ;IACxB,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;IACV,UAAU,EAAE,aAAa;IACzB,MAAM,EAAE,yBAAyB;IACjC,YAAY,EAAE,CAAC;IACf,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,kBAAkB;CACzB,CAAA;AAED,MAAM,OAAO,GAAwB;IACpC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE,cAAc;IAC1B,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,yBAAyB;IACjC,YAAY,EAAE,CAAC;IACf,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;IACf,MAAM,EAAE,SAAS;CACjB,CAAA;AAED,MAAM,UAAU,GAAwB;IACvC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE,eAAe;IAC3B,KAAK,EAAE,kBAAkB;IACzB,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,CAAC;IACf,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;IACf,MAAM,EAAE,SAAS;CACjB,CAAA;AAED,MAAM,gBAAgB,GAAwB;IAC7C,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,CAAC;IACP,QAAQ,EAAE,QAAQ;CAClB,CAAA;AAED,MAAM,QAAQ,GAAwB;IACrC,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,CAAC;CACX,CAAA;AAED,MAAM,aAAa,GAAwB;IAC1C,IAAI,EAAE,WAAW;IACjB,UAAU,EAAE,yBAAyB;IACrC,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,cAAc;CAC1B,CAAA;AAED,2EAA2E;AAC3E,+EAA+E;AAC/E,MAAM,aAAa,GAAwB;IAC1C,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;CACpB,CAAA;AAED,MAAM,YAAY,GAAwB;IACzC,OAAO,EAAE,MAAM;CACf,CAAA;AAED,4EAA4E;AAC5E,yEAAyE;AACzE,KAAK,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"EditorScreen.js","sourceRoot":"","sources":["../../../src/ui/screens/EditorScreen.tsx"],"names":[],"mappings":";AAAA,kGAAkG;AAClG,EAAE;AACF,0BAA0B;AAC1B,4EAA4E;AAC5E,8EAA8E;AAC9E,qBAAqB;AACrB,mFAAmF;AACnF,iFAAiF;AACjF,8BAA8B;AAC9B,uFAAuF;AACvF,+BAA+B;AAC/B,8EAA8E;AAC9E,iDAAiD;AACjD,EAAE;AACF,8EAA8E;AAC9E,6EAA6E;AAC7E,6BAA6B;AAE7B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAG7C,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAC3E,OAAO,EACN,WAAW,GAGX,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAErD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAuBpD,MAAM,mBAAmB,GAAgC;IACxD,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,MAAM;CACZ,CAAA;AAED,MAAM,kBAAkB,GAAkC;IACzD,KAAK,EAAE,kBAAkB;IACzB,MAAM,EAAE,cAAc;IACtB,SAAS,EAAE,eAAe;IAC1B,SAAS,EAAE,cAAc;IACzB,QAAQ,EAAE,kBAAkB;CAC5B,CAAA;AAED,4EAA4E;AAC5E,oEAAoE;AACpE,MAAM,4BAA4B,GAAwC;IACzE,MAAM,EAAE,kBAAkB;IAC1B,UAAU,EAAE,eAAe;IAC3B,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,cAAc;CACtB,CAAA;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAqB;IACtD,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAqB;IAC3D,OAAO,sBAAsB,iBAAiB,CAAC,MAAM,CAAC,oBAAoB,CAAA;AAC3E,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAA2B;IACnE,OAAO,4BAA4B,CAAC,MAAM,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,MAA2B;IACxE,OAAO,sBAAsB,wBAAwB,CAAC,MAAM,CAAC,oBAAoB,CAAA;AAClF,CAAC;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,MAAM,UAAU,YAAY,CAAC,EAC5B,MAAM,EACN,OAAO,EACP,yBAAyB,GAAG,IAAI,EAChC,iBAAiB,GAAG,EAAE,EACtB,YAAY,EACZ,sBAAsB,GAAG,EAAE,GACR;IACnB,MAAM,WAAW,GAAiB,MAAM,CAAC,WAAuC,IAAI,SAAS,CAAA;IAC7F,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;IAEnF,qEAAqE;IACrE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,MAAM,CAAC,EAAE,CAAC,CAAA;IAE5D,oEAAoE;IACpE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAW;QACtD,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,OAAO;QACxB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,IAAI;QAClB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,IAAI;KAChB,CAAC,CAAA;IAEF,4DAA4D;IAC5D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAgB,OAAO,CAAC,CAAA;IAC5D,uDAAuD;IACvD,wEAAwE;IACxE,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAA6B,IAAI,CAAC,CAAA;IAChG,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACjD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAmB;QAC5D,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,MAAM,CAAC,EAAE;KAClB,CAAC,CAAA;IAEF,yEAAyE;IACzE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAkB,KAAK,CAAC,CAAA;IAEpE,8BAA8B;IAC9B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAgB,SAAS,CAAC,CAAA;IAE9D,+FAA+F;IAC/F,gDAAgD;IAChD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAA;IAE1D,2EAA2E;IAC3E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEjD,4DAA4D;IAC5D,MAAM,kBAAkB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACjD,MAAM,EAAE,GAAG,KAAK,CAAA;QAChB,IAAI,CAAC,EAAE;YAAE,OAAM;QACf,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,sBAAsB,EAAE,gBAAgB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;YACrF,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAM;YACnB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAqC,CAAA;YACnE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAA;YAClC,IAAI,GAAG;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QACpC,CAAC;QAAC,MAAM,CAAC;YACR,YAAY;QACb,CAAC;IACF,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5C,IAAI,CAAC,UAAU,CAAC,IAAI;YAAE,OAAM;QAC5B,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,wBAAwB,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAA;IACrF,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IAErB,iEAAiE;IACjE,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC5C,MAAM,EAAE,GAAG,KAAK,CAAA;QAChB,IAAI,CAAC,EAAE;YAAE,OAAM;QACf,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;YACtF,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAA+B,CAAA;gBAC/E,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,CAAA;YACtC,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,YAAY;QACb,CAAC;IACF,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IACrC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,0DAA0D;IAC1D,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,EAAU,EAAE,EAAE;QACnD,QAAQ,CAAC,EAAE,CAAC,CAAA;QACZ,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;QAClD,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IAC3C,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,qBAAqB,GAAG,WAAW,CAAC,CAAC,IAAsB,EAAE,EAAE;QACpE,YAAY,CAAC,IAAI,CAAC,CAAA;IACnB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,kBAAkB,GAAG,WAAW,CACrC,CAAC,MAAyF,EAAE,EAAE;QAC7F,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACxB,GAAG,IAAI;YACP,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;SAC7B,CAAC,CAAC,CAAA;IACJ,CAAC,EACD,EAAE,CACF,CAAA;IAED,iDAAiD;IACjD,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,KAAa,EAAE,EAAE;QACvD,cAAc,CAAC,KAAK,CAAC,CAAA;QACrB,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IAC9C,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,KAA0B,EAAE,EAAE;QACpE,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC3B,aAAa,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACxB,GAAG,IAAI;YACP,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;SAC5B,CAAC,CAAC,CAAA;IACJ,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,MAAM,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;IAErC,4EAA4E;IAC5E,SAAS;IACT,4EAA4E;IAE5E,OAAO,CACN,eAAK,KAAK,EAAE,WAAW,aAItB,kBAAQ,KAAK,EAAE,SAAS,aAEvB,eAAK,KAAK,EAAE,UAAU,aACrB,kBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,OAAO,gBACH,yBAAyB,aAEpC,KAAC,IAAI,IAAC,IAAI,EAAC,UAAU,EAAC,IAAI,EAAE,EAAE,GAAI,EAClC,qCAAoB,IACZ,EAET,cAAK,KAAK,EAAE,aAAa,GAAI,EAE7B,KAAC,IAAI,IACJ,IAAI,EAAE,eAAe,CAAC,WAAW,CAAC,EAClC,IAAI,EAAE,EAAE,EACR,KAAK,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC,EAAE,GAClD,EAEF,eAAM,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,IAAI,UAAU,YAC5D,WAAW,IAAI,UAAU,GACpB,EAEP,eAAM,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,YAAG,MAAM,GAAQ,EAC/C,mBAAmB,IAAI,IAAI,IAAI,CAC/B,gBACC,KAAK,EAAE,uBAAuB,CAAC,mBAAmB,CAAC,EACnD,KAAK,EAAC,iCAAiC,qBAElC,mBAAmB,IAClB,CACP,IACI,EAGN,eAAK,KAAK,EAAE,WAAW,aAEtB,oBAAU,KAAK,EAAE,aAAa,aAC7B,iBAAQ,KAAK,EAAE,YAAY,iCAA2B,EACtD,cAAK,KAAK,EAAE,YAAY,YACrB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAuB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAC/D,iBAEC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,EACjC,KAAK,EAAE,UAAU,CAAC,UAAU,KAAK,GAAG,CAAC,kBACvB,UAAU,KAAK,GAAG,EAChC,KAAK,EAAE,WAAW,GAAG,EAAE,YAEvB,KAAC,IAAI,IAAC,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI,IAPxC,GAAG,CAQA,CACT,CAAC,GACG,IACI,EAGV,UAAU,KAAK,KAAK,IAAI,CACxB,oBAAU,KAAK,EAAE,aAAa,aAC7B,iBAAQ,KAAK,EAAE,YAAY,+BAAyB,EACpD,cAAK,KAAK,EAAE,YAAY,YACrB,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAqB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAClE,iBAEC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAC7B,KAAK,EAAE,UAAU,CAAC,MAAM,KAAK,GAAG,CAAC,kBACnB,MAAM,KAAK,GAAG,EAC5B,KAAK,EAAE,GAAG,GAAG,UAAU,YAEvB,KAAC,IAAI,IAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,GAAI,IAPxB,GAAG,CAQA,CACT,CAAC,GACG,IACI,CACX,EAGA,UAAU,KAAK,KAAK,IAAI,KAAK,IAAI,CACjC,iBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,kBAAkB,EAAE,EACxC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAC,yBAAyB,YAE/B,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,EAAE,GAAI,GACvB,CACT,EAEA,WAAW,KAAK,SAAS,IAAI,KAAK,IAAI,UAAU,CAAC,IAAI,IAAI,CACzD,iBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,SAAS,EAChB,KAAK,EAAC,wBAAwB,YAE9B,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,EAAE,GAAI,GACvB,CACT,EAGD,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAC,OAAO,YACvF,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,EAAE,GAAI,GACvB,EAGT,kBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,SAAS,CAAC,MAAM,EAC1B,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,oBAAoB,aAE/D,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,EAAE,GAAI,EAC9B,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,IACpE,EAGT,kBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,aAAa,EAAE,EACnC,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,CAAC,KAAK,EAChB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,aAElD,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAE,EAAE,GAAI,eAEtB,IACJ,IACE,EAKT,eAAK,KAAK,EAAE,IAAI,CAAC,SAAS,aAEzB,cAAK,KAAK,EAAE,IAAI,CAAC,UAAU,YAE1B,eAAK,KAAK,EAAE,gBAAgB,aAE3B,cAAK,KAAK,EAAE,QAAQ,YACnB,KAAC,WAAW,IACX,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,gBAAgB,EAC9B,aAAa,EAAE,iBAAiB,EAChC,aAAa,EAAE,iBAAiB,EAChC,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,SAAS,EACzB,2BAA2B,EAAE,sBAAsB,EACnD,iBAAiB,EAAE,qBAAqB,EACxC,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,YAAY,EAC1B,sBAAsB,EAAE,sBAAsB,GAC7C,GACG,EAGN,gBAAO,KAAK,EAAE,aAAa,gBAAa,WAAW,YAClD,KAAC,SAAS,IACT,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,SAAS,EACzB,cAAc,EAAE,kBAAkB,GACjC,GACK,IACH,GACD,EAGL,UAAU,KAAK,KAAK,IAAI,CACxB,cAAK,KAAK,EAAE,IAAI,CAAC,WAAW,YAC3B,KAAC,SAAS,IAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAI,GACzC,CACN,IACI,EAGL,SAAS,IAAI,CACb,KAAC,UAAU,IACV,OAAO,EAAE,iBAAiB,CACzB;oBACC,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,UAAU,EAAE,UAAU,CAAC,UAAU;oBACjC,UAAU,EAAE,UAAU,CAAC,UAAU;iBACjC,EACD,QAAQ,CACR,EACD,yBAAyB,EAAE,yBAAyB,EACpD,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,GACjC,CACF,IACI,CACN,CAAA;AACF,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,SAAS,YAAY,CAAC,GAAoB;IAKzC,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO;YACN,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;YAC3D,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE;YACrF,WAAW,EAAE,EAAE;SACf,CAAA;IACF,CAAC;IACD,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO;YACN,SAAS,EAAE;gBACV,IAAI,EAAE,CAAC;gBACP,OAAO,EAAE,MAAM;gBACf,aAAa,EAAE,KAAK;gBACpB,QAAQ,EAAE,QAAQ;aAClB;YACD,UAAU,EAAE;gBACX,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,MAAM;gBACf,aAAa,EAAE,QAAQ;gBACvB,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,yBAAyB;aACtC;YACD,WAAW,EAAE;gBACZ,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,MAAM;gBACf,aAAa,EAAE,QAAQ;gBACvB,QAAQ,EAAE,QAAQ;aAClB;SACD,CAAA;IACF,CAAC;IACD,SAAS;IACT,OAAO;QACN,SAAS,EAAE;YACV,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,QAAQ,EAAE,QAAQ;SAClB;QACD,UAAU,EAAE;YACX,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,yBAAyB;SACvC;QACD,WAAW,EAAE;YACZ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,QAAQ,EAAE,QAAQ;SAClB;KACD,CAAA;AACF,CAAC;AAED,SAAS,eAAe,CAAC,IAAiB;IACzC,MAAM,GAAG,GAAwD;QAChE,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,MAAM;QAClB,IAAI,EAAE,KAAK;KACX,CAAA;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,CAAA;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,GAAoB;IAC3C,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,SAAS,CAAA;IACrC,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAA;IACnC,OAAO,KAAK,CAAA;AACb,CAAC;AAED,SAAS,UAAU,CAAC,MAAqB;IACxC,OAAO;QACN,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,QAAQ;QACpB,OAAO,EAAE,SAAS;QAClB,YAAY,EAAE,EAAE;QAChB,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,GAAG;QACf,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,sBAAsB,CAAC,MAAM,CAAC;QAC1C,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC;QAChC,UAAU,EAAE,CAAC;KACb,CAAA;AACF,CAAC;AAED,SAAS,uBAAuB,CAAC,MAA2B;IAC3D,OAAO;QACN,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,QAAQ;QACpB,OAAO,EAAE,SAAS;QAClB,YAAY,EAAE,EAAE;QAChB,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,GAAG;QACf,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,WAAW;QAC1B,UAAU,EAAE,6BAA6B,CAAC,MAAM,CAAC;QACjD,KAAK,EAAE,wBAAwB,CAAC,MAAM,CAAC;QACvC,UAAU,EAAE,CAAC;KACb,CAAA;AACF,CAAC;AAED,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,MAAM,WAAW,GAAwB;IACxC,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,WAAW;CACvB,CAAA;AAED,MAAM,SAAS,GAAwB;IACtC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,eAAe;IAC/B,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,QAAQ;IACjB,YAAY,EAAE,yBAAyB;IACvC,UAAU,EAAE,2BAA2B;IACvC,UAAU,EAAE,CAAC;IACb,GAAG,EAAE,EAAE;CACP,CAAA;AAED,MAAM,UAAU,GAAwB;IACvC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,GAAG,EAAE,CAAC;IACN,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,CAAC;CACP,CAAA;AAED,MAAM,WAAW,GAAwB;IACxC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,GAAG,EAAE,CAAC;IACN,UAAU,EAAE,CAAC;CACb,CAAA;AAED,MAAM,OAAO,GAAwB;IACpC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,GAAG,EAAE,CAAC;IACN,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,kBAAkB;IACzB,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;IACf,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,CAAC;IACf,UAAU,EAAE,CAAC;CACb,CAAA;AAED,MAAM,aAAa,GAAwB;IAC1C,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,EAAE;IACV,UAAU,EAAE,eAAe;IAC3B,UAAU,EAAE,CAAC;CACb,CAAA;AAED,MAAM,eAAe,GAAwB;IAC5C,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;IACf,KAAK,EAAE,YAAY;IACnB,QAAQ,EAAE,QAAQ;IAClB,YAAY,EAAE,UAAU;IACxB,UAAU,EAAE,QAAQ;IACpB,QAAQ,EAAE,CAAC;CACX,CAAA;AAED,MAAM,YAAY,GAAwB;IACzC,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,yBAAyB;IACjC,YAAY,EAAE,CAAC;IACf,QAAQ,EAAE,QAAQ;CAClB,CAAA;AAED,SAAS,UAAU,CAAC,MAAe;IAClC,OAAO;QACN,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;QACxB,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa;QACpD,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB;QACpD,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,yBAAyB;KACtC,CAAA;AACF,CAAC;AAED,MAAM,SAAS,GAAwB;IACtC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,QAAQ;IACxB,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;IACV,UAAU,EAAE,aAAa;IACzB,MAAM,EAAE,yBAAyB;IACjC,YAAY,EAAE,CAAC;IACf,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,kBAAkB;CACzB,CAAA;AAED,MAAM,OAAO,GAAwB;IACpC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE,cAAc;IAC1B,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,yBAAyB;IACjC,YAAY,EAAE,CAAC;IACf,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;IACf,MAAM,EAAE,SAAS;CACjB,CAAA;AAED,MAAM,UAAU,GAAwB;IACvC,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE,eAAe;IAC3B,KAAK,EAAE,kBAAkB;IACzB,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,CAAC;IACf,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,GAAG;IACf,MAAM,EAAE,SAAS;CACjB,CAAA;AAED,MAAM,gBAAgB,GAAwB;IAC7C,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,CAAC;IACP,QAAQ,EAAE,QAAQ;CAClB,CAAA;AAED,MAAM,QAAQ,GAAwB;IACrC,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,CAAC;CACX,CAAA;AAED,MAAM,aAAa,GAAwB;IAC1C,IAAI,EAAE,WAAW;IACjB,UAAU,EAAE,yBAAyB;IACrC,OAAO,EAAE,MAAM;IACf,aAAa,EAAE,QAAQ;IACvB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,cAAc;CAC1B,CAAA;AAED,2EAA2E;AAC3E,+EAA+E;AAC/E,MAAM,aAAa,GAAwB;IAC1C,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;CACpB,CAAA;AAED,MAAM,YAAY,GAAwB;IACzC,OAAO,EAAE,MAAM;CACf,CAAA;AAED,4EAA4E;AAC5E,yEAAyE;AACzE,KAAK,mBAAmB,CAAA"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import type { ContentMetadataSelectField } from '../../integration/options.js';
|
|
1
|
+
import type { ContentMetadataSelectField, PrimaryTopicControl } from '../../integration/options.js';
|
|
2
2
|
import type { ScreenRegistry } from '../components/CmsApp.js';
|
|
3
|
-
export declare function createCmsScreens({ allowInlineAuthorCreation, primaryCategories, contentMetadataSelects, surveyId, }?: {
|
|
3
|
+
export declare function createCmsScreens({ allowInlineAuthorCreation, primaryCategories, primaryTopic, contentMetadataSelects, surveyId, }?: {
|
|
4
4
|
allowInlineAuthorCreation?: boolean;
|
|
5
5
|
primaryCategories?: Array<{
|
|
6
6
|
slug: string;
|
|
7
7
|
label: string;
|
|
8
8
|
}>;
|
|
9
|
+
primaryTopic?: PrimaryTopicControl;
|
|
9
10
|
contentMetadataSelects?: ContentMetadataSelectField[];
|
|
10
11
|
surveyId?: string;
|
|
11
12
|
}): ScreenRegistry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/ui/screens/registry.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/ui/screens/registry.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AACnG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AA4B7D,wBAAgB,gBAAgB,CAAC,EAChC,yBAAgC,EAChC,iBAAsB,EACtB,YAAY,EACZ,sBAA2B,EAC3B,QAAQ,GACR,GAAE;IACF,yBAAyB,CAAC,EAAE,OAAO,CAAA;IACnC,iBAAiB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC1D,YAAY,CAAC,EAAE,mBAAmB,CAAA;IAClC,sBAAsB,CAAC,EAAE,0BAA0B,EAAE,CAAA;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAA;CACZ,GAAG,cAAc,CA0BtB;AAED,eAAO,MAAM,UAAU,EAAE,cAAmC,CAAA"}
|
|
@@ -23,9 +23,9 @@ function CalendarRoute() {
|
|
|
23
23
|
const { navigate } = useHashRouter();
|
|
24
24
|
return _jsx(CalendarScreen, { openDoc: () => navigate('content') });
|
|
25
25
|
}
|
|
26
|
-
export function createCmsScreens({ allowInlineAuthorCreation = true, primaryCategories = [], contentMetadataSelects = [], surveyId, } = {}) {
|
|
26
|
+
export function createCmsScreens({ allowInlineAuthorCreation = true, primaryCategories = [], primaryTopic, contentMetadataSelects = [], surveyId, } = {}) {
|
|
27
27
|
return {
|
|
28
|
-
content: () => (_jsx(ContentRoute, { allowInlineAuthorCreation: allowInlineAuthorCreation, primaryCategories: primaryCategories, contentMetadataSelects: contentMetadataSelects })),
|
|
28
|
+
content: () => (_jsx(ContentRoute, { allowInlineAuthorCreation: allowInlineAuthorCreation, primaryCategories: primaryCategories, primaryTopic: primaryTopic, contentMetadataSelects: contentMetadataSelects })),
|
|
29
29
|
'content-insights': () => _jsx(ContentInsightsScreen, {}),
|
|
30
30
|
dashboard: () => _jsx(DashboardRoute, {}),
|
|
31
31
|
calendar: () => _jsx(CalendarRoute, {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/ui/screens/registry.tsx"],"names":[],"mappings":";AAeA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,uEAAuE;AACvE,2EAA2E;AAC3E,+EAA+E;AAC/E,SAAS,cAAc;IACtB,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAA;IACpC,OAAO,KAAC,eAAe,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAI,CAAA;AAC/D,CAAC;AAED,SAAS,aAAa;IACrB,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAA;IACpC,OAAO,KAAC,cAAc,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAI,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAChC,yBAAyB,GAAG,IAAI,EAChC,iBAAiB,GAAG,EAAE,EACtB,sBAAsB,GAAG,EAAE,EAC3B,QAAQ,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/ui/screens/registry.tsx"],"names":[],"mappings":";AAeA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,uEAAuE;AACvE,2EAA2E;AAC3E,+EAA+E;AAC/E,SAAS,cAAc;IACtB,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAA;IACpC,OAAO,KAAC,eAAe,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAI,CAAA;AAC/D,CAAC;AAED,SAAS,aAAa;IACrB,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAA;IACpC,OAAO,KAAC,cAAc,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAI,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAChC,yBAAyB,GAAG,IAAI,EAChC,iBAAiB,GAAG,EAAE,EACtB,YAAY,EACZ,sBAAsB,GAAG,EAAE,EAC3B,QAAQ,MAOL,EAAE;IACL,OAAO;QACN,OAAO,EAAE,GAAG,EAAE,CAAC,CACd,KAAC,YAAY,IACZ,yBAAyB,EAAE,yBAAyB,EACpD,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,YAAY,EAC1B,sBAAsB,EAAE,sBAAsB,GAC7C,CACF;QACD,kBAAkB,EAAE,GAAG,EAAE,CAAC,KAAC,qBAAqB,KAAG;QACnD,SAAS,EAAE,GAAG,EAAE,CAAC,KAAC,cAAc,KAAG;QACnC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAC,aAAa,KAAG;QACjC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAC,WAAW,KAAG;QAC5B,SAAS,EAAE,GAAG,EAAE,CAAC,KAAC,eAAe,KAAG;QACpC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAC,aAAa,KAAG;QAChC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAC,YAAY,KAAG;QAC9B,aAAa,EAAE,GAAG,EAAE,CAAC,KAAC,mBAAmB,KAAG;QAC5C,GAAG,CAAC,QAAQ;YACX,CAAC,CAAC,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,KAAC,qBAAqB,IAAC,QAAQ,EAAE,QAAQ,GAAI,EAAE;YAC7E,CAAC,CAAC,EAAE,CAAC;QACN,cAAc,EAAE,GAAG,EAAE,CAAC,CACrB,KAAC,iBAAiB,IAAC,yBAAyB,EAAE,yBAAyB,GAAI,CAC3E;QACD,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAC,cAAc,KAAG;KAClC,CAAA;AACF,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAmB,gBAAgB,EAAE,CAAA"}
|
package/package.json
CHANGED
|
@@ -11,6 +11,17 @@
|
|
|
11
11
|
|
|
12
12
|
import type { FoundryDispatch } from '../providers/types.js'
|
|
13
13
|
import type { D1Database } from './d1.js'
|
|
14
|
+
import { validPodcastSourceUrl } from './podcast-source.js'
|
|
15
|
+
|
|
16
|
+
interface PodcastDispatchSnapshot {
|
|
17
|
+
content_id: string
|
|
18
|
+
audio_r2_key: string | null
|
|
19
|
+
duration_seconds: number | null
|
|
20
|
+
transcript: string | null
|
|
21
|
+
processing_source_url: string | null
|
|
22
|
+
processing_source_kind: string | null
|
|
23
|
+
processing_trigger_token: string | null
|
|
24
|
+
}
|
|
14
25
|
|
|
15
26
|
export type ProcessingState =
|
|
16
27
|
| 'pending'
|
|
@@ -103,7 +114,9 @@ export async function dispatchToFoundry(
|
|
|
103
114
|
hook: Pick<FoundryDispatch, 'dispatchVideo'>,
|
|
104
115
|
): Promise<DispatchResult> {
|
|
105
116
|
const content = await db
|
|
106
|
-
.prepare(
|
|
117
|
+
.prepare(
|
|
118
|
+
'SELECT id, type, slug, title, description, canonical_version, status, deleted_at FROM content_items WHERE id = ? LIMIT 1',
|
|
119
|
+
)
|
|
107
120
|
.bind(contentId)
|
|
108
121
|
.first<{
|
|
109
122
|
id: string
|
|
@@ -111,6 +124,9 @@ export async function dispatchToFoundry(
|
|
|
111
124
|
slug: string
|
|
112
125
|
title: string
|
|
113
126
|
description: string | null
|
|
127
|
+
canonical_version: number
|
|
128
|
+
status: string
|
|
129
|
+
deleted_at: number | null
|
|
114
130
|
}>()
|
|
115
131
|
if (!content) {
|
|
116
132
|
throw new Error(`dispatchToFoundry: content ${contentId} not found`)
|
|
@@ -136,6 +152,7 @@ export async function dispatchToFoundry(
|
|
|
136
152
|
let sourceKind: string | null = null
|
|
137
153
|
let videoId: string | null = null
|
|
138
154
|
let durationSeconds: number | null
|
|
155
|
+
let podcastSnapshot: PodcastDispatchSnapshot | null = null
|
|
139
156
|
|
|
140
157
|
if (videoRow) {
|
|
141
158
|
table = 'video_content'
|
|
@@ -150,14 +167,10 @@ export async function dispatchToFoundry(
|
|
|
150
167
|
} else {
|
|
151
168
|
const podcastRow = await db
|
|
152
169
|
.prepare(
|
|
153
|
-
'SELECT content_id, audio_r2_key, duration_seconds FROM podcast_content WHERE content_id = ?',
|
|
170
|
+
'SELECT content_id, audio_r2_key, duration_seconds, transcript, processing_source_url, processing_source_kind, processing_trigger_token FROM podcast_content WHERE content_id = ?',
|
|
154
171
|
)
|
|
155
172
|
.bind(contentId)
|
|
156
|
-
.first<
|
|
157
|
-
content_id: string
|
|
158
|
-
audio_r2_key: string | null
|
|
159
|
-
duration_seconds: number | null
|
|
160
|
-
}>()
|
|
173
|
+
.first<PodcastDispatchSnapshot>()
|
|
161
174
|
|
|
162
175
|
if (!podcastRow) {
|
|
163
176
|
throw new Error(
|
|
@@ -165,6 +178,10 @@ export async function dispatchToFoundry(
|
|
|
165
178
|
)
|
|
166
179
|
}
|
|
167
180
|
table = 'podcast_content'
|
|
181
|
+
if (content.type !== 'podcast' || content.deleted_at != null || content.status === 'archived') {
|
|
182
|
+
throw new Error(`dispatchToFoundry: podcast ${contentId} is inactive`)
|
|
183
|
+
}
|
|
184
|
+
podcastSnapshot = podcastRow
|
|
168
185
|
sourceUrl = podcastRow.audio_r2_key?.trim() ?? ''
|
|
169
186
|
if (!sourceUrl) {
|
|
170
187
|
throw new Error(`dispatchToFoundry: content ${contentId} has no podcast audio R2 key`)
|
|
@@ -185,7 +202,7 @@ export async function dispatchToFoundry(
|
|
|
185
202
|
|
|
186
203
|
const triggerToken = crypto.randomUUID()
|
|
187
204
|
const processingTriggerTokenHash = `sha256:${await sha256Hex(triggerToken)}`
|
|
188
|
-
const { correlationId } = await hook.dispatchVideo({
|
|
205
|
+
const { correlationId, podcastSource } = await hook.dispatchVideo({
|
|
189
206
|
contentId,
|
|
190
207
|
sourceUrl,
|
|
191
208
|
kind,
|
|
@@ -223,11 +240,49 @@ export async function dispatchToFoundry(
|
|
|
223
240
|
.bind(videoId, sourceKind, correlationId, triggerToken, now, contentId)
|
|
224
241
|
.run()
|
|
225
242
|
} else {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
.
|
|
243
|
+
if (!podcastSnapshot) throw new Error('Podcast dispatch snapshot is missing')
|
|
244
|
+
if (
|
|
245
|
+
podcastSource &&
|
|
246
|
+
(podcastSource.kind !== 'https' || !validPodcastSourceUrl(podcastSource.url))
|
|
247
|
+
) {
|
|
248
|
+
throw new Error('Podcast dispatch returned an invalid source')
|
|
249
|
+
}
|
|
250
|
+
const selectedSource = Boolean(podcastSnapshot.processing_source_url?.trim())
|
|
251
|
+
const capturedUrl = selectedSource
|
|
252
|
+
? podcastSnapshot.processing_source_url
|
|
253
|
+
: (podcastSource?.url ?? podcastSnapshot.processing_source_url)
|
|
254
|
+
const capturedKind = selectedSource
|
|
255
|
+
? podcastSnapshot.processing_source_kind
|
|
256
|
+
: (podcastSource?.kind ?? podcastSnapshot.processing_source_kind)
|
|
257
|
+
// A host returns source evidence without mutating editor-owned state.
|
|
258
|
+
// Capture it and the trigger token together only if the exact pre-hook
|
|
259
|
+
// source/audio/editor snapshot is still current. No stale acknowledgement
|
|
260
|
+
// can restore a replaced source or overwrite a newer processing token.
|
|
261
|
+
const written = await db
|
|
262
|
+
.prepare(`UPDATE podcast_content SET processing_source_url = ?, processing_source_kind = ?, processing_trigger_token = ?
|
|
263
|
+
WHERE content_id = ? AND audio_r2_key IS ? AND duration_seconds IS ? AND transcript IS ?
|
|
264
|
+
AND processing_source_url IS ? AND processing_source_kind IS ? AND processing_trigger_token IS ?
|
|
265
|
+
AND EXISTS (SELECT 1 FROM content_items ci WHERE ci.id = podcast_content.content_id
|
|
266
|
+
AND ci.type = 'podcast' AND ci.slug = ? AND ci.canonical_version = ?
|
|
267
|
+
AND ci.status = ? AND ci.deleted_at IS NULL)`)
|
|
268
|
+
.bind(
|
|
269
|
+
capturedUrl,
|
|
270
|
+
capturedKind,
|
|
271
|
+
triggerToken,
|
|
272
|
+
contentId,
|
|
273
|
+
podcastSnapshot.audio_r2_key,
|
|
274
|
+
podcastSnapshot.duration_seconds,
|
|
275
|
+
podcastSnapshot.transcript,
|
|
276
|
+
podcastSnapshot.processing_source_url,
|
|
277
|
+
podcastSnapshot.processing_source_kind,
|
|
278
|
+
podcastSnapshot.processing_trigger_token,
|
|
279
|
+
content.slug,
|
|
280
|
+
content.canonical_version,
|
|
281
|
+
content.status,
|
|
282
|
+
)
|
|
230
283
|
.run()
|
|
284
|
+
if (written.meta?.changes !== 1)
|
|
285
|
+
throw new Error('Podcast source changed before dispatch acknowledgement')
|
|
231
286
|
}
|
|
232
287
|
|
|
233
288
|
return { correlationId, triggerToken }
|
|
@@ -19,8 +19,9 @@
|
|
|
19
19
|
// * ALL times are unix epoch SECONDS — the same column and units the legacy
|
|
20
20
|
// cron predicate uses, so there is no D1 `datetime('now')` TEXT comparison
|
|
21
21
|
// on `publish_at` and no space-vs-`T` skew trap.
|
|
22
|
-
// * `version` is `content_items.canonical_version`, advanced by
|
|
23
|
-
//
|
|
22
|
+
// * `version` is `content_items.canonical_version`, advanced by canonical edits
|
|
23
|
+
// and actual delete/restore/archive transitions — NOT by scheduling or a
|
|
24
|
+
// fronts_publish_status marker write and
|
|
24
25
|
// NOT by polling, so repeated reads are identity-stable while a real
|
|
25
26
|
// canonical revision does change identity.
|
|
26
27
|
// * `trigger_token_hash` is `sha256:<hex>` of
|
|
@@ -28,7 +29,7 @@
|
|
|
28
29
|
// rest exactly like `video_content.processing_trigger_token` (migration
|
|
29
30
|
// 0006) and NEVER leaves this package.
|
|
30
31
|
// * Absence is explicit per media type: an article needs a body, a video needs
|
|
31
|
-
// a READY HLS manifest, a podcast needs
|
|
32
|
+
// a READY HLS manifest, a podcast needs audio and its transcript; `images` and
|
|
32
33
|
// `links` are always optionally empty. Anything required and missing is a
|
|
33
34
|
// `FrontsPublishIntentError`, never an empty default.
|
|
34
35
|
// * KNOWN GAP, reported not papered over: the wire field is
|
|
@@ -39,6 +40,12 @@
|
|
|
39
40
|
// other. Real audio HLS is a separate media-pipeline change.
|
|
40
41
|
import type { ContentType, FrontsPublishStatus } from '../schema/types.js'
|
|
41
42
|
import type { D1Database } from './d1.js'
|
|
43
|
+
import {
|
|
44
|
+
frontsPodcastSourceGeneration,
|
|
45
|
+
type PodcastPublishBlockerCode,
|
|
46
|
+
podcastPublishBlocker,
|
|
47
|
+
validPodcastSourceUrl,
|
|
48
|
+
} from './podcast-source.js'
|
|
42
49
|
|
|
43
50
|
/** The CMS's own name for the record this intent describes. */
|
|
44
51
|
export const FRONTS_PUBLISH_INTENT_SOURCE = 'masthead'
|
|
@@ -62,6 +69,7 @@ export type FrontsPublishIntentErrorCode =
|
|
|
62
69
|
| 'missing_article_body'
|
|
63
70
|
| 'video_media_not_ready'
|
|
64
71
|
| 'missing_podcast_audio'
|
|
72
|
+
| PodcastPublishBlockerCode
|
|
65
73
|
|
|
66
74
|
/**
|
|
67
75
|
* A due item whose canonical data cannot produce a complete intent. Thrown by
|
|
@@ -122,12 +130,16 @@ export interface FrontsPublishPodcastAudioRef {
|
|
|
122
130
|
* dispatch time" pattern `video_content.processing_source_url` already uses.
|
|
123
131
|
* `kind` is always `'https'` today: a single literal, not an open enum,
|
|
124
132
|
* because there is exactly one supported source kind. Present only while the
|
|
125
|
-
* podcast
|
|
126
|
-
*
|
|
133
|
+
* podcast is incomplete. An existing audio object with a missing transcript
|
|
134
|
+
* still needs production; it is not a publishable audio reference yet.
|
|
127
135
|
*/
|
|
128
136
|
export interface FrontsPublishPodcastSourceRef {
|
|
129
137
|
kind: 'https'
|
|
130
138
|
url: string
|
|
139
|
+
/** Immutable media identity; rescheduling alone does not change it. */
|
|
140
|
+
generation: string
|
|
141
|
+
/** Positive finite duration measured for the current captured source. */
|
|
142
|
+
duration_seconds: number
|
|
131
143
|
}
|
|
132
144
|
|
|
133
145
|
export interface FrontsPublishLinkRef {
|
|
@@ -141,7 +153,7 @@ export interface FrontsPublishContentRefs {
|
|
|
141
153
|
images: FrontsPublishImageRef[]
|
|
142
154
|
video_hls: FrontsPublishVideoHlsRef | null
|
|
143
155
|
podcast_audio_hls: FrontsPublishPodcastAudioRef | null
|
|
144
|
-
/**
|
|
156
|
+
/** Present only while media is incomplete and a valid source was captured. */
|
|
145
157
|
podcast_source: FrontsPublishPodcastSourceRef | null
|
|
146
158
|
/** `[]` is valid. */
|
|
147
159
|
links: FrontsPublishLinkRef[]
|
|
@@ -328,6 +340,8 @@ export interface HydrateFrontsPublishIntentsOptions {
|
|
|
328
340
|
resolveContentUrl: (row: { type: ContentType; slug: string }) => string
|
|
329
341
|
/** Public media host used for media rows with no stored URL. Default 'media.fronts.co'. */
|
|
330
342
|
mediaPublicDomain?: string
|
|
343
|
+
/** False keeps source-only readiness failures visible without requesting production. */
|
|
344
|
+
podcastSourceProductionEnabled?: boolean
|
|
331
345
|
}
|
|
332
346
|
|
|
333
347
|
/** One due item that could NOT form a complete intent, with the exact reason. */
|
|
@@ -357,6 +371,13 @@ export interface HydrateFrontsPublishIntentsResult {
|
|
|
357
371
|
incomplete: FrontsPublishIntentFailure[]
|
|
358
372
|
}
|
|
359
373
|
|
|
374
|
+
export class FrontsScheduleOverflowError extends Error {
|
|
375
|
+
constructor(readonly limit: number) {
|
|
376
|
+
super(`Scheduled content exceeds the bounded ${limit}-item response.`)
|
|
377
|
+
this.name = 'FrontsScheduleOverflowError'
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
|
|
360
381
|
/** `?, ?, ?` for an IN clause of `count` bound values. */
|
|
361
382
|
function placeholders(count: number): string {
|
|
362
383
|
return new Array(count).fill('?').join(', ')
|
|
@@ -379,10 +400,12 @@ interface VideoRefRow {
|
|
|
379
400
|
|
|
380
401
|
interface PodcastRefRow {
|
|
381
402
|
content_id: string
|
|
403
|
+
transcript: string | null
|
|
382
404
|
audio_r2_key: string | null
|
|
383
405
|
duration_seconds: number | null
|
|
384
406
|
processing_source_url: string | null
|
|
385
407
|
processing_source_kind: string | null
|
|
408
|
+
processing_trigger_token: string | null
|
|
386
409
|
}
|
|
387
410
|
|
|
388
411
|
interface MediaRow {
|
|
@@ -430,15 +453,17 @@ export async function hydrateFrontsPublishIntents(
|
|
|
430
453
|
`SELECT ${CANDIDATE_COLUMNS}
|
|
431
454
|
FROM content_items
|
|
432
455
|
WHERE status = 'scheduled'
|
|
456
|
+
AND deleted_at IS NULL
|
|
433
457
|
AND publish_at IS NOT NULL
|
|
434
458
|
AND publish_at <= ?
|
|
435
459
|
ORDER BY publish_at ASC
|
|
436
460
|
LIMIT ?`,
|
|
437
461
|
)
|
|
438
|
-
.bind(options.toSeconds, limit)
|
|
462
|
+
.bind(options.toSeconds, limit + 1)
|
|
439
463
|
.all<IntentCandidateRow>()
|
|
440
464
|
|
|
441
465
|
const rows = candidates.results ?? []
|
|
466
|
+
if (rows.length > limit) throw new FrontsScheduleOverflowError(limit)
|
|
442
467
|
if (rows.length === 0) return { intents: [], incomplete: [] }
|
|
443
468
|
|
|
444
469
|
const refs = await loadContentRefSources(db, rows)
|
|
@@ -452,10 +477,11 @@ export async function hydrateFrontsPublishIntents(
|
|
|
452
477
|
mediaPublicDomain,
|
|
453
478
|
resolve: options.resolveContentUrl,
|
|
454
479
|
})
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
//
|
|
480
|
+
if (options.podcastSourceProductionEnabled !== false || !intent.content_refs.podcast_source) {
|
|
481
|
+
intents.push(intent)
|
|
482
|
+
}
|
|
483
|
+
// A podcast with a source but incomplete media is visible to the
|
|
484
|
+
// production consumer and remains explicitly unpublishable.
|
|
459
485
|
if (dualSignal) incomplete.push(dualSignal)
|
|
460
486
|
} catch (error) {
|
|
461
487
|
if (error instanceof FrontsPublishIntentError) {
|
|
@@ -521,7 +547,7 @@ async function loadContentRefSources(
|
|
|
521
547
|
if (podcastIds.length > 0) {
|
|
522
548
|
const res = await db
|
|
523
549
|
.prepare(
|
|
524
|
-
`SELECT content_id, audio_r2_key, duration_seconds, processing_source_url, processing_source_kind FROM podcast_content
|
|
550
|
+
`SELECT content_id, transcript, audio_r2_key, duration_seconds, processing_source_url, processing_source_kind, processing_trigger_token FROM podcast_content
|
|
525
551
|
WHERE content_id IN (${placeholders(podcastIds.length)})`,
|
|
526
552
|
)
|
|
527
553
|
.bind(...podcastIds)
|
|
@@ -596,7 +622,7 @@ async function buildIntent(
|
|
|
596
622
|
}
|
|
597
623
|
|
|
598
624
|
const deadline = Math.floor(row.publish_at)
|
|
599
|
-
const { refs: contentRefs, incomplete } = buildContentRefs(row, refs, ctx)
|
|
625
|
+
const { refs: contentRefs, incomplete } = await buildContentRefs(row, refs, ctx)
|
|
600
626
|
return {
|
|
601
627
|
intent: {
|
|
602
628
|
intent_id: frontsPublishIntentId(row.id, version),
|
|
@@ -621,21 +647,21 @@ async function buildIntent(
|
|
|
621
647
|
/**
|
|
622
648
|
* Per-type content refs, applying the absence rules in the module header.
|
|
623
649
|
* Returns an `incomplete` note alongside a normally-complete refs object for
|
|
624
|
-
*
|
|
625
|
-
*
|
|
650
|
+
* a podcast with a processing source and incomplete audio/transcript evidence.
|
|
651
|
+
* That item is not publishable (still
|
|
626
652
|
* worth an incomplete[] entry, same code as before) but is also not nothing
|
|
627
653
|
* -- a pull consumer needs `podcast_source` to start production, so this
|
|
628
654
|
* function returns it rather than throwing it away with the rest of the
|
|
629
655
|
* intent the way every OTHER missing-required-value case still does.
|
|
630
656
|
*/
|
|
631
|
-
function buildContentRefs(
|
|
657
|
+
async function buildContentRefs(
|
|
632
658
|
row: IntentCandidateRow,
|
|
633
659
|
refs: Awaited<ReturnType<typeof loadContentRefSources>>,
|
|
634
660
|
ctx: {
|
|
635
661
|
mediaPublicDomain: string
|
|
636
662
|
resolve: (r: { type: ContentType; slug: string }) => string
|
|
637
663
|
},
|
|
638
|
-
): { refs: FrontsPublishContentRefs; incomplete: FrontsPublishIntentFailure | null } {
|
|
664
|
+
): Promise<{ refs: FrontsPublishContentRefs; incomplete: FrontsPublishIntentFailure | null }> {
|
|
639
665
|
const publicUrl = ctx.resolve({ type: row.type, slug: row.slug })
|
|
640
666
|
const canonicalUrl = row.canonical_url?.trim() || null
|
|
641
667
|
|
|
@@ -698,26 +724,52 @@ function buildContentRefs(
|
|
|
698
724
|
if (row.type === 'podcast') {
|
|
699
725
|
const found = refs.podcasts.get(row.id)
|
|
700
726
|
const key = found?.audio_r2_key?.trim()
|
|
701
|
-
|
|
727
|
+
const blocker = podcastPublishBlocker(found)
|
|
728
|
+
if (found && key && !blocker) {
|
|
702
729
|
podcastAudio = {
|
|
703
730
|
kind: 'r2-object',
|
|
704
731
|
url: objectKeyUrl(key, ctx.mediaPublicDomain),
|
|
705
732
|
duration_seconds: found.duration_seconds ?? null,
|
|
706
733
|
}
|
|
707
734
|
} else {
|
|
708
|
-
const
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
735
|
+
const failure = blocker ?? {
|
|
736
|
+
code: 'missing_podcast_audio' as const,
|
|
737
|
+
message: 'Podcast audio is not ready.',
|
|
738
|
+
}
|
|
739
|
+
const sourceUrl = found?.processing_source_url
|
|
740
|
+
if (found && validPodcastSourceUrl(sourceUrl) && found.processing_source_kind === 'https') {
|
|
741
|
+
if (
|
|
742
|
+
typeof found.duration_seconds !== 'number' ||
|
|
743
|
+
!Number.isFinite(found.duration_seconds) ||
|
|
744
|
+
found.duration_seconds <= 0
|
|
745
|
+
) {
|
|
746
|
+
throw new FrontsPublishIntentError(
|
|
747
|
+
'podcast_source_duration_unavailable',
|
|
748
|
+
row.id,
|
|
749
|
+
'Podcast source duration is not verified.',
|
|
750
|
+
)
|
|
751
|
+
}
|
|
752
|
+
podcastSource = {
|
|
753
|
+
kind: 'https',
|
|
754
|
+
url: sourceUrl,
|
|
755
|
+
duration_seconds: found.duration_seconds,
|
|
756
|
+
generation: await frontsPodcastSourceGeneration({
|
|
757
|
+
content_id: row.id,
|
|
758
|
+
slug: row.slug,
|
|
759
|
+
canonical_version: row.canonical_version as number,
|
|
760
|
+
processing_source_url: found.processing_source_url,
|
|
761
|
+
processing_source_kind: found.processing_source_kind,
|
|
762
|
+
processing_trigger_token: found.processing_trigger_token,
|
|
763
|
+
}),
|
|
764
|
+
}
|
|
713
765
|
incomplete = {
|
|
714
766
|
content_id: row.id,
|
|
715
|
-
code:
|
|
716
|
-
message,
|
|
767
|
+
code: failure.code,
|
|
768
|
+
message: failure.message,
|
|
717
769
|
publish_at: Math.floor(row.publish_at ?? 0),
|
|
718
770
|
}
|
|
719
771
|
} else {
|
|
720
|
-
throw new FrontsPublishIntentError(
|
|
772
|
+
throw new FrontsPublishIntentError(failure.code, row.id, failure.message)
|
|
721
773
|
}
|
|
722
774
|
}
|
|
723
775
|
}
|