pptx-angular-viewer 2.19.0 → 2.19.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/CHANGELOG.md +36 -0
- package/fesm2022/{pptx-angular-viewer-chat-history-idb-BwJthigo.mjs → pptx-angular-viewer-chat-history-idb-Dhq4bg3C.mjs} +2 -2
- package/fesm2022/{pptx-angular-viewer-chat-history-idb-BwJthigo.mjs.map → pptx-angular-viewer-chat-history-idb-Dhq4bg3C.mjs.map} +1 -1
- package/fesm2022/{pptx-angular-viewer-pptx-angular-viewer-BLdLZTxr.mjs → pptx-angular-viewer-pptx-angular-viewer-Dp3kBdl8.mjs} +215 -165
- package/fesm2022/{pptx-angular-viewer-pptx-angular-viewer-BLdLZTxr.mjs.map → pptx-angular-viewer-pptx-angular-viewer-Dp3kBdl8.mjs.map} +1 -1
- package/fesm2022/pptx-angular-viewer.mjs +1 -1
- package/package.json +1 -1
- package/types/pptx-angular-viewer.d.ts +14 -9
- package/types/pptx-angular-viewer.d.ts.map +1 -1
|
@@ -16358,7 +16358,7 @@ function withChartTitle(chartData, title) {
|
|
|
16358
16358
|
* Without a threshold every click on a bar would commit a (tiny) value change,
|
|
16359
16359
|
* so a user could not select a mark without editing it.
|
|
16360
16360
|
*/
|
|
16361
|
-
const CHART_DRAG_THRESHOLD_PX
|
|
16361
|
+
const CHART_DRAG_THRESHOLD_PX = 3;
|
|
16362
16362
|
const STYLE_ELEMENT_ID$1 = 'pptx-chart-interaction-styles';
|
|
16363
16363
|
const INTERACTION_CSS$1 = `
|
|
16364
16364
|
.pptx-chart-interactive svg [data-chart-part] { pointer-events: auto; cursor: pointer; }
|
|
@@ -16394,19 +16394,19 @@ function ensureChartInteractionStyles$1() {
|
|
|
16394
16394
|
/** Class a chart root carries while its marks are grabbable. */
|
|
16395
16395
|
const CHART_INTERACTIVE_CLASS = 'pptx-chart-interactive';
|
|
16396
16396
|
/** Class marking the currently selected mark. */
|
|
16397
|
-
const CHART_PART_SELECTED_CLASS
|
|
16397
|
+
const CHART_PART_SELECTED_CLASS = 'pptx-chart-part-selected';
|
|
16398
16398
|
/**
|
|
16399
16399
|
* Re-apply the selected-part highlight class inside `root`.
|
|
16400
16400
|
*
|
|
16401
16401
|
* Called after every render: the projectors re-create the SVG marks on each
|
|
16402
16402
|
* chart change, which drops DOM-only classes. A null `part` only clears.
|
|
16403
16403
|
*/
|
|
16404
|
-
function applyChartPartHighlight
|
|
16404
|
+
function applyChartPartHighlight(root, part) {
|
|
16405
16405
|
if (!root) {
|
|
16406
16406
|
return;
|
|
16407
16407
|
}
|
|
16408
|
-
for (const node of root.querySelectorAll(`.${CHART_PART_SELECTED_CLASS
|
|
16409
|
-
node.classList.remove(CHART_PART_SELECTED_CLASS
|
|
16408
|
+
for (const node of root.querySelectorAll(`.${CHART_PART_SELECTED_CLASS}`)) {
|
|
16409
|
+
node.classList.remove(CHART_PART_SELECTED_CLASS);
|
|
16410
16410
|
}
|
|
16411
16411
|
if (!part) {
|
|
16412
16412
|
return;
|
|
@@ -16416,7 +16416,7 @@ function applyChartPartHighlight$1(root, part) {
|
|
|
16416
16416
|
: ':not([data-chart-point])';
|
|
16417
16417
|
const selector = `[data-chart-part='${part.role}'][data-chart-series='${part.seriesIndex}']${pointSelector}`;
|
|
16418
16418
|
for (const node of root.querySelectorAll(selector)) {
|
|
16419
|
-
node.classList.add(CHART_PART_SELECTED_CLASS
|
|
16419
|
+
node.classList.add(CHART_PART_SELECTED_CLASS);
|
|
16420
16420
|
}
|
|
16421
16421
|
}
|
|
16422
16422
|
/**
|
|
@@ -16429,7 +16429,7 @@ function applyChartPartHighlight$1(root, part) {
|
|
|
16429
16429
|
* preview, or the axis rescales under the pointer mid-drag and the mark runs
|
|
16430
16430
|
* away from the cursor.
|
|
16431
16431
|
*/
|
|
16432
|
-
function beginChartValueDrag
|
|
16432
|
+
function beginChartValueDrag(params) {
|
|
16433
16433
|
const { part, viewModel, chartData, clientY } = params;
|
|
16434
16434
|
if (part.role !== 'dataPoint' || part.pointIndex === undefined || !viewModel.valueDrag) {
|
|
16435
16435
|
return null;
|
|
@@ -16459,7 +16459,7 @@ function beginChartValueDrag$1(params) {
|
|
|
16459
16459
|
* itself inside the slide's zoom transform.
|
|
16460
16460
|
*/
|
|
16461
16461
|
function advanceChartValueDrag(state, clientY, svgHeight) {
|
|
16462
|
-
if (!state.moved && Math.abs(clientY - state.startClientY) < CHART_DRAG_THRESHOLD_PX
|
|
16462
|
+
if (!state.moved && Math.abs(clientY - state.startClientY) < CHART_DRAG_THRESHOLD_PX) {
|
|
16463
16463
|
return null;
|
|
16464
16464
|
}
|
|
16465
16465
|
if (svgHeight === 0 || state.part.pointIndex === undefined) {
|
|
@@ -32592,6 +32592,9 @@ function getCurrentParagraphIndex(editorEl, segments) {
|
|
|
32592
32592
|
return paraIdx;
|
|
32593
32593
|
}
|
|
32594
32594
|
|
|
32595
|
+
/* oxlint-disable eslint/one-var -- pervasive pre-existing pattern in this file
|
|
32596
|
+
(many independent short-lived `const`s per function, several separated by
|
|
32597
|
+
comments or guard clauses); merging them isn't a style choice here. */
|
|
32595
32598
|
/**
|
|
32596
32599
|
* Hyperlink security utilities — URL validation, sanitization, and slide-jump
|
|
32597
32600
|
* resolution for hyperlink click actions in the viewer. Pure, framework-agnostic
|
|
@@ -32630,7 +32633,9 @@ function isUrlSafe(url) {
|
|
|
32630
32633
|
// Normalize: lowercase to catch case-bypasses like "JaVaScRiPt:"
|
|
32631
32634
|
const lower = trimmed.toLowerCase();
|
|
32632
32635
|
// Strip whitespace and zero-width characters that could bypass naive checks.
|
|
32633
|
-
// Characters stripped: ZWSP (
|
|
32636
|
+
// Characters stripped: ZWSP (U+200B), ZWNJ (U+200C), ZWJ (U+200D), BOM
|
|
32637
|
+
// (U+FEFF), NUL. Named by code point rather than embedded literally so the
|
|
32638
|
+
// characters stay visible/diffable in this comment instead of invisible.
|
|
32634
32639
|
// Separate replace calls avoid no-misleading-character-class (joined sequences)
|
|
32635
32640
|
// and no-control-regex (NUL literal) lint rules.
|
|
32636
32641
|
const stripped = lower
|
|
@@ -60660,6 +60665,9 @@ function applyUniformCellPaddingPatch(el, padding) {
|
|
|
60660
60665
|
};
|
|
60661
60666
|
}
|
|
60662
60667
|
|
|
60668
|
+
/* oxlint-disable eslint/one-var -- pervasive pre-existing pattern in this file
|
|
60669
|
+
(each mutator is a short sequence of independent `const`s); merging them
|
|
60670
|
+
isn't a style choice here. */
|
|
60663
60671
|
/**
|
|
60664
60672
|
* Pure, framework-agnostic comment-array transforms, shared by every binding.
|
|
60665
60673
|
*
|
|
@@ -60683,7 +60691,7 @@ function generateCommentId() {
|
|
|
60683
60691
|
* Append a new comment to a comment list.
|
|
60684
60692
|
* @returns the NEW full comment array, or `null` when `text` is blank.
|
|
60685
60693
|
*/
|
|
60686
|
-
function addCommentToList(comments, text, authorName, x, y) {
|
|
60694
|
+
function addCommentToList(comments, text, authorName, x, y, elementId) {
|
|
60687
60695
|
const trimmed = text.trim();
|
|
60688
60696
|
if (trimmed.length === 0) {
|
|
60689
60697
|
return null;
|
|
@@ -60696,19 +60704,83 @@ function addCommentToList(comments, text, authorName, x, y) {
|
|
|
60696
60704
|
resolved: false,
|
|
60697
60705
|
...(typeof x === 'number' ? { x } : {}),
|
|
60698
60706
|
...(typeof y === 'number' ? { y } : {}),
|
|
60707
|
+
...(elementId ? { elementId } : {}),
|
|
60699
60708
|
};
|
|
60700
60709
|
return [...comments, comment];
|
|
60701
60710
|
}
|
|
60702
60711
|
/**
|
|
60703
|
-
*
|
|
60712
|
+
* Immutably map the comment matching `id` anywhere in the tree (top-level
|
|
60713
|
+
* rows and nested `replies`, at any depth), applying `fn` to it.
|
|
60714
|
+
* @returns a tuple of the new tree and whether a match was found/changed.
|
|
60715
|
+
*/
|
|
60716
|
+
function mapCommentTree(comments, id, fn) {
|
|
60717
|
+
let changed = false;
|
|
60718
|
+
const next = comments.map((comment) => {
|
|
60719
|
+
if (comment.id === id) {
|
|
60720
|
+
changed = true;
|
|
60721
|
+
return fn(comment);
|
|
60722
|
+
}
|
|
60723
|
+
if (comment.replies && comment.replies.length > 0) {
|
|
60724
|
+
const [replies, repliesChanged] = mapCommentTree(comment.replies, id, fn);
|
|
60725
|
+
if (repliesChanged) {
|
|
60726
|
+
changed = true;
|
|
60727
|
+
return { ...comment, replies };
|
|
60728
|
+
}
|
|
60729
|
+
}
|
|
60730
|
+
return comment;
|
|
60731
|
+
});
|
|
60732
|
+
return [next, changed];
|
|
60733
|
+
}
|
|
60734
|
+
/**
|
|
60735
|
+
* Immutably drop the comment matching `id` anywhere in the tree (top-level
|
|
60736
|
+
* rows and nested `replies`, at any depth).
|
|
60737
|
+
* @returns a tuple of the new tree and whether anything was removed.
|
|
60738
|
+
*/
|
|
60739
|
+
function filterCommentTree(comments, id) {
|
|
60740
|
+
let changed = false;
|
|
60741
|
+
const next = [];
|
|
60742
|
+
for (const comment of comments) {
|
|
60743
|
+
if (comment.id === id) {
|
|
60744
|
+
changed = true;
|
|
60745
|
+
continue;
|
|
60746
|
+
}
|
|
60747
|
+
if (comment.replies && comment.replies.length > 0) {
|
|
60748
|
+
const [replies, repliesChanged] = filterCommentTree(comment.replies, id);
|
|
60749
|
+
if (repliesChanged) {
|
|
60750
|
+
changed = true;
|
|
60751
|
+
next.push({ ...comment, replies });
|
|
60752
|
+
continue;
|
|
60753
|
+
}
|
|
60754
|
+
}
|
|
60755
|
+
next.push(comment);
|
|
60756
|
+
}
|
|
60757
|
+
return [next, changed];
|
|
60758
|
+
}
|
|
60759
|
+
/**
|
|
60760
|
+
* Remove a comment (by id) from a comment list. Searches the whole tree, so
|
|
60761
|
+
* a nested reply (at any depth) is removed just like a top-level comment.
|
|
60704
60762
|
* @returns the NEW full comment array, or `null` when nothing changed.
|
|
60705
60763
|
*/
|
|
60706
60764
|
function removeCommentFromList(comments, id) {
|
|
60707
|
-
const next = comments
|
|
60708
|
-
|
|
60765
|
+
const [next, changed] = filterCommentTree(comments, id);
|
|
60766
|
+
return changed ? next : null;
|
|
60767
|
+
}
|
|
60768
|
+
/**
|
|
60769
|
+
* Update the text of a comment (by id) anywhere in the tree (top-level rows
|
|
60770
|
+
* and nested `replies`, at any depth).
|
|
60771
|
+
* @returns the NEW full comment array, or `null` when `text` is blank or the
|
|
60772
|
+
* comment is not found.
|
|
60773
|
+
*/
|
|
60774
|
+
function editCommentInList(comments, id, text) {
|
|
60775
|
+
const trimmed = text.trim();
|
|
60776
|
+
if (trimmed.length === 0) {
|
|
60709
60777
|
return null;
|
|
60710
60778
|
}
|
|
60711
|
-
|
|
60779
|
+
const [next, changed] = mapCommentTree(comments, id, (comment) => ({
|
|
60780
|
+
...comment,
|
|
60781
|
+
text: trimmed,
|
|
60782
|
+
}));
|
|
60783
|
+
return changed ? next : null;
|
|
60712
60784
|
}
|
|
60713
60785
|
/**
|
|
60714
60786
|
* Append a threaded reply under the top-level comment `parentId`.
|
|
@@ -60742,22 +60814,17 @@ function replyToCommentInList(comments, parentId, text, authorName) {
|
|
|
60742
60814
|
: comment);
|
|
60743
60815
|
}
|
|
60744
60816
|
/**
|
|
60745
|
-
* Toggle the `resolved` flag of a comment (by id) in a comment list.
|
|
60817
|
+
* Toggle the `resolved` flag of a comment (by id) in a comment list. Searches
|
|
60818
|
+
* the whole tree, so a nested reply (at any depth) can be resolved just like
|
|
60819
|
+
* a top-level comment.
|
|
60746
60820
|
* @returns the NEW full comment array, or `null` when nothing changed.
|
|
60747
60821
|
*/
|
|
60748
60822
|
function toggleCommentResolvedInList(comments, id) {
|
|
60749
|
-
|
|
60750
|
-
|
|
60751
|
-
|
|
60752
|
-
|
|
60753
|
-
|
|
60754
|
-
changed = true;
|
|
60755
|
-
return { ...comment, resolved: !comment.resolved };
|
|
60756
|
-
});
|
|
60757
|
-
if (!changed) {
|
|
60758
|
-
return null;
|
|
60759
|
-
}
|
|
60760
|
-
return next;
|
|
60823
|
+
const [next, changed] = mapCommentTree(comments, id, (comment) => ({
|
|
60824
|
+
...comment,
|
|
60825
|
+
resolved: !comment.resolved,
|
|
60826
|
+
}));
|
|
60827
|
+
return changed ? next : null;
|
|
60761
60828
|
}
|
|
60762
60829
|
|
|
60763
60830
|
/**
|
|
@@ -66000,6 +66067,20 @@ function select(group, key, labelKey, choiceList) {
|
|
|
66000
66067
|
function numberControl(group, key, labelKey, min, max, unitKey) {
|
|
66001
66068
|
return { kind: 'number', group, key, labelKey, min, max, unitKey };
|
|
66002
66069
|
}
|
|
66070
|
+
/**
|
|
66071
|
+
* Clamp a File > Options number-control edit into its schema range.
|
|
66072
|
+
*
|
|
66073
|
+
* Returns `undefined` when `raw` does not parse to a finite number, so the
|
|
66074
|
+
* caller can skip the commit and leave the field's prior value in place
|
|
66075
|
+
* (matches the behaviour every binding except one already had).
|
|
66076
|
+
*/
|
|
66077
|
+
function clampOptionNumber(raw, min, max) {
|
|
66078
|
+
const parsed = Number(raw);
|
|
66079
|
+
if (!Number.isFinite(parsed)) {
|
|
66080
|
+
return undefined;
|
|
66081
|
+
}
|
|
66082
|
+
return Math.min(max, Math.max(min, parsed));
|
|
66083
|
+
}
|
|
66003
66084
|
function textControl(group, key, labelKey) {
|
|
66004
66085
|
return { kind: 'text', group, key, labelKey, maxLength: 64 };
|
|
66005
66086
|
}
|
|
@@ -71204,7 +71285,7 @@ function createLocalStorageBackend(namespace) {
|
|
|
71204
71285
|
/** Try IndexedDB first; fall back to localStorage on any failure. */
|
|
71205
71286
|
async function resolveBackend(dbName, namespace) {
|
|
71206
71287
|
try {
|
|
71207
|
-
const { openChatDb, createIdbBackend } = await import('./pptx-angular-viewer-chat-history-idb-
|
|
71288
|
+
const { openChatDb, createIdbBackend } = await import('./pptx-angular-viewer-chat-history-idb-Dhq4bg3C.mjs');
|
|
71208
71289
|
const db = await openChatDb(dbName);
|
|
71209
71290
|
return createIdbBackend(db);
|
|
71210
71291
|
}
|
|
@@ -80760,53 +80841,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
|
|
|
80760
80841
|
type: Injectable
|
|
80761
80842
|
}], ctorParameters: () => [] });
|
|
80762
80843
|
|
|
80763
|
-
|
|
80764
|
-
|
|
80765
|
-
|
|
80766
|
-
const CHART_PART_SELECTED_CLASS = 'pptx-chart-part-selected';
|
|
80767
|
-
/**
|
|
80768
|
-
* Begin a value drag for a pressed part, or return null when the part is not
|
|
80769
|
-
* a draggable data point (series lines, non-cartesian charts, missing drag
|
|
80770
|
-
* context).
|
|
80771
|
-
*/
|
|
80772
|
-
function beginChartValueDrag(part, vm, chartData, startClientY) {
|
|
80773
|
-
if (part.role !== 'dataPoint' || part.pointIndex === undefined || !vm.valueDrag) {
|
|
80774
|
-
return null;
|
|
80775
|
-
}
|
|
80776
|
-
const startValue = chartData.series[part.seriesIndex]?.values[part.pointIndex] ?? 0;
|
|
80777
|
-
return {
|
|
80778
|
-
part,
|
|
80779
|
-
drag: vm.valueDrag,
|
|
80780
|
-
svgHeight: vm.svgHeight,
|
|
80781
|
-
startClientY,
|
|
80782
|
-
anchorViewY: dragAnchorViewY(startValue, vm.valueDrag, part.seriesIndex),
|
|
80783
|
-
baseChartData: chartData,
|
|
80784
|
-
moved: false,
|
|
80785
|
-
lastData: null,
|
|
80786
|
-
lastValue: null,
|
|
80787
|
-
};
|
|
80788
|
-
}
|
|
80789
|
-
/**
|
|
80790
|
-
* Advance a drag session for a pointer move. Returns the preview chart data +
|
|
80791
|
-
* live value once the pointer has travelled past the threshold, or null while
|
|
80792
|
-
* the press still counts as a click (or geometry is unusable).
|
|
80793
|
-
*/
|
|
80794
|
-
function moveChartValueDrag(session, clientY, renderedSvgHeight) {
|
|
80795
|
-
if (!session.moved && Math.abs(clientY - session.startClientY) < CHART_DRAG_THRESHOLD_PX) {
|
|
80796
|
-
return null;
|
|
80797
|
-
}
|
|
80798
|
-
if (session.part.pointIndex === undefined || renderedSvgHeight === 0) {
|
|
80799
|
-
return null;
|
|
80800
|
-
}
|
|
80801
|
-
session.moved = true;
|
|
80802
|
-
const deltaViewY = ((clientY - session.startClientY) / renderedSvgHeight) * session.svgHeight;
|
|
80803
|
-
const viewY = session.anchorViewY + deltaViewY;
|
|
80804
|
-
const value = dragValueForPart(viewY, session.drag, session.part.seriesIndex);
|
|
80805
|
-
const data = withChartPointValue(session.baseChartData, session.part.seriesIndex, session.part.pointIndex, value);
|
|
80806
|
-
session.lastData = data;
|
|
80807
|
-
session.lastValue = value;
|
|
80808
|
-
return { data, value };
|
|
80809
|
-
}
|
|
80844
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
80845
|
+
// Value-drag commit gate
|
|
80846
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
80810
80847
|
/**
|
|
80811
80848
|
* The chart data a finished drag should commit, or null when nothing should
|
|
80812
80849
|
* be committed (cancelled, or the press never became a drag).
|
|
@@ -80837,57 +80874,29 @@ function commitChartElementData(editor, elementId, chartData, templateSlideId) {
|
|
|
80837
80874
|
editor.updateElement(slideIndex, elementId, { chartData });
|
|
80838
80875
|
}
|
|
80839
80876
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
80840
|
-
//
|
|
80841
|
-
// ─────────────────────────────────────────────────────────────────────────────
|
|
80842
|
-
/**
|
|
80843
|
-
* CSS selector matching the SVG marks tagged with `part`. A part without a
|
|
80844
|
-
* `pointIndex` must NOT match point-level marks of the same series (and vice
|
|
80845
|
-
* versa), so the point clause is always present in one form or the other.
|
|
80846
|
-
*/
|
|
80847
|
-
function chartPartSelector(part) {
|
|
80848
|
-
const pointSel = part.pointIndex !== undefined
|
|
80849
|
-
? `[data-chart-point='${part.pointIndex}']`
|
|
80850
|
-
: ':not([data-chart-point])';
|
|
80851
|
-
return `[data-chart-part='${part.role}'][data-chart-series='${part.seriesIndex}']${pointSel}`;
|
|
80852
|
-
}
|
|
80853
|
-
/**
|
|
80854
|
-
* Re-apply the selected-part highlight class inside `root`: clears every
|
|
80855
|
-
* existing highlight, then tags the marks matching `part` (no-op for null).
|
|
80856
|
-
* Runs after each render because re-created SVG marks drop DOM-only classes.
|
|
80857
|
-
*/
|
|
80858
|
-
function applyChartPartHighlight(root, part) {
|
|
80859
|
-
for (const node of root.querySelectorAll(`.${CHART_PART_SELECTED_CLASS}`)) {
|
|
80860
|
-
node.classList.remove(CHART_PART_SELECTED_CLASS);
|
|
80861
|
-
}
|
|
80862
|
-
if (!part) {
|
|
80863
|
-
return;
|
|
80864
|
-
}
|
|
80865
|
-
for (const node of root.querySelectorAll(chartPartSelector(part))) {
|
|
80866
|
-
node.classList.add(CHART_PART_SELECTED_CLASS);
|
|
80867
|
-
}
|
|
80868
|
-
}
|
|
80869
|
-
// ─────────────────────────────────────────────────────────────────────────────
|
|
80870
|
-
// Singleton interaction stylesheet
|
|
80877
|
+
// Interaction stylesheet (shared base rules + Angular's own badge/editor CSS)
|
|
80871
80878
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
80872
80879
|
const STYLE_ELEMENT_ID = 'pptx-ng-chart-interaction-styles';
|
|
80873
80880
|
/**
|
|
80874
|
-
*
|
|
80875
|
-
*
|
|
80876
|
-
*
|
|
80877
|
-
*
|
|
80881
|
+
* Angular-only interaction CSS, injected once into `document.head` alongside
|
|
80882
|
+
* the shared `[data-chart-part]` / selected-mark rules from
|
|
80883
|
+
* `ensureChartInteractionStyles` (`pptx-viewer-shared`). Component styles are
|
|
80884
|
+
* view-encapsulated in Angular, so they cannot reach into the chart
|
|
80885
|
+
* renderer's SVG or style the badge/title-input this component projects
|
|
80886
|
+
* next to it.
|
|
80878
80887
|
*/
|
|
80879
80888
|
const INTERACTION_CSS = `
|
|
80880
|
-
.pptx-chart-interactive svg [data-chart-part] { pointer-events: auto; cursor: pointer; }
|
|
80881
|
-
.pptx-chart-interactive svg [data-chart-part]:hover { filter: brightness(1.12); }
|
|
80882
|
-
.pptx-chart-interactive svg [data-chart-part='title'] { cursor: text; }
|
|
80883
|
-
.pptx-chart-interactive svg .${CHART_PART_SELECTED_CLASS} { filter: drop-shadow(0 0 2.5px #3b82f6); }
|
|
80884
|
-
.pptx-chart-interactive svg .${CHART_PART_SELECTED_CLASS}:hover { filter: drop-shadow(0 0 2.5px #3b82f6) brightness(1.12); }
|
|
80885
80889
|
.pptx-ng-chart-view { position: relative; width: 100%; height: 100%; }
|
|
80886
80890
|
.pptx-ng-chart-drag-badge { position: absolute; top: 4px; right: 4px; z-index: 10; border-radius: 4px; background: rgba(37, 99, 235, 0.9); padding: 2px 6px; font-size: 10px; font-weight: 500; color: #fff; pointer-events: none; }
|
|
80887
80891
|
.pptx-ng-chart-title-input { position: absolute; left: 50%; top: 2px; z-index: 10; width: 60%; transform: translateX(-50%); border: 1px solid #94a3b8; border-radius: 4px; background: #fff; padding: 2px 4px; text-align: center; font-size: 11px; color: #0f172a; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); }
|
|
80888
80892
|
`;
|
|
80889
|
-
/**
|
|
80893
|
+
/**
|
|
80894
|
+
* Inject the interaction stylesheets for chart part hit targets: the shared
|
|
80895
|
+
* base rules (singleton, shared across all five bindings) plus Angular's own
|
|
80896
|
+
* badge/title-input CSS (singleton, this binding only).
|
|
80897
|
+
*/
|
|
80890
80898
|
function ensureChartInteractionStyles() {
|
|
80899
|
+
ensureChartInteractionStyles$1();
|
|
80891
80900
|
if (typeof document === 'undefined' || document.getElementById(STYLE_ELEMENT_ID)) {
|
|
80892
80901
|
return;
|
|
80893
80902
|
}
|
|
@@ -81628,6 +81637,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
|
|
|
81628
81637
|
}]
|
|
81629
81638
|
}], propDecorators: { element: [{ type: i0.Input, args: [{ isSignal: true, alias: "element", required: true }] }] } });
|
|
81630
81639
|
|
|
81640
|
+
/* oxlint-disable eslint/one-var -- pervasive pre-existing pattern in this file:
|
|
81641
|
+
independent handler-local `const`s, not one statement */
|
|
81631
81642
|
/**
|
|
81632
81643
|
* ChartElementViewComponent (Angular port of React's `ChartElementView.tsx`):
|
|
81633
81644
|
* renders a chart and, while it is selected + editable, makes its data marks
|
|
@@ -81791,7 +81802,12 @@ class ChartElementViewComponent {
|
|
|
81791
81802
|
if (!chartData || !vm) {
|
|
81792
81803
|
return;
|
|
81793
81804
|
}
|
|
81794
|
-
const session = beginChartValueDrag(
|
|
81805
|
+
const session = beginChartValueDrag({
|
|
81806
|
+
part,
|
|
81807
|
+
viewModel: vm,
|
|
81808
|
+
chartData,
|
|
81809
|
+
clientY: event.clientY,
|
|
81810
|
+
});
|
|
81795
81811
|
if (!session) {
|
|
81796
81812
|
return;
|
|
81797
81813
|
}
|
|
@@ -81812,14 +81828,11 @@ class ChartElementViewComponent {
|
|
|
81812
81828
|
return;
|
|
81813
81829
|
}
|
|
81814
81830
|
const svg = this.wrapper()?.nativeElement.querySelector('svg');
|
|
81815
|
-
const
|
|
81816
|
-
|
|
81817
|
-
|
|
81818
|
-
|
|
81819
|
-
|
|
81820
|
-
if (result) {
|
|
81821
|
-
this.previewData.set(result.data);
|
|
81822
|
-
this.dragValue.set(result.value);
|
|
81831
|
+
const height = svg?.getBoundingClientRect().height ?? 0;
|
|
81832
|
+
const step = advanceChartValueDrag(session, event.clientY, height);
|
|
81833
|
+
if (step) {
|
|
81834
|
+
this.previewData.set(step.chartData);
|
|
81835
|
+
this.dragValue.set(step.value);
|
|
81823
81836
|
}
|
|
81824
81837
|
}
|
|
81825
81838
|
onPointerUp() {
|
|
@@ -83023,8 +83036,8 @@ function buildTableViewModel(el, styleCtx) {
|
|
|
83023
83036
|
rowSpan,
|
|
83024
83037
|
tdStyle,
|
|
83025
83038
|
// Non-breaking space (U+00A0) keeps an empty cell from collapsing;
|
|
83026
|
-
// mirrors React's `cell.text || '
|
|
83027
|
-
displayText: cell.text || '
|
|
83039
|
+
// mirrors React's `cell.text || '\u00a0'` in table-render-data.tsx.
|
|
83040
|
+
displayText: cell.text || '\u00a0',
|
|
83028
83041
|
paragraphs: buildCellParagraphs(cell),
|
|
83029
83042
|
// Combine per-cell explicit diagonals with any inherited from the
|
|
83030
83043
|
// applicable table-style sections (per-cell still takes precedence).
|
|
@@ -87457,6 +87470,9 @@ function affordanceElements(elements, editTemplateMode, isTemplate) {
|
|
|
87457
87470
|
* rendering, clearing on pointerup) stays in `SlideCanvasComponent`.
|
|
87458
87471
|
*/
|
|
87459
87472
|
|
|
87473
|
+
/* oxlint-disable eslint/one-var -- pervasive pre-existing pattern in this file
|
|
87474
|
+
(many independent short-lived `const`s per handler); merging them isn't a
|
|
87475
|
+
style choice here. */
|
|
87460
87476
|
/** Pixels (screen-space) a pointer must move before a click becomes a drag. */
|
|
87461
87477
|
const DRAG_THRESHOLD = 3;
|
|
87462
87478
|
/** Handle size in screen pixels (fine pointer: mouse/trackpad). */
|
|
@@ -88347,7 +88363,12 @@ class SlideCanvasComponent {
|
|
|
88347
88363
|
return;
|
|
88348
88364
|
}
|
|
88349
88365
|
event.preventDefault();
|
|
88350
|
-
|
|
88366
|
+
// The inline text editor renders as an overlay beside the elements, not a
|
|
88367
|
+
// child of the one it edits, so a right-click inside it hit-tests to
|
|
88368
|
+
// nothing via interactiveElementIdAt. Fall back to the element being
|
|
88369
|
+
// edited rather than swallowing the menu on the element the user just
|
|
88370
|
+
// clicked (matches Vue's and Svelte's useContextMenu/onStageContextMenu).
|
|
88371
|
+
const hitId = this.interactiveElementIdAt(event.target), id = resolveContextMenuElementId(hitId, event.target, this.editingId());
|
|
88351
88372
|
this.contextMenu.emit({ id, x: event.clientX, y: event.clientY });
|
|
88352
88373
|
}
|
|
88353
88374
|
onHandlePointerDown(event, handle) {
|
|
@@ -89076,6 +89097,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
|
|
|
89076
89097
|
`, styles: [".master-sidebar{display:flex;width:224px;min-height:0;flex-direction:column;border-right:1px solid var(--pptx-border, #33334d);background:var(--pptx-card, #1e1e2e)}header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px}header strong{color:var(--pptx-muted-foreground, #a5a5b5);font-size:11px;text-transform:uppercase}header button{border:0;background:transparent;color:inherit;font-size:20px;cursor:pointer}.tabs{display:flex;padding:0 4px;border-bottom:1px solid var(--pptx-border, #33334d)}.tabs button{flex:1;padding:6px 3px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--pptx-muted-foreground, #a5a5b5);font-size:10px;cursor:pointer}.tabs button[aria-selected=true]{border-bottom-color:#f59e0b;color:#f59e0b}.body{flex:1;min-height:0;overflow:auto;padding:8px}.master-item{display:block;width:100%;margin-bottom:6px;padding:8px;border:1px solid transparent;border-radius:5px;background:transparent;color:inherit;text-align:left}.master-item.layout{width:calc(100% - 14px);margin-left:14px}.master-item[aria-pressed=true]{border-color:var(--pptx-primary, #6366f1)}section,.background-editor{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;padding:10px;border:1px solid var(--pptx-border, #33334d);border-radius:6px}.counts{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.counts button[aria-pressed=true]{background:var(--pptx-primary, #6366f1);color:#fff}.background-editor input{width:100%;height:34px}\n"] }]
|
|
89077
89098
|
}], propDecorators: { tab: [{ type: i0.Input, args: [{ isSignal: true, alias: "tab", required: true }] }], slideMasters: [{ type: i0.Input, args: [{ isSignal: true, alias: "slideMasters", required: true }] }], notesMaster: [{ type: i0.Input, args: [{ isSignal: true, alias: "notesMaster", required: false }] }], handoutMaster: [{ type: i0.Input, args: [{ isSignal: true, alias: "handoutMaster", required: false }] }], activeMasterIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeMasterIndex", required: false }] }], activeLayoutIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeLayoutIndex", required: false }] }], handoutSlidesPerPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "handoutSlidesPerPage", required: false }] }], editable: [{ type: i0.Input, args: [{ isSignal: true, alias: "editable", required: false }] }], tabChange: [{ type: i0.Output, args: ["tabChange"] }], selectMaster: [{ type: i0.Output, args: ["selectMaster"] }], selectLayout: [{ type: i0.Output, args: ["selectLayout"] }], slidesPerPageChange: [{ type: i0.Output, args: ["slidesPerPageChange"] }], backgroundChange: [{ type: i0.Output, args: ["backgroundChange"] }], close: [{ type: i0.Output, args: ["close"] }] } });
|
|
89078
89099
|
|
|
89100
|
+
/**
|
|
89101
|
+
* Apply a bottom-bar tap: decide the next sheet with shared's `toggleSheet`
|
|
89102
|
+
* (tapping the open sheet closes it, tapping a different one switches to
|
|
89103
|
+
* it), then close everything and open whatever `toggleSheet` decided, if
|
|
89104
|
+
* anything.
|
|
89105
|
+
*/
|
|
89106
|
+
function applyMobileBarSheetTap(tapped, current, actions) {
|
|
89107
|
+
const next = toggleSheet(current, tapped);
|
|
89108
|
+
actions.closeAll();
|
|
89109
|
+
switch (next) {
|
|
89110
|
+
case 'slides':
|
|
89111
|
+
actions.openSlides();
|
|
89112
|
+
break;
|
|
89113
|
+
case 'inspector':
|
|
89114
|
+
actions.openInspector();
|
|
89115
|
+
break;
|
|
89116
|
+
case 'comments':
|
|
89117
|
+
actions.openComments();
|
|
89118
|
+
break;
|
|
89119
|
+
case 'notes':
|
|
89120
|
+
actions.openNotes();
|
|
89121
|
+
break;
|
|
89122
|
+
}
|
|
89123
|
+
}
|
|
89124
|
+
|
|
89079
89125
|
/**
|
|
89080
89126
|
* mobile-bottom-bar.component.ts: Persistent mobile bottom action bar.
|
|
89081
89127
|
*
|
|
@@ -104952,7 +104998,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
|
|
|
104952
104998
|
}], propDecorators: { canEdit: [{ type: i0.Input, args: [{ isSignal: true, alias: "canEdit", required: false }] }], slideIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "slideIndex", required: false }] }], selectedElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedElement", required: false }] }] } });
|
|
104953
104999
|
|
|
104954
105000
|
// Generated by scripts/inline-shared.mjs from package.json. Do not edit.
|
|
104955
|
-
const PPTX_ANGULAR_VIEWER_VERSION = "2.
|
|
105001
|
+
const PPTX_ANGULAR_VIEWER_VERSION = "2.19.1";
|
|
104956
105002
|
|
|
104957
105003
|
/**
|
|
104958
105004
|
* account-page.component.ts: File > Account content.
|
|
@@ -130037,19 +130083,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
|
|
|
130037
130083
|
/** Read a control's current primitive value off the options snapshot. */
|
|
130038
130084
|
function readOptionValue(options, control) {
|
|
130039
130085
|
const group = options[control.group];
|
|
130086
|
+
// oxlint-disable-next-line eslint/one-var -- distinct concern from the lookup above, forcing one statement hurts readability
|
|
130040
130087
|
const value = group[control.key];
|
|
130041
130088
|
return typeof value === 'boolean' || typeof value === 'number' || typeof value === 'string'
|
|
130042
130089
|
? value
|
|
130043
130090
|
: undefined;
|
|
130044
130091
|
}
|
|
130045
|
-
/** Clamp a number-control edit into its schema range (NaN falls to min). */
|
|
130046
|
-
function clampOptionNumber(raw, min, max) {
|
|
130047
|
-
const parsed = Number(raw);
|
|
130048
|
-
if (!Number.isFinite(parsed)) {
|
|
130049
|
-
return min;
|
|
130050
|
-
}
|
|
130051
|
-
return Math.min(max, Math.max(min, parsed));
|
|
130052
|
-
}
|
|
130053
130092
|
class OptionsPaneComponent {
|
|
130054
130093
|
constructor() {
|
|
130055
130094
|
this.tab = input.required(/* @ts-ignore */
|
|
@@ -130086,8 +130125,10 @@ class OptionsPaneComponent {
|
|
|
130086
130125
|
if (control.kind !== 'number') {
|
|
130087
130126
|
return;
|
|
130088
130127
|
}
|
|
130089
|
-
const
|
|
130090
|
-
|
|
130128
|
+
const clamped = clampOptionNumber(event.target.value, control.min, control.max);
|
|
130129
|
+
if (clamped !== undefined) {
|
|
130130
|
+
this.emit(control, clamped);
|
|
130131
|
+
}
|
|
130091
130132
|
}
|
|
130092
130133
|
emitText(control, event) {
|
|
130093
130134
|
this.emit(control, event.target.value);
|
|
@@ -133744,16 +133785,33 @@ class PowerPointViewerComponent {
|
|
|
133744
133785
|
}
|
|
133745
133786
|
}
|
|
133746
133787
|
/**
|
|
133747
|
-
* Mobile
|
|
133748
|
-
*
|
|
133749
|
-
* the
|
|
133750
|
-
*
|
|
133788
|
+
* Mobile bottom-bar tap: decide the next sheet with shared's `toggleSheet`
|
|
133789
|
+
* (via `applyMobileBarSheetTap`), same priority every binding follows -
|
|
133790
|
+
* tapping the open sheet closes it, tapping a different one switches to it.
|
|
133791
|
+
* `mobileSheetSvc` and `inspectorPanel` back different bar slots (slides/
|
|
133792
|
+
* notes vs. format/comments), so this is the one place that coordinates
|
|
133793
|
+
* both from the shared decision.
|
|
133751
133794
|
*/
|
|
133752
|
-
|
|
133753
|
-
this.
|
|
133754
|
-
|
|
133755
|
-
|
|
133756
|
-
|
|
133795
|
+
applyMobileSheetTap(tapped) {
|
|
133796
|
+
applyMobileBarSheetTap(tapped, this.mobileBarSheet(), {
|
|
133797
|
+
openSlides: () => this.mobileSheetSvc.mobileSheet.set('slides'),
|
|
133798
|
+
// Close any tool panel, clear the mobile-closed default, and undo a
|
|
133799
|
+
// prior swipe-down dismissal so the format pane surfaces (with an
|
|
133800
|
+
// element selected it shows the element inspector, otherwise slide
|
|
133801
|
+
// properties).
|
|
133802
|
+
openInspector: () => this.inspectorPanel.openFormatPanel(),
|
|
133803
|
+
openComments: () => {
|
|
133804
|
+
this.inspectorPanel.activePanel.set('comments');
|
|
133805
|
+
this.inspectorPanel.mobileInspectorHidden.set(false);
|
|
133806
|
+
},
|
|
133807
|
+
openNotes: () => this.mobileSheetSvc.showNotes.set(true),
|
|
133808
|
+
closeAll: () => {
|
|
133809
|
+
this.mobileSheetSvc.mobileSheet.set(null);
|
|
133810
|
+
this.mobileSheetSvc.showNotes.set(false);
|
|
133811
|
+
this.inspectorPanel.activePanel.set(null);
|
|
133812
|
+
this.inspectorPanel.formatPanelClosed.set(true);
|
|
133813
|
+
},
|
|
133814
|
+
});
|
|
133757
133815
|
}
|
|
133758
133816
|
/** Receive draw-tool state changes from the ribbon Draw tab. */
|
|
133759
133817
|
onDrawToolChange(state) {
|
|
@@ -134688,15 +134746,11 @@ class PowerPointViewerComponent {
|
|
|
134688
134746
|
[slideCount]="slideCount()"
|
|
134689
134747
|
[commentCount]="activeComments().length"
|
|
134690
134748
|
[activeSheet]="mobileBarSheet()"
|
|
134691
|
-
(openSlides)="
|
|
134692
|
-
mobileSheetSvc.mobileSheet.set(
|
|
134693
|
-
mobileSheetSvc.mobileSheet() === 'slides' ? null : 'slides'
|
|
134694
|
-
)
|
|
134695
|
-
"
|
|
134749
|
+
(openSlides)="applyMobileSheetTap('slides')"
|
|
134696
134750
|
(insert)="mobileSheetSvc.onMobileInsert()"
|
|
134697
|
-
(openFormat)="
|
|
134698
|
-
(openComments)="
|
|
134699
|
-
(notes)="
|
|
134751
|
+
(openFormat)="applyMobileSheetTap('inspector')"
|
|
134752
|
+
(openComments)="applyMobileSheetTap('comments')"
|
|
134753
|
+
(notes)="applyMobileSheetTap('notes')"
|
|
134700
134754
|
/>
|
|
134701
134755
|
}
|
|
134702
134756
|
</div>
|
|
@@ -135626,15 +135680,11 @@ i0.ɵɵngDeclareClassMetadataAsync({ minVersion: "18.0.0", version: "22.1.2", ng
|
|
|
135626
135680
|
[slideCount]="slideCount()"
|
|
135627
135681
|
[commentCount]="activeComments().length"
|
|
135628
135682
|
[activeSheet]="mobileBarSheet()"
|
|
135629
|
-
(openSlides)="
|
|
135630
|
-
mobileSheetSvc.mobileSheet.set(
|
|
135631
|
-
mobileSheetSvc.mobileSheet() === 'slides' ? null : 'slides'
|
|
135632
|
-
)
|
|
135633
|
-
"
|
|
135683
|
+
(openSlides)="applyMobileSheetTap('slides')"
|
|
135634
135684
|
(insert)="mobileSheetSvc.onMobileInsert()"
|
|
135635
|
-
(openFormat)="
|
|
135636
|
-
(openComments)="
|
|
135637
|
-
(notes)="
|
|
135685
|
+
(openFormat)="applyMobileSheetTap('inspector')"
|
|
135686
|
+
(openComments)="applyMobileSheetTap('comments')"
|
|
135687
|
+
(notes)="applyMobileSheetTap('notes')"
|
|
135638
135688
|
/>
|
|
135639
135689
|
}
|
|
135640
135690
|
</div>
|
|
@@ -137941,4 +137991,4 @@ function cn(...values) {
|
|
|
137941
137991
|
*/
|
|
137942
137992
|
|
|
137943
137993
|
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$1 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, asMediaElement as e7, assignUserColor as e8, attachShowVisibilityPause as e9, buildEquationSegment as eA, buildFallbackViewModel as eB, buildFontFaceRule as eC, buildGradientFillCss as eD, buildGridlinesAndLabels as eE, buildHyperlinkPatch as eF, buildInkContainerStyle as eG, buildInkStrokes as eH, buildLegend as eI, buildMarkTooltip 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_, attachTouchGestures as ea, axisTickValues as eb, beginNodeEdit as ec, bevelSizePatch as ed, boolFromEvent as ee, bringForward as ef, bringToFront as eg, buildBarActions as eh, buildBroadcastConfig as ei, buildBroadcastViewerUrl as ej, buildCategoryLabels as ek, buildCellParagraphs as el, buildChartViewModel as em, buildChatLogExport as en, buildChatLogMarkdown as eo, buildChromeStyle as ep, buildClearHyperlinkPatch as eq, buildClickGroups as er, buildColStyles as es, buildCollaborationConfig as et, buildComboViewModel as eu, buildCssGradientFromShapeStyle as ev, buildDuotoneFilter as ew, buildDuotoneFilterId as ex, buildEmbeddedFontStyles as ey, buildEquationElement 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, formatCursorLabel 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, exitPresentationFullscreen as gK, exportAiChatLogs as gL, extractPathPoints as gM, eyedropperAvailable as gN, fillColorOf$1 as gO, findInSlides as gP, findOwningSlideIndex as gQ, findSlideIndexByElementId as gR, firstVisibleIndex as gS, fitPolynomial as gT, fitZoom as gU, focusTargetChips as gV, fontMimeForFormat as gW, fontSizeOf as gX, forgetSessionDeck as gY, formatAxisValue as gZ, formatBytes 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, isLegacyBinaryPresentation as h$, formatElapsed as h0, formatFileSize as h1, formatPropertyDate as h2, formatTime as h3, fpsToFrameIntervalMs as h4, generateBroadcastRoomId as h5, generateCommentId as h6, generateCustomShowId as h7, generatePressureCircles as h8, generateTicks as h9, getWarpCategory as hA, getWarpPath as hB, gradientStateFromStyle as hC, gradientStateOf as hD, gradientStatePatch as hE, gridColumns as hF, groupIssuesBySeverity as hG, hasAnimation as hH, hasCopyableFormat as hI, hasExistingLink as hJ, hasExitedFullscreen as hK, hasGradientFill as hL, hasPressureVariation as hM, hasVisibleSlideAfter as hN, headerLabel as hO, imageDimensions as hP, inkViewBox as hQ, insertTableElementColumn as hR, insertTableElementRow as hS, interpolateWidth as hT, isAudienceTab as hU, isBold as hV, isBrowserOpenableMime as hW, isChildNode as hX, isElementInteractive as hY, isInjectableUrl as hZ, isItalic as h_, getClrChangeParams as ha, getContainerStyle as hb, getDuotoneFilterDef as hc, getImageSrc as hd, getLocalStorageUsageSummary as he, getOleAriaLabel as hf, getOleBadgeLabel as hg, getOleDisplayName as hh, getOleDownloadFileName as hi, getOleTypeColor as hj, getOleTypeLabel as hk, getPasswordStrength as hl, getPatternSvg as hm, getPlaceholderStyle as hn, getVersions as ho, getResolvedShapeClipPath as hp, getResolvedShapeClipPathFor as hq, getSessionTabId as hr, getShapeFillStrokeStyle as hs, getSlideBackgroundStyle as ht, getSlideTransitionAnimations as hu, getSmartArtNodeBounds as hv, getSpeechRecognitionCtor as hw, getTextBlockStyle as hx, getTextWarp as hy, getTouchDistance as hz, ActionSettingsPanelComponent as i, partitionSlides as i$, isPpactionUrl as i0, isPresenterMessage as i1, isSigned as i2, isSupportedPresentationFile as i3, isTextElement as i4, isTwoTableFocus as i5, isUnderline as i6, isUrlSafe as i7, isValidRoomId as i8, isViewportBackgroundPressTarget as i9, narrowToRect as iA, newChartElement as iB, newEquationElement as iC, newPresetShapeElement as iD, newShapeElement as iE, newSmartArtElement as iF, newTableElement as iG, newTextElement as iH, nextVisibleIndex as iI, nodeBold as iJ, nodeEditBox as iK, nodeFillColor as iL, nodeFontColor as iM, nodeIdFromKey as iN, nodeItalic as iO, nodeStyle as iP, normalizeFontFormat as iQ, normalizeSlidesPerPage as iR, normalizeValue as iS, numFromEvent as iT, ommlToMathml as iU, ooxmlDashToCssBorderStyle as iV, openNativeEyeDropper as iW, overallStatus as iX, paletteColor as iY, parseAudienceNonce as iZ, parseNodeTextarea as i_, isZoomActivationKey as ia, issueTrackKey as ib, issueTypeLabel as ic, keyToLabel as id, lastVisibleIndex as ie, latexToMathml as ig, layoutConnectorPaints as ih, layoutNodeLabels as ii, linePointsToSvgString as ij, lineSpacingPatch as ik, loadAudienceContent as il, loadSessionDeck as im, mediaFallbackFor as io, mediaSurfaceFor as ip, mergeCaptionResults as iq, mergeDown as ir, mergeRight as is, mergeSelection as it, moveElementBy as iu, moveNodeDown as iv, moveNodeUp as iw, msToFrameDelayCs as ix, narrowToCircle as iy, narrowToPolygon as iz, AdvancedChartEditorComponent as j, rowStyle as j$, patchChartData as j0, patchChartStyle as j1, patchTableData as j2, patchTextStyle as j3, patternPresetOptions as j4, pendingElementStyles as j5, pickColorByClickFallback as j6, pickFile as j7, pickSupportedMimeType as j8, planGifFrames as j9, removeTableElementRow as jA, removeSeries as jB, renderToCanvas as jC, reorderAnimationDown as jD, reorderAnimationUp as jE, replaceInSlides as jF, replaceMatch as jG, requestPresentationFullscreen as jH, resizeElement as jI, resolveCaptionTracks as jJ, resolveChartKind as jK, resolveFontVariant as jL, resolveHyperlinkHref as jM, resolveInteractiveElementId as jN, resolveMediaSrc as jO, resolveOleType as jP, resolveParagraphBullet as jQ, resolvePresenterNotes as jR, resolveProfileInitial as jS, resolveRegionCode as jT, resolveSlideAutoAdvanceMs as jU, resolvePalette as jV, resolveThemeCatalogEntry as jW, resolveTransitionDuration as jX, restoreSessionDeck as jY, revealedElementStyles as jZ, routeOrthogonalConnector as j_, planVideoSegments as ja, pointsToSvgPathD as jb, presenceToCursors as jc, presentationBaseName as jd, presentationStageStyle as je, presenterTimerProgress as jf, presetByLayout as jg, presetsForCategory as jh, pressuresToWidths as ji, prevVisibleIndex as jj, projectDrawingShapes as jk, promoteNode as jl, provideViewerTheme as jm, radarAngle as jn, radarRingPoints as jo, readAsDataUrl as jp, recordWebm as jq, registerCrossSlideAudio as jr, rememberSessionDeck as js, removeAnimation as jt, removeCategory as ju, removeTableElementColumn as jv, removeCommentFromList as jw, removeElementAnimation as jx, removeGradientStopPatch as jy, removeNode as jz, AiChangeOverlayComponent as k, shouldUseSvgWarp as k$, rulerDragToGuidePosition as k0, rulerHighlight as k1, rulerStripTicks as k2, sampleColorFromSlide as k3, sanitizeColor as k4, sanitizeSlideIndex as k5, sanitizeUserName as k6, saveViewerProfile as k7, savedPresentationFileName as k8, scanAvailableFonts as k9, setDelay as kA, setDirection as kB, setDuration as kC, setElementPosition as kD, setGridlineStyle as kE, setLayout as kF, setLegend as kG, setNodeStyle as kH, setNodeText as kI, setRepeatCount as kJ, setRepeatMode as kK, setSequence as kL, setSeriesChartType as kM, setSeriesColor as kN, setSeriesErrorBars as kO, setSeriesMarker as kP, setSeriesName as kQ, setSeriesTrendline as kR, setSeriesValue as kS, setStyle as kT, setTimingCurve as kU, setTitle as kV, setTrigger as kW, setTriggerShapeId as kX, shapeStylePatch$1 as kY, sheetAfterNavigate as kZ, shouldBlockClickAdvance as k_, searchSlides as ka, seedBroadcastFields as kb, seedHyperlinkDraft as kc, seedPropertiesDraft as kd, seedShareFields as ke, segmentFrameCount as kf, selectValue$2 as kg, sendBackward as kh, sendToBack as ki, sequentialColorScale as kj, serializeWriteBack as kk, seriesColor as kl, setAnimationEmphasis as km, setAnimationEntrance as kn, setAnimationExit as ko, setAxis as kp, setAxisLogScale as kq, setAxisTitleStyle as kr, setCategoryLabel as ks, setCellText as kt, setColorScheme as ku, setDataLabels as kv, setDataPointExplosion as kw, setDataPointFill as kx, setDataPointLabel as ky, setDataPointMarker as kz, AiChatPanelComponent as l, showDirectionPicker as l0, showsTemplateAffordance as l1, signatureCountLabel as l2, signatureKey as l3, signatureTimestamp as l4, signerName as l5, statusLabel as l6, slideNumberOf as l7, slidesWithReappliedLayout as l8, smartArtNodes as l9, toggleSheet as lA, topLevelNodeCount as lB, transformSelectedTextCase as lC, translationsEn as lD, updateElementById as lE, updateGlowPatch as lF, updateGradientStopPatch as lG, updateInnerShadowPatch as lH, updateOuterShadowPatch as lI, updateReflectionPatch as lJ, vAlignPatch as lK, validatePassword as lL, validatePrintSettings as lM, validateRoomId as lN, valueToY as lO, vermilionDarkColors as lP, vermilionDarkTheme as lQ, vermilionLightColors as lR, vermilionLightTheme as lS, vermilionRadius as lT, waypointsToPathD as lU, worstStatus as lV, zoomTargetSlideIndex as lW, paletteColour as la, snapToGridStep as lb, splitCursorCell as lc, splitMergedCell as ld, statusKind as le, statusLabel$1 as lf, storeAudienceContent as lg, stringFromEvent$5 as lh, strokeColorOf as li, strokeToInkElement as lj, strokeWidthOf as lk, styleShadowFilter as ll, textAdvancedPatch as lm, textAdvancedStateFromStyle as ln, textAdvancedStateOf as lo, textColorOf as lp, textDirectionPatch as lq, textStyleOf as lr, textStylePatch as ls, themeStyle as lt, themeToCssVars as lu, thumbnailHeight as lv, thumbnailZoom as lw, toggleCommentResolvedInList as lx, toggleNodeBold as ly, toggleNodeItalic 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 };
|
|
137944
|
-
//# sourceMappingURL=pptx-angular-viewer-pptx-angular-viewer-
|
|
137994
|
+
//# sourceMappingURL=pptx-angular-viewer-pptx-angular-viewer-Dp3kBdl8.mjs.map
|