pptx-react-viewer 3.2.0 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +53 -0
- package/dist/{AiChatPanel-TKBVSYD2.js → AiChatPanel-3Q4STA5E.js} +29 -28
- package/dist/AiChatPanel-3Q4STA5E.js.br +0 -0
- package/dist/AiChatPanel-3Q4STA5E.js.gz +0 -0
- package/dist/{AiChatPanel-C3E7NLX3.mjs → AiChatPanel-NQZBZIRM.mjs} +9 -8
- package/dist/AiChatPanel-NQZBZIRM.mjs.br +0 -0
- package/dist/AiChatPanel-NQZBZIRM.mjs.gz +0 -0
- package/dist/{Area3DChartScene-7YCFWEGX.mjs → Area3DChartScene-7PARQDOZ.mjs} +1 -1
- package/dist/Area3DChartScene-7PARQDOZ.mjs.br +3 -0
- package/dist/Area3DChartScene-7PARQDOZ.mjs.gz +0 -0
- package/dist/{Area3DChartScene-3A3CXKN3.js → Area3DChartScene-THLG74CM.js} +2 -2
- package/dist/Area3DChartScene-THLG74CM.js.br +0 -0
- package/dist/Area3DChartScene-THLG74CM.js.gz +0 -0
- package/dist/{Bar3DChartScene-BDUENAWJ.js → Bar3DChartScene-OLZ2V56I.js} +2 -2
- package/dist/Bar3DChartScene-OLZ2V56I.js.br +2 -0
- package/dist/Bar3DChartScene-OLZ2V56I.js.gz +0 -0
- package/dist/{Bar3DChartScene-7CNSJ35X.mjs → Bar3DChartScene-QUU6RUXM.mjs} +1 -1
- package/dist/Bar3DChartScene-QUU6RUXM.mjs.br +0 -0
- package/dist/Bar3DChartScene-QUU6RUXM.mjs.gz +0 -0
- package/dist/{Line3DChartScene-R352CZ5U.js → Line3DChartScene-2VZS52IB.js} +2 -2
- package/dist/Line3DChartScene-2VZS52IB.js.br +0 -0
- package/dist/Line3DChartScene-2VZS52IB.js.gz +0 -0
- package/dist/{Line3DChartScene-SMTHK6MD.mjs → Line3DChartScene-D77ORA4K.mjs} +1 -1
- package/dist/Line3DChartScene-D77ORA4K.mjs.br +3 -0
- package/dist/Line3DChartScene-D77ORA4K.mjs.gz +0 -0
- package/dist/{Model3DScene-Y4SGFQYW.js → Model3DScene-3WCALTXO.js} +2 -2
- package/dist/Model3DScene-3WCALTXO.js.br +0 -0
- package/dist/Model3DScene-3WCALTXO.js.gz +0 -0
- package/dist/{Model3DScene-AUVJXXPV.mjs → Model3DScene-ZEGWNILH.mjs} +1 -1
- package/dist/Model3DScene-ZEGWNILH.mjs.br +0 -0
- package/dist/Model3DScene-ZEGWNILH.mjs.gz +0 -0
- package/dist/{PieChart3DScene-TK2VT4RS.js → PieChart3DScene-7C3ACGKN.js} +2 -2
- package/dist/PieChart3DScene-7C3ACGKN.js.br +0 -0
- package/dist/PieChart3DScene-7C3ACGKN.js.gz +0 -0
- package/dist/{PieChart3DScene-UD7GRH55.mjs → PieChart3DScene-DGD4PZVV.mjs} +1 -1
- package/dist/PieChart3DScene-DGD4PZVV.mjs.br +0 -0
- package/dist/PieChart3DScene-DGD4PZVV.mjs.gz +0 -0
- package/dist/PowerPointViewer-Cl6jBPNw.d.ts.map +1 -1
- package/dist/{SurfaceChart3DScene-TXY6UZSW.mjs → SurfaceChart3DScene-QGH3OLJV.mjs} +1 -1
- package/dist/SurfaceChart3DScene-QGH3OLJV.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-QGH3OLJV.mjs.gz +0 -0
- package/dist/{SurfaceChart3DScene-ERFXZW2O.js → SurfaceChart3DScene-SJPQGGGE.js} +2 -2
- package/dist/SurfaceChart3DScene-SJPQGGGE.js.br +0 -0
- package/dist/SurfaceChart3DScene-SJPQGGGE.js.gz +0 -0
- package/dist/{chunk-RRAL4Y7V.js → chunk-7E6SM42A.js} +2604 -2024
- package/dist/chunk-7E6SM42A.js.br +0 -0
- package/dist/chunk-7E6SM42A.js.gz +0 -0
- package/dist/{chunk-G7UBIKAG.mjs → chunk-B7WAGQW4.mjs} +5383 -873
- package/dist/chunk-B7WAGQW4.mjs.br +0 -0
- package/dist/chunk-B7WAGQW4.mjs.gz +0 -0
- package/dist/{chunk-RX6FE24O.mjs → chunk-C4WTQIC6.mjs} +302 -61
- package/dist/chunk-C4WTQIC6.mjs.br +0 -0
- package/dist/chunk-C4WTQIC6.mjs.gz +0 -0
- package/dist/{chunk-Q52HT4EZ.js → chunk-KY6JQJXK.js} +307 -63
- package/dist/chunk-KY6JQJXK.js.br +0 -0
- package/dist/chunk-KY6JQJXK.js.gz +0 -0
- package/dist/{chunk-PPNXPEEZ.mjs → chunk-L5MRKDRM.mjs} +1514 -934
- package/dist/chunk-L5MRKDRM.mjs.br +0 -0
- package/dist/chunk-L5MRKDRM.mjs.gz +0 -0
- package/dist/{chunk-UHR7EYFM.mjs → chunk-MSUUPLQ7.mjs} +718 -435
- package/dist/chunk-MSUUPLQ7.mjs.br +0 -0
- package/dist/chunk-MSUUPLQ7.mjs.gz +0 -0
- package/dist/{chunk-FJDZ7AEE.js → chunk-PCW2KT7Z.js} +5446 -879
- package/dist/chunk-PCW2KT7Z.js.br +0 -0
- package/dist/chunk-PCW2KT7Z.js.gz +0 -0
- package/dist/{chunk-FMEEIS6L.mjs → chunk-SFMATKNJ.mjs} +13 -114
- package/dist/chunk-SFMATKNJ.mjs.br +0 -0
- package/dist/chunk-SFMATKNJ.mjs.gz +0 -0
- package/dist/{chunk-ARQGUUYU.js → chunk-TJNG5VEK.js} +1114 -826
- package/dist/chunk-TJNG5VEK.js.br +0 -0
- package/dist/chunk-TJNG5VEK.js.gz +0 -0
- package/dist/{chunk-ALO4ZOHQ.js → chunk-UNIJUD5C.js} +45 -1
- package/dist/chunk-UNIJUD5C.js.br +0 -0
- package/dist/chunk-UNIJUD5C.js.gz +0 -0
- package/dist/{chunk-B6UIVRFA.js → chunk-XBTHWXNO.js} +177 -279
- package/dist/chunk-XBTHWXNO.js.br +0 -0
- package/dist/chunk-XBTHWXNO.js.gz +0 -0
- package/dist/{chunk-RHSA5BW5.mjs → chunk-XWUMM2TX.mjs} +45 -1
- package/dist/chunk-XWUMM2TX.mjs.br +0 -0
- package/dist/chunk-XWUMM2TX.mjs.gz +0 -0
- package/dist/i18n.js +4 -4
- package/dist/i18n.js.br +0 -0
- package/dist/i18n.js.gz +0 -0
- package/dist/i18n.mjs +1 -1
- package/dist/i18n.mjs.br +0 -0
- package/dist/i18n.mjs.gz +0 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +47 -47
- package/dist/index.js.br +0 -0
- package/dist/index.js.gz +0 -0
- package/dist/index.mjs +6 -6
- package/dist/index.mjs.br +0 -0
- package/dist/index.mjs.gz +0 -0
- package/dist/internals.d.ts +176 -5
- package/dist/internals.d.ts.map +1 -1
- package/dist/internals.js +79 -79
- package/dist/internals.js.br +0 -0
- package/dist/internals.js.gz +0 -0
- package/dist/internals.mjs +4 -4
- package/dist/internals.mjs.br +0 -0
- package/dist/internals.mjs.gz +0 -0
- package/dist/pptx-viewer.css +1 -1
- package/dist/pptx-viewer.css.br +0 -0
- package/dist/pptx-viewer.css.gz +0 -0
- package/dist/{useViewerBuildingBlocks-X1L8BjsQ.d.ts → useViewerBuildingBlocks-f6oNGKMX.d.ts} +8 -1
- package/dist/useViewerBuildingBlocks-f6oNGKMX.d.ts.map +1 -0
- package/dist/viewer/index.js +27 -27
- package/dist/viewer/index.js.br +0 -0
- package/dist/viewer/index.js.gz +0 -0
- package/dist/viewer/index.mjs +6 -6
- package/dist/viewer/index.mjs.br +0 -0
- package/dist/viewer/index.mjs.gz +0 -0
- package/package.json +1 -1
- package/dist/AiChatPanel-C3E7NLX3.mjs.br +0 -0
- package/dist/AiChatPanel-C3E7NLX3.mjs.gz +0 -0
- package/dist/AiChatPanel-TKBVSYD2.js.br +0 -0
- package/dist/AiChatPanel-TKBVSYD2.js.gz +0 -0
- package/dist/Area3DChartScene-3A3CXKN3.js.br +0 -0
- package/dist/Area3DChartScene-3A3CXKN3.js.gz +0 -0
- package/dist/Area3DChartScene-7YCFWEGX.mjs.br +0 -3
- package/dist/Area3DChartScene-7YCFWEGX.mjs.gz +0 -0
- package/dist/Bar3DChartScene-7CNSJ35X.mjs.br +0 -0
- package/dist/Bar3DChartScene-7CNSJ35X.mjs.gz +0 -0
- package/dist/Bar3DChartScene-BDUENAWJ.js.br +0 -0
- package/dist/Bar3DChartScene-BDUENAWJ.js.gz +0 -0
- package/dist/Line3DChartScene-R352CZ5U.js.br +0 -0
- package/dist/Line3DChartScene-R352CZ5U.js.gz +0 -0
- package/dist/Line3DChartScene-SMTHK6MD.mjs.br +0 -3
- package/dist/Line3DChartScene-SMTHK6MD.mjs.gz +0 -0
- package/dist/Model3DScene-AUVJXXPV.mjs.br +0 -0
- package/dist/Model3DScene-AUVJXXPV.mjs.gz +0 -0
- package/dist/Model3DScene-Y4SGFQYW.js.br +0 -0
- package/dist/Model3DScene-Y4SGFQYW.js.gz +0 -0
- package/dist/PieChart3DScene-TK2VT4RS.js.br +0 -0
- package/dist/PieChart3DScene-TK2VT4RS.js.gz +0 -0
- package/dist/PieChart3DScene-UD7GRH55.mjs.br +0 -0
- package/dist/PieChart3DScene-UD7GRH55.mjs.gz +0 -0
- package/dist/SurfaceChart3DScene-ERFXZW2O.js.br +0 -0
- package/dist/SurfaceChart3DScene-ERFXZW2O.js.gz +0 -0
- package/dist/SurfaceChart3DScene-TXY6UZSW.mjs.br +0 -0
- package/dist/SurfaceChart3DScene-TXY6UZSW.mjs.gz +0 -0
- package/dist/chunk-ALO4ZOHQ.js.br +0 -0
- package/dist/chunk-ALO4ZOHQ.js.gz +0 -0
- package/dist/chunk-ARQGUUYU.js.br +0 -0
- package/dist/chunk-ARQGUUYU.js.gz +0 -0
- package/dist/chunk-B6UIVRFA.js.br +0 -0
- package/dist/chunk-B6UIVRFA.js.gz +0 -0
- package/dist/chunk-FJDZ7AEE.js.br +0 -0
- package/dist/chunk-FJDZ7AEE.js.gz +0 -0
- package/dist/chunk-FMEEIS6L.mjs.br +0 -0
- package/dist/chunk-FMEEIS6L.mjs.gz +0 -0
- package/dist/chunk-G7UBIKAG.mjs.br +0 -0
- package/dist/chunk-G7UBIKAG.mjs.gz +0 -0
- package/dist/chunk-PPNXPEEZ.mjs.br +0 -0
- package/dist/chunk-PPNXPEEZ.mjs.gz +0 -0
- package/dist/chunk-Q52HT4EZ.js.br +0 -0
- package/dist/chunk-Q52HT4EZ.js.gz +0 -0
- package/dist/chunk-RHSA5BW5.mjs.br +0 -0
- package/dist/chunk-RHSA5BW5.mjs.gz +0 -0
- package/dist/chunk-RRAL4Y7V.js.br +0 -0
- package/dist/chunk-RRAL4Y7V.js.gz +0 -0
- package/dist/chunk-RX6FE24O.mjs.br +0 -0
- package/dist/chunk-RX6FE24O.mjs.gz +0 -0
- package/dist/chunk-UHR7EYFM.mjs.br +0 -0
- package/dist/chunk-UHR7EYFM.mjs.gz +0 -0
- package/dist/useViewerBuildingBlocks-X1L8BjsQ.d.ts.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkPCW2KT7Z_js = require('./chunk-PCW2KT7Z.js');
|
|
4
4
|
var chunk4VNS5WPM_js = require('./chunk-4VNS5WPM.js');
|
|
5
5
|
var mcp = require('pptx-viewer-mcp');
|
|
6
6
|
var mcpSchemas = require('pptx-viewer-mcp/schemas');
|
|
@@ -14879,7 +14879,7 @@ async function buildSlideMarkdown(slides, slideIndex2, meta3, options = {}) {
|
|
|
14879
14879
|
};
|
|
14880
14880
|
let markdown;
|
|
14881
14881
|
try {
|
|
14882
|
-
const converter = new
|
|
14882
|
+
const converter = new chunkPCW2KT7Z_js.PptxMarkdownConverter(
|
|
14883
14883
|
"",
|
|
14884
14884
|
{
|
|
14885
14885
|
sourceName: meta3.title ?? "deck.pptx",
|
|
@@ -15471,7 +15471,7 @@ var getTheme = (ctx) => {
|
|
|
15471
15471
|
name: theme?.name,
|
|
15472
15472
|
colorScheme: theme?.colorScheme,
|
|
15473
15473
|
fontScheme: theme?.fontScheme,
|
|
15474
|
-
availablePresets: Object.keys(
|
|
15474
|
+
availablePresets: Object.keys(chunkPCW2KT7Z_js.ThemePresets)
|
|
15475
15475
|
};
|
|
15476
15476
|
};
|
|
15477
15477
|
var readExecutors = {
|
|
@@ -16258,12 +16258,312 @@ function toRenderableParts(message) {
|
|
|
16258
16258
|
}
|
|
16259
16259
|
return out;
|
|
16260
16260
|
}
|
|
16261
|
+
function isoOf(ms) {
|
|
16262
|
+
const n = Number.isFinite(ms) ? ms : 0;
|
|
16263
|
+
return new Date(n).toISOString();
|
|
16264
|
+
}
|
|
16265
|
+
function toLogChat(chat, detailed) {
|
|
16266
|
+
const messages = chat.messages.map((message) => {
|
|
16267
|
+
const parts = toRenderableParts(message);
|
|
16268
|
+
const textRuns = [];
|
|
16269
|
+
const toolCalls = [];
|
|
16270
|
+
for (const part of parts) {
|
|
16271
|
+
if (part.kind === "text") {
|
|
16272
|
+
textRuns.push(part.text);
|
|
16273
|
+
continue;
|
|
16274
|
+
}
|
|
16275
|
+
toolCalls.push({
|
|
16276
|
+
toolName: part.toolName,
|
|
16277
|
+
toolCallId: part.toolCallId,
|
|
16278
|
+
state: part.state,
|
|
16279
|
+
input: detailed ? part.input : void 0,
|
|
16280
|
+
output: detailed ? part.output : void 0,
|
|
16281
|
+
errorText: part.errorText
|
|
16282
|
+
});
|
|
16283
|
+
}
|
|
16284
|
+
return {
|
|
16285
|
+
role: message.role,
|
|
16286
|
+
text: textRuns.join("\n\n"),
|
|
16287
|
+
toolCalls
|
|
16288
|
+
};
|
|
16289
|
+
});
|
|
16290
|
+
return {
|
|
16291
|
+
id: chat.id,
|
|
16292
|
+
title: chat.title,
|
|
16293
|
+
deckId: chat.deckId,
|
|
16294
|
+
createdAt: chat.createdAt,
|
|
16295
|
+
updatedAt: chat.updatedAt,
|
|
16296
|
+
createdAtIso: isoOf(chat.createdAt),
|
|
16297
|
+
updatedAtIso: isoOf(chat.updatedAt),
|
|
16298
|
+
messageCount: chat.messages.length,
|
|
16299
|
+
messages
|
|
16300
|
+
};
|
|
16301
|
+
}
|
|
16302
|
+
function buildChatLogExport(chats, options) {
|
|
16303
|
+
const detailed = options?.detailed ?? true;
|
|
16304
|
+
const now = options?.now ?? Date.now();
|
|
16305
|
+
return {
|
|
16306
|
+
format: "pptx-ai-chat-log",
|
|
16307
|
+
version: 1,
|
|
16308
|
+
exportedAt: isoOf(now),
|
|
16309
|
+
detailed,
|
|
16310
|
+
chatCount: chats.length,
|
|
16311
|
+
chats: chats.map((chat) => toLogChat(chat, detailed))
|
|
16312
|
+
};
|
|
16313
|
+
}
|
|
16314
|
+
function toolCallLine(call, detailed) {
|
|
16315
|
+
const lines = [`- Tool \`${call.toolName}\` (${call.state})`];
|
|
16316
|
+
if (call.errorText) {
|
|
16317
|
+
lines.push(` - error: ${call.errorText}`);
|
|
16318
|
+
}
|
|
16319
|
+
if (detailed) {
|
|
16320
|
+
lines.push(" - input:");
|
|
16321
|
+
lines.push(" ```json");
|
|
16322
|
+
lines.push(JSON.stringify(call.input ?? null, null, 2));
|
|
16323
|
+
lines.push(" ```");
|
|
16324
|
+
lines.push(" - output:");
|
|
16325
|
+
lines.push(" ```json");
|
|
16326
|
+
lines.push(JSON.stringify(call.output ?? null, null, 2));
|
|
16327
|
+
lines.push(" ```");
|
|
16328
|
+
}
|
|
16329
|
+
return lines.join("\n");
|
|
16330
|
+
}
|
|
16331
|
+
function buildChatLogMarkdown(doc) {
|
|
16332
|
+
const out = [
|
|
16333
|
+
`# AI chat logs`,
|
|
16334
|
+
"",
|
|
16335
|
+
`Exported: ${doc.exportedAt}`,
|
|
16336
|
+
`Chats: ${doc.chatCount}`,
|
|
16337
|
+
""
|
|
16338
|
+
];
|
|
16339
|
+
for (const chat of doc.chats) {
|
|
16340
|
+
out.push(`## ${chat.title || chat.id}`);
|
|
16341
|
+
out.push("");
|
|
16342
|
+
out.push(`- id: ${chat.id}`);
|
|
16343
|
+
if (chat.deckId) {
|
|
16344
|
+
out.push(`- deck: ${chat.deckId}`);
|
|
16345
|
+
}
|
|
16346
|
+
out.push(`- created: ${chat.createdAtIso}`);
|
|
16347
|
+
out.push(`- updated: ${chat.updatedAtIso}`);
|
|
16348
|
+
out.push(`- messages: ${chat.messageCount}`);
|
|
16349
|
+
out.push("");
|
|
16350
|
+
for (const message of chat.messages) {
|
|
16351
|
+
out.push(`### ${message.role}`);
|
|
16352
|
+
out.push("");
|
|
16353
|
+
if (message.text) {
|
|
16354
|
+
out.push(message.text);
|
|
16355
|
+
out.push("");
|
|
16356
|
+
}
|
|
16357
|
+
for (const call of message.toolCalls) {
|
|
16358
|
+
out.push(toolCallLine(call, doc.detailed));
|
|
16359
|
+
out.push("");
|
|
16360
|
+
}
|
|
16361
|
+
}
|
|
16362
|
+
}
|
|
16363
|
+
return out.join("\n");
|
|
16364
|
+
}
|
|
16365
|
+
async function collectStoredChats(store = createChatHistoryStore()) {
|
|
16366
|
+
const summaries = await store.listChats();
|
|
16367
|
+
const chats = [];
|
|
16368
|
+
for (const summary of summaries) {
|
|
16369
|
+
const chat = await store.loadChat(summary.id);
|
|
16370
|
+
if (chat) {
|
|
16371
|
+
chats.push(chat);
|
|
16372
|
+
}
|
|
16373
|
+
}
|
|
16374
|
+
return chats;
|
|
16375
|
+
}
|
|
16376
|
+
function timestampSlug(now) {
|
|
16377
|
+
const d = new Date(now);
|
|
16378
|
+
const p = (n) => String(n).padStart(2, "0");
|
|
16379
|
+
return `${d.getFullYear()}${p(d.getMonth() + 1)}${p(d.getDate())}-${p(d.getHours())}${p(d.getMinutes())}${p(d.getSeconds())}`;
|
|
16380
|
+
}
|
|
16381
|
+
function exportAiChatLogs(chats, meta3, save) {
|
|
16382
|
+
if (chats.length === 0) {
|
|
16383
|
+
return 0;
|
|
16384
|
+
}
|
|
16385
|
+
const now = meta3?.now ?? Date.now();
|
|
16386
|
+
const doc = buildChatLogExport(chats, { detailed: meta3?.detailed ?? true, now });
|
|
16387
|
+
const slug = timestampSlug(now);
|
|
16388
|
+
const format = meta3?.format ?? "json";
|
|
16389
|
+
if (format === "markdown") {
|
|
16390
|
+
save(`pptx-ai-chats-${slug}.md`, buildChatLogMarkdown(doc), "text/markdown");
|
|
16391
|
+
} else {
|
|
16392
|
+
save(`pptx-ai-chats-${slug}.json`, JSON.stringify(doc, null, 2), "application/json");
|
|
16393
|
+
}
|
|
16394
|
+
return chats.length;
|
|
16395
|
+
}
|
|
16396
|
+
function computeFocusTargets(input) {
|
|
16397
|
+
const { activeSlideIndex, selectedElementIds, selectedElementId } = input;
|
|
16398
|
+
const ids = selectedElementIds.length > 0 ? [...selectedElementIds] : selectedElementId ? [selectedElementId] : [];
|
|
16399
|
+
if (ids.length === 0) {
|
|
16400
|
+
return [{ kind: "slide", slideIndex: activeSlideIndex }];
|
|
16401
|
+
}
|
|
16402
|
+
return ids.map((elementId2) => ({ kind: "element", slideIndex: activeSlideIndex, elementId: elementId2 }));
|
|
16403
|
+
}
|
|
16404
|
+
function elementTypeLabel(type) {
|
|
16405
|
+
if (type === "smartArt") {
|
|
16406
|
+
return "SmartArt";
|
|
16407
|
+
}
|
|
16408
|
+
if (type === "ole") {
|
|
16409
|
+
return "OLE";
|
|
16410
|
+
}
|
|
16411
|
+
return type.charAt(0).toUpperCase() + type.slice(1);
|
|
16412
|
+
}
|
|
16413
|
+
function shortElementId(id) {
|
|
16414
|
+
const trimmed = id.trimEnd();
|
|
16415
|
+
let start = trimmed.length;
|
|
16416
|
+
while (start > 0 && isAsciiDigit(trimmed.charCodeAt(start - 1))) {
|
|
16417
|
+
start -= 1;
|
|
16418
|
+
}
|
|
16419
|
+
if (start < trimmed.length) {
|
|
16420
|
+
return trimmed.slice(start);
|
|
16421
|
+
}
|
|
16422
|
+
const separator = Math.max(id.lastIndexOf("/"), id.lastIndexOf("."), id.lastIndexOf("-"));
|
|
16423
|
+
const tail = separator === -1 ? id : id.slice(separator + 1);
|
|
16424
|
+
return tail || id;
|
|
16425
|
+
}
|
|
16426
|
+
function isAsciiDigit(code) {
|
|
16427
|
+
return code >= 48 && code <= 57;
|
|
16428
|
+
}
|
|
16429
|
+
function focusTargetChips(targets, slides) {
|
|
16430
|
+
return targets.map((target, index) => {
|
|
16431
|
+
if (target.kind === "slide") {
|
|
16432
|
+
const label2 = `Slide ${target.slideIndex + 1}`;
|
|
16433
|
+
return { key: `slide-${target.slideIndex}-${index}`, label: label2, title: label2 };
|
|
16434
|
+
}
|
|
16435
|
+
const el = slides[target.slideIndex]?.elements.find((e) => e.id === target.elementId);
|
|
16436
|
+
const typeLabel = el ? elementTypeLabel(el.type) : "Element";
|
|
16437
|
+
const label = el ? `${typeLabel} ${shortElementId(target.elementId)}` : `${typeLabel} (missing)`;
|
|
16438
|
+
return {
|
|
16439
|
+
key: `el-${target.elementId}-${index}`,
|
|
16440
|
+
label,
|
|
16441
|
+
title: `${typeLabel}: ${target.elementId}`
|
|
16442
|
+
};
|
|
16443
|
+
});
|
|
16444
|
+
}
|
|
16445
|
+
function isTwoTableFocus(targets, slides) {
|
|
16446
|
+
if (targets.length !== 2 || targets.some((target) => target.kind !== "element")) {
|
|
16447
|
+
return false;
|
|
16448
|
+
}
|
|
16449
|
+
const [a, b] = targets;
|
|
16450
|
+
if (a.slideIndex !== b.slideIndex) {
|
|
16451
|
+
return false;
|
|
16452
|
+
}
|
|
16453
|
+
const slide = slides[a.slideIndex];
|
|
16454
|
+
const elA = slide?.elements.find((e) => e.id === a.elementId);
|
|
16455
|
+
const elB = slide?.elements.find((e) => e.id === b.elementId);
|
|
16456
|
+
if (elA?.type !== "table" || elB?.type !== "table") {
|
|
16457
|
+
return false;
|
|
16458
|
+
}
|
|
16459
|
+
return { slideIndex: a.slideIndex, elementIdA: a.elementId, elementIdB: b.elementId };
|
|
16460
|
+
}
|
|
16461
|
+
function mergeTablesDirective(slideIndex2, elementIdA, elementIdB) {
|
|
16462
|
+
return `Merge the two selected tables (elementIdA=${elementIdA}, elementIdB=${elementIdB}) on slide ${slideIndex2 + 1} using merge_tables; stage it now, do not ask me to confirm.`;
|
|
16463
|
+
}
|
|
16261
16464
|
init_chat_history_store();
|
|
16262
16465
|
function deckIdFromBridge(bridge) {
|
|
16263
16466
|
const meta3 = bridge.getDeckMeta();
|
|
16264
16467
|
const title = (meta3.title ?? "deck").trim().toLowerCase().replace(/\s+/gu, "-").slice(0, 60);
|
|
16265
16468
|
return `${title || "deck"}::${meta3.slideCount}`;
|
|
16266
16469
|
}
|
|
16470
|
+
function applyElementUpdate(el, u) {
|
|
16471
|
+
if (u.x !== void 0) {
|
|
16472
|
+
el.x = u.x;
|
|
16473
|
+
}
|
|
16474
|
+
if (u.y !== void 0) {
|
|
16475
|
+
el.y = u.y;
|
|
16476
|
+
}
|
|
16477
|
+
if (u.width !== void 0) {
|
|
16478
|
+
el.width = u.width;
|
|
16479
|
+
}
|
|
16480
|
+
if (u.height !== void 0) {
|
|
16481
|
+
el.height = u.height;
|
|
16482
|
+
}
|
|
16483
|
+
if (u.rotation !== void 0) {
|
|
16484
|
+
el.rotation = u.rotation;
|
|
16485
|
+
}
|
|
16486
|
+
if (u.opacity !== void 0) {
|
|
16487
|
+
el.opacity = u.opacity;
|
|
16488
|
+
}
|
|
16489
|
+
if (u.hidden !== void 0) {
|
|
16490
|
+
el.hidden = u.hidden;
|
|
16491
|
+
}
|
|
16492
|
+
if (u.flipHorizontal !== void 0) {
|
|
16493
|
+
el.flipHorizontal = u.flipHorizontal;
|
|
16494
|
+
}
|
|
16495
|
+
if (u.flipVertical !== void 0) {
|
|
16496
|
+
el.flipVertical = u.flipVertical;
|
|
16497
|
+
}
|
|
16498
|
+
applyTextUpdate(el, u);
|
|
16499
|
+
applyShapeStyleUpdate(el, u);
|
|
16500
|
+
}
|
|
16501
|
+
function applyTextUpdate(el, u) {
|
|
16502
|
+
if (!chunkPCW2KT7Z_js.hasTextProperties(el)) {
|
|
16503
|
+
return;
|
|
16504
|
+
}
|
|
16505
|
+
const textEl = el;
|
|
16506
|
+
if (u.text !== void 0) {
|
|
16507
|
+
textEl.text = u.text;
|
|
16508
|
+
if (textEl.textSegments && textEl.textSegments.length > 0) {
|
|
16509
|
+
textEl.textSegments[0].text = u.text;
|
|
16510
|
+
} else {
|
|
16511
|
+
textEl.textSegments = [{ text: u.text, style: {} }];
|
|
16512
|
+
}
|
|
16513
|
+
}
|
|
16514
|
+
if (u.fontSize === void 0 && u.fontFamily === void 0 && u.fontColor === void 0 && u.bold === void 0 && u.italic === void 0 && u.underline === void 0 && u.align === void 0) {
|
|
16515
|
+
return;
|
|
16516
|
+
}
|
|
16517
|
+
const textStyle = {};
|
|
16518
|
+
if (u.fontSize !== void 0) {
|
|
16519
|
+
textStyle.fontSize = u.fontSize;
|
|
16520
|
+
}
|
|
16521
|
+
if (u.fontFamily !== void 0) {
|
|
16522
|
+
textStyle.fontFamily = u.fontFamily;
|
|
16523
|
+
}
|
|
16524
|
+
if (u.fontColor !== void 0) {
|
|
16525
|
+
textStyle.color = u.fontColor;
|
|
16526
|
+
}
|
|
16527
|
+
if (u.bold !== void 0) {
|
|
16528
|
+
textStyle.bold = u.bold;
|
|
16529
|
+
}
|
|
16530
|
+
if (u.italic !== void 0) {
|
|
16531
|
+
textStyle.italic = u.italic;
|
|
16532
|
+
}
|
|
16533
|
+
if (u.underline !== void 0) {
|
|
16534
|
+
textStyle.underline = u.underline;
|
|
16535
|
+
}
|
|
16536
|
+
if (u.align !== void 0) {
|
|
16537
|
+
textStyle.align = u.align;
|
|
16538
|
+
}
|
|
16539
|
+
textEl.textStyle = { ...textEl.textStyle, ...textStyle };
|
|
16540
|
+
if (textEl.textSegments) {
|
|
16541
|
+
textEl.textSegments = textEl.textSegments.map((seg) => ({
|
|
16542
|
+
...seg,
|
|
16543
|
+
style: { ...seg.style, ...textStyle }
|
|
16544
|
+
}));
|
|
16545
|
+
}
|
|
16546
|
+
}
|
|
16547
|
+
function applyShapeStyleUpdate(el, u) {
|
|
16548
|
+
if (u.fillColor === void 0 && u.strokeColor === void 0 && u.strokeWidth === void 0) {
|
|
16549
|
+
return;
|
|
16550
|
+
}
|
|
16551
|
+
if (!chunkPCW2KT7Z_js.hasShapeProperties(el)) {
|
|
16552
|
+
return;
|
|
16553
|
+
}
|
|
16554
|
+
const holder = el;
|
|
16555
|
+
holder.shapeStyle ??= {};
|
|
16556
|
+
const style = holder.shapeStyle;
|
|
16557
|
+
if (u.fillColor !== void 0) {
|
|
16558
|
+
style.fillColor = u.fillColor;
|
|
16559
|
+
}
|
|
16560
|
+
if (u.strokeColor !== void 0) {
|
|
16561
|
+
style.strokeColor = u.strokeColor;
|
|
16562
|
+
}
|
|
16563
|
+
if (u.strokeWidth !== void 0) {
|
|
16564
|
+
style.strokeWidth = u.strokeWidth;
|
|
16565
|
+
}
|
|
16566
|
+
}
|
|
16267
16567
|
function toolLabel(toolName) {
|
|
16268
16568
|
if (!toolName) {
|
|
16269
16569
|
return "Tool";
|
|
@@ -16665,78 +16965,22 @@ function toolCanvasTarget(toolName, input) {
|
|
|
16665
16965
|
return { slideIndex: slideIndex2, elementIds };
|
|
16666
16966
|
}
|
|
16667
16967
|
|
|
16668
|
-
// src/viewer/hooks/ai/focus-targets.ts
|
|
16669
|
-
function computeFocusTargets(input) {
|
|
16670
|
-
const { activeSlideIndex, selectedElementIds, selectedElementId } = input;
|
|
16671
|
-
const ids = selectedElementIds.length > 0 ? selectedElementIds : selectedElementId ? [selectedElementId] : [];
|
|
16672
|
-
if (ids.length === 0) {
|
|
16673
|
-
return [{ kind: "slide", slideIndex: activeSlideIndex }];
|
|
16674
|
-
}
|
|
16675
|
-
return ids.map((elementId2) => ({ kind: "element", slideIndex: activeSlideIndex, elementId: elementId2 }));
|
|
16676
|
-
}
|
|
16677
|
-
function elementTypeLabel(type) {
|
|
16678
|
-
if (type === "smartArt") {
|
|
16679
|
-
return "SmartArt";
|
|
16680
|
-
}
|
|
16681
|
-
if (type === "ole") {
|
|
16682
|
-
return "OLE";
|
|
16683
|
-
}
|
|
16684
|
-
return type.charAt(0).toUpperCase() + type.slice(1);
|
|
16685
|
-
}
|
|
16686
|
-
function shortElementId(id) {
|
|
16687
|
-
const trailingNumber = id.match(/(\d+)\s*$/u);
|
|
16688
|
-
if (trailingNumber) {
|
|
16689
|
-
return trailingNumber[1];
|
|
16690
|
-
}
|
|
16691
|
-
const tail = id.replace(/^.*[/.-]/u, "");
|
|
16692
|
-
return tail || id;
|
|
16693
|
-
}
|
|
16694
|
-
function focusTargetChips(targets, slides) {
|
|
16695
|
-
return targets.map((target, index) => {
|
|
16696
|
-
if (target.kind === "slide") {
|
|
16697
|
-
const label2 = `Slide ${target.slideIndex + 1}`;
|
|
16698
|
-
return { key: `slide-${target.slideIndex}-${index}`, label: label2, title: label2 };
|
|
16699
|
-
}
|
|
16700
|
-
const el = slides[target.slideIndex]?.elements.find((e) => e.id === target.elementId);
|
|
16701
|
-
const typeLabel = el ? elementTypeLabel(el.type) : "Element";
|
|
16702
|
-
const label = el ? `${typeLabel} ${shortElementId(target.elementId)}` : `${typeLabel} (missing)`;
|
|
16703
|
-
return {
|
|
16704
|
-
key: `el-${target.elementId}-${index}`,
|
|
16705
|
-
label,
|
|
16706
|
-
title: `${typeLabel}: ${target.elementId}`
|
|
16707
|
-
};
|
|
16708
|
-
});
|
|
16709
|
-
}
|
|
16710
|
-
function isTwoTableFocus(targets, slides) {
|
|
16711
|
-
if (targets.length !== 2 || targets.some((t) => t.kind !== "element")) {
|
|
16712
|
-
return false;
|
|
16713
|
-
}
|
|
16714
|
-
const [a, b] = targets;
|
|
16715
|
-
if (a.slideIndex !== b.slideIndex) {
|
|
16716
|
-
return false;
|
|
16717
|
-
}
|
|
16718
|
-
const slide = slides[a.slideIndex];
|
|
16719
|
-
const elA = slide?.elements.find((e) => e.id === a.elementId);
|
|
16720
|
-
const elB = slide?.elements.find((e) => e.id === b.elementId);
|
|
16721
|
-
if (elA?.type !== "table" || elB?.type !== "table") {
|
|
16722
|
-
return false;
|
|
16723
|
-
}
|
|
16724
|
-
return { slideIndex: a.slideIndex, elementIdA: a.elementId, elementIdB: b.elementId };
|
|
16725
|
-
}
|
|
16726
|
-
|
|
16727
16968
|
exports.aiChangeAnimationCss = aiChangeAnimationCss;
|
|
16969
|
+
exports.applyElementUpdate = applyElementUpdate;
|
|
16728
16970
|
exports.buildDeckContext = buildDeckContext;
|
|
16729
16971
|
exports.changeGhostStyle = changeGhostStyle;
|
|
16972
|
+
exports.collectStoredChats = collectStoredChats;
|
|
16730
16973
|
exports.computeFocusTargets = computeFocusTargets;
|
|
16731
16974
|
exports.createAiChatSession = createAiChatSession;
|
|
16732
16975
|
exports.createChatHistoryStore = createChatHistoryStore;
|
|
16733
16976
|
exports.deckIdFromBridge = deckIdFromBridge;
|
|
16734
16977
|
exports.describeToolActivity = describeToolActivity;
|
|
16978
|
+
exports.exportAiChatLogs = exportAiChatLogs;
|
|
16735
16979
|
exports.focusTargetChips = focusTargetChips;
|
|
16736
16980
|
exports.humanizeDiffLine = humanizeDiffLine;
|
|
16737
16981
|
exports.isAiAvailable = isAiAvailable;
|
|
16738
16982
|
exports.isTwoTableFocus = isTwoTableFocus;
|
|
16983
|
+
exports.mergeTablesDirective = mergeTablesDirective;
|
|
16739
16984
|
exports.summarizeToolArgs = summarizeToolArgs;
|
|
16740
|
-
exports.toRenderableParts = toRenderableParts;
|
|
16741
16985
|
exports.toolCanvasTarget = toolCanvasTarget;
|
|
16742
16986
|
exports.toolLabel = toolLabel;
|
|
Binary file
|
|
Binary file
|