pptx-angular-viewer 2.18.2 → 2.18.3
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 +10 -0
- package/fesm2022/{pptx-angular-viewer-chat-history-idb-DMh0BnTV.mjs → pptx-angular-viewer-chat-history-idb-CC0Xt6ku.mjs} +2 -2
- package/fesm2022/{pptx-angular-viewer-chat-history-idb-DMh0BnTV.mjs.map → pptx-angular-viewer-chat-history-idb-CC0Xt6ku.mjs.map} +1 -1
- package/fesm2022/{pptx-angular-viewer-pptx-angular-viewer-DGJ2T7gN.mjs → pptx-angular-viewer-pptx-angular-viewer-CIXn1rms.mjs} +154 -12
- package/fesm2022/{pptx-angular-viewer-pptx-angular-viewer-DGJ2T7gN.mjs.map → pptx-angular-viewer-pptx-angular-viewer-CIXn1rms.mjs.map} +1 -1
- package/fesm2022/pptx-angular-viewer.mjs +1 -1
- package/package.json +1 -1
- package/types/pptx-angular-viewer.d.ts +39 -7
- package/types/pptx-angular-viewer.d.ts.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,16 @@ A release listed with no entries carried no Conventional Commit in this package'
|
|
|
7
7
|
scope: scripts/release-plan.mjs re-releases a package whenever any of its files
|
|
8
8
|
change, not only on conventional ones.
|
|
9
9
|
|
|
10
|
+
## [2.18.2](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-angular-viewer@2.18.2) - 2026-08-14
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
- **shared:** Sum a morph cross-dissolve instead of stacking two fades (by @ChristopherVR) ([86a9e7a](https://github.com/ChristopherVR/pptx-viewer/commit/86a9e7a2ab851d7b0005ab2d1c2267f668b308a8))
|
|
15
|
+
|
|
16
|
+
### Testing
|
|
17
|
+
|
|
18
|
+
- Mask the fields that legitimately move, and size two waits for CI (by @ChristopherVR) ([68bae19](https://github.com/ChristopherVR/pptx-viewer/commit/68bae19fe8cb3e283e2c87a90d31946c48be5e3a))
|
|
19
|
+
|
|
10
20
|
## [2.18.1](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-angular-viewer@2.18.1) - 2026-08-14
|
|
11
21
|
|
|
12
22
|
### Bug Fixes
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as toChatSummary } from './pptx-angular-viewer-pptx-angular-viewer-
|
|
1
|
+
import { t as toChatSummary } from './pptx-angular-viewer-pptx-angular-viewer-CIXn1rms.mjs';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* IndexedDB backend for {@link createChatHistoryStore}. Kept in its own module
|
|
@@ -103,4 +103,4 @@ function createIdbBackend(db) {
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
export { CHAT_STORE, createIdbBackend, openChatDb };
|
|
106
|
-
//# sourceMappingURL=pptx-angular-viewer-chat-history-idb-
|
|
106
|
+
//# sourceMappingURL=pptx-angular-viewer-chat-history-idb-CC0Xt6ku.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pptx-angular-viewer-chat-history-idb-
|
|
1
|
+
{"version":3,"file":"pptx-angular-viewer-chat-history-idb-CC0Xt6ku.mjs","sources":["../../src/internal/shared-src/ai/chat-history-idb.ts"],"sourcesContent":["/**\n * IndexedDB backend for {@link createChatHistoryStore}. Kept in its own module\n * so the localStorage fallback and the public factory stay within the per-file\n * size budget. Uses the raw IndexedDB API with tiny promise wrappers so no new\n * runtime dependency is pulled in.\n *\n * Every browser global is touched lazily from inside a function, never at module\n * load, so importing this file in a non-DOM environment (Node, SSR) never throws.\n */\n\nimport type { ChatBackend, PptxAiChatSummary, PptxAiStoredChat } from './chat-history-store';\nimport { toChatSummary } from './chat-history-store';\n\n/** Object store holding one record per chat, keyed by `id`. */\nexport const CHAT_STORE = 'chats';\n/** Index over the optional `deckId` key path, used for per-deck filtering. */\nconst DECK_INDEX = 'deckId';\n\n/** Resolve an `IDBRequest` to a promise. */\nfunction requestToPromise<T>(request: IDBRequest<T>): Promise<T> {\n\treturn new Promise<T>((resolve, reject) => {\n\t\trequest.onsuccess = () => resolve(request.result);\n\t\trequest.onerror = () => reject(request.error ?? new Error('IndexedDB request failed.'));\n\t});\n}\n\n/** Resolve when a transaction commits (or reject on error/abort). */\nfunction transactionDone(tx: IDBTransaction): Promise<void> {\n\treturn new Promise<void>((resolve, reject) => {\n\t\ttx.oncomplete = () => resolve();\n\t\ttx.onerror = () => reject(tx.error ?? new Error('IndexedDB transaction failed.'));\n\t\ttx.onabort = () => reject(tx.error ?? new Error('IndexedDB transaction aborted.'));\n\t});\n}\n\n/**\n * Open (and if needed create/upgrade) the chat database. Throws when there is no\n * `indexedDB` global so the caller can transparently fall back to localStorage.\n */\nexport function openChatDb(dbName: string): Promise<IDBDatabase> {\n\tconst idb = typeof indexedDB !== 'undefined' ? indexedDB : undefined;\n\tif (!idb) {\n\t\tthrow new Error('IndexedDB is not available in this environment.');\n\t}\n\treturn new Promise<IDBDatabase>((resolve, reject) => {\n\t\tconst open = idb.open(dbName, 1);\n\t\topen.onupgradeneeded = () => {\n\t\t\tconst db = open.result;\n\t\t\tif (!db.objectStoreNames.contains(CHAT_STORE)) {\n\t\t\t\tconst store = db.createObjectStore(CHAT_STORE, { keyPath: 'id' });\n\t\t\t\tstore.createIndex(DECK_INDEX, 'deckId', { unique: false });\n\t\t\t}\n\t\t};\n\t\topen.onsuccess = () => resolve(open.result);\n\t\topen.onerror = () => reject(open.error ?? new Error('Failed to open IndexedDB.'));\n\t\topen.onblocked = () => reject(new Error('IndexedDB open blocked by another connection.'));\n\t});\n}\n\n/** Read every stored chat (newest-first ordering is applied by the caller). */\nasync function readAll(db: IDBDatabase, deckId: string | undefined): Promise<PptxAiStoredChat[]> {\n\tconst tx = db.transaction(CHAT_STORE, 'readonly');\n\tconst store = tx.objectStore(CHAT_STORE);\n\tconst source =\n\t\tdeckId === undefined\n\t\t\t? store.getAll()\n\t\t\t: store.index(DECK_INDEX).getAll(IDBKeyRange.only(deckId));\n\tconst rows = await requestToPromise<PptxAiStoredChat[]>(source);\n\tawait transactionDone(tx);\n\treturn rows;\n}\n\n/** Create an IndexedDB-backed {@link ChatBackend}. */\nexport function createIdbBackend(db: IDBDatabase): ChatBackend {\n\treturn {\n\t\tasync list(deckId: string | undefined): Promise<PptxAiChatSummary[]> {\n\t\t\tconst rows = await readAll(db, deckId);\n\t\t\treturn rows.map(toChatSummary).sort((a, b) => b.updatedAt - a.updatedAt);\n\t\t},\n\t\tasync load(id: string): Promise<PptxAiStoredChat | null> {\n\t\t\tconst tx = db.transaction(CHAT_STORE, 'readonly');\n\t\t\tconst row = await requestToPromise<PptxAiStoredChat | undefined>(\n\t\t\t\ttx.objectStore(CHAT_STORE).get(id),\n\t\t\t);\n\t\t\tawait transactionDone(tx);\n\t\t\treturn row ?? null;\n\t\t},\n\t\tasync save(chat: PptxAiStoredChat): Promise<void> {\n\t\t\tconst tx = db.transaction(CHAT_STORE, 'readwrite');\n\t\t\ttx.objectStore(CHAT_STORE).put(chat);\n\t\t\tawait transactionDone(tx);\n\t\t},\n\t\tasync remove(id: string): Promise<void> {\n\t\t\tconst tx = db.transaction(CHAT_STORE, 'readwrite');\n\t\t\ttx.objectStore(CHAT_STORE).delete(id);\n\t\t\tawait transactionDone(tx);\n\t\t},\n\t\tasync clear(deckId: string | undefined): Promise<void> {\n\t\t\tconst tx = db.transaction(CHAT_STORE, 'readwrite');\n\t\t\tconst store = tx.objectStore(CHAT_STORE);\n\t\t\tif (deckId === undefined) {\n\t\t\t\tstore.clear();\n\t\t\t} else {\n\t\t\t\tconst ids = await requestToPromise<IDBValidKey[]>(\n\t\t\t\t\tstore.index(DECK_INDEX).getAllKeys(IDBKeyRange.only(deckId)),\n\t\t\t\t);\n\t\t\t\tfor (const id of ids) {\n\t\t\t\t\tstore.delete(id);\n\t\t\t\t}\n\t\t\t}\n\t\t\tawait transactionDone(tx);\n\t\t},\n\t};\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -38956,7 +38956,7 @@ function buildMorphTransitionPlan(fromSlide, toSlide, durationMs, mode = 'object
|
|
|
38956
38956
|
// taken out of the flat layers. Stacking them there composites them
|
|
38957
38957
|
// source-over, which dips their shared ink toward the backdrop instead of
|
|
38958
38958
|
// summing it the way PowerPoint's own blend does (issue #161).
|
|
38959
|
-
const crossfadeGroups = resolveMorphCrossfadeGroups(match.pairs, ghostIds, new Set(overlayIncomingAnimations.keys()), flattenedIncoming);
|
|
38959
|
+
const crossfadeGroups = resolveMorphCrossfadeGroups(match.pairs, ghostIds, new Set(overlayIncomingAnimations.keys()), flattenedIncoming).map((group) => liftCrossfadeToWrapper(group, animations, outgoingAnimations, overlayIncomingAnimations));
|
|
38960
38960
|
const groupedOutgoingIds = new Set(crossfadeGroups.map((group) => group.outgoing.id));
|
|
38961
38961
|
const groupedIncomingIds = new Set(crossfadeGroups.map((group) => group.incoming.id));
|
|
38962
38962
|
const outgoingElements = ghostElements.filter((element) => !groupedOutgoingIds.has(element.id));
|
|
@@ -38974,6 +38974,146 @@ function buildMorphTransitionPlan(fromSlide, toSlide, durationMs, mode = 'object
|
|
|
38974
38974
|
durationMs,
|
|
38975
38975
|
};
|
|
38976
38976
|
}
|
|
38977
|
+
/**
|
|
38978
|
+
* Move a grouped pair's dissolve off the two elements and onto their wrappers.
|
|
38979
|
+
*
|
|
38980
|
+
* A pair that dissolves where it stands does not move, so the journey keyframes
|
|
38981
|
+
* it was given are `translate(0, 0) scale(1, 1) rotate(0deg)` at both ends. They
|
|
38982
|
+
* animate nothing and cost a compositing layer, whose raster the browser snaps
|
|
38983
|
+
* to whole device pixels - the wording is then painted a fraction of a pixel
|
|
38984
|
+
* from where the live stage paints it and twitches as the overlay comes and
|
|
38985
|
+
* goes. Dropping them and running only the fade, on the slide-sized wrapper the
|
|
38986
|
+
* binding puts each half in, measured pixel-identical to the settled slide
|
|
38987
|
+
* (issue #161; the same reasoning already governs an inert pair's ghost).
|
|
38988
|
+
*
|
|
38989
|
+
* A pair that MOVES keeps everything on the element: it needs the journey, and
|
|
38990
|
+
* a travelling shape cannot be seen to snap.
|
|
38991
|
+
*/
|
|
38992
|
+
function liftCrossfadeToWrapper(group, animations, outgoingAnimations, overlayIncomingAnimations) {
|
|
38993
|
+
// One entry can carry several tracks in its shorthand (a journey and its
|
|
38994
|
+
// fade), so they are separated and classified against their own keyframes.
|
|
38995
|
+
// A track that only touches opacity is the dissolve. One that touches
|
|
38996
|
+
// transform is the journey, and it only comes off the element when it says
|
|
38997
|
+
// the SAME thing at both ends - which is what an in-slot dissolve emits, and
|
|
38998
|
+
// what an inert pair's ghost already has dropped for the same reason. The
|
|
38999
|
+
// pair's boxes are no help here: a paragraph re-fitted around new wording
|
|
39000
|
+
// sits at a different height on the two slides and still does not move,
|
|
39001
|
+
// because `morphTextReplacedInSlot` refuses to interpolate it. Anything else
|
|
39002
|
+
// (an `<img>` crop) means the pair is doing more than dissolving.
|
|
39003
|
+
const tracksOf = (elementId) => {
|
|
39004
|
+
const fade = [];
|
|
39005
|
+
let travels = false;
|
|
39006
|
+
let other = 0;
|
|
39007
|
+
for (const animation of animations) {
|
|
39008
|
+
if (animation.elementId !== elementId) {
|
|
39009
|
+
continue;
|
|
39010
|
+
}
|
|
39011
|
+
if (animation.target !== undefined) {
|
|
39012
|
+
other += 1;
|
|
39013
|
+
continue;
|
|
39014
|
+
}
|
|
39015
|
+
for (const track of splitAnimationTracks(animation.animation)) {
|
|
39016
|
+
const block = keyframesBlockOf(track.split(/\s+/u)[0], animation.keyframes);
|
|
39017
|
+
if (block === undefined) {
|
|
39018
|
+
other += 1;
|
|
39019
|
+
}
|
|
39020
|
+
else if (block.includes('transform')) {
|
|
39021
|
+
travels ||= !isStationaryKeyframes(block);
|
|
39022
|
+
}
|
|
39023
|
+
else if (block.includes('opacity')) {
|
|
39024
|
+
fade.push(track);
|
|
39025
|
+
}
|
|
39026
|
+
else {
|
|
39027
|
+
other += 1;
|
|
39028
|
+
}
|
|
39029
|
+
}
|
|
39030
|
+
}
|
|
39031
|
+
return { fade, travels, other };
|
|
39032
|
+
};
|
|
39033
|
+
const outgoing = tracksOf(group.outgoing.id);
|
|
39034
|
+
const incoming = tracksOf(group.incoming.id);
|
|
39035
|
+
if (outgoing.fade.length === 0 ||
|
|
39036
|
+
incoming.fade.length === 0 ||
|
|
39037
|
+
outgoing.travels ||
|
|
39038
|
+
incoming.travels ||
|
|
39039
|
+
outgoing.other + incoming.other > 0) {
|
|
39040
|
+
return group;
|
|
39041
|
+
}
|
|
39042
|
+
// Neutralised rather than dropped. A binding whose live stage is a SIBLING of
|
|
39043
|
+
// the overlay (Angular) has to emit its `incoming` rules unscoped, and the
|
|
39044
|
+
// one holding the stage copy invisible then matches the overlay's copy of the
|
|
39045
|
+
// same element too. Without a scoped rule to outrank it the arriving half
|
|
39046
|
+
// never painted at all, which is issue #160's defect exactly. `none` is that
|
|
39047
|
+
// rule, and it leaves the dissolve to the wrapper.
|
|
39048
|
+
outgoingAnimations.set(group.outgoing.id, 'none');
|
|
39049
|
+
overlayIncomingAnimations.set(group.incoming.id, 'none');
|
|
39050
|
+
return {
|
|
39051
|
+
...group,
|
|
39052
|
+
outgoingAnimation: outgoing.fade.join(', '),
|
|
39053
|
+
incomingAnimation: incoming.fade.join(', '),
|
|
39054
|
+
};
|
|
39055
|
+
}
|
|
39056
|
+
/**
|
|
39057
|
+
* Split an `animation` shorthand into its tracks.
|
|
39058
|
+
*
|
|
39059
|
+
* Not a plain `split(',')`: an easing is `cubic-bezier(0.2, 0, 0.4, 1)` and its
|
|
39060
|
+
* commas are nested, so the depth has to be tracked.
|
|
39061
|
+
*/
|
|
39062
|
+
function splitAnimationTracks(shorthand) {
|
|
39063
|
+
const tracks = [];
|
|
39064
|
+
let depth = 0;
|
|
39065
|
+
let start = 0;
|
|
39066
|
+
for (let index = 0; index < shorthand.length; index += 1) {
|
|
39067
|
+
const character = shorthand[index];
|
|
39068
|
+
if (character === '(') {
|
|
39069
|
+
depth += 1;
|
|
39070
|
+
}
|
|
39071
|
+
else if (character === ')') {
|
|
39072
|
+
depth -= 1;
|
|
39073
|
+
}
|
|
39074
|
+
else if (character === ',' && depth === 0) {
|
|
39075
|
+
tracks.push(shorthand.slice(start, index).trim());
|
|
39076
|
+
start = index + 1;
|
|
39077
|
+
}
|
|
39078
|
+
}
|
|
39079
|
+
tracks.push(shorthand.slice(start).trim());
|
|
39080
|
+
return tracks.filter((track) => track.length > 0);
|
|
39081
|
+
}
|
|
39082
|
+
/**
|
|
39083
|
+
* Whether a keyframes block moves nothing: every frame states the same
|
|
39084
|
+
* transform, so running it is pure cost - a compositing layer whose raster the
|
|
39085
|
+
* browser snaps to whole device pixels (issue #161).
|
|
39086
|
+
*/
|
|
39087
|
+
function isStationaryKeyframes(block) {
|
|
39088
|
+
// Compared on VALUE, not text: the generator writes the same standstill as
|
|
39089
|
+
// `translate(0px, 0px)` at one end and `translate(0, 0)` at the other, and a
|
|
39090
|
+
// string compare would call that a journey.
|
|
39091
|
+
const normalise = (value) => value
|
|
39092
|
+
.replace(/\s+/gu, '')
|
|
39093
|
+
.replace(/(-?\d*\.?\d+)(px|deg|%)?/gu, (_match, number, unit = '') => Number(number) === 0 ? '0' : `${Number(number)}${unit}`);
|
|
39094
|
+
const values = new Set([...block.matchAll(/(?<![\w-])transform:\s*([^;}]+)/gu)].map((match) => normalise(match[1])));
|
|
39095
|
+
return values.size <= 1;
|
|
39096
|
+
}
|
|
39097
|
+
/** The body of one `@keyframes` block inside a generated stylesheet. */
|
|
39098
|
+
function keyframesBlockOf(name, keyframes) {
|
|
39099
|
+
const start = keyframes.indexOf(`@keyframes ${name}`);
|
|
39100
|
+
if (start < 0) {
|
|
39101
|
+
return undefined;
|
|
39102
|
+
}
|
|
39103
|
+
let depth = 0;
|
|
39104
|
+
for (let index = keyframes.indexOf('{', start); index < keyframes.length; index += 1) {
|
|
39105
|
+
if (keyframes[index] === '{') {
|
|
39106
|
+
depth += 1;
|
|
39107
|
+
}
|
|
39108
|
+
else if (keyframes[index] === '}') {
|
|
39109
|
+
depth -= 1;
|
|
39110
|
+
if (depth === 0) {
|
|
39111
|
+
return keyframes.slice(start, index + 1);
|
|
39112
|
+
}
|
|
39113
|
+
}
|
|
39114
|
+
}
|
|
39115
|
+
return undefined;
|
|
39116
|
+
}
|
|
38977
39117
|
/** Escape a value for use inside a double-quoted CSS attribute selector. */
|
|
38978
39118
|
function cssAttributeValue(value) {
|
|
38979
39119
|
return value.replace(/\\/gu, '\\\\').replace(/"/gu, '\\"');
|
|
@@ -70630,7 +70770,7 @@ function createLocalStorageBackend(namespace) {
|
|
|
70630
70770
|
/** Try IndexedDB first; fall back to localStorage on any failure. */
|
|
70631
70771
|
async function resolveBackend(dbName, namespace) {
|
|
70632
70772
|
try {
|
|
70633
|
-
const { openChatDb, createIdbBackend } = await import('./pptx-angular-viewer-chat-history-idb-
|
|
70773
|
+
const { openChatDb, createIdbBackend } = await import('./pptx-angular-viewer-chat-history-idb-CC0Xt6ku.mjs');
|
|
70634
70774
|
const db = await openChatDb(dbName);
|
|
70635
70775
|
return createIdbBackend(db);
|
|
70636
70776
|
}
|
|
@@ -96878,6 +97018,10 @@ function morphCrossfadeGroupSlides(plan, outgoingSlide, incomingSlide) {
|
|
|
96878
97018
|
if (!plan || !outgoingSlide || !incomingSlide) {
|
|
96879
97019
|
return [];
|
|
96880
97020
|
}
|
|
97021
|
+
const half = (animation) => ({
|
|
97022
|
+
'mix-blend-mode': MORPH_CROSSFADE_HALF_BLEND_MODE,
|
|
97023
|
+
...(animation === undefined ? {} : { animation }),
|
|
97024
|
+
});
|
|
96881
97025
|
return plan.crossfadeGroups.map((group, index) => ({
|
|
96882
97026
|
key: group.incoming.id,
|
|
96883
97027
|
style: {
|
|
@@ -96887,6 +97031,8 @@ function morphCrossfadeGroupSlides(plan, outgoingSlide, incomingSlide) {
|
|
|
96887
97031
|
// layer (41) its halves came from.
|
|
96888
97032
|
'z-index': String(42 + index),
|
|
96889
97033
|
},
|
|
97034
|
+
outgoingStyle: half(group.outgoingAnimation),
|
|
97035
|
+
incomingStyle: half(group.incomingAnimation),
|
|
96890
97036
|
outgoing: { ...outgoingSlide, elements: [group.outgoing] },
|
|
96891
97037
|
incoming: { ...incomingSlide, elements: [group.incoming] },
|
|
96892
97038
|
}));
|
|
@@ -97045,10 +97191,6 @@ class PresentationTransitionOverlayComponent {
|
|
|
97045
97191
|
*/
|
|
97046
97192
|
this.crossfadeGroups = computed(() => morphCrossfadeGroupSlides(this.morphPlan(), this.outgoingSlide(), this.incomingSlide()), /* @ts-ignore */
|
|
97047
97193
|
...(ngDevMode ? [{ debugName: "crossfadeGroups" }] : /* istanbul ignore next */ []));
|
|
97048
|
-
/** Both halves of a grouped pair blend additively, and only with each other. */
|
|
97049
|
-
this.crossfadeHalfStyle = {
|
|
97050
|
-
'mix-blend-mode': MORPH_CROSSFADE_HALF_BLEND_MODE,
|
|
97051
|
-
};
|
|
97052
97194
|
/** Layer container style: animation + stacking relative to the stage. */
|
|
97053
97195
|
this.layerStyle = computed(() => {
|
|
97054
97196
|
const anims = this.animations();
|
|
@@ -97219,7 +97361,7 @@ class PresentationTransitionOverlayComponent {
|
|
|
97219
97361
|
class="pptx-ng-transition-layer"
|
|
97220
97362
|
data-pptx-transition-layer="outgoing"
|
|
97221
97363
|
data-pptx-morph-outgoing="true"
|
|
97222
|
-
[ngStyle]="
|
|
97364
|
+
[ngStyle]="group.outgoingStyle"
|
|
97223
97365
|
>
|
|
97224
97366
|
<div [ngStyle]="slideBoxStyle()">
|
|
97225
97367
|
<pptx-slide-canvas
|
|
@@ -97237,7 +97379,7 @@ class PresentationTransitionOverlayComponent {
|
|
|
97237
97379
|
class="pptx-ng-transition-layer"
|
|
97238
97380
|
data-pptx-transition-layer="lifted"
|
|
97239
97381
|
data-pptx-morph-lifted="true"
|
|
97240
|
-
[ngStyle]="
|
|
97382
|
+
[ngStyle]="group.incomingStyle"
|
|
97241
97383
|
>
|
|
97242
97384
|
<div [ngStyle]="slideBoxStyle()">
|
|
97243
97385
|
<pptx-slide-canvas
|
|
@@ -97309,7 +97451,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImpor
|
|
|
97309
97451
|
class="pptx-ng-transition-layer"
|
|
97310
97452
|
data-pptx-transition-layer="outgoing"
|
|
97311
97453
|
data-pptx-morph-outgoing="true"
|
|
97312
|
-
[ngStyle]="
|
|
97454
|
+
[ngStyle]="group.outgoingStyle"
|
|
97313
97455
|
>
|
|
97314
97456
|
<div [ngStyle]="slideBoxStyle()">
|
|
97315
97457
|
<pptx-slide-canvas
|
|
@@ -97327,7 +97469,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImpor
|
|
|
97327
97469
|
class="pptx-ng-transition-layer"
|
|
97328
97470
|
data-pptx-transition-layer="lifted"
|
|
97329
97471
|
data-pptx-morph-lifted="true"
|
|
97330
|
-
[ngStyle]="
|
|
97472
|
+
[ngStyle]="group.incomingStyle"
|
|
97331
97473
|
>
|
|
97332
97474
|
<div [ngStyle]="slideBoxStyle()">
|
|
97333
97475
|
<pptx-slide-canvas
|
|
@@ -104086,7 +104228,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImpor
|
|
|
104086
104228
|
}], propDecorators: { canEdit: [{ type: i0.Input, args: [{ isSignal: true, alias: "canEdit", required: false }] }], slideIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "slideIndex", required: false }] }] } });
|
|
104087
104229
|
|
|
104088
104230
|
// Generated by scripts/inline-shared.mjs from package.json. Do not edit.
|
|
104089
|
-
const PPTX_ANGULAR_VIEWER_VERSION = "2.18.
|
|
104231
|
+
const PPTX_ANGULAR_VIEWER_VERSION = "2.18.2";
|
|
104090
104232
|
|
|
104091
104233
|
/**
|
|
104092
104234
|
* account-page.component.ts: File > Account content.
|
|
@@ -137230,4 +137372,4 @@ function cn(...values) {
|
|
|
137230
137372
|
*/
|
|
137231
137373
|
|
|
137232
137374
|
export { CommentsPanelComponent as $, ALIGN_OPTIONS as A, AnimationPlaybackService as B, AutosaveRecoveryDialogComponent as C, AutosaveService as D, BroadcastDialogComponent as E, CHART_EDITOR_STYLES as F, CURSOR_PALETTE as G, CanvasFitService as H, ChartAxisOptionsComponent as I, ChartAxisStyleOptionsComponent as J, ChartComboTypeOptionsComponent as K, ChartDataEditorComponent as L, ChartDataLabelOptionsComponent as M, ChartDatapointMarkerOptionsComponent as N, ChartDatapointOptionsComponent as O, ChartDisplayOptionsComponent as P, ChartElementViewComponent as Q, ChartErrorBarOptionsComponent as R, ChartMarkerOptionsComponent as S, ChartPartSelectionService as T, ChartPrimitivesComponent as U, ChartRendererComponent as V, ChartTrendlineOptionsComponent as W, CollaborationCursorsComponent as X, CollaborationService as Y, ColorChangedImageComponent as Z, CommentMarkersOverlayComponent as _, ANIMATION_PRESET_CATEGORIES as a, InspectorPanelComponent as a$, CommentsService as a0, ComparePanelComponent as a1, ConnectorRendererComponent as a2, ConnectorTextOverlayComponent as a3, CustomShowsComponent as a4, DATA_TABLE_HEADER_H as a5, DATA_TABLE_KEY_W as a6, DATA_TABLE_PADDING as a7, DATA_TABLE_ROW_H as a8, DEFAULT_BOUNDS as a9, EditorToolbarComponent as aA, EffectsPanelComponent as aB, ElementRendererComponent as aC, EmbeddedFontsService as aD, EncryptedFileDialogComponent as aE, EquationEditorDialogComponent as aF, EquationRendererComponent as aG, EquationTemplateGalleryComponent as aH, ExportProgressModalComponent as aI, ExportService as aJ, FieldContextService as aK, FindBarComponent as aL, FindReplaceBarComponent as aM, FollowModeBarComponent as aN, FontEmbeddingListComponent as aO, FontEmbeddingPanelComponent as aP, GALLERY_THEME_PRESETS as aQ, GRIDLINE_COLOR as aR, GradientPickerComponent as aS, HANDOUT_OPTIONS as aT, HeaderFooterDialogComponent as aU, HyperlinkDialogComponent as aV, ImagePropertiesPanelComponent as aW, InkDrawingService as aX, InkRendererComponent as aY, InsertSmartArtDialogComponent as aZ, InspectorPaneHeaderComponent as a_, DEFAULT_BROADCAST_SERVER_URL as aa, DEFAULT_CANVAS_HEIGHT as ab, DEFAULT_CANVAS_WIDTH as ac, DEFAULT_COLOR_SCHEME as ad, DEFAULT_FILL_COLOR as ae, DEFAULT_LAYOUT as af, DEFAULT_PALETTE$1 as ag, DEFAULT_PATTERN_FILL_PRESET as ah, DEFAULT_PRINT_SETTINGS as ai, DEFAULT_SLIDE_BACKGROUND as aj, DEFAULT_STROKE_COLOR as ak, DEFAULT_STYLE as al, DEFAULT_TABLE_ROW_HEIGHT as am, DEFAULT_TEXT_COLOR$1 as an, DEFAULT_VIEWER_PROFILE as ao, DIRECTIONAL_PRESETS as ap, DIRECTION_OPTIONS as aq, DocumentPropertiesCardComponent as ar, EMBEDDED_FONTS_STYLE_ID as as, EMPHASIS_PRESETS as at, ENTRANCE_PRESETS as au, TEMPLATES as av, EXIT_PRESETS as aw, EditorContextMenuComponent as ax, EditorHistory as ay, EditorStateService as az, AUDIENCE_HASH as b, RibbonComponent as b$, IsMobileService as b0, KeepAnnotationsDialogComponent as b1, LOCALE_CATALOG as b2, LONG_PRESS_DURATION_MS as b3, LONG_PRESS_MOVE_TOLERANCE_PX as b4, LoadContentService as b5, LocalPresencePublisher as b6, MAX_ZOOM_SCALE as b7, MIN_ZOOM_SCALE as b8, MOTION_PATH_COLUMNS as b9, PasswordStrengthMeterComponent as bA, PowerPointViewerComponent as bB, PresentToolbarAutoHide as bC, PresentationAnnotationOverlayComponent as bD, PresentationAnnotationsService as bE, PresentationOverlayComponent as bF, PresentationPropertiesPanelComponent as bG, PresentationSettingsCardComponent as bH, PresentationSubtitleBarComponent as bI, PresentationToolbarComponent as bJ, PresentationTransitionOverlayComponent as bK, PresenterViewComponent as bL, PresenterWindowService as bM, PrintDialogComponent as bN, PrintService as bO, PrintSettingsPanelComponent as bP, PropertiesDialogComponent as bQ, REPEAT_MODE_OPTIONS as bR, RESIZE_HANDLES as bS, RULER_FONT_SIZE as bT, RULER_THICKNESS as bU, ReadingViewOverlayComponent as bV, RemoteSelectionOverlayComponent as bW, RibbonAnimationGalleryComponent as bX, RibbonAnimationsSectionComponent as bY, RibbonArrangeSectionComponent as bZ, RibbonColorPopoverComponent as b_, MediaPreviewComponent as ba, MediaPropertiesPanelComponent as bb, MediaRendererComponent as bc, MediaTrimTimelineComponent as bd, MobileBottomBarComponent as be, MobileMenuSheetComponent as bf, MobilePresenterViewComponent as bg, MobileSheetComponent as bh, MobileSlidesSheetComponent as bi, MobileToolbarComponent as bj, ModalDialogComponent as bk, Model3DRendererComponent as bl, NotesHandoutCardComponent as bm, NotesPanelComponent as bn, NotesToolbarComponent as bo, OleRendererComponent as bp, OutlineViewOverlayComponent as bq, POWER_POINT_VIEWER_PROVIDERS as br, PPTX_OPEN_ACCEPT as bs, PRESENTATION_OPEN_EXTENSIONS as bt, PRESENTER_CHANNEL_NAME as bu, PRESENTER_MSG_ORIGIN as bv, PRESENTER_TIMER_SEGMENT_MS as bw, PX_PER_CM as bx, PX_PER_INCH as by, PasswordProtectionDialogComponent as bz, AUDIENCE_NONCE_KEY as c, TEXT_3D_TOP_BEVEL_KEYS as c$, RibbonDesignSectionComponent as c0, RibbonDrawSectionComponent as c1, RibbonDrawingGroupComponent as c2, RibbonEditingSectionComponent as c3, RibbonFileSectionComponent as c4, RibbonFontControlsComponent as c5, RibbonHomeSectionComponent as c6, RibbonHyperlinkButtonComponent as c7, RibbonInsertFieldsComponent as c8, RibbonInsertSectionComponent as c9, SettingsLanguageTabComponent as cA, ShareDialogComponent as cB, ShortcutPanelComponent as cC, ShowOptionsFieldsetComponent as cD, ShowSlidesFieldsetComponent as cE, SignatureStrippedDialogComponent as cF, SignaturesPanelComponent as cG, SignaturesService as cH, SlideBackgroundCardComponent as cI, SlideCanvasComponent as cJ, SlideDefaultInspectorComponent as cK, SlideDiffChangesComponent as cL, SlideDiffRowComponent as cM, SlideDiffThumbnailsComponent as cN, SlideSizeCardComponent as cO, SlideSorterOverlayComponent as cP, SlideThemeOverridePanelComponent as cQ, SlideTransitionCardComponent as cR, SlidesPanelComponent as cS, SmartArt3DRendererComponent as cT, SmartArt3DService as cU, SmartArtPreviewComponent as cV, SmartArtPropertiesComponent as cW, SmartArtRendererComponent as cX, StatusBarComponent as cY, TABLE_STRUCTURE_TOGGLES as cZ, TEXT_3D_BOTTOM_BEVEL_KEYS as c_, RibbonMotionPathGalleryComponent as ca, RibbonParagraphControlsComponent as cb, RibbonPrimaryRowComponent as cc, RibbonReviewSectionComponent as cd, RibbonShapeExtrasComponent as ce, RibbonSlideshowSectionComponent as cf, RibbonTransitionsSectionComponent as cg, RibbonViewSectionComponent as ch, RulerGuidesService as ci, SEQUENCE_OPTIONS as cj, SEVERITY_GROUPS as ck, SEVERITY_LABELS as cl, SHORTCUT_REFERENCE_ITEMS as cm, SLIDE_TRANSITION_KEYFRAMES as cn, DEFAULT_PALETTE as co, PALETTES$1 as cp, SMART_ART_COLOR_SCHEMES as cq, SMART_ART_STYLE_OPTIONS as cr, SUB_ITEM_LABEL as cs, SVG_WARP_PRESETS as ct, SWIPE_MAX_VERTICAL_PX as cu, SWIPE_THRESHOLD_PX as cv, SelectionPaneComponent as cw, SetUpSlideShowDialogComponent as cx, SettingsAppearanceTabComponent as cy, SettingsDialogComponent as cz, AVATAR_COLOR_SWATCHES as d, animationPresetLabelKey as d$, TEXT_DIRECTION_OPTIONS$1 as d0, THEME_CATALOG as d1, TIMING_CURVE_OPTIONS as d2, TRIGGER_OPTIONS as d3, TYPE_LABELS as d4, TableCellAdvancedFillComponent as d5, TableCellFormattingComponent as d6, TableDataEditorComponent as d7, TablePropertiesComponent as d8, TableRendererComponent as d9, ViewerFileIOService as dA, ViewerFindReplaceService as dB, ViewerFormatPainterService as dC, ViewerInspectorPanelService as dD, ViewerKeyboardService as dE, ViewerMobileSheetService as dF, ViewerPresentationModeService as dG, ViewerThemeGalleryService as dH, ViewerTouchGesturesService as dI, ViewerZoomService as dJ, WEBM_MIME_CANDIDATES as dK, WriteBackScheduler as dL, ZERO_LINE_COLOR as dM, ZoomNavigationService as dN, ZoomRendererComponent as dO, ZoomTargetService as dP, addCategory as dQ, addCommentToList as dR, addGradientStopPatch as dS, addItem as dT, addSeries as dU, addSubItem as dV, advanceStep as dW, affordanceElements as dX, aiToggleVisible as dY, alignPatch as dZ, animationFor as d_, TableResizeOverlayComponent as da, TableSelectionService as db, TagsCardComponent as dc, Text3DBevelSectionComponent as dd, Text3DPanelComponent as de, TextAdvancedPanelComponent as df, ThemeEditorFieldsComponent as dg, ThemeGalleryComponent as dh, ThemeSelectorCardComponent as di, TitleBarComponent as dj, TitleBarSearchComponent as dk, TransitionDirectionPickerComponent as dl, TransitionPreviewComponent as dm, VALIGN_OPTIONS as dn, VIEWER_THEME as dp, VersionHistoryPanelComponent as dq, ViewerCanvasEditingService as dr, ViewerCollabCursorService as ds, ViewerCollaborationSessionService as dt, ViewerCompareService as du, ViewerCustomShowsService as dv, ViewerDialogsService as dw, ViewerDocumentPropertiesService as dx, ViewerExportService as dy, ViewerExtraDialogsComponent as dz, AXIS_LABEL_COLOR as e, buildWaterfallViewModel as e$, annotationMapToInkInserts as e0, applyAcceptedDiff as e1, applyAnimationPreset as e2, applyFindReplacements as e3, applyFormatToElement as e4, applyMove as e5, applyResize as e6, applyTableStylePreset as e7, asMediaElement as e8, assignUserColor as e9, buildEquationElement as eA, buildEquationSegment as eB, buildFallbackViewModel as eC, buildFontFaceRule as eD, buildGradientFillCss as eE, buildGridlinesAndLabels as eF, buildHyperlinkPatch as eG, buildInkContainerStyle as eH, buildInkStrokes as eI, buildLegend as eJ, buildModel3DContainerStyle as eK, buildModel3DViewModel as eL, buildOleActionModel as eM, buildOleInfoRows as eN, buildPatternFillCss as eO, buildPrintHtmlDocument as eP, buildPropertiesPatch as eQ, buildRegionMapViewModel as eR, buildSaveSlides as eS, buildShareUrl as eT, buildSmartArtInsertElement as eU, buildSmartArtNodes as eV, buildStockViewModel as eW, buildSurfaceViewModel as eX, buildTableViewModel as eY, buildTreemapViewModel as eZ, buildTrimFragment as e_, attachShowVisibilityPause as ea, attachTouchGestures as eb, axisTickValues as ec, beginNodeEdit as ed, bevelSizePatch as ee, boolFromEvent as ef, bringForward as eg, bringToFront as eh, buildBarActions as ei, buildBroadcastConfig as ej, buildBroadcastViewerUrl as ek, buildCategoryLabels as el, buildCellParagraphs as em, buildChartViewModel as en, buildChatLogExport as eo, buildChatLogMarkdown as ep, buildChromeStyle as eq, buildClearHyperlinkPatch as er, buildClickGroups as es, buildColStyles as et, buildCollaborationConfig as eu, buildComboViewModel as ev, buildCssGradientFromShapeStyle as ew, buildDuotoneFilter as ex, buildDuotoneFilterId as ey, buildEmbeddedFontStyles as ez, AccessibilityPanelComponent as f, computeScatterXDomain as f$, buildZeroLine as f0, buildZoomContainerStyle as f1, buildZoomViewModel as f2, bulletIndentPx as f3, canAddTopLevelNode as f4, canGroupSelection as f5, canRemoveTopLevelNode as f6, canSetStrokeWidth as f7, canStartBroadcast as f8, canStartShare as f9, commitNodeText as fA, computeAlign as fB, computeAxisTitlePrimitives as fC, computeBarRects as fD, computeBubbleRadius as fE, computeCornerHandle as fF, computeDataTablePrimitives as fG, computeDistribute as fH, computeDrawingViewBox as fI, computeErrorBarPrimitives as fJ, computeFocusTargets as fK, computeHandleBoxes as fL, computeHandoutLayout as fM, computeIsMobile as fN, computeIsTablet as fO, computeLinePoints as fP, computeLinearRegression as fQ, computePageCount as fR, computePieLayout as fS, computePieSlicePath as fT, computePieSlices as fU, computePlotLayout as fV, computeRSquared as fW, computeRadarPoints as fX, computeResizeHandleBoxes as fY, computeRotateHandleBox as fZ, computeScatterDots as f_, canUngroupSelection as fa, canUseClipboard as fb, captionDisplayText as fc, cellRunStyle as fd, cellStyleToStyleMap as fe, cellTdStyle as ff, changeCountLabel as fg, changeIcon as fh, characterSpacingPatch as fi, chartPreserveAspectRatio as fj, checkFontAvailable as fk, clampCursorPosition as fl, clampGifDimensions as fm, clampIndex as fn, clampNotesFontSize as fo, clampScale as fp, clampStep as fq, clearAllLocalViewerData as fr, clearAudienceContent as fs, cn as ft, collectAccessibilityIssues as fu, collectElementText as fv, collectSlideText as fw, collectStoredChats as fx, collectUsedFontFamilies as fy, columnWidthStyle as fz, AccessibilityService as g, formatAxisValue as g$, computeSelectionBoxes as g0, computeSingleSelected as g1, computeSlideIndices as g2, computeSnap as g3, computeStackedBarRects as g4, computeStackedValueRange as g5, computeTrendlinePrimitives as g6, computeValueRange as g7, convertOmmlToMathMl as g8, copyFormatFromElement as g9, durationOf as gA, effectsStateOf as gB, enableGlowPatch as gC, enableInnerShadowPatch as gD, enableOuterShadowPatch as gE, enableReflectionPatch as gF, enableSoftEdgePatch as gG, encodeGif as gH, endShowMediaCleanup as gI, estimatePageCount as gJ, evenColumnWidths as gK, evenRowHeights as gL, exitPresentationFullscreen as gM, exportAiChatLogs as gN, extractPathPoints as gO, eyedropperAvailable as gP, fillColorOf as gQ, findInSlides as gR, findOwningSlideIndex as gS, findSlideIndexByElementId as gT, firstVisibleIndex as gU, fitPolynomial as gV, fitZoom as gW, focusTargetChips as gX, fontMimeForFormat as gY, fontSizeOf as gZ, forgetSessionDeck as g_, countAccessibilityIssues as ga, countAnnotationStrokes as gb, createAngularAiBridge as gc, createCustomShow as gd, createSwipeDismissDrag as ge, createWebrtcBundle as gf, createWebsocketBundle as gg, cssObjectToStyleMap as gh, currentColorScheme as gi, currentLayout as gj, currentStyle as gk, defaultCssVars as gl, defaultRadius as gm, defaultThemeColors as gn, deleteElementsByIds as go, deleteVersion as gp, demoteNode as gq, deriveModel3DBlobUrl as gr, derivePresenceList as gs, describeSmartArtBounds as gt, disableGlowPatch as gu, disableInnerShadowPatch as gv, disableOuterShadowPatch as gw, disableReflectionPatch as gx, disableSoftEdgePatch as gy, duplicateElementById as gz, AccountPageComponent as h, isInjectableUrl as h$, formatBytes as h0, formatCursorLabel as h1, formatElapsed as h2, formatFileSize as h3, formatPropertyDate as h4, formatTime as h5, fpsToFrameIntervalMs as h6, generateBroadcastRoomId as h7, generateCommentId as h8, generateCustomShowId as h9, getTextWarp as hA, getTouchDistance as hB, getWarpCategory as hC, getWarpPath as hD, gradientStateFromStyle as hE, gradientStateOf as hF, gradientStatePatch as hG, gridColumns as hH, groupIssuesBySeverity as hI, hasAnimation as hJ, hasCopyableFormat as hK, hasExistingLink as hL, hasExitedFullscreen as hM, hasGradientFill as hN, hasPressureVariation as hO, hasVisibleSlideAfter as hP, headerLabel as hQ, imageDimensions as hR, inkViewBox as hS, insertTableElementColumn as hT, insertTableElementRow as hU, interpolateWidth as hV, isAudienceTab as hW, isBold as hX, isBrowserOpenableMime as hY, isChildNode as hZ, isElementInteractive as h_, generatePressureCircles as ha, generateTicks as hb, getClrChangeParams as hc, getContainerStyle as hd, getDuotoneFilterDef as he, getImageSrc as hf, getLocalStorageUsageSummary as hg, getOleAriaLabel as hh, getOleBadgeLabel as hi, getOleDisplayName as hj, getOleDownloadFileName as hk, getOleTypeColor as hl, getOleTypeLabel as hm, getPasswordStrength as hn, getPatternSvg as ho, getPlaceholderStyle as hp, getVersions as hq, getResolvedShapeClipPath as hr, getResolvedShapeClipPathFor as hs, getSessionTabId as ht, getShapeFillStrokeStyle as hu, getSlideBackgroundStyle as hv, getSlideTransitionAnimations as hw, getSmartArtNodeBounds as hx, getSpeechRecognitionCtor as hy, getTextBlockStyle as hz, ActionSettingsPanelComponent as i, parseAudienceNonce as i$, isItalic as i0, isLegacyBinaryPresentation as i1, isPpactionUrl as i2, isPresenterMessage as i3, isSigned as i4, isSupportedPresentationFile as i5, isTextElement as i6, isTwoTableFocus as i7, isUnderline as i8, isUrlSafe as i9, narrowToCircle as iA, narrowToPolygon as iB, narrowToRect as iC, newChartElement as iD, newEquationElement as iE, newPresetShapeElement as iF, newShapeElement as iG, newSmartArtElement as iH, newTableElement as iI, newTextElement as iJ, nextVisibleIndex as iK, nodeBold as iL, nodeEditBox as iM, nodeFillColor as iN, nodeFontColor as iO, nodeIdFromKey as iP, nodeItalic as iQ, nodeStyle as iR, normalizeFontFormat as iS, normalizeSlidesPerPage as iT, normalizeValue as iU, numFromEvent as iV, ommlToMathml as iW, ooxmlDashToCssBorderStyle as iX, openNativeEyeDropper as iY, overallStatus as iZ, paletteColor as i_, isValidRoomId as ia, isViewportBackgroundPressTarget as ib, isZoomActivationKey as ic, issueTrackKey as id, issueTypeLabel as ie, keyToLabel as ig, lastVisibleIndex as ih, latexToMathml as ii, layoutConnectorPaints as ij, layoutNodeLabels as ik, linePointsToSvgString as il, lineSpacingPatch as im, loadAudienceContent as io, loadSessionDeck as ip, mediaFallbackFor as iq, mediaSurfaceFor as ir, mergeCaptionResults as is, mergeDown as it, mergeRight as iu, mergeSelection as iv, moveElementBy as iw, moveNodeDown as ix, moveNodeUp as iy, msToFrameDelayCs as iz, AdvancedChartEditorComponent as j, restoreSessionDeck as j$, parseNodeTextarea as j0, partitionSlides as j1, patchChartData as j2, patchChartStyle as j3, patchTableData as j4, patchTextStyle as j5, patternPresetOptions as j6, pendingElementStyles as j7, pickColorByClickFallback as j8, pickFile as j9, removeElementAnimation as jA, removeGradientStopPatch as jB, removeNode as jC, removeTableElementRow as jD, removeSeries as jE, renderToCanvas as jF, reorderAnimationDown as jG, reorderAnimationUp as jH, replaceInSlides as jI, replaceMatch as jJ, requestPresentationFullscreen as jK, resizeElement as jL, resolveCaptionTracks as jM, resolveChartKind as jN, resolveFontVariant as jO, resolveHyperlinkHref as jP, resolveInteractiveElementId as jQ, resolveMediaSrc as jR, resolveOleType as jS, resolveParagraphBullet as jT, resolvePresenterNotes as jU, resolveProfileInitial as jV, resolveRegionCode as jW, resolveSlideAutoAdvanceMs as jX, resolvePalette as jY, resolveThemeCatalogEntry as jZ, resolveTransitionDuration as j_, pickSupportedMimeType as ja, planGifFrames as jb, planVideoSegments as jc, pointsToSvgPathD as jd, presenceToCursors as je, presentationBaseName as jf, presentationStageStyle as jg, presenterTimerProgress as jh, presetByLayout as ji, presetsForCategory as jj, pressuresToWidths as jk, prevVisibleIndex as jl, projectDrawingShapes as jm, promoteNode as jn, provideViewerTheme as jo, radarAngle as jp, radarRingPoints as jq, readAsDataUrl as jr, recordWebm as js, redistributeColumnWidth as jt, registerCrossSlideAudio as ju, rememberSessionDeck as jv, removeAnimation as jw, removeCategory as jx, removeTableElementColumn as jy, removeCommentFromList as jz, AiChangeOverlayComponent as k, shapeStylePatch as k$, revealedElementStyles as k0, routeOrthogonalConnector as k1, rowStyle as k2, rulerDragToGuidePosition as k3, rulerHighlight as k4, rulerStripTicks as k5, sampleColorFromSlide as k6, sanitizeColor as k7, sanitizeSlideIndex as k8, sanitizeUserName as k9, setDataPointFill as kA, setDataPointLabel as kB, setDataPointMarker as kC, setDelay as kD, setDirection as kE, setDuration as kF, setElementPosition as kG, setGridlineStyle as kH, setLayout as kI, setLegend as kJ, setNodeStyle as kK, setNodeText as kL, setRepeatCount as kM, setRepeatMode as kN, setSequence as kO, setSeriesChartType as kP, setSeriesColor as kQ, setSeriesErrorBars as kR, setSeriesMarker as kS, setSeriesName as kT, setSeriesTrendline as kU, setSeriesValue as kV, setStyle as kW, setTimingCurve as kX, setTitle as kY, setTrigger as kZ, setTriggerShapeId as k_, saveViewerProfile as ka, savedPresentationFileName as kb, scanAvailableFonts as kc, searchSlides as kd, seedBroadcastFields as ke, seedHyperlinkDraft as kf, seedPropertiesDraft as kg, seedShareFields as kh, segmentFrameCount as ki, selectValue$2 as kj, sendBackward as kk, sendToBack as kl, sequentialColorScale as km, serializeWriteBack as kn, seriesColor as ko, setAnimationEmphasis as kp, setAnimationEntrance as kq, setAnimationExit as kr, setAxis as ks, setAxisLogScale as kt, setAxisTitleStyle as ku, setCategoryLabel as kv, setCellText as kw, setColorScheme as kx, setDataLabels as ky, setDataPointExplosion as kz, AiChatPanelComponent as l, sheetAfterNavigate as l0, shouldBlockClickAdvance as l1, shouldUseSvgWarp as l2, showDirectionPicker as l3, showsTemplateAffordance as l4, signatureCountLabel as l5, signatureKey as l6, signatureTimestamp as l7, signerName as l8, statusLabel as l9, toggleCommentResolvedInList as lA, toggleNodeBold as lB, toggleNodeItalic as lC, toggleSheet as lD, topLevelNodeCount as lE, transformSelectedTextCase as lF, translationsEn as lG, updateElementById as lH, updateGlowPatch as lI, updateGradientStopPatch as lJ, updateInnerShadowPatch as lK, updateOuterShadowPatch as lL, updateReflectionPatch as lM, vAlignPatch as lN, validatePassword as lO, validatePrintSettings as lP, validateRoomId as lQ, valueToY as lR, vermilionDarkColors as lS, vermilionDarkTheme as lT, vermilionLightColors as lU, vermilionLightTheme as lV, vermilionRadius as lW, waypointsToPathD as lX, worstStatus as lY, zoomTargetSlideIndex as lZ, slideNumberOf as la, slidesWithReappliedLayout as lb, smartArtNodes as lc, paletteColour as ld, snapToGridStep as le, splitCursorCell as lf, splitMergedCell as lg, statusKind as lh, statusLabel$1 as li, storeAudienceContent as lj, stringFromEvent$5 as lk, strokeColorOf as ll, strokeToInkElement as lm, strokeWidthOf as ln, styleShadowFilter as lo, textAdvancedPatch as lp, textAdvancedStateFromStyle as lq, textAdvancedStateOf as lr, textColorOf as ls, textDirectionPatch as lt, textStyleOf as lu, textStylePatch as lv, themeStyle as lw, themeToCssVars as lx, thumbnailHeight as ly, thumbnailZoom as lz, AiChatService as m, AiComposerComponent as n, AiFocusBarComponent as o, AiFocusHighlightOverlayComponent as p, AiHistoryMenuComponent as q, AiHistoryService as r, AiMessageListComponent as s, toChatSummary as t, AiPanelStore as u, AiProposalCardComponent as v, AiSettingsSectionComponent as w, AiToolCallCardComponent as x, AnimationAuthorPanelComponent as y, AnimationPanelComponent as z };
|
|
137233
|
-
//# sourceMappingURL=pptx-angular-viewer-pptx-angular-viewer-
|
|
137375
|
+
//# sourceMappingURL=pptx-angular-viewer-pptx-angular-viewer-CIXn1rms.mjs.map
|