@lemonppt/renderer 0.1.0 → 0.1.2
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/editor-script.d.ts +1 -1
- package/dist/editor-script.d.ts.map +1 -1
- package/dist/editor-script.js +1 -1
- package/dist/export-pdf.d.ts.map +1 -1
- package/dist/export-pdf.js +2 -0
- package/dist/export-pdf.js.map +1 -1
- package/dist/export-pptx.d.ts.map +1 -1
- package/dist/export-pptx.js +2 -0
- package/dist/export-pptx.js.map +1 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +5 -3
- package/dist/render.js.map +1 -1
- package/package.json +4 -4
package/dist/editor-script.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const editorScript = "\n(function () {\n const STORAGE_KEY = 'lemonppt:editor:' + (window.__lemonPPT_goal?.randomSeed || window.__lemonPPT_goal?.title || 'default');\n const MAX_HISTORY = 50;\n\n let goal = window.__lemonPPT_goal;\n if (!goal) return;\n\n // \u4F18\u5148\u4ECE localStorage \u6062\u590D\n try {\n const saved = localStorage.getItem(STORAGE_KEY);\n if (saved) {\n const parsed = JSON.parse(saved);\n if (parsed && parsed.slides) {\n goal = parsed;\n window.__lemonPPT_goal = goal;\n syncDomFromGoal();\n }\n }\n } catch (err) {\n console.warn('\u81EA\u52A8\u6062\u590D\u5931\u8D25', err);\n }\n\n const history = [deepClone(goal)];\n let historyIndex = 0;\n\n function deepClone(obj) {\n return JSON.parse(JSON.stringify(obj));\n }\n\n function recordHistory() {\n // \u622A\u65AD redo \u5206\u652F\n if (historyIndex < history.length - 1) {\n history.splice(historyIndex + 1);\n }\n history.push(deepClone(goal));\n if (history.length > MAX_HISTORY) {\n history.shift();\n } else {\n historyIndex++;\n }\n updateUndoRedoButtons();\n }\n\n function undo() {\n if (historyIndex <= 0) return;\n historyIndex--;\n restoreGoal(history[historyIndex]);\n }\n\n function redo() {\n if (historyIndex >= history.length - 1) return;\n historyIndex++;\n restoreGoal(history[historyIndex]);\n }\n\n function restoreGoal(newGoal) {\n goal = newGoal;\n window.__lemonPPT_goal = goal;\n Object.assign(window.__lemonPPT_goal, newGoal);\n syncDomFromGoal();\n autoSave();\n updateUndoRedoButtons();\n }\n\n function autoSave() {\n try {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(goal));\n } catch (err) {\n console.warn('\u81EA\u52A8\u4FDD\u5B58\u5931\u8D25', err);\n }\n }\n\n function syncDomFromGoal() {\n // \u6587\u672C\n document.querySelectorAll('[data-lp-editable=\"true\"]').forEach((el) => {\n const slideIdx = Number(el.getAttribute('data-lp-slide-idx'));\n const prop = el.getAttribute('data-lp-prop');\n if (Number.isNaN(slideIdx) || !prop) return;\n const slide = goal.slides[slideIdx];\n if (!slide) return;\n const value = getProp(slide.props, prop);\n el.textContent = value == null ? '' : String(value);\n });\n\n // \u56FE\u7247\n document.querySelectorAll('[data-lp-editable-image=\"true\"]').forEach((img) => {\n const slideIdx = Number(img.getAttribute('data-lp-slide-idx'));\n const prop = img.getAttribute('data-lp-prop') || 'image';\n if (Number.isNaN(slideIdx)) return;\n const slide = goal.slides[slideIdx];\n if (!slide) return;\n const value = getProp(slide.props, prop);\n if (value) {\n img.setAttribute('src', String(value));\n } else {\n img.remove();\n }\n });\n }\n\n function getProp(obj, path) {\n const keys = path.split('.');\n let target = obj;\n for (const k of keys) {\n if (target == null || typeof target !== 'object') return undefined;\n target = target[k];\n }\n return target;\n }\n\n function setProp(obj, path, value) {\n const keys = path.split('.');\n let target = obj;\n for (let i = 0; i < keys.length - 1; i++) {\n const k = keys[i];\n if (!(k in target)) target[k] = [];\n target = target[k];\n }\n target[keys[keys.length - 1]] = value;\n }\n\n // \u56FE\u7247\u7F16\u8F91\u5F39\u7A97\n function openImageEditor(img, slideIdx, prop) {\n const slide = goal.slides[slideIdx];\n if (!slide) return;\n\n const overlay = document.createElement('div');\n overlay.className = 'lp-image-editor-overlay';\n overlay.innerHTML = `\n <div class=\"lp-image-editor\">\n <h3>\u7F16\u8F91\u56FE\u7247</h3>\n <label>\n <span>\u56FE\u7247 URL</span>\n <input type=\"text\" class=\"lp-image-url\" placeholder=\"https://...\" value=\"${escapeHtml(img.getAttribute('src') || '')}\">\n </label>\n <div class=\"lp-image-or\">\u6216</div>\n <label class=\"lp-image-file-label\">\n <span>\u4E0A\u4F20\u672C\u5730\u56FE\u7247</span>\n <input type=\"file\" class=\"lp-image-file\" accept=\"image/*\">\n </label>\n <div class=\"lp-image-preview-wrap\">\n <img class=\"lp-image-preview\" src=\"${escapeHtml(img.getAttribute('src') || '')}\" alt=\"\">\n </div>\n <div class=\"lp-image-actions\">\n <button class=\"lp-image-delete lp-image-btn-secondary\">\u5220\u9664\u56FE\u7247</button>\n <div class=\"lp-image-actions-right\">\n <button class=\"lp-image-cancel lp-image-btn-secondary\">\u53D6\u6D88</button>\n <button class=\"lp-image-confirm\">\u786E\u8BA4</button>\n </div>\n </div>\n </div>\n `;\n\n document.body.appendChild(overlay);\n\n const urlInput = overlay.querySelector('.lp-image-url');\n const fileInput = overlay.querySelector('.lp-image-file');\n const preview = overlay.querySelector('.lp-image-preview');\n const confirmBtn = overlay.querySelector('.lp-image-confirm');\n const cancelBtn = overlay.querySelector('.lp-image-cancel');\n const deleteBtn = overlay.querySelector('.lp-image-delete');\n\n let pendingValue = img.getAttribute('src') || '';\n\n urlInput.addEventListener('input', () => {\n pendingValue = urlInput.value;\n preview.src = pendingValue;\n });\n\n fileInput.addEventListener('change', () => {\n const file = fileInput.files[0];\n if (!file) return;\n const reader = new FileReader();\n reader.onload = (e) => {\n pendingValue = e.target.result;\n urlInput.value = '';\n preview.src = pendingValue;\n };\n reader.readAsDataURL(file);\n });\n\n function close() {\n overlay.remove();\n }\n\n function apply() {\n recordHistory();\n if (pendingValue) {\n img.setAttribute('src', pendingValue);\n setProp(slide.props, prop, pendingValue);\n } else {\n img.remove();\n setProp(slide.props, prop, undefined);\n }\n autoSave();\n close();\n }\n\n function remove() {\n recordHistory();\n img.remove();\n setProp(slide.props, prop, undefined);\n autoSave();\n close();\n }\n\n confirmBtn.addEventListener('click', apply);\n cancelBtn.addEventListener('click', close);\n deleteBtn.addEventListener('click', remove);\n overlay.addEventListener('click', (e) => {\n if (e.target === overlay) close();\n });\n }\n\n function escapeHtml(str) {\n return String(str)\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n }\n\n const editableEls = document.querySelectorAll('[data-lp-editable=\"true\"]');\n\n editableEls.forEach((el) => {\n el.setAttribute('contenteditable', 'true');\n\n el.addEventListener('focus', () => {\n recordHistory();\n });\n\n el.addEventListener('blur', () => {\n const slideIdx = Number(el.getAttribute('data-lp-slide-idx'));\n const prop = el.getAttribute('data-lp-prop');\n if (Number.isNaN(slideIdx) || !prop) return;\n\n const slide = goal.slides[slideIdx];\n if (!slide) return;\n\n const value = el.textContent || '';\n setProp(slide.props, prop, value);\n autoSave();\n });\n\n el.addEventListener('keydown', (e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n el.blur();\n }\n });\n });\n\n // \u56FE\u7247\u6362\u56FE\n const imageEls = document.querySelectorAll('[data-lp-editable-image=\"true\"]');\n imageEls.forEach((img) => {\n img.addEventListener('click', () => {\n const slideIdx = Number(img.getAttribute('data-lp-slide-idx'));\n const prop = img.getAttribute('data-lp-prop') || 'image';\n if (Number.isNaN(slideIdx)) return;\n openImageEditor(img, slideIdx, prop);\n });\n });\n\n const downloadBtn = document.getElementById('lp-download-goal');\n if (downloadBtn) {\n downloadBtn.addEventListener('click', () => {\n const blob = new Blob([JSON.stringify(goal, null, 2)], { type: 'application/json' });\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = 'goal.json';\n a.click();\n URL.revokeObjectURL(url);\n });\n }\n\n const exportPptxBtn = document.getElementById('lp-export-pptx');\n if (exportPptxBtn) {\n exportPptxBtn.addEventListener('click', async () => {\n exportPptxBtn.textContent = '\u5BFC\u51FA\u4E2D...';\n exportPptxBtn.disabled = true;\n try {\n const res = await fetch('/api/export/pptx', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(goal),\n });\n if (!res.ok) throw new Error('\u5BFC\u51FA\u5931\u8D25: ' + res.status);\n const blob = await res.blob();\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = 'presentation.pptx';\n a.click();\n URL.revokeObjectURL(url);\n } catch (err) {\n alert(err instanceof Error ? err.message : String(err));\n } finally {\n exportPptxBtn.textContent = '\u5BFC\u51FA PPTX';\n exportPptxBtn.disabled = false;\n }\n });\n }\n\n const exportPdfBtn = document.getElementById('lp-export-pdf');\n if (exportPdfBtn) {\n exportPdfBtn.addEventListener('click', async () => {\n exportPdfBtn.textContent = '\u5BFC\u51FA\u4E2D...';\n exportPdfBtn.disabled = true;\n try {\n const res = await fetch('/api/export/pdf', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(goal),\n });\n if (!res.ok) throw new Error('\u5BFC\u51FA\u5931\u8D25: ' + res.status);\n const blob = await res.blob();\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = 'presentation.pdf';\n a.click();\n URL.revokeObjectURL(url);\n } catch (err) {\n alert(err instanceof Error ? err.message : String(err));\n } finally {\n exportPdfBtn.textContent = '\u5BFC\u51FA PDF';\n exportPdfBtn.disabled = false;\n }\n });\n }\n\n // \u64A4\u9500 / \u91CD\u505A\n const undoBtn = document.getElementById('lp-undo');\n const redoBtn = document.getElementById('lp-redo');\n\n function updateUndoRedoButtons() {\n if (undoBtn) undoBtn.disabled = historyIndex <= 0;\n if (redoBtn) redoBtn.disabled = historyIndex >= history.length - 1;\n }\n\n if (undoBtn) undoBtn.addEventListener('click', undo);\n if (redoBtn) redoBtn.addEventListener('click', redo);\n\n // \u4E3B\u9898\u5207\u6362\n const themeSwitcher = document.getElementById('lp-theme-switcher');\n if (themeSwitcher) {\n themeSwitcher.value = goal.theme || 'minimal';\n themeSwitcher.addEventListener('change', () => {\n const newTheme = themeSwitcher.value;\n if (newTheme === goal.theme) return;\n goal.theme = newTheme;\n autoSave();\n window.location.href = '/editor?theme=' + encodeURIComponent(newTheme);\n });\n }\n\n document.addEventListener('keydown', (e) => {\n const isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0;\n const mod = isMac ? e.metaKey : e.ctrlKey;\n if (mod && e.key.toLowerCase() === 'z') {\n e.preventDefault();\n if (e.shiftKey) redo();\n else undo();\n }\n if (mod && e.key.toLowerCase() === 'y') {\n e.preventDefault();\n redo();\n }\n });\n\n updateUndoRedoButtons();\n\n // \u7FFB\u9875\u811A\u672C\n const slides = document.querySelectorAll('.lp-slide-wrapper');\n const thumbnails = document.querySelectorAll('.lp-thumbnail');\n const prevBtn = document.getElementById('lp-prev');\n const nextBtn = document.getElementById('lp-next');\n const currentLabel = document.getElementById('lp-current');\n let current = 0;\n\n function updateClasses() {\n slides.forEach((slide, index) => {\n slide.classList.remove('active', 'prev');\n if (index === current) slide.classList.add('active');\n else if (index < current) slide.classList.add('prev');\n });\n thumbnails.forEach((thumb, index) => {\n thumb.classList.toggle('active', index === current);\n });\n const activeThumb = thumbnails[current];\n if (activeThumb) activeThumb.scrollIntoView({ block: 'nearest', behavior: 'smooth' });\n if (currentLabel) currentLabel.textContent = String(current + 1);\n if (prevBtn) prevBtn.disabled = current === 0;\n if (nextBtn) nextBtn.disabled = current === slides.length - 1;\n }\n\n function goTo(index) {\n if (index < 0 || index >= slides.length) return;\n current = index;\n updateClasses();\n if (typeof selectSlide === 'function') selectSlide(current);\n }\n\n if (prevBtn) prevBtn.addEventListener('click', () => goTo(current - 1));\n if (nextBtn) nextBtn.addEventListener('click', () => goTo(current + 1));\n thumbnails.forEach((thumb) => {\n thumb.addEventListener('click', () => goTo(Number(thumb.dataset.index)));\n });\n function isEditingTarget(target) {\n if (!target || !target.closest) return false;\n return target.closest('[contenteditable=\"true\"]') || target.closest('.lp-image-editor');\n }\n\n document.addEventListener('keydown', (e) => {\n if (isEditingTarget(e.target)) return;\n if (e.key === 'ArrowRight' || e.key === ' ' || e.key === 'PageDown') goTo(current + 1);\n if (e.key === 'ArrowLeft' || e.key === 'PageUp') goTo(current - 1);\n if (e.key === 'Home') goTo(0);\n if (e.key === 'End') goTo(slides.length - 1);\n });\n\n updateClasses();\n\n // \u7F29\u653E\u63A7\u5236\n const stage = document.querySelector('.lp-editor-stage');\n const scaler = document.querySelector('.lp-editor-stage-scaler');\n const zoomSlider = document.getElementById('lp-zoom-slider');\n const zoomValue = document.getElementById('lp-zoom-value');\n const zoomOutBtn = document.getElementById('lp-zoom-out');\n const zoomInBtn = document.getElementById('lp-zoom-in');\n const zoomFitBtn = document.getElementById('lp-zoom-fit');\n let userZoom = null;\n\n function fitScale() {\n if (!stage || !scaler) return 1;\n return Math.min(stage.clientWidth / 1280, stage.clientHeight / 720) * 0.92;\n }\n\n function updateScale() {\n if (!stage || !scaler) return;\n const scale = userZoom == null ? fitScale() : userZoom;\n scaler.style.transform = 'scale(' + Math.max(scale, 0.35) + ')';\n if (zoomValue) zoomValue.textContent = Math.round(scale * 100) + '%';\n if (zoomSlider && userZoom != null) zoomSlider.value = String(Math.round(scale * 100));\n }\n\n if (zoomSlider) {\n zoomSlider.addEventListener('input', () => {\n userZoom = Number(zoomSlider.value) / 100;\n updateScale();\n });\n }\n if (zoomOutBtn) {\n zoomOutBtn.addEventListener('click', () => {\n userZoom = (userZoom == null ? fitScale() : userZoom) - 0.1;\n if (userZoom < 0.35) userZoom = 0.35;\n updateScale();\n });\n }\n if (zoomInBtn) {\n zoomInBtn.addEventListener('click', () => {\n userZoom = (userZoom == null ? fitScale() : userZoom) + 0.1;\n if (userZoom > 1.5) userZoom = 1.5;\n updateScale();\n });\n }\n if (zoomFitBtn) {\n zoomFitBtn.addEventListener('click', () => {\n userZoom = null;\n updateScale();\n });\n }\n window.addEventListener('resize', updateScale);\n updateScale();\n\n // \u64AD\u653E\uFF1A\u5148\u6E32\u67D3\u9759\u6001\u7248\u672C\u518D\u6253\u5F00\n const playBtn = document.getElementById('lp-play');\n if (playBtn) {\n playBtn.addEventListener('click', async () => {\n playBtn.textContent = '\u51C6\u5907\u4E2D...';\n playBtn.disabled = true;\n try {\n const res = await fetch('/api/render', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(goal),\n });\n if (!res.ok) throw new Error('\u6E32\u67D3\u5931\u8D25: ' + res.status);\n window.open('/deck/index.html', '_blank');\n } catch (err) {\n alert(err instanceof Error ? err.message : String(err));\n } finally {\n playBtn.textContent = '\u25B6 \u64AD\u653E';\n playBtn.disabled = false;\n }\n });\n }\n\n // \u5185\u5BB9\u7ED3\u6784\u53D8\u66F4\u540E\u91CD\u65B0\u6E32\u67D3\u5F53\u524D\u7F16\u8F91\u5668\uFF08\u4EC5\u7528\u4E8E\u6570\u7EC4\u589E\u5220\u7B49\u6A21\u677F\u5185\u5BB9\u8C03\u6574\uFF09\n function saveCurrentForReload() {\n try {\n localStorage.setItem('lemonppt:editor:currentSlide', String(current));\n } catch (e) {}\n }\n\n async function reloadEditor() {\n saveCurrentForReload();\n try {\n const res = await fetch('/api/render-editor', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(goal),\n });\n if (!res.ok) throw new Error('\u91CD\u65B0\u6E32\u67D3\u5931\u8D25: ' + res.status);\n window.location.reload();\n } catch (err) {\n alert(err instanceof Error ? err.message : String(err));\n }\n }\n\n // \u5143\u7D20\u9009\u4E2D\u4E0E\u53F3\u4FA7\u5C5E\u6027\u9762\u677F\n let selectedEl = null;\n let selectedSlideIdx = 0;\n const propertyContent = document.getElementById('lp-property-content');\n\n const FIELD_LABELS = {\n kicker: '\u6807\u7B7E',\n title: '\u6807\u9898',\n subtitle: '\u526F\u6807\u9898',\n date: '\u65E5\u671F',\n quote: '\u5F15\u7528',\n author: '\u4F5C\u8005',\n role: '\u804C\u4F4D',\n company: '\u516C\u53F8',\n value: '\u6570\u503C',\n unit: '\u5355\u4F4D',\n label: '\u6307\u6807\u540D',\n description: '\u8BF4\u660E',\n change: '\u53D8\u5316',\n imageUrl: '\u56FE\u7247',\n url: '\u56FE\u7247',\n logoUrl: 'Logo',\n avatarUrl: '\u5934\u50CF',\n caption: '\u8BF4\u660E',\n q: '\u95EE\u9898',\n a: '\u56DE\u7B54',\n question: '\u95EE\u9898',\n answer: '\u56DE\u7B54',\n name: '\u540D\u79F0',\n price: '\u4EF7\u683C',\n period: '\u5468\u671F',\n cta: '\u6309\u94AE\u6587\u6848',\n type: '\u56FE\u8868\u7C7B\u578B',\n status: '\u72B6\u6001',\n bio: '\u7B80\u4ECB',\n };\n\n function getFieldLabel(path) {\n const key = String(path).split('.').pop() || '';\n return FIELD_LABELS[key] || key;\n }\n\n function inferFieldType(path, value) {\n const key = String(path).split('.').pop() || '';\n if (/image|url|logo|avatar/i.test(key) && typeof value === 'string') return 'image';\n if (typeof value === 'boolean') return 'boolean';\n if (typeof value === 'number') return 'number';\n if (key === 'type' && ['bar', 'line', 'pie'].includes(String(value))) return 'select';\n if (key === 'status') return 'select';\n if (['description', 'bio', 'quote', 'answer', 'a', 'subtitle'].includes(key)) return 'textarea';\n return 'text';\n }\n\n function getSelectOptions(path) {\n const key = String(path).split('.').pop() || '';\n if (key === 'type') return [{ value: 'bar', label: '\u67F1\u72B6' }, { value: 'line', label: '\u6298\u7EBF' }, { value: 'pie', label: '\u997C\u56FE' }];\n if (key === 'status') return [{ value: '\u5DF2\u5B8C\u6210', label: '\u5DF2\u5B8C\u6210' }, { value: '\u8FDB\u884C\u4E2D', label: '\u8FDB\u884C\u4E2D' }, { value: '\u89C4\u5212\u4E2D', label: '\u89C4\u5212\u4E2D' }];\n return [];\n }\n\n function clearSelection() {\n if (selectedEl) {\n selectedEl.classList.remove('lp-selected');\n selectedEl = null;\n }\n selectedSlideIdx = current;\n renderSlidePanel();\n }\n\n function setField(path, value) {\n const slide = goal.slides[selectedSlideIdx];\n if (!slide) return;\n recordHistory();\n setProp(slide.props, path, value);\n syncDomFromGoal();\n autoSave();\n }\n\n function createEl(tag, className, parent) {\n const el = document.createElement(tag);\n if (className) el.className = className;\n if (parent) parent.appendChild(el);\n return el;\n }\n\n function createTextField(label, value, onChange) {\n const wrap = createEl('div', 'lp-property-field');\n createEl('label', 'lp-property-label', wrap).textContent = label;\n const input = createEl('input', 'lp-property-input', wrap);\n input.type = 'text';\n input.value = value == null ? '' : String(value);\n input.addEventListener('input', () => onChange(input.value));\n return wrap;\n }\n\n function createTextareaField(label, value, onChange) {\n const wrap = createEl('div', 'lp-property-field');\n createEl('label', 'lp-property-label', wrap).textContent = label;\n const textarea = createEl('textarea', 'lp-property-textarea', wrap);\n textarea.value = value == null ? '' : String(value);\n textarea.addEventListener('input', () => onChange(textarea.value));\n return wrap;\n }\n\n function createNumberField(label, value, onChange) {\n const wrap = createEl('div', 'lp-property-field');\n createEl('label', 'lp-property-label', wrap).textContent = label;\n const input = createEl('input', 'lp-property-input', wrap);\n input.type = 'number';\n input.value = value == null ? '' : String(value);\n input.addEventListener('input', () => onChange(Number(input.value)));\n return wrap;\n }\n\n function createToggleField(label, value, onChange) {\n const wrap = createEl('div', 'lp-property-field');\n const labelEl = createEl('label', 'lp-property-toggle', wrap);\n const text = createEl('span', '', labelEl);\n text.textContent = label;\n const input = createEl('input', '', labelEl);\n input.type = 'checkbox';\n input.checked = !!value;\n const track = createEl('div', 'lp-property-toggle-track', labelEl);\n createEl('div', 'lp-property-toggle-thumb', track);\n input.addEventListener('change', () => onChange(input.checked));\n return wrap;\n }\n\n function createSelectField(label, value, options, onChange) {\n const wrap = createEl('div', 'lp-property-field');\n createEl('label', 'lp-property-label', wrap).textContent = label;\n const segmented = createEl('div', 'lp-property-segmented', wrap);\n options.forEach((opt) => {\n const btn = createEl('button', '', segmented);\n btn.textContent = opt.label;\n btn.type = 'button';\n if (opt.value === value) btn.classList.add('active');\n btn.addEventListener('click', () => {\n Array.from(segmented.children).forEach((b) => b.classList.remove('active'));\n btn.classList.add('active');\n onChange(opt.value);\n });\n });\n return wrap;\n }\n\n function createImageField(label, value, onChange) {\n const wrap = createEl('div', 'lp-property-field');\n createEl('label', 'lp-property-label', wrap).textContent = label;\n const urlInput = createEl('input', 'lp-property-input', wrap);\n urlInput.type = 'text';\n urlInput.value = value == null ? '' : String(value);\n urlInput.placeholder = 'https://...';\n urlInput.addEventListener('input', () => onChange(urlInput.value));\n\n const fileWrap = createEl('div', 'lp-property-field');\n fileWrap.style.marginTop = '8px';\n const fileInput = createEl('input', 'lp-property-input', fileWrap);\n fileInput.type = 'file';\n fileInput.accept = 'image/*';\n fileInput.addEventListener('change', () => {\n const file = fileInput.files[0];\n if (!file) return;\n const reader = new FileReader();\n reader.onload = (e) => {\n const dataUrl = e.target.result;\n urlInput.value = dataUrl;\n onChange(dataUrl);\n };\n reader.readAsDataURL(file);\n });\n wrap.appendChild(fileWrap);\n return wrap;\n }\n\n function createFieldControl(path, value) {\n const type = inferFieldType(path, value);\n const label = getFieldLabel(path);\n if (type === 'image') return createImageField(label, value, (v) => setField(path, v || undefined));\n if (type === 'textarea') return createTextareaField(label, value, (v) => setField(path, v || undefined));\n if (type === 'number') return createNumberField(label, value, (v) => setField(path, v));\n if (type === 'boolean') return createToggleField(label, value, (v) => setField(path, v));\n if (type === 'select') return createSelectField(label, value, getSelectOptions(path), (v) => setField(path, v));\n return createTextField(label, value, (v) => setField(path, v || undefined));\n }\n\n function inferEmptyItem(array) {\n if (!array.length) return {};\n const sample = array[0];\n if (typeof sample === 'string') return '';\n if (typeof sample === 'object' && sample !== null) {\n const item = {};\n Object.keys(sample).forEach((k) => {\n const v = sample[k];\n item[k] = typeof v === 'boolean' ? false : (typeof v === 'number' ? 0 : '');\n });\n return item;\n }\n return '';\n }\n\n function createArraySection(path, array, parent) {\n const section = createEl('div', 'lp-property-section', parent);\n createEl('div', 'lp-property-section-title', section).textContent = getFieldLabel(path) + ' (' + array.length + ')';\n\n const list = createEl('div', 'lp-property-array', section);\n array.forEach((item, index) => {\n const itemWrap = createEl('div', 'lp-property-array-item', list);\n const header = createEl('div', 'lp-property-array-header', itemWrap);\n header.textContent = '\u7B2C ' + (index + 1) + ' \u9879';\n const removeBtn = createEl('button', 'lp-property-btn lp-property-btn-sm lp-property-btn-danger', header);\n removeBtn.textContent = '\u5220\u9664';\n removeBtn.type = 'button';\n removeBtn.addEventListener('click', () => {\n recordHistory();\n const arr = getProp(goal.slides[selectedSlideIdx].props, path);\n if (Array.isArray(arr)) {\n arr.splice(index, 1);\n autoSave();\n reloadEditor();\n }\n });\n\n if (typeof item === 'string') {\n const textarea = createEl('textarea', 'lp-property-textarea', itemWrap);\n textarea.value = item;\n textarea.addEventListener('input', () => {\n setField(path + '.' + index, textarea.value);\n });\n } else if (typeof item === 'object' && item !== null) {\n Object.keys(item).forEach((key) => {\n itemWrap.appendChild(createFieldControl(path + '.' + index + '.' + key, item[key]));\n });\n }\n });\n\n const addBtn = createEl('button', 'lp-property-btn lp-property-btn-primary', section);\n addBtn.textContent = '\uFF0B \u6DFB\u52A0\u4E00\u9879';\n addBtn.type = 'button';\n addBtn.addEventListener('click', () => {\n recordHistory();\n const arr = getProp(goal.slides[selectedSlideIdx].props, path);\n if (Array.isArray(arr)) {\n arr.push(inferEmptyItem(arr));\n autoSave();\n reloadEditor();\n }\n });\n }\n\n function renderSlideFields(props, parent) {\n Object.keys(props).forEach((key) => {\n if (key === '_style') return;\n const value = props[key];\n if (Array.isArray(value)) {\n createArraySection(key, value, parent);\n } else if (value !== null && typeof value === 'object') {\n // \u5D4C\u5957\u5BF9\u8C61\u76F4\u63A5\u5C55\u5F00\uFF08\u76EE\u524D\u8F83\u5C11\uFF09\n const section = createEl('div', 'lp-property-section', parent);\n createEl('div', 'lp-property-section-title', section).textContent = getFieldLabel(key);\n Object.keys(value).forEach((subKey) => {\n section.appendChild(createFieldControl(key + '.' + subKey, value[subKey]));\n });\n } else {\n parent.appendChild(createFieldControl(key, value));\n }\n });\n }\n\n function renderSlidePanel() {\n if (!propertyContent) return;\n propertyContent.innerHTML = '';\n const slide = goal.slides[selectedSlideIdx];\n if (!slide) return;\n\n const info = createEl('div', 'lp-property-section', propertyContent);\n createEl('div', 'lp-property-section-title', info).textContent = '\u5E7B\u706F\u7247 ' + (selectedSlideIdx + 1);\n const layoutLabel = createEl('div', 'lp-property-help', info);\n layoutLabel.textContent = '\u7248\u5F0F\uFF1A' + slide.layout;\n\n if (selectedEl) {\n const prop = selectedEl.getAttribute('data-lp-prop');\n const quickSection = createEl('div', 'lp-property-section', propertyContent);\n createEl('div', 'lp-property-section-title', quickSection).textContent = '\u5F53\u524D\u9009\u4E2D';\n const fieldValue = getProp(slide.props, prop);\n quickSection.appendChild(createFieldControl(prop, fieldValue));\n }\n\n const fieldsSection = createEl('div', 'lp-property-section', propertyContent);\n createEl('div', 'lp-property-section-title', fieldsSection).textContent = '\u5185\u5BB9\u5C5E\u6027';\n renderSlideFields(slide.props, fieldsSection);\n }\n\n function selectEl(el) {\n if (selectedEl === el) return;\n if (selectedEl) selectedEl.classList.remove('lp-selected');\n selectedEl = el;\n selectedEl.classList.add('lp-selected');\n selectedSlideIdx = Number(el.getAttribute('data-lp-slide-idx')) || current;\n renderSlidePanel();\n // \u6EDA\u52A8\u5230\u5F53\u524D\u9009\u4E2D\u5B57\u6BB5\n const path = el.getAttribute('data-lp-prop');\n if (path && propertyContent) {\n const label = propertyContent.querySelector('.lp-property-label');\n // \u7B80\u5355\u9AD8\u4EAE\uFF1A\u6682\u65F6\u4E0D\u505A\u81EA\u52A8\u6EDA\u52A8\uFF0C\u907F\u514D\u590D\u6742\u5EA6\n }\n }\n\n function selectSlide(index) {\n if (selectedEl) {\n selectedEl.classList.remove('lp-selected');\n selectedEl = null;\n }\n selectedSlideIdx = index;\n renderSlidePanel();\n }\n\n document.addEventListener('focusin', (e) => {\n const el = e.target.closest && e.target.closest('[data-lp-editable=\"true\"], [data-lp-editable-image=\"true\"]');\n if (el) selectEl(el);\n });\n\n document.addEventListener('click', (e) => {\n const editableEl = e.target.closest && e.target.closest('[data-lp-editable=\"true\"], [data-lp-editable-image=\"true\"]');\n if (editableEl) {\n selectEl(editableEl);\n return;\n }\n const wrapper = e.target.closest && e.target.closest('.lp-slide-wrapper');\n if (wrapper) {\n selectSlide(Number(wrapper.getAttribute('data-slide-index')));\n return;\n }\n if (e.target.closest && !e.target.closest('.lp-editor-right-panel')) {\n clearSelection();\n }\n });\n\n // \u6062\u590D\u4E0A\u6B21\u505C\u7559\u7684\u5E7B\u706F\u7247\uFF08\u7ED3\u6784\u53D8\u66F4\u540E\u91CD\u8F7D\u7528\uFF09\n const savedCurrent = localStorage.getItem('lemonppt:editor:currentSlide');\n if (savedCurrent) {\n const savedIndex = Number(savedCurrent);\n if (!Number.isNaN(savedIndex) && savedIndex >= 0 && savedIndex < slides.length) {\n goTo(savedIndex);\n }\n localStorage.removeItem('lemonppt:editor:currentSlide');\n }\n\n // \u9ED8\u8BA4\u9009\u4E2D\u5F53\u524D\u5E7B\u706F\u7247\n selectSlide(current);\n})();\n";
|
|
1
|
+
export declare const editorScript = "\n(function () {\n const STORAGE_KEY = 'lemonppt:editor:' + (window.__lemonPPT_goal?.randomSeed || window.__lemonPPT_goal?.title || 'default');\n const MAX_HISTORY = 50;\n\n let goal = window.__lemonPPT_goal;\n if (!goal) return;\n\n // \u4F18\u5148\u4ECE localStorage \u6062\u590D\n try {\n const saved = localStorage.getItem(STORAGE_KEY);\n if (saved) {\n const parsed = JSON.parse(saved);\n if (parsed && parsed.slides) {\n goal = parsed;\n window.__lemonPPT_goal = goal;\n syncDomFromGoal();\n }\n }\n } catch (err) {\n console.warn('\u81EA\u52A8\u6062\u590D\u5931\u8D25', err);\n }\n\n const history = [deepClone(goal)];\n let historyIndex = 0;\n\n function deepClone(obj) {\n return JSON.parse(JSON.stringify(obj));\n }\n\n function recordHistory() {\n // \u622A\u65AD redo \u5206\u652F\n if (historyIndex < history.length - 1) {\n history.splice(historyIndex + 1);\n }\n history.push(deepClone(goal));\n if (history.length > MAX_HISTORY) {\n history.shift();\n } else {\n historyIndex++;\n }\n updateUndoRedoButtons();\n }\n\n function undo() {\n if (historyIndex <= 0) return;\n historyIndex--;\n restoreGoal(history[historyIndex]);\n }\n\n function redo() {\n if (historyIndex >= history.length - 1) return;\n historyIndex++;\n restoreGoal(history[historyIndex]);\n }\n\n function restoreGoal(newGoal) {\n goal = newGoal;\n window.__lemonPPT_goal = goal;\n Object.assign(window.__lemonPPT_goal, newGoal);\n syncDomFromGoal();\n autoSave();\n updateUndoRedoButtons();\n }\n\n function autoSave() {\n try {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(goal));\n } catch (err) {\n console.warn('\u81EA\u52A8\u4FDD\u5B58\u5931\u8D25', err);\n }\n }\n\n function syncDomFromGoal() {\n // \u6587\u672C\n document.querySelectorAll('[data-lp-editable=\"true\"]').forEach((el) => {\n const slideIdx = Number(el.getAttribute('data-lp-slide-idx'));\n const prop = el.getAttribute('data-lp-prop');\n if (Number.isNaN(slideIdx) || !prop) return;\n const slide = goal.slides[slideIdx];\n if (!slide) return;\n const value = getProp(slide.props, prop);\n el.textContent = value == null ? '' : String(value);\n });\n\n // \u56FE\u7247\n document.querySelectorAll('[data-lp-editable-image=\"true\"]').forEach((img) => {\n const slideIdx = Number(img.getAttribute('data-lp-slide-idx'));\n const prop = img.getAttribute('data-lp-prop') || 'image';\n if (Number.isNaN(slideIdx)) return;\n const slide = goal.slides[slideIdx];\n if (!slide) return;\n const value = getProp(slide.props, prop);\n if (value) {\n img.setAttribute('src', String(value));\n } else {\n img.remove();\n }\n });\n }\n\n function getProp(obj, path) {\n const keys = path.split('.');\n let target = obj;\n for (const k of keys) {\n if (target == null || typeof target !== 'object') return undefined;\n target = target[k];\n }\n return target;\n }\n\n function setProp(obj, path, value) {\n const keys = path.split('.');\n let target = obj;\n for (let i = 0; i < keys.length - 1; i++) {\n const k = keys[i];\n if (!(k in target)) target[k] = [];\n target = target[k];\n }\n target[keys[keys.length - 1]] = value;\n }\n\n // \u56FE\u7247\u7F16\u8F91\u5F39\u7A97\n function openImageEditor(img, slideIdx, prop) {\n const slide = goal.slides[slideIdx];\n if (!slide) return;\n\n const overlay = document.createElement('div');\n overlay.className = 'lp-image-editor-overlay';\n overlay.innerHTML = `\n <div class=\"lp-image-editor\">\n <h3>\u7F16\u8F91\u56FE\u7247</h3>\n <label>\n <span>\u56FE\u7247 URL</span>\n <input type=\"text\" class=\"lp-image-url\" placeholder=\"https://...\" value=\"${escapeHtml(img.getAttribute('src') || '')}\">\n </label>\n <div class=\"lp-image-or\">\u6216</div>\n <label class=\"lp-image-file-label\">\n <span>\u4E0A\u4F20\u672C\u5730\u56FE\u7247</span>\n <input type=\"file\" class=\"lp-image-file\" accept=\"image/*\">\n </label>\n <div class=\"lp-image-preview-wrap\">\n <img class=\"lp-image-preview\" src=\"${escapeHtml(img.getAttribute('src') || '')}\" alt=\"\">\n </div>\n <div class=\"lp-image-actions\">\n <button class=\"lp-image-delete lp-image-btn-secondary\">\u5220\u9664\u56FE\u7247</button>\n <div class=\"lp-image-actions-right\">\n <button class=\"lp-image-cancel lp-image-btn-secondary\">\u53D6\u6D88</button>\n <button class=\"lp-image-confirm\">\u786E\u8BA4</button>\n </div>\n </div>\n </div>\n `;\n\n document.body.appendChild(overlay);\n\n const urlInput = overlay.querySelector('.lp-image-url');\n const fileInput = overlay.querySelector('.lp-image-file');\n const preview = overlay.querySelector('.lp-image-preview');\n const confirmBtn = overlay.querySelector('.lp-image-confirm');\n const cancelBtn = overlay.querySelector('.lp-image-cancel');\n const deleteBtn = overlay.querySelector('.lp-image-delete');\n\n let pendingValue = img.getAttribute('src') || '';\n\n urlInput.addEventListener('input', () => {\n pendingValue = urlInput.value;\n preview.src = pendingValue;\n });\n\n fileInput.addEventListener('change', () => {\n const file = fileInput.files[0];\n if (!file) return;\n const reader = new FileReader();\n reader.onload = (e) => {\n pendingValue = e.target.result;\n urlInput.value = '';\n preview.src = pendingValue;\n };\n reader.readAsDataURL(file);\n });\n\n function close() {\n overlay.remove();\n }\n\n function apply() {\n recordHistory();\n if (pendingValue) {\n img.setAttribute('src', pendingValue);\n setProp(slide.props, prop, pendingValue);\n } else {\n img.remove();\n setProp(slide.props, prop, undefined);\n }\n autoSave();\n close();\n }\n\n function remove() {\n recordHistory();\n img.remove();\n setProp(slide.props, prop, undefined);\n autoSave();\n close();\n }\n\n confirmBtn.addEventListener('click', apply);\n cancelBtn.addEventListener('click', close);\n deleteBtn.addEventListener('click', remove);\n overlay.addEventListener('click', (e) => {\n if (e.target === overlay) close();\n });\n }\n\n function escapeHtml(str) {\n return String(str)\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n }\n\n const editableEls = document.querySelectorAll('[data-lp-editable=\"true\"]');\n\n editableEls.forEach((el) => {\n el.setAttribute('contenteditable', 'true');\n\n el.addEventListener('focus', () => {\n recordHistory();\n });\n\n el.addEventListener('blur', () => {\n const slideIdx = Number(el.getAttribute('data-lp-slide-idx'));\n const prop = el.getAttribute('data-lp-prop');\n if (Number.isNaN(slideIdx) || !prop) return;\n\n const slide = goal.slides[slideIdx];\n if (!slide) return;\n\n const value = el.textContent || '';\n setProp(slide.props, prop, value);\n autoSave();\n });\n\n el.addEventListener('keydown', (e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n el.blur();\n }\n });\n });\n\n // \u56FE\u7247\u6362\u56FE\n const imageEls = document.querySelectorAll('[data-lp-editable-image=\"true\"]');\n imageEls.forEach((img) => {\n img.addEventListener('click', () => {\n const slideIdx = Number(img.getAttribute('data-lp-slide-idx'));\n const prop = img.getAttribute('data-lp-prop') || 'image';\n if (Number.isNaN(slideIdx)) return;\n openImageEditor(img, slideIdx, prop);\n });\n });\n\n const downloadBtn = document.getElementById('lp-download-goal');\n if (downloadBtn) {\n downloadBtn.addEventListener('click', () => {\n const blob = new Blob([JSON.stringify(goal, null, 2)], { type: 'application/json' });\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = 'goal.json';\n a.click();\n URL.revokeObjectURL(url);\n });\n }\n\n const exportPptxBtn = document.getElementById('lp-export-pptx');\n if (exportPptxBtn) {\n exportPptxBtn.addEventListener('click', async () => {\n exportPptxBtn.textContent = '\u5BFC\u51FA\u4E2D...';\n exportPptxBtn.disabled = true;\n try {\n const res = await fetch('/api/export/pptx', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(goal),\n });\n if (!res.ok) throw new Error('\u5BFC\u51FA\u5931\u8D25: ' + res.status);\n const blob = await res.blob();\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = 'presentation.pptx';\n a.click();\n URL.revokeObjectURL(url);\n } catch (err) {\n alert(err instanceof Error ? err.message : String(err));\n } finally {\n exportPptxBtn.textContent = '\u5BFC\u51FA PPTX';\n exportPptxBtn.disabled = false;\n }\n });\n }\n\n const exportPdfBtn = document.getElementById('lp-export-pdf');\n if (exportPdfBtn) {\n exportPdfBtn.addEventListener('click', async () => {\n exportPdfBtn.textContent = '\u5BFC\u51FA\u4E2D...';\n exportPdfBtn.disabled = true;\n try {\n const res = await fetch('/api/export/pdf', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(goal),\n });\n if (!res.ok) throw new Error('\u5BFC\u51FA\u5931\u8D25: ' + res.status);\n const blob = await res.blob();\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = 'presentation.pdf';\n a.click();\n URL.revokeObjectURL(url);\n } catch (err) {\n alert(err instanceof Error ? err.message : String(err));\n } finally {\n exportPdfBtn.textContent = '\u5BFC\u51FA PDF';\n exportPdfBtn.disabled = false;\n }\n });\n }\n\n // \u64A4\u9500 / \u91CD\u505A\n const undoBtn = document.getElementById('lp-undo');\n const redoBtn = document.getElementById('lp-redo');\n\n function updateUndoRedoButtons() {\n if (undoBtn) undoBtn.disabled = historyIndex <= 0;\n if (redoBtn) redoBtn.disabled = historyIndex >= history.length - 1;\n }\n\n if (undoBtn) undoBtn.addEventListener('click', undo);\n if (redoBtn) redoBtn.addEventListener('click', redo);\n\n // \u4E3B\u9898\u5207\u6362\n const themeSwitcher = document.getElementById('lp-theme-switcher');\n if (themeSwitcher) {\n themeSwitcher.value = goal.theme || 'base';\n themeSwitcher.addEventListener('change', () => {\n const newTheme = themeSwitcher.value;\n if (newTheme === goal.theme) return;\n goal.theme = newTheme;\n autoSave();\n window.location.href = '/editor?theme=' + encodeURIComponent(newTheme);\n });\n }\n\n document.addEventListener('keydown', (e) => {\n const isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0;\n const mod = isMac ? e.metaKey : e.ctrlKey;\n if (mod && e.key.toLowerCase() === 'z') {\n e.preventDefault();\n if (e.shiftKey) redo();\n else undo();\n }\n if (mod && e.key.toLowerCase() === 'y') {\n e.preventDefault();\n redo();\n }\n });\n\n updateUndoRedoButtons();\n\n // \u7FFB\u9875\u811A\u672C\n const slides = document.querySelectorAll('.lp-slide-wrapper');\n const thumbnails = document.querySelectorAll('.lp-thumbnail');\n const prevBtn = document.getElementById('lp-prev');\n const nextBtn = document.getElementById('lp-next');\n const currentLabel = document.getElementById('lp-current');\n let current = 0;\n\n function updateClasses() {\n slides.forEach((slide, index) => {\n slide.classList.remove('active', 'prev');\n if (index === current) slide.classList.add('active');\n else if (index < current) slide.classList.add('prev');\n });\n thumbnails.forEach((thumb, index) => {\n thumb.classList.toggle('active', index === current);\n });\n const activeThumb = thumbnails[current];\n if (activeThumb) activeThumb.scrollIntoView({ block: 'nearest', behavior: 'smooth' });\n if (currentLabel) currentLabel.textContent = String(current + 1);\n if (prevBtn) prevBtn.disabled = current === 0;\n if (nextBtn) nextBtn.disabled = current === slides.length - 1;\n }\n\n function goTo(index) {\n if (index < 0 || index >= slides.length) return;\n current = index;\n updateClasses();\n if (typeof selectSlide === 'function') selectSlide(current);\n }\n\n if (prevBtn) prevBtn.addEventListener('click', () => goTo(current - 1));\n if (nextBtn) nextBtn.addEventListener('click', () => goTo(current + 1));\n thumbnails.forEach((thumb) => {\n thumb.addEventListener('click', () => goTo(Number(thumb.dataset.index)));\n });\n function isEditingTarget(target) {\n if (!target || !target.closest) return false;\n return target.closest('[contenteditable=\"true\"]') || target.closest('.lp-image-editor');\n }\n\n document.addEventListener('keydown', (e) => {\n if (isEditingTarget(e.target)) return;\n if (e.key === 'ArrowRight' || e.key === ' ' || e.key === 'PageDown') goTo(current + 1);\n if (e.key === 'ArrowLeft' || e.key === 'PageUp') goTo(current - 1);\n if (e.key === 'Home') goTo(0);\n if (e.key === 'End') goTo(slides.length - 1);\n });\n\n updateClasses();\n\n // \u7F29\u653E\u63A7\u5236\n const stage = document.querySelector('.lp-editor-stage');\n const scaler = document.querySelector('.lp-editor-stage-scaler');\n const zoomSlider = document.getElementById('lp-zoom-slider');\n const zoomValue = document.getElementById('lp-zoom-value');\n const zoomOutBtn = document.getElementById('lp-zoom-out');\n const zoomInBtn = document.getElementById('lp-zoom-in');\n const zoomFitBtn = document.getElementById('lp-zoom-fit');\n let userZoom = null;\n\n function fitScale() {\n if (!stage || !scaler) return 1;\n return Math.min(stage.clientWidth / 1280, stage.clientHeight / 720) * 0.92;\n }\n\n function updateScale() {\n if (!stage || !scaler) return;\n const scale = userZoom == null ? fitScale() : userZoom;\n scaler.style.transform = 'scale(' + Math.max(scale, 0.35) + ')';\n if (zoomValue) zoomValue.textContent = Math.round(scale * 100) + '%';\n if (zoomSlider && userZoom != null) zoomSlider.value = String(Math.round(scale * 100));\n }\n\n if (zoomSlider) {\n zoomSlider.addEventListener('input', () => {\n userZoom = Number(zoomSlider.value) / 100;\n updateScale();\n });\n }\n if (zoomOutBtn) {\n zoomOutBtn.addEventListener('click', () => {\n userZoom = (userZoom == null ? fitScale() : userZoom) - 0.1;\n if (userZoom < 0.35) userZoom = 0.35;\n updateScale();\n });\n }\n if (zoomInBtn) {\n zoomInBtn.addEventListener('click', () => {\n userZoom = (userZoom == null ? fitScale() : userZoom) + 0.1;\n if (userZoom > 1.5) userZoom = 1.5;\n updateScale();\n });\n }\n if (zoomFitBtn) {\n zoomFitBtn.addEventListener('click', () => {\n userZoom = null;\n updateScale();\n });\n }\n window.addEventListener('resize', updateScale);\n updateScale();\n\n // \u64AD\u653E\uFF1A\u5148\u6E32\u67D3\u9759\u6001\u7248\u672C\u518D\u6253\u5F00\n const playBtn = document.getElementById('lp-play');\n if (playBtn) {\n playBtn.addEventListener('click', async () => {\n playBtn.textContent = '\u51C6\u5907\u4E2D...';\n playBtn.disabled = true;\n try {\n const res = await fetch('/api/render', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(goal),\n });\n if (!res.ok) throw new Error('\u6E32\u67D3\u5931\u8D25: ' + res.status);\n window.open('/deck/index.html', '_blank');\n } catch (err) {\n alert(err instanceof Error ? err.message : String(err));\n } finally {\n playBtn.textContent = '\u25B6 \u64AD\u653E';\n playBtn.disabled = false;\n }\n });\n }\n\n // \u5185\u5BB9\u7ED3\u6784\u53D8\u66F4\u540E\u91CD\u65B0\u6E32\u67D3\u5F53\u524D\u7F16\u8F91\u5668\uFF08\u4EC5\u7528\u4E8E\u6570\u7EC4\u589E\u5220\u7B49\u6A21\u677F\u5185\u5BB9\u8C03\u6574\uFF09\n function saveCurrentForReload() {\n try {\n localStorage.setItem('lemonppt:editor:currentSlide', String(current));\n } catch (e) {}\n }\n\n async function reloadEditor() {\n saveCurrentForReload();\n try {\n const res = await fetch('/api/render-editor', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(goal),\n });\n if (!res.ok) throw new Error('\u91CD\u65B0\u6E32\u67D3\u5931\u8D25: ' + res.status);\n window.location.reload();\n } catch (err) {\n alert(err instanceof Error ? err.message : String(err));\n }\n }\n\n // \u5143\u7D20\u9009\u4E2D\u4E0E\u53F3\u4FA7\u5C5E\u6027\u9762\u677F\n let selectedEl = null;\n let selectedSlideIdx = 0;\n const propertyContent = document.getElementById('lp-property-content');\n\n const FIELD_LABELS = {\n kicker: '\u6807\u7B7E',\n title: '\u6807\u9898',\n subtitle: '\u526F\u6807\u9898',\n date: '\u65E5\u671F',\n quote: '\u5F15\u7528',\n author: '\u4F5C\u8005',\n role: '\u804C\u4F4D',\n company: '\u516C\u53F8',\n value: '\u6570\u503C',\n unit: '\u5355\u4F4D',\n label: '\u6307\u6807\u540D',\n description: '\u8BF4\u660E',\n change: '\u53D8\u5316',\n imageUrl: '\u56FE\u7247',\n url: '\u56FE\u7247',\n logoUrl: 'Logo',\n avatarUrl: '\u5934\u50CF',\n caption: '\u8BF4\u660E',\n q: '\u95EE\u9898',\n a: '\u56DE\u7B54',\n question: '\u95EE\u9898',\n answer: '\u56DE\u7B54',\n name: '\u540D\u79F0',\n price: '\u4EF7\u683C',\n period: '\u5468\u671F',\n cta: '\u6309\u94AE\u6587\u6848',\n type: '\u56FE\u8868\u7C7B\u578B',\n status: '\u72B6\u6001',\n bio: '\u7B80\u4ECB',\n };\n\n function getFieldLabel(path) {\n const key = String(path).split('.').pop() || '';\n return FIELD_LABELS[key] || key;\n }\n\n function inferFieldType(path, value) {\n const key = String(path).split('.').pop() || '';\n if (/image|url|logo|avatar/i.test(key) && typeof value === 'string') return 'image';\n if (typeof value === 'boolean') return 'boolean';\n if (typeof value === 'number') return 'number';\n if (key === 'type' && ['bar', 'line', 'pie'].includes(String(value))) return 'select';\n if (key === 'status') return 'select';\n if (['description', 'bio', 'quote', 'answer', 'a', 'subtitle'].includes(key)) return 'textarea';\n return 'text';\n }\n\n function getSelectOptions(path) {\n const key = String(path).split('.').pop() || '';\n if (key === 'type') return [{ value: 'bar', label: '\u67F1\u72B6' }, { value: 'line', label: '\u6298\u7EBF' }, { value: 'pie', label: '\u997C\u56FE' }];\n if (key === 'status') return [{ value: '\u5DF2\u5B8C\u6210', label: '\u5DF2\u5B8C\u6210' }, { value: '\u8FDB\u884C\u4E2D', label: '\u8FDB\u884C\u4E2D' }, { value: '\u89C4\u5212\u4E2D', label: '\u89C4\u5212\u4E2D' }];\n return [];\n }\n\n function clearSelection() {\n if (selectedEl) {\n selectedEl.classList.remove('lp-selected');\n selectedEl = null;\n }\n selectedSlideIdx = current;\n renderSlidePanel();\n }\n\n function setField(path, value) {\n const slide = goal.slides[selectedSlideIdx];\n if (!slide) return;\n recordHistory();\n setProp(slide.props, path, value);\n syncDomFromGoal();\n autoSave();\n }\n\n function createEl(tag, className, parent) {\n const el = document.createElement(tag);\n if (className) el.className = className;\n if (parent) parent.appendChild(el);\n return el;\n }\n\n function createTextField(label, value, onChange) {\n const wrap = createEl('div', 'lp-property-field');\n createEl('label', 'lp-property-label', wrap).textContent = label;\n const input = createEl('input', 'lp-property-input', wrap);\n input.type = 'text';\n input.value = value == null ? '' : String(value);\n input.addEventListener('input', () => onChange(input.value));\n return wrap;\n }\n\n function createTextareaField(label, value, onChange) {\n const wrap = createEl('div', 'lp-property-field');\n createEl('label', 'lp-property-label', wrap).textContent = label;\n const textarea = createEl('textarea', 'lp-property-textarea', wrap);\n textarea.value = value == null ? '' : String(value);\n textarea.addEventListener('input', () => onChange(textarea.value));\n return wrap;\n }\n\n function createNumberField(label, value, onChange) {\n const wrap = createEl('div', 'lp-property-field');\n createEl('label', 'lp-property-label', wrap).textContent = label;\n const input = createEl('input', 'lp-property-input', wrap);\n input.type = 'number';\n input.value = value == null ? '' : String(value);\n input.addEventListener('input', () => onChange(Number(input.value)));\n return wrap;\n }\n\n function createToggleField(label, value, onChange) {\n const wrap = createEl('div', 'lp-property-field');\n const labelEl = createEl('label', 'lp-property-toggle', wrap);\n const text = createEl('span', '', labelEl);\n text.textContent = label;\n const input = createEl('input', '', labelEl);\n input.type = 'checkbox';\n input.checked = !!value;\n const track = createEl('div', 'lp-property-toggle-track', labelEl);\n createEl('div', 'lp-property-toggle-thumb', track);\n input.addEventListener('change', () => onChange(input.checked));\n return wrap;\n }\n\n function createSelectField(label, value, options, onChange) {\n const wrap = createEl('div', 'lp-property-field');\n createEl('label', 'lp-property-label', wrap).textContent = label;\n const segmented = createEl('div', 'lp-property-segmented', wrap);\n options.forEach((opt) => {\n const btn = createEl('button', '', segmented);\n btn.textContent = opt.label;\n btn.type = 'button';\n if (opt.value === value) btn.classList.add('active');\n btn.addEventListener('click', () => {\n Array.from(segmented.children).forEach((b) => b.classList.remove('active'));\n btn.classList.add('active');\n onChange(opt.value);\n });\n });\n return wrap;\n }\n\n function createImageField(label, value, onChange) {\n const wrap = createEl('div', 'lp-property-field');\n createEl('label', 'lp-property-label', wrap).textContent = label;\n const urlInput = createEl('input', 'lp-property-input', wrap);\n urlInput.type = 'text';\n urlInput.value = value == null ? '' : String(value);\n urlInput.placeholder = 'https://...';\n urlInput.addEventListener('input', () => onChange(urlInput.value));\n\n const fileWrap = createEl('div', 'lp-property-field');\n fileWrap.style.marginTop = '8px';\n const fileInput = createEl('input', 'lp-property-input', fileWrap);\n fileInput.type = 'file';\n fileInput.accept = 'image/*';\n fileInput.addEventListener('change', () => {\n const file = fileInput.files[0];\n if (!file) return;\n const reader = new FileReader();\n reader.onload = (e) => {\n const dataUrl = e.target.result;\n urlInput.value = dataUrl;\n onChange(dataUrl);\n };\n reader.readAsDataURL(file);\n });\n wrap.appendChild(fileWrap);\n return wrap;\n }\n\n function createFieldControl(path, value) {\n const type = inferFieldType(path, value);\n const label = getFieldLabel(path);\n if (type === 'image') return createImageField(label, value, (v) => setField(path, v || undefined));\n if (type === 'textarea') return createTextareaField(label, value, (v) => setField(path, v || undefined));\n if (type === 'number') return createNumberField(label, value, (v) => setField(path, v));\n if (type === 'boolean') return createToggleField(label, value, (v) => setField(path, v));\n if (type === 'select') return createSelectField(label, value, getSelectOptions(path), (v) => setField(path, v));\n return createTextField(label, value, (v) => setField(path, v || undefined));\n }\n\n function inferEmptyItem(array) {\n if (!array.length) return {};\n const sample = array[0];\n if (typeof sample === 'string') return '';\n if (typeof sample === 'object' && sample !== null) {\n const item = {};\n Object.keys(sample).forEach((k) => {\n const v = sample[k];\n item[k] = typeof v === 'boolean' ? false : (typeof v === 'number' ? 0 : '');\n });\n return item;\n }\n return '';\n }\n\n function createArraySection(path, array, parent) {\n const section = createEl('div', 'lp-property-section', parent);\n createEl('div', 'lp-property-section-title', section).textContent = getFieldLabel(path) + ' (' + array.length + ')';\n\n const list = createEl('div', 'lp-property-array', section);\n array.forEach((item, index) => {\n const itemWrap = createEl('div', 'lp-property-array-item', list);\n const header = createEl('div', 'lp-property-array-header', itemWrap);\n header.textContent = '\u7B2C ' + (index + 1) + ' \u9879';\n const removeBtn = createEl('button', 'lp-property-btn lp-property-btn-sm lp-property-btn-danger', header);\n removeBtn.textContent = '\u5220\u9664';\n removeBtn.type = 'button';\n removeBtn.addEventListener('click', () => {\n recordHistory();\n const arr = getProp(goal.slides[selectedSlideIdx].props, path);\n if (Array.isArray(arr)) {\n arr.splice(index, 1);\n autoSave();\n reloadEditor();\n }\n });\n\n if (typeof item === 'string') {\n const textarea = createEl('textarea', 'lp-property-textarea', itemWrap);\n textarea.value = item;\n textarea.addEventListener('input', () => {\n setField(path + '.' + index, textarea.value);\n });\n } else if (typeof item === 'object' && item !== null) {\n Object.keys(item).forEach((key) => {\n itemWrap.appendChild(createFieldControl(path + '.' + index + '.' + key, item[key]));\n });\n }\n });\n\n const addBtn = createEl('button', 'lp-property-btn lp-property-btn-primary', section);\n addBtn.textContent = '\uFF0B \u6DFB\u52A0\u4E00\u9879';\n addBtn.type = 'button';\n addBtn.addEventListener('click', () => {\n recordHistory();\n const arr = getProp(goal.slides[selectedSlideIdx].props, path);\n if (Array.isArray(arr)) {\n arr.push(inferEmptyItem(arr));\n autoSave();\n reloadEditor();\n }\n });\n }\n\n function renderSlideFields(props, parent) {\n Object.keys(props).forEach((key) => {\n if (key === '_style') return;\n const value = props[key];\n if (Array.isArray(value)) {\n createArraySection(key, value, parent);\n } else if (value !== null && typeof value === 'object') {\n // \u5D4C\u5957\u5BF9\u8C61\u76F4\u63A5\u5C55\u5F00\uFF08\u76EE\u524D\u8F83\u5C11\uFF09\n const section = createEl('div', 'lp-property-section', parent);\n createEl('div', 'lp-property-section-title', section).textContent = getFieldLabel(key);\n Object.keys(value).forEach((subKey) => {\n section.appendChild(createFieldControl(key + '.' + subKey, value[subKey]));\n });\n } else {\n parent.appendChild(createFieldControl(key, value));\n }\n });\n }\n\n function renderSlidePanel() {\n if (!propertyContent) return;\n propertyContent.innerHTML = '';\n const slide = goal.slides[selectedSlideIdx];\n if (!slide) return;\n\n const info = createEl('div', 'lp-property-section', propertyContent);\n createEl('div', 'lp-property-section-title', info).textContent = '\u5E7B\u706F\u7247 ' + (selectedSlideIdx + 1);\n const layoutLabel = createEl('div', 'lp-property-help', info);\n layoutLabel.textContent = '\u7248\u5F0F\uFF1A' + slide.layout;\n\n if (selectedEl) {\n const prop = selectedEl.getAttribute('data-lp-prop');\n const quickSection = createEl('div', 'lp-property-section', propertyContent);\n createEl('div', 'lp-property-section-title', quickSection).textContent = '\u5F53\u524D\u9009\u4E2D';\n const fieldValue = getProp(slide.props, prop);\n quickSection.appendChild(createFieldControl(prop, fieldValue));\n }\n\n const fieldsSection = createEl('div', 'lp-property-section', propertyContent);\n createEl('div', 'lp-property-section-title', fieldsSection).textContent = '\u5185\u5BB9\u5C5E\u6027';\n renderSlideFields(slide.props, fieldsSection);\n }\n\n function selectEl(el) {\n if (selectedEl === el) return;\n if (selectedEl) selectedEl.classList.remove('lp-selected');\n selectedEl = el;\n selectedEl.classList.add('lp-selected');\n selectedSlideIdx = Number(el.getAttribute('data-lp-slide-idx')) || current;\n renderSlidePanel();\n // \u6EDA\u52A8\u5230\u5F53\u524D\u9009\u4E2D\u5B57\u6BB5\n const path = el.getAttribute('data-lp-prop');\n if (path && propertyContent) {\n const label = propertyContent.querySelector('.lp-property-label');\n // \u7B80\u5355\u9AD8\u4EAE\uFF1A\u6682\u65F6\u4E0D\u505A\u81EA\u52A8\u6EDA\u52A8\uFF0C\u907F\u514D\u590D\u6742\u5EA6\n }\n }\n\n function selectSlide(index) {\n if (selectedEl) {\n selectedEl.classList.remove('lp-selected');\n selectedEl = null;\n }\n selectedSlideIdx = index;\n renderSlidePanel();\n }\n\n document.addEventListener('focusin', (e) => {\n const el = e.target.closest && e.target.closest('[data-lp-editable=\"true\"], [data-lp-editable-image=\"true\"]');\n if (el) selectEl(el);\n });\n\n document.addEventListener('click', (e) => {\n const editableEl = e.target.closest && e.target.closest('[data-lp-editable=\"true\"], [data-lp-editable-image=\"true\"]');\n if (editableEl) {\n selectEl(editableEl);\n return;\n }\n const wrapper = e.target.closest && e.target.closest('.lp-slide-wrapper');\n if (wrapper) {\n selectSlide(Number(wrapper.getAttribute('data-slide-index')));\n return;\n }\n if (e.target.closest && !e.target.closest('.lp-editor-right-panel')) {\n clearSelection();\n }\n });\n\n // \u6062\u590D\u4E0A\u6B21\u505C\u7559\u7684\u5E7B\u706F\u7247\uFF08\u7ED3\u6784\u53D8\u66F4\u540E\u91CD\u8F7D\u7528\uFF09\n const savedCurrent = localStorage.getItem('lemonppt:editor:currentSlide');\n if (savedCurrent) {\n const savedIndex = Number(savedCurrent);\n if (!Number.isNaN(savedIndex) && savedIndex >= 0 && savedIndex < slides.length) {\n goTo(savedIndex);\n }\n localStorage.removeItem('lemonppt:editor:currentSlide');\n }\n\n // \u9ED8\u8BA4\u9009\u4E2D\u5F53\u524D\u5E7B\u706F\u7247\n selectSlide(current);\n})();\n";
|
|
2
2
|
//# sourceMappingURL=editor-script.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-script.d.ts","sourceRoot":"","sources":["../src/editor-script.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"editor-script.d.ts","sourceRoot":"","sources":["../src/editor-script.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,ww9BA02BxB,CAAC"}
|
package/dist/editor-script.js
CHANGED
|
@@ -347,7 +347,7 @@ export const editorScript = `
|
|
|
347
347
|
// 主题切换
|
|
348
348
|
const themeSwitcher = document.getElementById('lp-theme-switcher');
|
|
349
349
|
if (themeSwitcher) {
|
|
350
|
-
themeSwitcher.value = goal.theme || '
|
|
350
|
+
themeSwitcher.value = goal.theme || 'base';
|
|
351
351
|
themeSwitcher.addEventListener('change', () => {
|
|
352
352
|
const newTheme = themeSwitcher.value;
|
|
353
353
|
if (newTheme === goal.theme) return;
|
package/dist/export-pdf.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-pdf.d.ts","sourceRoot":"","sources":["../src/export-pdf.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"export-pdf.d.ts","sourceRoot":"","sources":["../src/export-pdf.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAQ/C,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB9F"}
|
package/dist/export-pdf.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import { normalizeDeckGoal } from '@lemonppt/core';
|
|
1
2
|
import { writeFile } from 'node:fs/promises';
|
|
2
3
|
import os from 'node:os';
|
|
3
4
|
import path from 'node:path';
|
|
4
5
|
import { chromium } from 'playwright';
|
|
5
6
|
import { renderDeck } from './render.js';
|
|
6
7
|
export async function exportDeckToPdf(goal, options) {
|
|
8
|
+
goal = normalizeDeckGoal(goal);
|
|
7
9
|
const { outFile, width = 1280, height = 720 } = options;
|
|
8
10
|
const result = renderDeck(goal);
|
|
9
11
|
const tempDir = await os.tmpdir();
|
package/dist/export-pdf.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-pdf.js","sourceRoot":"","sources":["../src/export-pdf.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAWzC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAc,EAAE,OAAyB;IAC7E,MAAM,EAAE,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;IAExD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAEhC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACnE,MAAM,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEhD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAErC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,QAAQ,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;QACpE,MAAM,IAAI,CAAC,GAAG,CAAC;YACb,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,GAAG,KAAK,IAAI;YACnB,MAAM,EAAE,GAAG,MAAM,IAAI;YACrB,eAAe,EAAE,IAAI;YACrB,iBAAiB,EAAE,KAAK;SACzB,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"export-pdf.js","sourceRoot":"","sources":["../src/export-pdf.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAWzC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAc,EAAE,OAAyB;IAC7E,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,EAAE,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;IAExD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAEhC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACnE,MAAM,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEhD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAErC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,QAAQ,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;QACpE,MAAM,IAAI,CAAC,GAAG,CAAC;YACb,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,GAAG,KAAK,IAAI;YACnB,MAAM,EAAE,GAAG,MAAM,IAAI;YACrB,eAAe,EAAE,IAAI;YACrB,iBAAiB,EAAE,KAAK;SACzB,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-pptx.d.ts","sourceRoot":"","sources":["../src/export-pptx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAsB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"export-pptx.d.ts","sourceRoot":"","sources":["../src/export-pptx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAsB,MAAM,gBAAgB,CAAC;AAInE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAiBD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhG"}
|
package/dist/export-pptx.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { normalizeDeckGoal } from '@lemonppt/core';
|
|
1
2
|
import PptxGenJS from 'pptxgenjs';
|
|
2
3
|
const COLORS = {
|
|
3
4
|
primary: '0F172A',
|
|
@@ -13,6 +14,7 @@ const FONTS = {
|
|
|
13
14
|
mono: 'JetBrains Mono',
|
|
14
15
|
};
|
|
15
16
|
export async function exportDeckToPptx(goal, options) {
|
|
17
|
+
goal = normalizeDeckGoal(goal);
|
|
16
18
|
const { outFile, title = goal.title, subject, author } = options;
|
|
17
19
|
const pptx = new PptxGenJS();
|
|
18
20
|
pptx.layout = 'LAYOUT_16x9';
|
package/dist/export-pptx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-pptx.js","sourceRoot":"","sources":["../src/export-pptx.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"export-pptx.js","sourceRoot":"","sources":["../src/export-pptx.ts"],"names":[],"mappings":"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"}
|
package/dist/render.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAM7D,MAAM,WAAW,aAAa;IAC5B,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,GAAE,aAAkB,GAAG,YAAY,CAioBpF"}
|
package/dist/render.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { normalizeDeckGoal } from '@lemonppt/core';
|
|
2
3
|
import { renderSlide } from '@lemonppt/templates';
|
|
3
4
|
import ReactDOMServer from 'react-dom/server';
|
|
4
5
|
import { editorScript } from './editor-script.js';
|
|
5
6
|
export function renderDeck(goal, options = {}) {
|
|
7
|
+
goal = normalizeDeckGoal(goal);
|
|
6
8
|
const { width = 1280, height = 720, editable = false } = options;
|
|
7
9
|
const slideCount = goal.slides.length;
|
|
8
10
|
const slideElements = goal.slides.map((slide, index) => {
|
|
@@ -61,7 +63,7 @@ ${scriptMarkup}
|
|
|
61
63
|
<meta charset="UTF-8">
|
|
62
64
|
<meta name="viewport" content="width=${width}, initial-scale=1.0">
|
|
63
65
|
<title>${escapeHtml(goal.title)}</title>
|
|
64
|
-
<link rel="stylesheet" href="./assets/${goal.theme || '
|
|
66
|
+
<link rel="stylesheet" href="./assets/${goal.theme || 'base'}.css">
|
|
65
67
|
<style>
|
|
66
68
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
67
69
|
html, body {
|
|
@@ -599,7 +601,7 @@ ${bodyMarkup}
|
|
|
599
601
|
</html>`;
|
|
600
602
|
return {
|
|
601
603
|
html,
|
|
602
|
-
assets: ['./assets/
|
|
604
|
+
assets: ['./assets/base.css'],
|
|
603
605
|
};
|
|
604
606
|
}
|
|
605
607
|
function buildNavMarkup(slideCount) {
|
|
@@ -620,7 +622,7 @@ function buildEditorBarMarkup() {
|
|
|
620
622
|
<label class="lp-theme-switcher-label">
|
|
621
623
|
主题
|
|
622
624
|
<select id="lp-theme-switcher">
|
|
623
|
-
<option value="
|
|
625
|
+
<option value="base">极简白</option>
|
|
624
626
|
<option value="dark-tech">深色科技</option>
|
|
625
627
|
<option value="warm-business">暖色商务</option>
|
|
626
628
|
</select>
|
package/dist/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lemonppt/renderer",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
"pptxgenjs": "3.12.0",
|
|
31
31
|
"react": "^18.3.1",
|
|
32
32
|
"react-dom": "^18.3.1",
|
|
33
|
-
"@lemonppt/core": "0.1.
|
|
34
|
-
"@lemonppt/templates": "0.1.
|
|
35
|
-
"@lemonppt/themes": "0.1.
|
|
33
|
+
"@lemonppt/core": "0.1.2",
|
|
34
|
+
"@lemonppt/templates": "0.1.2",
|
|
35
|
+
"@lemonppt/themes": "0.1.2"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@types/node": "^20.0.0",
|