pptx-angular-viewer 1.1.59 → 1.1.61
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.
|
@@ -22215,6 +22215,14 @@ function getDraggedShapeAdjustmentValue(state, deltaX) {
|
|
|
22215
22215
|
*/
|
|
22216
22216
|
/** Maximum time (ms) to wait for an initial WebSocket connection before giving up. */
|
|
22217
22217
|
const CONNECTION_TIMEOUT_MS = 30_000;
|
|
22218
|
+
/**
|
|
22219
|
+
* Grace period (ms) before the first local doc write when the provider has not
|
|
22220
|
+
* signalled initial sync. Websocket providers emit 'synced' reliably; webrtc
|
|
22221
|
+
* only syncs once a peer is present, so a lone (fresh-room) peer seeds the doc
|
|
22222
|
+
* after this delay instead. Gating the first write prevents a late joiner's
|
|
22223
|
+
* bootstrap deck from merging into a room whose real content has not arrived.
|
|
22224
|
+
*/
|
|
22225
|
+
const INITIAL_SYNC_GRACE_MS = 3_000;
|
|
22218
22226
|
/** Heartbeat interval (ms): re-publish presence so peers don't time us out. */
|
|
22219
22227
|
const PRESENCE_HEARTBEAT_MS = 10_000;
|
|
22220
22228
|
/** Minimum interval (ms) between outgoing presence broadcasts (rate limiting). */
|
|
@@ -23174,6 +23182,58 @@ function reconcileSlidesInYDoc(slides, ydoc, factories, origin = LOCAL_SYNC_ORIG
|
|
|
23174
23182
|
}, origin);
|
|
23175
23183
|
}
|
|
23176
23184
|
|
|
23185
|
+
/**
|
|
23186
|
+
* collaboration-sync-gate.ts: first-write gate for collaborative sessions.
|
|
23187
|
+
*
|
|
23188
|
+
* Until a provider confirms its initial document sync, local state must not
|
|
23189
|
+
* be written into the shared doc: a late joiner bootstrapped with a
|
|
23190
|
+
* placeholder deck would otherwise merge that placeholder into the room's
|
|
23191
|
+
* real content. Websocket providers emit a reliable 'synced' event; y-webrtc
|
|
23192
|
+
* only syncs when a peer is present, so a lone fresh-room peer opens the gate
|
|
23193
|
+
* after {@link INITIAL_SYNC_GRACE_MS} instead and seeds the empty doc.
|
|
23194
|
+
*
|
|
23195
|
+
* Usage per binding: create the gate with an `onOpen` callback that performs
|
|
23196
|
+
* the deferred first write, call `arm()` when the provider is created (and on
|
|
23197
|
+
* (re)connect), `open()` from the provider's sync event, gate local writes on
|
|
23198
|
+
* `isOpen()`, and `reset()` on session teardown.
|
|
23199
|
+
*/
|
|
23200
|
+
/**
|
|
23201
|
+
* Create a first-write gate. `onOpen` fires exactly once per session (until
|
|
23202
|
+
* `reset()`), from either the provider sync signal or the grace timer.
|
|
23203
|
+
*/
|
|
23204
|
+
function createSyncGate(onOpen, graceMs = INITIAL_SYNC_GRACE_MS) {
|
|
23205
|
+
let opened = false;
|
|
23206
|
+
let timer = null;
|
|
23207
|
+
const clear = () => {
|
|
23208
|
+
if (timer !== null) {
|
|
23209
|
+
clearTimeout(timer);
|
|
23210
|
+
timer = null;
|
|
23211
|
+
}
|
|
23212
|
+
};
|
|
23213
|
+
const open = () => {
|
|
23214
|
+
clear();
|
|
23215
|
+
if (opened) {
|
|
23216
|
+
return;
|
|
23217
|
+
}
|
|
23218
|
+
opened = true;
|
|
23219
|
+
onOpen();
|
|
23220
|
+
};
|
|
23221
|
+
return {
|
|
23222
|
+
isOpen: () => opened,
|
|
23223
|
+
arm: () => {
|
|
23224
|
+
clear();
|
|
23225
|
+
if (!opened) {
|
|
23226
|
+
timer = setTimeout(open, graceMs);
|
|
23227
|
+
}
|
|
23228
|
+
},
|
|
23229
|
+
open,
|
|
23230
|
+
reset: () => {
|
|
23231
|
+
clear();
|
|
23232
|
+
opened = false;
|
|
23233
|
+
},
|
|
23234
|
+
};
|
|
23235
|
+
}
|
|
23236
|
+
|
|
23177
23237
|
// ---------------------------------------------------------------------------
|
|
23178
23238
|
// Tuning constants (px tolerances for position / size changes)
|
|
23179
23239
|
// ---------------------------------------------------------------------------
|
|
@@ -35818,6 +35878,14 @@ class CollaborationService {
|
|
|
35818
35878
|
connectTimer = null;
|
|
35819
35879
|
unobserveSlides = null;
|
|
35820
35880
|
writeBack = new WriteBackScheduler();
|
|
35881
|
+
/**
|
|
35882
|
+
* First-write gate: local broadcasts are suppressed (captured as pending)
|
|
35883
|
+
* until the provider confirms its initial sync or the grace period lifts
|
|
35884
|
+
* the gate, so a late joiner never seeds its placeholder deck into a room
|
|
35885
|
+
* whose real content has not arrived yet.
|
|
35886
|
+
*/
|
|
35887
|
+
syncGate = createSyncGate(() => this.flushPendingBroadcast());
|
|
35888
|
+
pendingBroadcast = null;
|
|
35821
35889
|
onRemoteSlides = null;
|
|
35822
35890
|
canvasWidth = DEFAULT_CANVAS_BOUND;
|
|
35823
35891
|
canvasHeight = DEFAULT_CANVAS_BOUND;
|
|
@@ -35881,6 +35949,8 @@ class CollaborationService {
|
|
|
35881
35949
|
this.awareness.on('change', this.refreshPresence);
|
|
35882
35950
|
this.awareness.on('update', this.refreshPresence);
|
|
35883
35951
|
this.wireStatus(config);
|
|
35952
|
+
this.syncGate.reset();
|
|
35953
|
+
this.wireSynced();
|
|
35884
35954
|
this.unobserveSlides = observeYDocSlides(this.ydoc, (_events, transaction) => this.onRemoteChange(transaction));
|
|
35885
35955
|
this.active.set(true);
|
|
35886
35956
|
this.refreshPresence();
|
|
@@ -35937,6 +36007,50 @@ class CollaborationService {
|
|
|
35937
36007
|
}
|
|
35938
36008
|
}, CONNECTION_TIMEOUT_MS);
|
|
35939
36009
|
}
|
|
36010
|
+
/**
|
|
36011
|
+
* Open the first-write gate on the provider's initial-sync confirmation.
|
|
36012
|
+
* y-websocket emits 'sync' with a boolean; y-webrtc emits 'synced' with an
|
|
36013
|
+
* object carrying a `synced` flag (and only once a peer syncs, hence the
|
|
36014
|
+
* grace timer). Listen to both; opening is idempotent.
|
|
36015
|
+
*/
|
|
36016
|
+
wireSynced() {
|
|
36017
|
+
const provider = this.provider;
|
|
36018
|
+
if (!provider) {
|
|
36019
|
+
return;
|
|
36020
|
+
}
|
|
36021
|
+
const handle = (payload) => {
|
|
36022
|
+
const flag = payload;
|
|
36023
|
+
const isSynced = typeof flag === 'boolean' ? flag : flag?.synced !== false;
|
|
36024
|
+
if (isSynced) {
|
|
36025
|
+
this.syncGate.open();
|
|
36026
|
+
}
|
|
36027
|
+
};
|
|
36028
|
+
provider.on('sync', handle);
|
|
36029
|
+
provider.on('synced', handle);
|
|
36030
|
+
if (provider.synced === true) {
|
|
36031
|
+
this.syncGate.open();
|
|
36032
|
+
}
|
|
36033
|
+
else {
|
|
36034
|
+
this.syncGate.arm();
|
|
36035
|
+
}
|
|
36036
|
+
}
|
|
36037
|
+
/**
|
|
36038
|
+
* Perform the deferred first broadcast once the gate opens. When the doc is
|
|
36039
|
+
* still empty (fresh room, or nobody else present), clear the baseline so
|
|
36040
|
+
* the pending deck actually seeds it; when remote content already arrived,
|
|
36041
|
+
* the pending deck matches the applied baseline and the write is a no-op.
|
|
36042
|
+
*/
|
|
36043
|
+
flushPendingBroadcast() {
|
|
36044
|
+
const pending = this.pendingBroadcast;
|
|
36045
|
+
this.pendingBroadcast = null;
|
|
36046
|
+
if (!pending || !this.ydoc || !this.yFactories) {
|
|
36047
|
+
return;
|
|
36048
|
+
}
|
|
36049
|
+
if (this.ydoc.getArray(YDOC_SLIDES_KEY).length === 0) {
|
|
36050
|
+
this.lastSynced = '';
|
|
36051
|
+
}
|
|
36052
|
+
this.broadcastSlides(pending);
|
|
36053
|
+
}
|
|
35940
36054
|
/** Handle a remote Y.Doc change, skipping our own local-origin transactions. */
|
|
35941
36055
|
onRemoteChange(transaction) {
|
|
35942
36056
|
if (transaction?.origin === LOCAL_SYNC_ORIGIN || this.applyingRemote || !this.ydoc) {
|
|
@@ -35956,6 +36070,8 @@ class CollaborationService {
|
|
|
35956
36070
|
}
|
|
35957
36071
|
disconnect() {
|
|
35958
36072
|
this.clearConnectTimer();
|
|
36073
|
+
this.syncGate.reset();
|
|
36074
|
+
this.pendingBroadcast = null;
|
|
35959
36075
|
this.writeBack.cancel();
|
|
35960
36076
|
this.unobserveSlides?.();
|
|
35961
36077
|
this.unobserveSlides = null;
|
|
@@ -35999,6 +36115,12 @@ class CollaborationService {
|
|
|
35999
36115
|
if (!this.ydoc || !this.yFactories || this.applyingRemote || slides.length === 0) {
|
|
36000
36116
|
return;
|
|
36001
36117
|
}
|
|
36118
|
+
if (!this.syncGate.isOpen()) {
|
|
36119
|
+
// Defer until the initial sync confirms; the gate flushes the latest
|
|
36120
|
+
// pending deck when it opens.
|
|
36121
|
+
this.pendingBroadcast = slides;
|
|
36122
|
+
return;
|
|
36123
|
+
}
|
|
36002
36124
|
const s = JSON.stringify(slides);
|
|
36003
36125
|
if (s === this.lastSynced) {
|
|
36004
36126
|
return;
|
|
@@ -45267,7 +45389,7 @@ class EffectsPanelComponent {
|
|
|
45267
45389
|
(change)="onOuterShadowField('color', $event)"
|
|
45268
45390
|
/>
|
|
45269
45391
|
<label class="pptx-ng-fx__label" for="fx-os-opacity">{{
|
|
45270
|
-
'pptx.
|
|
45392
|
+
'pptx.inspector.opacity' | translate
|
|
45271
45393
|
}}</label>
|
|
45272
45394
|
<input
|
|
45273
45395
|
id="fx-os-opacity"
|
|
@@ -45350,7 +45472,7 @@ class EffectsPanelComponent {
|
|
|
45350
45472
|
(change)="onInnerShadowField('color', $event)"
|
|
45351
45473
|
/>
|
|
45352
45474
|
<label class="pptx-ng-fx__label" for="fx-is-opacity">{{
|
|
45353
|
-
'pptx.
|
|
45475
|
+
'pptx.inspector.opacity' | translate
|
|
45354
45476
|
}}</label>
|
|
45355
45477
|
<input
|
|
45356
45478
|
id="fx-is-opacity"
|
|
@@ -45443,7 +45565,7 @@ class EffectsPanelComponent {
|
|
|
45443
45565
|
(change)="onGlowField('radius', $event)"
|
|
45444
45566
|
/>
|
|
45445
45567
|
<label class="pptx-ng-fx__label" for="fx-glow-opacity">{{
|
|
45446
|
-
'pptx.
|
|
45568
|
+
'pptx.inspector.opacity' | translate
|
|
45447
45569
|
}}</label>
|
|
45448
45570
|
<input
|
|
45449
45571
|
id="fx-glow-opacity"
|
|
@@ -45605,7 +45727,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
45605
45727
|
(change)="onOuterShadowField('color', $event)"
|
|
45606
45728
|
/>
|
|
45607
45729
|
<label class="pptx-ng-fx__label" for="fx-os-opacity">{{
|
|
45608
|
-
'pptx.
|
|
45730
|
+
'pptx.inspector.opacity' | translate
|
|
45609
45731
|
}}</label>
|
|
45610
45732
|
<input
|
|
45611
45733
|
id="fx-os-opacity"
|
|
@@ -45688,7 +45810,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
45688
45810
|
(change)="onInnerShadowField('color', $event)"
|
|
45689
45811
|
/>
|
|
45690
45812
|
<label class="pptx-ng-fx__label" for="fx-is-opacity">{{
|
|
45691
|
-
'pptx.
|
|
45813
|
+
'pptx.inspector.opacity' | translate
|
|
45692
45814
|
}}</label>
|
|
45693
45815
|
<input
|
|
45694
45816
|
id="fx-is-opacity"
|
|
@@ -45781,7 +45903,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
45781
45903
|
(change)="onGlowField('radius', $event)"
|
|
45782
45904
|
/>
|
|
45783
45905
|
<label class="pptx-ng-fx__label" for="fx-glow-opacity">{{
|
|
45784
|
-
'pptx.
|
|
45906
|
+
'pptx.inspector.opacity' | translate
|
|
45785
45907
|
}}</label>
|
|
45786
45908
|
<input
|
|
45787
45909
|
id="fx-glow-opacity"
|
|
@@ -46668,7 +46790,7 @@ class SmartArtPropertiesComponent {
|
|
|
46668
46790
|
|
|
46669
46791
|
<!-- ── Layout switcher ──────────────────────────────────────────── -->
|
|
46670
46792
|
<div class="pptx-sa-props__field">
|
|
46671
|
-
<span class="pptx-sa-props__label">{{ 'pptx.
|
|
46793
|
+
<span class="pptx-sa-props__label">{{ 'pptx.master.layout' | translate }}</span>
|
|
46672
46794
|
<div
|
|
46673
46795
|
class="pptx-sa-props__layouts"
|
|
46674
46796
|
role="group"
|
|
@@ -46760,7 +46882,7 @@ class SmartArtPropertiesComponent {
|
|
|
46760
46882
|
class="pptx-sa-props__node-input"
|
|
46761
46883
|
[disabled]="!canEdit()"
|
|
46762
46884
|
[value]="node.text"
|
|
46763
|
-
[attr.placeholder]="'pptx.
|
|
46885
|
+
[attr.placeholder]="'pptx.smartArt.nodePlaceholder' | translate"
|
|
46764
46886
|
(change)="onNodeText($event, node.id)"
|
|
46765
46887
|
(keydown)="onNodeKeydown($event, node.id)"
|
|
46766
46888
|
/>
|
|
@@ -46769,7 +46891,7 @@ class SmartArtPropertiesComponent {
|
|
|
46769
46891
|
<button
|
|
46770
46892
|
type="button"
|
|
46771
46893
|
class="pptx-sa-props__icon"
|
|
46772
|
-
[title]="'pptx.
|
|
46894
|
+
[title]="'pptx.smartArt.addSubItem' | translate"
|
|
46773
46895
|
[disabled]="!canEdit()"
|
|
46774
46896
|
(click)="onAddSubItem(node.id)"
|
|
46775
46897
|
>
|
|
@@ -46797,7 +46919,7 @@ class SmartArtPropertiesComponent {
|
|
|
46797
46919
|
<button
|
|
46798
46920
|
type="button"
|
|
46799
46921
|
class="pptx-sa-props__icon"
|
|
46800
|
-
[title]="'pptx.
|
|
46922
|
+
[title]="'pptx.smartArt.moveUp' | translate"
|
|
46801
46923
|
[disabled]="!canEdit()"
|
|
46802
46924
|
(click)="onMoveUp(node.id)"
|
|
46803
46925
|
>
|
|
@@ -46806,7 +46928,7 @@ class SmartArtPropertiesComponent {
|
|
|
46806
46928
|
<button
|
|
46807
46929
|
type="button"
|
|
46808
46930
|
class="pptx-sa-props__icon"
|
|
46809
|
-
[title]="'pptx.
|
|
46931
|
+
[title]="'pptx.smartArt.moveDown' | translate"
|
|
46810
46932
|
[disabled]="!canEdit()"
|
|
46811
46933
|
(click)="onMoveDown(node.id)"
|
|
46812
46934
|
>
|
|
@@ -46818,7 +46940,7 @@ class SmartArtPropertiesComponent {
|
|
|
46818
46940
|
[title]="
|
|
46819
46941
|
!isChild(node) && !canRemoveItem()
|
|
46820
46942
|
? boundsHint()
|
|
46821
|
-
: ('pptx.
|
|
46943
|
+
: ('pptx.smartArt.remove' | translate)
|
|
46822
46944
|
"
|
|
46823
46945
|
[disabled]="
|
|
46824
46946
|
!canEdit() || nodes().length <= 1 || (!isChild(node) && !canRemoveItem())
|
|
@@ -46833,7 +46955,7 @@ class SmartArtPropertiesComponent {
|
|
|
46833
46955
|
<div class="pptx-sa-props__node-style">
|
|
46834
46956
|
<label class="pptx-sa-props__swatch" [title]="'pptx.smartart.nodeFill' | translate">
|
|
46835
46957
|
<span class="pptx-sa-props__swatch-label">{{
|
|
46836
|
-
'pptx.
|
|
46958
|
+
'pptx.smartArt.fill' | translate
|
|
46837
46959
|
}}</span>
|
|
46838
46960
|
<input
|
|
46839
46961
|
type="color"
|
|
@@ -46845,7 +46967,7 @@ class SmartArtPropertiesComponent {
|
|
|
46845
46967
|
</label>
|
|
46846
46968
|
<label class="pptx-sa-props__swatch" [title]="'pptx.smartart.nodeFont' | translate">
|
|
46847
46969
|
<span class="pptx-sa-props__swatch-label">{{
|
|
46848
|
-
'pptx.
|
|
46970
|
+
'pptx.textPanel.font' | translate
|
|
46849
46971
|
}}</span>
|
|
46850
46972
|
<input
|
|
46851
46973
|
type="color"
|
|
@@ -46858,7 +46980,7 @@ class SmartArtPropertiesComponent {
|
|
|
46858
46980
|
<button
|
|
46859
46981
|
type="button"
|
|
46860
46982
|
class="pptx-sa-props__icon pptx-sa-props__style-toggle"
|
|
46861
|
-
[title]="'pptx.
|
|
46983
|
+
[title]="'pptx.inspector.bold' | translate"
|
|
46862
46984
|
[class.is-active]="nodeIsBold(node)"
|
|
46863
46985
|
[attr.aria-pressed]="nodeIsBold(node)"
|
|
46864
46986
|
[disabled]="!canEdit()"
|
|
@@ -46869,7 +46991,7 @@ class SmartArtPropertiesComponent {
|
|
|
46869
46991
|
<button
|
|
46870
46992
|
type="button"
|
|
46871
46993
|
class="pptx-sa-props__icon pptx-sa-props__style-toggle"
|
|
46872
|
-
[title]="'pptx.
|
|
46994
|
+
[title]="'pptx.inspector.italic' | translate"
|
|
46873
46995
|
[class.is-active]="nodeIsItalic(node)"
|
|
46874
46996
|
[attr.aria-pressed]="nodeIsItalic(node)"
|
|
46875
46997
|
[disabled]="!canEdit()"
|
|
@@ -46894,7 +47016,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
46894
47016
|
|
|
46895
47017
|
<!-- ── Layout switcher ──────────────────────────────────────────── -->
|
|
46896
47018
|
<div class="pptx-sa-props__field">
|
|
46897
|
-
<span class="pptx-sa-props__label">{{ 'pptx.
|
|
47019
|
+
<span class="pptx-sa-props__label">{{ 'pptx.master.layout' | translate }}</span>
|
|
46898
47020
|
<div
|
|
46899
47021
|
class="pptx-sa-props__layouts"
|
|
46900
47022
|
role="group"
|
|
@@ -46986,7 +47108,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
46986
47108
|
class="pptx-sa-props__node-input"
|
|
46987
47109
|
[disabled]="!canEdit()"
|
|
46988
47110
|
[value]="node.text"
|
|
46989
|
-
[attr.placeholder]="'pptx.
|
|
47111
|
+
[attr.placeholder]="'pptx.smartArt.nodePlaceholder' | translate"
|
|
46990
47112
|
(change)="onNodeText($event, node.id)"
|
|
46991
47113
|
(keydown)="onNodeKeydown($event, node.id)"
|
|
46992
47114
|
/>
|
|
@@ -46995,7 +47117,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
46995
47117
|
<button
|
|
46996
47118
|
type="button"
|
|
46997
47119
|
class="pptx-sa-props__icon"
|
|
46998
|
-
[title]="'pptx.
|
|
47120
|
+
[title]="'pptx.smartArt.addSubItem' | translate"
|
|
46999
47121
|
[disabled]="!canEdit()"
|
|
47000
47122
|
(click)="onAddSubItem(node.id)"
|
|
47001
47123
|
>
|
|
@@ -47023,7 +47145,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
47023
47145
|
<button
|
|
47024
47146
|
type="button"
|
|
47025
47147
|
class="pptx-sa-props__icon"
|
|
47026
|
-
[title]="'pptx.
|
|
47148
|
+
[title]="'pptx.smartArt.moveUp' | translate"
|
|
47027
47149
|
[disabled]="!canEdit()"
|
|
47028
47150
|
(click)="onMoveUp(node.id)"
|
|
47029
47151
|
>
|
|
@@ -47032,7 +47154,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
47032
47154
|
<button
|
|
47033
47155
|
type="button"
|
|
47034
47156
|
class="pptx-sa-props__icon"
|
|
47035
|
-
[title]="'pptx.
|
|
47157
|
+
[title]="'pptx.smartArt.moveDown' | translate"
|
|
47036
47158
|
[disabled]="!canEdit()"
|
|
47037
47159
|
(click)="onMoveDown(node.id)"
|
|
47038
47160
|
>
|
|
@@ -47044,7 +47166,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
47044
47166
|
[title]="
|
|
47045
47167
|
!isChild(node) && !canRemoveItem()
|
|
47046
47168
|
? boundsHint()
|
|
47047
|
-
: ('pptx.
|
|
47169
|
+
: ('pptx.smartArt.remove' | translate)
|
|
47048
47170
|
"
|
|
47049
47171
|
[disabled]="
|
|
47050
47172
|
!canEdit() || nodes().length <= 1 || (!isChild(node) && !canRemoveItem())
|
|
@@ -47059,7 +47181,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
47059
47181
|
<div class="pptx-sa-props__node-style">
|
|
47060
47182
|
<label class="pptx-sa-props__swatch" [title]="'pptx.smartart.nodeFill' | translate">
|
|
47061
47183
|
<span class="pptx-sa-props__swatch-label">{{
|
|
47062
|
-
'pptx.
|
|
47184
|
+
'pptx.smartArt.fill' | translate
|
|
47063
47185
|
}}</span>
|
|
47064
47186
|
<input
|
|
47065
47187
|
type="color"
|
|
@@ -47071,7 +47193,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
47071
47193
|
</label>
|
|
47072
47194
|
<label class="pptx-sa-props__swatch" [title]="'pptx.smartart.nodeFont' | translate">
|
|
47073
47195
|
<span class="pptx-sa-props__swatch-label">{{
|
|
47074
|
-
'pptx.
|
|
47196
|
+
'pptx.textPanel.font' | translate
|
|
47075
47197
|
}}</span>
|
|
47076
47198
|
<input
|
|
47077
47199
|
type="color"
|
|
@@ -47084,7 +47206,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
47084
47206
|
<button
|
|
47085
47207
|
type="button"
|
|
47086
47208
|
class="pptx-sa-props__icon pptx-sa-props__style-toggle"
|
|
47087
|
-
[title]="'pptx.
|
|
47209
|
+
[title]="'pptx.inspector.bold' | translate"
|
|
47088
47210
|
[class.is-active]="nodeIsBold(node)"
|
|
47089
47211
|
[attr.aria-pressed]="nodeIsBold(node)"
|
|
47090
47212
|
[disabled]="!canEdit()"
|
|
@@ -47095,7 +47217,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
47095
47217
|
<button
|
|
47096
47218
|
type="button"
|
|
47097
47219
|
class="pptx-sa-props__icon pptx-sa-props__style-toggle"
|
|
47098
|
-
[title]="'pptx.
|
|
47220
|
+
[title]="'pptx.inspector.italic' | translate"
|
|
47099
47221
|
[class.is-active]="nodeIsItalic(node)"
|
|
47100
47222
|
[attr.aria-pressed]="nodeIsItalic(node)"
|
|
47101
47223
|
[disabled]="!canEdit()"
|
|
@@ -47901,7 +48023,7 @@ class TableCellFormattingComponent {
|
|
|
47901
48023
|
[disabled]="!canEdit()"
|
|
47902
48024
|
(click)="onMergeRange()"
|
|
47903
48025
|
>
|
|
47904
|
-
{{ 'pptx.
|
|
48026
|
+
{{ 'pptx.contextMenu.mergeSelectedCells' | translate }}
|
|
47905
48027
|
</button>
|
|
47906
48028
|
}
|
|
47907
48029
|
</div>
|
|
@@ -48047,7 +48169,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
48047
48169
|
[disabled]="!canEdit()"
|
|
48048
48170
|
(click)="onMergeRange()"
|
|
48049
48171
|
>
|
|
48050
|
-
{{ 'pptx.
|
|
48172
|
+
{{ 'pptx.contextMenu.mergeSelectedCells' | translate }}
|
|
48051
48173
|
</button>
|
|
48052
48174
|
}
|
|
48053
48175
|
</div>
|
|
@@ -54886,7 +55008,7 @@ class SmartArtRendererComponent {
|
|
|
54886
55008
|
>
|
|
54887
55009
|
@if (isEmpty()) {
|
|
54888
55010
|
<div class="pptx-ng-smartart-placeholder">
|
|
54889
|
-
{{ 'pptx.
|
|
55011
|
+
{{ 'pptx.smartArt.placeholder' | translate }}
|
|
54890
55012
|
</div>
|
|
54891
55013
|
} @else if (hasDrawingShapes()) {
|
|
54892
55014
|
<svg
|
|
@@ -55047,7 +55169,7 @@ class SmartArtRendererComponent {
|
|
|
55047
55169
|
</svg>
|
|
55048
55170
|
} @else {
|
|
55049
55171
|
<div class="pptx-ng-smartart-placeholder">
|
|
55050
|
-
{{ 'pptx.
|
|
55172
|
+
{{ 'pptx.smartArt.placeholder' | translate }}
|
|
55051
55173
|
</div>
|
|
55052
55174
|
}
|
|
55053
55175
|
|
|
@@ -55062,7 +55184,7 @@ class SmartArtRendererComponent {
|
|
|
55062
55184
|
<button
|
|
55063
55185
|
type="button"
|
|
55064
55186
|
class="pptx-ng-smartart-swatch"
|
|
55065
|
-
[attr.aria-label]="'pptx.
|
|
55187
|
+
[attr.aria-label]="'pptx.smartArt.setFill' | translate: { color: color }"
|
|
55066
55188
|
[style.background]="color"
|
|
55067
55189
|
(click)="handleChangeNodeStyle(hoveredNodeId()!, color)"
|
|
55068
55190
|
></button>
|
|
@@ -55119,7 +55241,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
55119
55241
|
>
|
|
55120
55242
|
@if (isEmpty()) {
|
|
55121
55243
|
<div class="pptx-ng-smartart-placeholder">
|
|
55122
|
-
{{ 'pptx.
|
|
55244
|
+
{{ 'pptx.smartArt.placeholder' | translate }}
|
|
55123
55245
|
</div>
|
|
55124
55246
|
} @else if (hasDrawingShapes()) {
|
|
55125
55247
|
<svg
|
|
@@ -55280,7 +55402,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
55280
55402
|
</svg>
|
|
55281
55403
|
} @else {
|
|
55282
55404
|
<div class="pptx-ng-smartart-placeholder">
|
|
55283
|
-
{{ 'pptx.
|
|
55405
|
+
{{ 'pptx.smartArt.placeholder' | translate }}
|
|
55284
55406
|
</div>
|
|
55285
55407
|
}
|
|
55286
55408
|
|
|
@@ -55295,7 +55417,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
55295
55417
|
<button
|
|
55296
55418
|
type="button"
|
|
55297
55419
|
class="pptx-ng-smartart-swatch"
|
|
55298
|
-
[attr.aria-label]="'pptx.
|
|
55420
|
+
[attr.aria-label]="'pptx.smartArt.setFill' | translate: { color: color }"
|
|
55299
55421
|
[style.background]="color"
|
|
55300
55422
|
(click)="handleChangeNodeStyle(hoveredNodeId()!, color)"
|
|
55301
55423
|
></button>
|
|
@@ -55584,7 +55706,7 @@ class SmartArt3DRendererComponent {
|
|
|
55584
55706
|
[style.height.px]="editState()!.box.height"
|
|
55585
55707
|
[value]="editState()!.text"
|
|
55586
55708
|
spellcheck="false"
|
|
55587
|
-
[attr.aria-label]="'pptx.
|
|
55709
|
+
[attr.aria-label]="'pptx.smartArt.editNodeText' | translate"
|
|
55588
55710
|
(input)="updateDraft($event)"
|
|
55589
55711
|
(blur)="commitEdit()"
|
|
55590
55712
|
(keydown)="onEditorKeydown($event)"
|
|
@@ -55626,7 +55748,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
55626
55748
|
[style.height.px]="editState()!.box.height"
|
|
55627
55749
|
[value]="editState()!.text"
|
|
55628
55750
|
spellcheck="false"
|
|
55629
|
-
[attr.aria-label]="'pptx.
|
|
55751
|
+
[attr.aria-label]="'pptx.smartArt.editNodeText' | translate"
|
|
55630
55752
|
(input)="updateDraft($event)"
|
|
55631
55753
|
(blur)="commitEdit()"
|
|
55632
55754
|
(keydown)="onEditorKeydown($event)"
|
|
@@ -57243,7 +57365,7 @@ class ElementRendererComponent {
|
|
|
57243
57365
|
}, /* @ts-ignore */
|
|
57244
57366
|
...(ngDevMode ? [{ debugName: "placeholderLabel" }] : /* istanbul ignore next */ []));
|
|
57245
57367
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ElementRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
57246
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: ElementRendererComponent, isStandalone: true, selector: "pptx-element-renderer", inputs: { element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: true, transformFunction: null }, mediaDataUrls: { classPropertyName: "mediaDataUrls", publicName: "mediaDataUrls", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, obstacles: { classPropertyName: "obstacles", publicName: "obstacles", isSignal: true, isRequired: false, transformFunction: null }, canvasWidth: { classPropertyName: "canvasWidth", publicName: "canvasWidth", isSignal: true, isRequired: false, transformFunction: null }, canvasHeight: { classPropertyName: "canvasHeight", publicName: "canvasHeight", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", isSignal: true, isRequired: false, transformFunction: null }, fieldContext: { classPropertyName: "fieldContext", publicName: "fieldContext", isSignal: true, isRequired: false, transformFunction: null }, editTemplateMode: { classPropertyName: "editTemplateMode", publicName: "editTemplateMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { cellCommit: "cellCommit", tableChange: "tableChange" }, ngImport: i0, template: `
|
|
57368
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: ElementRendererComponent, isStandalone: true, selector: "pptx-element-renderer", inputs: { element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: true, transformFunction: null }, mediaDataUrls: { classPropertyName: "mediaDataUrls", publicName: "mediaDataUrls", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, obstacles: { classPropertyName: "obstacles", publicName: "obstacles", isSignal: true, isRequired: false, transformFunction: null }, canvasWidth: { classPropertyName: "canvasWidth", publicName: "canvasWidth", isSignal: true, isRequired: false, transformFunction: null }, canvasHeight: { classPropertyName: "canvasHeight", publicName: "canvasHeight", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", isSignal: true, isRequired: false, transformFunction: null }, fieldContext: { classPropertyName: "fieldContext", publicName: "fieldContext", isSignal: true, isRequired: false, transformFunction: null }, editTemplateMode: { classPropertyName: "editTemplateMode", publicName: "editTemplateMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { cellCommit: "cellCommit", tableChange: "tableChange" }, host: { classAttribute: "contents" }, ngImport: i0, template: `
|
|
57247
57369
|
@switch (true) {
|
|
57248
57370
|
@case (element().type === 'connector') {
|
|
57249
57371
|
<pptx-connector-renderer
|
|
@@ -57517,6 +57639,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
57517
57639
|
selector: 'pptx-element-renderer',
|
|
57518
57640
|
standalone: true,
|
|
57519
57641
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
57642
|
+
host: { class: 'contents' },
|
|
57520
57643
|
imports: [
|
|
57521
57644
|
NgStyle,
|
|
57522
57645
|
ConnectorRendererComponent,
|
|
@@ -58950,7 +59073,7 @@ class SlideCanvasComponent {
|
|
|
58950
59073
|
<div
|
|
58951
59074
|
class="pptx-ng-rotate-handle"
|
|
58952
59075
|
role="button"
|
|
58953
|
-
[attr.aria-label]="'pptx.
|
|
59076
|
+
[attr.aria-label]="'pptx.selectionOverlay.rotate' | translate"
|
|
58954
59077
|
[style.left.px]="rh.left"
|
|
58955
59078
|
[style.top.px]="rh.top"
|
|
58956
59079
|
[style.width.px]="rh.size"
|
|
@@ -59324,7 +59447,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
59324
59447
|
<div
|
|
59325
59448
|
class="pptx-ng-rotate-handle"
|
|
59326
59449
|
role="button"
|
|
59327
|
-
[attr.aria-label]="'pptx.
|
|
59450
|
+
[attr.aria-label]="'pptx.selectionOverlay.rotate' | translate"
|
|
59328
59451
|
[style.left.px]="rh.left"
|
|
59329
59452
|
[style.top.px]="rh.top"
|
|
59330
59453
|
[style.width.px]="rh.size"
|
|
@@ -65103,7 +65226,7 @@ class PropertiesDialogComponent {
|
|
|
65103
65226
|
<div class="pptx-ng-props-form">
|
|
65104
65227
|
<div class="pptx-ng-props-field">
|
|
65105
65228
|
<label for="pptx-ng-props-title" class="pptx-ng-props-label">{{
|
|
65106
|
-
'pptx.
|
|
65229
|
+
'pptx.properties.titleLabel' | translate
|
|
65107
65230
|
}}</label>
|
|
65108
65231
|
<input
|
|
65109
65232
|
id="pptx-ng-props-title"
|
|
@@ -65116,7 +65239,7 @@ class PropertiesDialogComponent {
|
|
|
65116
65239
|
|
|
65117
65240
|
<div class="pptx-ng-props-field">
|
|
65118
65241
|
<label for="pptx-ng-props-creator" class="pptx-ng-props-label">{{
|
|
65119
|
-
'pptx.
|
|
65242
|
+
'pptx.properties.author' | translate
|
|
65120
65243
|
}}</label>
|
|
65121
65244
|
<input
|
|
65122
65245
|
id="pptx-ng-props-creator"
|
|
@@ -65129,7 +65252,7 @@ class PropertiesDialogComponent {
|
|
|
65129
65252
|
|
|
65130
65253
|
<div class="pptx-ng-props-field">
|
|
65131
65254
|
<label for="pptx-ng-props-subject" class="pptx-ng-props-label">{{
|
|
65132
|
-
'pptx.
|
|
65255
|
+
'pptx.properties.subject' | translate
|
|
65133
65256
|
}}</label>
|
|
65134
65257
|
<input
|
|
65135
65258
|
id="pptx-ng-props-subject"
|
|
@@ -65142,7 +65265,7 @@ class PropertiesDialogComponent {
|
|
|
65142
65265
|
|
|
65143
65266
|
<div class="pptx-ng-props-field">
|
|
65144
65267
|
<label for="pptx-ng-props-keywords" class="pptx-ng-props-label">{{
|
|
65145
|
-
'pptx.
|
|
65268
|
+
'pptx.properties.keywords' | translate
|
|
65146
65269
|
}}</label>
|
|
65147
65270
|
<input
|
|
65148
65271
|
id="pptx-ng-props-keywords"
|
|
@@ -65195,7 +65318,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
65195
65318
|
<div class="pptx-ng-props-form">
|
|
65196
65319
|
<div class="pptx-ng-props-field">
|
|
65197
65320
|
<label for="pptx-ng-props-title" class="pptx-ng-props-label">{{
|
|
65198
|
-
'pptx.
|
|
65321
|
+
'pptx.properties.titleLabel' | translate
|
|
65199
65322
|
}}</label>
|
|
65200
65323
|
<input
|
|
65201
65324
|
id="pptx-ng-props-title"
|
|
@@ -65208,7 +65331,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
65208
65331
|
|
|
65209
65332
|
<div class="pptx-ng-props-field">
|
|
65210
65333
|
<label for="pptx-ng-props-creator" class="pptx-ng-props-label">{{
|
|
65211
|
-
'pptx.
|
|
65334
|
+
'pptx.properties.author' | translate
|
|
65212
65335
|
}}</label>
|
|
65213
65336
|
<input
|
|
65214
65337
|
id="pptx-ng-props-creator"
|
|
@@ -65221,7 +65344,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
65221
65344
|
|
|
65222
65345
|
<div class="pptx-ng-props-field">
|
|
65223
65346
|
<label for="pptx-ng-props-subject" class="pptx-ng-props-label">{{
|
|
65224
|
-
'pptx.
|
|
65347
|
+
'pptx.properties.subject' | translate
|
|
65225
65348
|
}}</label>
|
|
65226
65349
|
<input
|
|
65227
65350
|
id="pptx-ng-props-subject"
|
|
@@ -65234,7 +65357,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
65234
65357
|
|
|
65235
65358
|
<div class="pptx-ng-props-field">
|
|
65236
65359
|
<label for="pptx-ng-props-keywords" class="pptx-ng-props-label">{{
|
|
65237
|
-
'pptx.
|
|
65360
|
+
'pptx.properties.keywords' | translate
|
|
65238
65361
|
}}</label>
|
|
65239
65362
|
<input
|
|
65240
65363
|
id="pptx-ng-props-keywords"
|
|
@@ -67869,7 +67992,7 @@ class RibbonInsertFieldsComponent {
|
|
|
67869
67992
|
class="flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground transition-colors hover:bg-muted"
|
|
67870
67993
|
(click)="openDatePicker()"
|
|
67871
67994
|
>
|
|
67872
|
-
{{ 'pptx.
|
|
67995
|
+
{{ 'pptx.headerFooter.dateAndTime' | translate }}
|
|
67873
67996
|
</button>
|
|
67874
67997
|
<button
|
|
67875
67998
|
type="button"
|
|
@@ -67897,7 +68020,7 @@ class RibbonInsertFieldsComponent {
|
|
|
67897
68020
|
>
|
|
67898
68021
|
<div class="w-72 space-y-3 rounded-lg border border-border bg-card p-4 shadow-2xl">
|
|
67899
68022
|
<div class="text-sm font-medium text-foreground">
|
|
67900
|
-
{{ 'pptx.
|
|
68023
|
+
{{ 'pptx.headerFooter.dateAndTime' | translate }}
|
|
67901
68024
|
</div>
|
|
67902
68025
|
<input
|
|
67903
68026
|
type="datetime-local"
|
|
@@ -68030,7 +68153,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
68030
68153
|
class="flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground transition-colors hover:bg-muted"
|
|
68031
68154
|
(click)="openDatePicker()"
|
|
68032
68155
|
>
|
|
68033
|
-
{{ 'pptx.
|
|
68156
|
+
{{ 'pptx.headerFooter.dateAndTime' | translate }}
|
|
68034
68157
|
</button>
|
|
68035
68158
|
<button
|
|
68036
68159
|
type="button"
|
|
@@ -68058,7 +68181,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
68058
68181
|
>
|
|
68059
68182
|
<div class="w-72 space-y-3 rounded-lg border border-border bg-card p-4 shadow-2xl">
|
|
68060
68183
|
<div class="text-sm font-medium text-foreground">
|
|
68061
|
-
{{ 'pptx.
|
|
68184
|
+
{{ 'pptx.headerFooter.dateAndTime' | translate }}
|
|
68062
68185
|
</div>
|
|
68063
68186
|
<input
|
|
68064
68187
|
type="datetime-local"
|
|
@@ -70325,7 +70448,7 @@ class SelectionPaneComponent {
|
|
|
70325
70448
|
}
|
|
70326
70449
|
</ul>
|
|
70327
70450
|
} @else {
|
|
70328
|
-
<p class="pptx-ng-sel-pane__empty">{{ 'pptx.selectionPane.
|
|
70451
|
+
<p class="pptx-ng-sel-pane__empty">{{ 'pptx.selectionPane.empty' | translate }}</p>
|
|
70329
70452
|
}
|
|
70330
70453
|
</aside>
|
|
70331
70454
|
`, isInline: true, styles: [":host{display:block;height:100%;width:100%}.pptx-ng-sel-pane{display:flex;flex-direction:column;min-height:0;height:100%;width:100%;background:var(--pptx-card, #111827);color:var(--pptx-foreground, #f3f4f6);border-left:1px solid var(--pptx-border, #374151);font-family:system-ui,sans-serif}.pptx-ng-sel-pane__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--pptx-border, #374151);flex-shrink:0}.pptx-ng-sel-pane__title{margin:0;font-size:14px;font-weight:600}.pptx-ng-sel-pane__count{font-size:12px;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-sel-pane__list{list-style:none;margin:0;padding:8px;overflow-y:auto;flex:1 1 auto;min-height:0}.pptx-ng-sel-pane__row{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:6px;border:1px solid transparent;cursor:pointer;margin-bottom:2px;transition:background .1s;-webkit-user-select:none;user-select:none}.pptx-ng-sel-pane__row:hover{background:var(--pptx-accent, #1f2937)}.pptx-ng-sel-pane__row--selected{border-color:var(--pptx-primary, #6366f1);background:color-mix(in srgb,var(--pptx-primary, #6366f1) 15%,transparent)}.pptx-ng-sel-pane__row--hidden{opacity:.5}.pptx-ng-sel-pane__icon{flex-shrink:0;width:20px;text-align:center;font-size:12px;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-sel-pane__label{flex:1 1 auto;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.pptx-ng-sel-pane__actions{display:flex;gap:2px;flex-shrink:0}.pptx-ng-sel-pane__btn{background:transparent;border:1px solid var(--pptx-border, #374151);color:inherit;border-radius:4px;padding:2px 5px;font-size:11px;cursor:pointer;line-height:1.2}.pptx-ng-sel-pane__btn:hover{background:var(--pptx-accent, #1f2937)}.pptx-ng-sel-pane__empty{padding:16px;font-size:13px;color:var(--pptx-muted-foreground, #9ca3af)}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
@@ -70396,7 +70519,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70396
70519
|
}
|
|
70397
70520
|
</ul>
|
|
70398
70521
|
} @else {
|
|
70399
|
-
<p class="pptx-ng-sel-pane__empty">{{ 'pptx.selectionPane.
|
|
70522
|
+
<p class="pptx-ng-sel-pane__empty">{{ 'pptx.selectionPane.empty' | translate }}</p>
|
|
70400
70523
|
}
|
|
70401
70524
|
</aside>
|
|
70402
70525
|
`, styles: [":host{display:block;height:100%;width:100%}.pptx-ng-sel-pane{display:flex;flex-direction:column;min-height:0;height:100%;width:100%;background:var(--pptx-card, #111827);color:var(--pptx-foreground, #f3f4f6);border-left:1px solid var(--pptx-border, #374151);font-family:system-ui,sans-serif}.pptx-ng-sel-pane__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--pptx-border, #374151);flex-shrink:0}.pptx-ng-sel-pane__title{margin:0;font-size:14px;font-weight:600}.pptx-ng-sel-pane__count{font-size:12px;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-sel-pane__list{list-style:none;margin:0;padding:8px;overflow-y:auto;flex:1 1 auto;min-height:0}.pptx-ng-sel-pane__row{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:6px;border:1px solid transparent;cursor:pointer;margin-bottom:2px;transition:background .1s;-webkit-user-select:none;user-select:none}.pptx-ng-sel-pane__row:hover{background:var(--pptx-accent, #1f2937)}.pptx-ng-sel-pane__row--selected{border-color:var(--pptx-primary, #6366f1);background:color-mix(in srgb,var(--pptx-primary, #6366f1) 15%,transparent)}.pptx-ng-sel-pane__row--hidden{opacity:.5}.pptx-ng-sel-pane__icon{flex-shrink:0;width:20px;text-align:center;font-size:12px;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-sel-pane__label{flex:1 1 auto;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.pptx-ng-sel-pane__actions{display:flex;gap:2px;flex-shrink:0}.pptx-ng-sel-pane__btn{background:transparent;border:1px solid var(--pptx-border, #374151);color:inherit;border-radius:4px;padding:2px 5px;font-size:11px;cursor:pointer;line-height:1.2}.pptx-ng-sel-pane__btn:hover{background:var(--pptx-accent, #1f2937)}.pptx-ng-sel-pane__empty{padding:16px;font-size:13px;color:var(--pptx-muted-foreground, #9ca3af)}\n"] }]
|
|
@@ -70602,9 +70725,7 @@ class ShareDialogComponent {
|
|
|
70602
70725
|
|
|
70603
70726
|
@if (shareUrl()) {
|
|
70604
70727
|
<div class="pptx-ng-share-field">
|
|
70605
|
-
<label class="pptx-ng-share-label">{{
|
|
70606
|
-
'pptx.share.shareLinkLabel' | translate
|
|
70607
|
-
}}</label>
|
|
70728
|
+
<label class="pptx-ng-share-label">{{ 'pptx.share.shareLink' | translate }}</label>
|
|
70608
70729
|
<div class="pptx-ng-share-link-row">
|
|
70609
70730
|
<input
|
|
70610
70731
|
class="pptx-ng-share-input"
|
|
@@ -70622,12 +70743,12 @@ class ShareDialogComponent {
|
|
|
70622
70743
|
{{ (copied() ? 'pptx.share.copied' : 'pptx.share.copyLinkButton') | translate }}
|
|
70623
70744
|
</button>
|
|
70624
70745
|
</div>
|
|
70625
|
-
<p class="pptx-ng-share-hint">{{ 'pptx.share.
|
|
70746
|
+
<p class="pptx-ng-share-hint">{{ 'pptx.share.shareHint' | translate }}</p>
|
|
70626
70747
|
</div>
|
|
70627
70748
|
}
|
|
70628
70749
|
|
|
70629
70750
|
<button type="button" class="pptx-ng-share-stop" (click)="handleStop()">
|
|
70630
|
-
{{ 'pptx.share.
|
|
70751
|
+
{{ 'pptx.share.stopSharing' | translate }}
|
|
70631
70752
|
</button>
|
|
70632
70753
|
</div>
|
|
70633
70754
|
} @else {
|
|
@@ -70694,7 +70815,7 @@ class ShareDialogComponent {
|
|
|
70694
70815
|
[disabled]="!canStart()"
|
|
70695
70816
|
(click)="handleStart()"
|
|
70696
70817
|
>
|
|
70697
|
-
{{ 'pptx.share.
|
|
70818
|
+
{{ 'pptx.share.startSharing' | translate }}
|
|
70698
70819
|
</button>
|
|
70699
70820
|
}
|
|
70700
70821
|
</div>
|
|
@@ -70740,9 +70861,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70740
70861
|
|
|
70741
70862
|
@if (shareUrl()) {
|
|
70742
70863
|
<div class="pptx-ng-share-field">
|
|
70743
|
-
<label class="pptx-ng-share-label">{{
|
|
70744
|
-
'pptx.share.shareLinkLabel' | translate
|
|
70745
|
-
}}</label>
|
|
70864
|
+
<label class="pptx-ng-share-label">{{ 'pptx.share.shareLink' | translate }}</label>
|
|
70746
70865
|
<div class="pptx-ng-share-link-row">
|
|
70747
70866
|
<input
|
|
70748
70867
|
class="pptx-ng-share-input"
|
|
@@ -70760,12 +70879,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70760
70879
|
{{ (copied() ? 'pptx.share.copied' : 'pptx.share.copyLinkButton') | translate }}
|
|
70761
70880
|
</button>
|
|
70762
70881
|
</div>
|
|
70763
|
-
<p class="pptx-ng-share-hint">{{ 'pptx.share.
|
|
70882
|
+
<p class="pptx-ng-share-hint">{{ 'pptx.share.shareHint' | translate }}</p>
|
|
70764
70883
|
</div>
|
|
70765
70884
|
}
|
|
70766
70885
|
|
|
70767
70886
|
<button type="button" class="pptx-ng-share-stop" (click)="handleStop()">
|
|
70768
|
-
{{ 'pptx.share.
|
|
70887
|
+
{{ 'pptx.share.stopSharing' | translate }}
|
|
70769
70888
|
</button>
|
|
70770
70889
|
</div>
|
|
70771
70890
|
} @else {
|
|
@@ -70832,7 +70951,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
70832
70951
|
[disabled]="!canStart()"
|
|
70833
70952
|
(click)="handleStart()"
|
|
70834
70953
|
>
|
|
70835
|
-
{{ 'pptx.share.
|
|
70954
|
+
{{ 'pptx.share.startSharing' | translate }}
|
|
70836
70955
|
</button>
|
|
70837
70956
|
}
|
|
70838
70957
|
</div>
|
|
@@ -71014,7 +71133,10 @@ class SignaturesPanelComponent {
|
|
|
71014
71133
|
}
|
|
71015
71134
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SignaturesPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
71016
71135
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: SignaturesPanelComponent, isStandalone: true, selector: "pptx-signatures-panel", inputs: { signatures: { classPropertyName: "signatures", publicName: "signatures", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
71017
|
-
<section
|
|
71136
|
+
<section
|
|
71137
|
+
class="pptx-ng-signatures"
|
|
71138
|
+
[attr.aria-label]="'pptx.digitalSignatures.ariaLabel' | translate"
|
|
71139
|
+
>
|
|
71018
71140
|
<header
|
|
71019
71141
|
class="pptx-ng-signatures__header"
|
|
71020
71142
|
[class]="'pptx-ng-signatures__header--' + overall()"
|
|
@@ -71027,7 +71149,9 @@ class SignaturesPanelComponent {
|
|
|
71027
71149
|
</header>
|
|
71028
71150
|
|
|
71029
71151
|
@if (!signed()) {
|
|
71030
|
-
<p class="pptx-ng-signatures__empty">
|
|
71152
|
+
<p class="pptx-ng-signatures__empty">
|
|
71153
|
+
{{ 'pptx.digitalSignatures.noSignatures' | translate }}
|
|
71154
|
+
</p>
|
|
71031
71155
|
} @else {
|
|
71032
71156
|
<ul class="pptx-ng-signatures__list">
|
|
71033
71157
|
@for (sig of signatures(); track key(sig, $index)) {
|
|
@@ -71044,20 +71168,20 @@ class SignaturesPanelComponent {
|
|
|
71044
71168
|
|
|
71045
71169
|
<dl class="pptx-ng-signatures__meta">
|
|
71046
71170
|
@if (sig.certificate?.issuer; as issuer) {
|
|
71047
|
-
<dt>{{ 'pptx.
|
|
71171
|
+
<dt>{{ 'pptx.digitalSignatures.issuer' | translate }}</dt>
|
|
71048
71172
|
<dd>{{ issuer }}</dd>
|
|
71049
71173
|
}
|
|
71050
71174
|
@if (sig.certificate?.serialNumber; as serial) {
|
|
71051
|
-
<dt>{{ 'pptx.
|
|
71175
|
+
<dt>{{ 'pptx.digitalSignatures.serial' | translate }}</dt>
|
|
71052
71176
|
<dd>{{ serial }}</dd>
|
|
71053
71177
|
}
|
|
71054
71178
|
@if (timestamp(sig); as ts) {
|
|
71055
|
-
<dt>{{ 'pptx.
|
|
71179
|
+
<dt>{{ 'pptx.digitalSignatures.signed' | translate }}</dt>
|
|
71056
71180
|
<dd>{{ ts }}</dd>
|
|
71057
71181
|
}
|
|
71058
71182
|
@if (!sig.certificate) {
|
|
71059
|
-
<dt>{{ 'pptx.
|
|
71060
|
-
<dd>{{ 'pptx.
|
|
71183
|
+
<dt>{{ 'pptx.digitalSignatures.certificate' | translate }}</dt>
|
|
71184
|
+
<dd>{{ 'pptx.digitalSignatures.notAvailable' | translate }}</dd>
|
|
71061
71185
|
}
|
|
71062
71186
|
</dl>
|
|
71063
71187
|
</li>
|
|
@@ -71070,7 +71194,10 @@ class SignaturesPanelComponent {
|
|
|
71070
71194
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SignaturesPanelComponent, decorators: [{
|
|
71071
71195
|
type: Component,
|
|
71072
71196
|
args: [{ selector: 'pptx-signatures-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslatePipe], template: `
|
|
71073
|
-
<section
|
|
71197
|
+
<section
|
|
71198
|
+
class="pptx-ng-signatures"
|
|
71199
|
+
[attr.aria-label]="'pptx.digitalSignatures.ariaLabel' | translate"
|
|
71200
|
+
>
|
|
71074
71201
|
<header
|
|
71075
71202
|
class="pptx-ng-signatures__header"
|
|
71076
71203
|
[class]="'pptx-ng-signatures__header--' + overall()"
|
|
@@ -71083,7 +71210,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
71083
71210
|
</header>
|
|
71084
71211
|
|
|
71085
71212
|
@if (!signed()) {
|
|
71086
|
-
<p class="pptx-ng-signatures__empty">
|
|
71213
|
+
<p class="pptx-ng-signatures__empty">
|
|
71214
|
+
{{ 'pptx.digitalSignatures.noSignatures' | translate }}
|
|
71215
|
+
</p>
|
|
71087
71216
|
} @else {
|
|
71088
71217
|
<ul class="pptx-ng-signatures__list">
|
|
71089
71218
|
@for (sig of signatures(); track key(sig, $index)) {
|
|
@@ -71100,20 +71229,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
71100
71229
|
|
|
71101
71230
|
<dl class="pptx-ng-signatures__meta">
|
|
71102
71231
|
@if (sig.certificate?.issuer; as issuer) {
|
|
71103
|
-
<dt>{{ 'pptx.
|
|
71232
|
+
<dt>{{ 'pptx.digitalSignatures.issuer' | translate }}</dt>
|
|
71104
71233
|
<dd>{{ issuer }}</dd>
|
|
71105
71234
|
}
|
|
71106
71235
|
@if (sig.certificate?.serialNumber; as serial) {
|
|
71107
|
-
<dt>{{ 'pptx.
|
|
71236
|
+
<dt>{{ 'pptx.digitalSignatures.serial' | translate }}</dt>
|
|
71108
71237
|
<dd>{{ serial }}</dd>
|
|
71109
71238
|
}
|
|
71110
71239
|
@if (timestamp(sig); as ts) {
|
|
71111
|
-
<dt>{{ 'pptx.
|
|
71240
|
+
<dt>{{ 'pptx.digitalSignatures.signed' | translate }}</dt>
|
|
71112
71241
|
<dd>{{ ts }}</dd>
|
|
71113
71242
|
}
|
|
71114
71243
|
@if (!sig.certificate) {
|
|
71115
|
-
<dt>{{ 'pptx.
|
|
71116
|
-
<dd>{{ 'pptx.
|
|
71244
|
+
<dt>{{ 'pptx.digitalSignatures.certificate' | translate }}</dt>
|
|
71245
|
+
<dd>{{ 'pptx.digitalSignatures.notAvailable' | translate }}</dd>
|
|
71117
71246
|
}
|
|
71118
71247
|
</dl>
|
|
71119
71248
|
</li>
|
|
@@ -71474,12 +71603,12 @@ class SlidesPanelComponent {
|
|
|
71474
71603
|
<div
|
|
71475
71604
|
class="pptx-ng-spanel-actions"
|
|
71476
71605
|
role="toolbar"
|
|
71477
|
-
[attr.aria-label]="'pptx.
|
|
71606
|
+
[attr.aria-label]="'pptx.slideMenu.slideActions' | translate: { n: i + 1 }"
|
|
71478
71607
|
>
|
|
71479
71608
|
<button
|
|
71480
71609
|
type="button"
|
|
71481
71610
|
class="pptx-ng-spanel-action"
|
|
71482
|
-
[title]="'pptx.
|
|
71611
|
+
[title]="'pptx.ribbon.duplicateSlide' | translate"
|
|
71483
71612
|
[attr.aria-label]="'pptx.arrange.duplicate' | translate"
|
|
71484
71613
|
(click)="onDuplicate(i)"
|
|
71485
71614
|
>
|
|
@@ -71581,12 +71710,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
71581
71710
|
<div
|
|
71582
71711
|
class="pptx-ng-spanel-actions"
|
|
71583
71712
|
role="toolbar"
|
|
71584
|
-
[attr.aria-label]="'pptx.
|
|
71713
|
+
[attr.aria-label]="'pptx.slideMenu.slideActions' | translate: { n: i + 1 }"
|
|
71585
71714
|
>
|
|
71586
71715
|
<button
|
|
71587
71716
|
type="button"
|
|
71588
71717
|
class="pptx-ng-spanel-action"
|
|
71589
|
-
[title]="'pptx.
|
|
71718
|
+
[title]="'pptx.ribbon.duplicateSlide' | translate"
|
|
71590
71719
|
[attr.aria-label]="'pptx.arrange.duplicate' | translate"
|
|
71591
71720
|
(click)="onDuplicate(i)"
|
|
71592
71721
|
>
|
|
@@ -74119,7 +74248,7 @@ class FontEmbeddingListComponent {
|
|
|
74119
74248
|
missingCount = input(0, /* @ts-ignore */
|
|
74120
74249
|
...(ngDevMode ? [{ debugName: "missingCount" }] : /* istanbul ignore next */ []));
|
|
74121
74250
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: FontEmbeddingListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
74122
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: FontEmbeddingListComponent, isStandalone: true, selector: "pptx-font-embedding-list", inputs: { usedFontFamilies: { classPropertyName: "usedFontFamilies", publicName: "usedFontFamilies", isSignal: true, isRequired: false, transformFunction: null }, availableFamilies: { classPropertyName: "availableFamilies", publicName: "availableFamilies", isSignal: true, isRequired: false, transformFunction: null }, embeddedSet: { classPropertyName: "embeddedSet", publicName: "embeddedSet", isSignal: true, isRequired: false, transformFunction: null }, scanning: { classPropertyName: "scanning", publicName: "scanning", isSignal: true, isRequired: false, transformFunction: null }, missingCount: { classPropertyName: "missingCount", publicName: "missingCount", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
74251
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: FontEmbeddingListComponent, isStandalone: true, selector: "pptx-font-embedding-list", inputs: { usedFontFamilies: { classPropertyName: "usedFontFamilies", publicName: "usedFontFamilies", isSignal: true, isRequired: false, transformFunction: null }, availableFamilies: { classPropertyName: "availableFamilies", publicName: "availableFamilies", isSignal: true, isRequired: false, transformFunction: null }, embeddedSet: { classPropertyName: "embeddedSet", publicName: "embeddedSet", isSignal: true, isRequired: false, transformFunction: null }, scanning: { classPropertyName: "scanning", publicName: "scanning", isSignal: true, isRequired: false, transformFunction: null }, missingCount: { classPropertyName: "missingCount", publicName: "missingCount", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "contents" }, ngImport: i0, template: `
|
|
74123
74252
|
<div class="pptx-ng-fonts-section">
|
|
74124
74253
|
<h3 class="pptx-ng-fonts-section-title">
|
|
74125
74254
|
{{ 'pptx.fontEmbedding.usedFonts' | translate: { count: usedFontFamilies().length } }}
|
|
@@ -74168,7 +74297,7 @@ class FontEmbeddingListComponent {
|
|
|
74168
74297
|
}
|
|
74169
74298
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: FontEmbeddingListComponent, decorators: [{
|
|
74170
74299
|
type: Component,
|
|
74171
|
-
args: [{ selector: 'pptx-font-embedding-list', standalone: true, imports: [TranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
74300
|
+
args: [{ selector: 'pptx-font-embedding-list', standalone: true, imports: [TranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'contents' }, template: `
|
|
74172
74301
|
<div class="pptx-ng-fonts-section">
|
|
74173
74302
|
<h3 class="pptx-ng-fonts-section-title">
|
|
74174
74303
|
{{ 'pptx.fontEmbedding.usedFonts' | translate: { count: usedFontFamilies().length } }}
|
|
@@ -76039,7 +76168,7 @@ class ViewerExtraDialogsComponent {
|
|
|
76039
76168
|
this.svc.showPassword.set(false);
|
|
76040
76169
|
}
|
|
76041
76170
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ViewerExtraDialogsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
76042
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ViewerExtraDialogsComponent, isStandalone: true, selector: "pptx-viewer-extra-dialogs", inputs: { activeSlideIndex: { classPropertyName: "activeSlideIndex", publicName: "activeSlideIndex", isSignal: true, isRequired: false, transformFunction: null }, selectedElementId: { classPropertyName: "selectedElementId", publicName: "selectedElementId", isSignal: true, isRequired: false, transformFunction: null }, filePath: { classPropertyName: "filePath", publicName: "filePath", isSignal: true, isRequired: false, transformFunction: null }, customShows: { classPropertyName: "customShows", publicName: "customShows", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { restoreContent: "restoreContent" }, ngImport: i0, template: `
|
|
76171
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ViewerExtraDialogsComponent, isStandalone: true, selector: "pptx-viewer-extra-dialogs", inputs: { activeSlideIndex: { classPropertyName: "activeSlideIndex", publicName: "activeSlideIndex", isSignal: true, isRequired: false, transformFunction: null }, selectedElementId: { classPropertyName: "selectedElementId", publicName: "selectedElementId", isSignal: true, isRequired: false, transformFunction: null }, filePath: { classPropertyName: "filePath", publicName: "filePath", isSignal: true, isRequired: false, transformFunction: null }, customShows: { classPropertyName: "customShows", publicName: "customShows", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { restoreContent: "restoreContent" }, host: { classAttribute: "contents" }, ngImport: i0, template: `
|
|
76043
76172
|
<pptx-equation-editor-dialog
|
|
76044
76173
|
[open]="svc.showEquation()"
|
|
76045
76174
|
[existingOmml]="svc.editingEquationOmml()"
|
|
@@ -76120,6 +76249,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
76120
76249
|
selector: 'pptx-viewer-extra-dialogs',
|
|
76121
76250
|
standalone: true,
|
|
76122
76251
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
76252
|
+
host: { class: 'contents' },
|
|
76123
76253
|
imports: [
|
|
76124
76254
|
EquationEditorDialogComponent,
|
|
76125
76255
|
SetUpSlideShowDialogComponent,
|
|
@@ -81222,6 +81352,260 @@ const translationsEn = {
|
|
|
81222
81352
|
'pptx.animation.sequence.byParagraph': 'By Paragraph',
|
|
81223
81353
|
'pptx.animation.sequence.byWord': 'By Word',
|
|
81224
81354
|
'pptx.animation.sequence.byLetter': 'By Letter',
|
|
81355
|
+
// --- 2026-07-03 missing-key sweep: keys used by Vue/Angular with no
|
|
81356
|
+
// existing dictionary entry (React has 0 such gaps and is the ground-
|
|
81357
|
+
// truth reference these were derived from). Appended flat rather than
|
|
81358
|
+
// interleaved into their semantic sections above, to keep this batch
|
|
81359
|
+
// change safe/reviewable as one block.
|
|
81360
|
+
'pptx.align.toolbarLabel': 'Align and distribute',
|
|
81361
|
+
'pptx.arrange.deleteSelection': 'Delete selection',
|
|
81362
|
+
'pptx.arrange.duplicateSelection': 'Duplicate selection',
|
|
81363
|
+
'pptx.arrange.groupLabel': 'Arrange',
|
|
81364
|
+
'pptx.canvas.adjustShape': 'Adjust shape',
|
|
81365
|
+
'pptx.canvas.guideTooltip': 'Drag to move guide, double-click to remove',
|
|
81366
|
+
'pptx.customShows.none': 'None',
|
|
81367
|
+
'pptx.customShows.noSlidesYet': 'No slides in this show yet.',
|
|
81368
|
+
'pptx.customShows.renameNameLabel': 'Show name',
|
|
81369
|
+
'pptx.customShows.renameShow': 'Rename show',
|
|
81370
|
+
'pptx.customShows.slidesInShow': 'Slides in show',
|
|
81371
|
+
'pptx.design.editThemeTooltip': 'Edit presentation theme colors and fonts',
|
|
81372
|
+
'pptx.design.formatBackgroundTooltip': 'Open inspector to edit slide background',
|
|
81373
|
+
'pptx.design.slideSizeTooltip': 'Change slide dimensions (16:9, 4:3, custom)',
|
|
81374
|
+
'pptx.documentProperties.summary.company': 'Company',
|
|
81375
|
+
'pptx.documentProperties.summary.manager': 'Manager',
|
|
81376
|
+
'pptx.editorToolbar.addShape': 'Add {{shape}}',
|
|
81377
|
+
'pptx.editorToolbar.addTextBox': 'Add text box',
|
|
81378
|
+
'pptx.editorToolbar.history': 'History',
|
|
81379
|
+
'pptx.editorToolbar.resetZoom': 'Reset zoom',
|
|
81380
|
+
'pptx.editorToolbar.resetZoomTo100': 'Reset zoom to 100%',
|
|
81381
|
+
'pptx.effects.innerShadow': 'Inner Shadow',
|
|
81382
|
+
'pptx.element.linkFallback': 'Link',
|
|
81383
|
+
'pptx.export.export': 'Export',
|
|
81384
|
+
'pptx.export.gifAnimated': 'Animated GIF',
|
|
81385
|
+
'pptx.export.pdfAllSlides': 'PDF (all slides)',
|
|
81386
|
+
'pptx.export.pngCurrentSlide': 'PNG (current slide)',
|
|
81387
|
+
'pptx.export.webmVideo': 'WebM video',
|
|
81388
|
+
'pptx.file.copyImage': 'Copy Image',
|
|
81389
|
+
'pptx.file.copyImageTooltip': 'Copy Slide as Image',
|
|
81390
|
+
'pptx.file.fonts': 'Fonts',
|
|
81391
|
+
'pptx.file.gif': 'GIF',
|
|
81392
|
+
'pptx.file.package': 'Package',
|
|
81393
|
+
'pptx.file.packageTooltip': 'Package for Sharing',
|
|
81394
|
+
'pptx.file.pdf': 'PDF',
|
|
81395
|
+
'pptx.file.png': 'PNG',
|
|
81396
|
+
'pptx.file.saveAsPpsx': 'Save .ppsx',
|
|
81397
|
+
'pptx.file.saveAsPpsxTooltip': 'Save as Slide Show (.ppsx)',
|
|
81398
|
+
'pptx.file.saveAsPptm': 'Save .pptm',
|
|
81399
|
+
'pptx.file.saveAsPptmTooltip': 'Save as Macro-Enabled (.pptm)',
|
|
81400
|
+
'pptx.file.saveAsPptx': 'Save .pptx',
|
|
81401
|
+
'pptx.file.saveAsPptxTooltip': 'Save as Presentation (.pptx)',
|
|
81402
|
+
'pptx.file.video': 'Video',
|
|
81403
|
+
'pptx.fontEmbedding.embedInFile': 'Embed fonts in file',
|
|
81404
|
+
'pptx.fontEmbedding.noCustomFonts': 'No custom fonts to embed.',
|
|
81405
|
+
'pptx.guides.dragHint': 'Drag to move guide',
|
|
81406
|
+
'pptx.handout.cornerDate': 'Date',
|
|
81407
|
+
'pptx.handout.pageNumber': '#',
|
|
81408
|
+
'pptx.headerFooter.fixedDate': 'Fixed date',
|
|
81409
|
+
'pptx.headerFooter.headerText': 'Enter header text…',
|
|
81410
|
+
'pptx.headerFooter.updateAutomatically': 'Update automatically',
|
|
81411
|
+
'pptx.home.chooseLayout': 'Choose layout',
|
|
81412
|
+
'pptx.home.newSlide': 'New Slide',
|
|
81413
|
+
'pptx.hyperlink.linkTo': 'Link to',
|
|
81414
|
+
'pptx.hyperlink.urlPlaceholder': 'https://example.com',
|
|
81415
|
+
'pptx.insert.addShape': 'Add shape',
|
|
81416
|
+
'pptx.insert.addTextBox': 'Add text box',
|
|
81417
|
+
'pptx.insert.insertEquation': 'Insert Equation',
|
|
81418
|
+
'pptx.insert.insertSmartArt': 'Insert SmartArt',
|
|
81419
|
+
'pptx.insert.insertTable': 'Insert table',
|
|
81420
|
+
'pptx.insert.shape': 'Shape',
|
|
81421
|
+
'pptx.insert.shapeType': 'Shape type',
|
|
81422
|
+
'pptx.mode.closeMasterViewTooltip': 'Close master view',
|
|
81423
|
+
'pptx.mode.masterView': 'Master View',
|
|
81424
|
+
'pptx.overflow.closeMenu': 'Close menu',
|
|
81425
|
+
'pptx.present.optionsTooltip': 'Presentation options',
|
|
81426
|
+
'pptx.present.presentOnline': 'Present Online',
|
|
81427
|
+
'pptx.present.presentTooltip': 'Present (fullscreen)',
|
|
81428
|
+
'pptx.review.spelling': 'Spelling',
|
|
81429
|
+
'pptx.review.toggleComments': 'Toggle comments panel',
|
|
81430
|
+
'pptx.review.toggleSpellCheck': 'Toggle spell check',
|
|
81431
|
+
'pptx.shortcuts.title': 'Keyboard shortcuts',
|
|
81432
|
+
'pptx.slideInspector.horizontal': 'Horizontal',
|
|
81433
|
+
'pptx.slideInspector.presentation': 'Presentation',
|
|
81434
|
+
'pptx.slideInspector.slideTransition': 'Slide transition',
|
|
81435
|
+
'pptx.slideInspector.themeColours': 'Theme colours',
|
|
81436
|
+
'pptx.slideInspector.vertical': 'Vertical',
|
|
81437
|
+
'pptx.slidesPanel.deleteSlide': 'Delete slide',
|
|
81438
|
+
'pptx.slidesPanel.goToSlide': 'Go to slide {{n}}',
|
|
81439
|
+
'pptx.smartart.demote': 'Demote',
|
|
81440
|
+
'pptx.smartart.item': 'Item',
|
|
81441
|
+
'pptx.smartart.nodeCleared': 'Node cleared',
|
|
81442
|
+
'pptx.smartart.nodeFill': 'Node fill',
|
|
81443
|
+
'pptx.smartart.nodeFont': 'Node font',
|
|
81444
|
+
'pptx.smartart.nodeUpdated': 'Node updated to "{{text}}"',
|
|
81445
|
+
'pptx.smartart.promote': 'Promote',
|
|
81446
|
+
'pptx.smartart.subItemShort': 'Sub-item',
|
|
81447
|
+
'pptx.stroke.dash': 'Dash',
|
|
81448
|
+
'pptx.stroke.noBorderProperties': 'This element has no border properties.',
|
|
81449
|
+
'pptx.stroke.widthPx': 'Width (px)',
|
|
81450
|
+
'pptx.table.columns': 'Columns',
|
|
81451
|
+
'pptx.table.columnsCount': '{{count}} columns',
|
|
81452
|
+
'pptx.table.deleteColumn': 'Delete column',
|
|
81453
|
+
'pptx.table.deleteRow': 'Delete row',
|
|
81454
|
+
'pptx.table.insertAbove': 'Insert above',
|
|
81455
|
+
'pptx.table.insertBelow': 'Insert below',
|
|
81456
|
+
'pptx.table.insertLeft': 'Insert left',
|
|
81457
|
+
'pptx.table.insertRight': 'Insert right',
|
|
81458
|
+
'pptx.table.mergeSelected': 'Merge selected',
|
|
81459
|
+
'pptx.table.noEditableData': 'This table has no editable data.',
|
|
81460
|
+
'pptx.table.rows': 'Rows',
|
|
81461
|
+
'pptx.table.rowsCount': '{{count}} rows',
|
|
81462
|
+
'pptx.table.selectTablePrompt': 'Select a table to edit its properties.',
|
|
81463
|
+
'pptx.tableCell.backgroundColorAria': 'Background colour',
|
|
81464
|
+
'pptx.tableCell.edgeBorderColorAria': '{{edge}} border colour',
|
|
81465
|
+
'pptx.tableCell.textColorAria': 'Text colour',
|
|
81466
|
+
'pptx.text.bulletList': 'Bullet List',
|
|
81467
|
+
'pptx.text.clearFormatting': 'Clear Formatting',
|
|
81468
|
+
'pptx.text.decreaseFontSize': 'Decrease Font Size',
|
|
81469
|
+
'pptx.text.decreaseIndent': 'Decrease Indent',
|
|
81470
|
+
'pptx.text.fontColor': 'Font Color',
|
|
81471
|
+
'pptx.text.highlightColor': 'Text Highlight Color',
|
|
81472
|
+
'pptx.text.increaseFontSize': 'Increase Font Size',
|
|
81473
|
+
'pptx.text.increaseIndent': 'Increase Indent',
|
|
81474
|
+
'pptx.text.numberedList': 'Numbered List',
|
|
81475
|
+
'pptx.view.addHorizontalGuide': 'Add horizontal guide',
|
|
81476
|
+
'pptx.view.addVerticalGuide': 'Add vertical guide',
|
|
81477
|
+
'pptx.view.eyedropperTooltip': 'Eyedropper: sample a colour from the slide',
|
|
81478
|
+
'pptx.view.hGuide': 'H Guide',
|
|
81479
|
+
'pptx.view.masterViews': 'Master Views',
|
|
81480
|
+
'pptx.view.normal': 'Normal',
|
|
81481
|
+
'pptx.view.presentationViews': 'Presentation Views',
|
|
81482
|
+
'pptx.view.readingView': 'Reading View',
|
|
81483
|
+
'pptx.view.selection': 'Selection',
|
|
81484
|
+
'pptx.view.slideMasterTooltip': 'Edit slide masters and layouts',
|
|
81485
|
+
'pptx.view.slideSorterTooltip': 'Slide Sorter view',
|
|
81486
|
+
'pptx.view.spell': 'Spell',
|
|
81487
|
+
'pptx.view.templateEditingTooltip': 'Toggle template/master element editing',
|
|
81488
|
+
'pptx.view.toggleSpellCheck': 'Toggle spell check',
|
|
81489
|
+
'pptx.view.vGuide': 'V Guide',
|
|
81490
|
+
'pptx.view.zoomToFit': 'Zoom to Fit',
|
|
81491
|
+
'pptx.view.zoomToFitTooltip': 'Zoom to fit slide in window',
|
|
81492
|
+
// --- 2026-07-03 missing-key sweep, wave 2: keys referenced indirectly
|
|
81493
|
+
// (via a variable/array 'labelKey', not a literal t('...') call - e.g.
|
|
81494
|
+
// shape-preset lists, equation templates, artistic-effect catalogues,
|
|
81495
|
+
// table style-option checkboxes) that the first wave's literal-call
|
|
81496
|
+
// grep could not see. Same appended-flat approach as wave 1.
|
|
81497
|
+
'pptx.accessibility.severityErrors': 'Errors',
|
|
81498
|
+
'pptx.accessibility.severityTips': 'Tips',
|
|
81499
|
+
'pptx.accessibility.severityWarnings': 'Warnings',
|
|
81500
|
+
'pptx.accessibility.typeBlankSlide': 'Blank slide',
|
|
81501
|
+
'pptx.accessibility.typeComplexTable': 'Complex table',
|
|
81502
|
+
'pptx.accessibility.typeDuplicateTitle': 'Duplicate slide title',
|
|
81503
|
+
'pptx.accessibility.typeLowContrast': 'Low contrast',
|
|
81504
|
+
'pptx.accessibility.typeMissingAltText': 'Missing alt text',
|
|
81505
|
+
'pptx.accessibility.typeMissingSlideTitle': 'Missing slide title',
|
|
81506
|
+
'pptx.align.bottom': 'Align bottom',
|
|
81507
|
+
'pptx.align.centerH': 'Align center',
|
|
81508
|
+
'pptx.align.left': 'Align left',
|
|
81509
|
+
'pptx.align.middle': 'Align middle',
|
|
81510
|
+
'pptx.align.right': 'Align right',
|
|
81511
|
+
'pptx.align.top': 'Align top',
|
|
81512
|
+
'pptx.documentProperties.custom.typeDate': 'Date',
|
|
81513
|
+
'pptx.documentProperties.custom.typeNumber': 'Number',
|
|
81514
|
+
'pptx.documentProperties.custom.typeText': 'Text',
|
|
81515
|
+
'pptx.documentProperties.custom.typeYesNo': 'Yes or No',
|
|
81516
|
+
'pptx.documentProperties.statistics.elements': 'Elements',
|
|
81517
|
+
'pptx.documentProperties.statistics.hiddenSlides': 'Hidden Slides',
|
|
81518
|
+
'pptx.documentProperties.statistics.lastModifiedBy': 'Last Modified By',
|
|
81519
|
+
'pptx.documentProperties.statistics.notes': 'Notes',
|
|
81520
|
+
'pptx.documentProperties.statistics.paragraphs': 'Paragraphs',
|
|
81521
|
+
'pptx.documentProperties.statistics.revision': 'Revision',
|
|
81522
|
+
'pptx.documentProperties.statistics.slides': 'Slides',
|
|
81523
|
+
'pptx.documentProperties.statistics.words': 'Words',
|
|
81524
|
+
'pptx.documentProperties.summary.category': 'Category',
|
|
81525
|
+
'pptx.documentProperties.summary.description': 'Description',
|
|
81526
|
+
'pptx.documentProperties.tabs.custom': 'Custom',
|
|
81527
|
+
'pptx.documentProperties.tabs.general': 'General',
|
|
81528
|
+
'pptx.documentProperties.tabs.statistics': 'Statistics',
|
|
81529
|
+
'pptx.editorToolbar.shapeEllipse': 'Ellipse',
|
|
81530
|
+
'pptx.editorToolbar.shapeRectangle': 'Rectangle',
|
|
81531
|
+
'pptx.editorToolbar.shapeRoundedRectangle': 'Rounded rectangle',
|
|
81532
|
+
'pptx.editorToolbar.shapeTriangle': 'Triangle',
|
|
81533
|
+
'pptx.equation.template.binomial': 'Binomial',
|
|
81534
|
+
'pptx.equation.template.derivative': 'Derivative',
|
|
81535
|
+
'pptx.equation.template.euler': "Euler's",
|
|
81536
|
+
'pptx.equation.template.fraction': 'Fraction',
|
|
81537
|
+
'pptx.equation.template.integral': 'Integral',
|
|
81538
|
+
'pptx.equation.template.limit': 'Limit',
|
|
81539
|
+
'pptx.equation.template.matrix': 'Matrix 2x2',
|
|
81540
|
+
'pptx.equation.template.pythagorean': 'Pythagorean',
|
|
81541
|
+
'pptx.equation.template.quadratic': 'Quadratic',
|
|
81542
|
+
'pptx.equation.template.squareRoot': 'Square Root',
|
|
81543
|
+
'pptx.equation.template.sum': 'Sum',
|
|
81544
|
+
'pptx.equation.template.trigIdentity': 'Trig Identity',
|
|
81545
|
+
'pptx.hyperlink.actionNone': 'None',
|
|
81546
|
+
'pptx.hyperlink.actionSlide': 'Slide',
|
|
81547
|
+
'pptx.hyperlink.actionUrl': 'URL',
|
|
81548
|
+
'pptx.image.duotonePresetBlackWhite': 'Black, White',
|
|
81549
|
+
'pptx.image.duotonePresetBlueOrange': 'Blue, Orange',
|
|
81550
|
+
'pptx.image.duotonePresetGreenYellow': 'Green, Yellow',
|
|
81551
|
+
'pptx.image.duotonePresetNavyGold': 'Navy, Gold',
|
|
81552
|
+
'pptx.image.duotonePresetPurplePink': 'Purple, Pink',
|
|
81553
|
+
'pptx.image.duotonePresetRedCream': 'Red, Cream',
|
|
81554
|
+
'pptx.image.duotonePresetSepiaWarm': 'Sepia, Warm',
|
|
81555
|
+
'pptx.image.duotonePresetTealWhite': 'Teal, White',
|
|
81556
|
+
'pptx.image.effectBlur': 'Blur',
|
|
81557
|
+
'pptx.image.effectCement': 'Cement',
|
|
81558
|
+
'pptx.image.effectChalk': 'Chalk Sketch',
|
|
81559
|
+
'pptx.image.effectCrisscross': 'Crisscross Etching',
|
|
81560
|
+
'pptx.image.effectCutout': 'Cutout',
|
|
81561
|
+
'pptx.image.effectFilmGrain': 'Film Grain',
|
|
81562
|
+
'pptx.image.effectGlowDiffused': 'Glow Diffused',
|
|
81563
|
+
'pptx.image.effectGlowEdges': 'Glow Edges',
|
|
81564
|
+
'pptx.image.effectGrayscale': 'Grayscale',
|
|
81565
|
+
'pptx.image.effectLightScreen': 'Light Screen',
|
|
81566
|
+
'pptx.image.effectLineDrawing': 'Line Drawing',
|
|
81567
|
+
'pptx.image.effectMarker': 'Marker',
|
|
81568
|
+
'pptx.image.effectMosaic': 'Mosaic Bubbles',
|
|
81569
|
+
'pptx.image.effectNone': 'None',
|
|
81570
|
+
'pptx.image.effectPaint': 'Paint Brush',
|
|
81571
|
+
'pptx.image.effectPaintStrokes': 'Paint Strokes',
|
|
81572
|
+
'pptx.image.effectPastels': 'Pastels Smooth',
|
|
81573
|
+
'pptx.image.effectPencilSketch': 'Pencil Sketch',
|
|
81574
|
+
'pptx.image.effectPhotocopy': 'Photocopy',
|
|
81575
|
+
'pptx.image.effectPlasticWrap': 'Plastic Wrap',
|
|
81576
|
+
'pptx.image.effectSepia': 'Sepia',
|
|
81577
|
+
'pptx.image.effectSharpen': 'Sharpen',
|
|
81578
|
+
'pptx.image.effectTexturizer': 'Texturizer',
|
|
81579
|
+
'pptx.image.effectWatercolor': 'Watercolor Sponge',
|
|
81580
|
+
'pptx.share.copyLinkButton': 'Copy Link',
|
|
81581
|
+
'pptx.stroke.dashDash': 'Dash',
|
|
81582
|
+
'pptx.stroke.dashDashDot': 'Dash Dot',
|
|
81583
|
+
'pptx.stroke.dashDot': 'Dot',
|
|
81584
|
+
'pptx.stroke.dashSolid': 'Solid',
|
|
81585
|
+
'pptx.stroke.dashSysDash': 'System Dash',
|
|
81586
|
+
'pptx.stroke.dashSysDot': 'System Dot',
|
|
81587
|
+
'pptx.table.bandedColumns': 'Banded Columns',
|
|
81588
|
+
'pptx.table.bandedRows': 'Banded Rows',
|
|
81589
|
+
'pptx.table.borderBottom': 'Bottom',
|
|
81590
|
+
'pptx.table.borderDiagDown': 'Diagonal Down',
|
|
81591
|
+
'pptx.table.borderDiagUp': 'Diagonal Up',
|
|
81592
|
+
'pptx.table.borderLeft': 'Left',
|
|
81593
|
+
'pptx.table.borderRight': 'Right',
|
|
81594
|
+
'pptx.table.borderTop': 'Top',
|
|
81595
|
+
'pptx.table.fillGradient': 'Gradient',
|
|
81596
|
+
'pptx.table.fillNone': 'None',
|
|
81597
|
+
'pptx.table.fillPattern': 'Pattern',
|
|
81598
|
+
'pptx.table.fillSolid': 'Solid',
|
|
81599
|
+
'pptx.table.firstColumn': 'First Column',
|
|
81600
|
+
'pptx.table.gradientLinear': 'Linear',
|
|
81601
|
+
'pptx.table.gradientRadial': 'Radial',
|
|
81602
|
+
'pptx.table.headerRow': 'Header Row',
|
|
81603
|
+
'pptx.table.lastColumn': 'Last Column',
|
|
81604
|
+
'pptx.table.lastRow': 'Last Row',
|
|
81605
|
+
'pptx.table.marginBottom': 'Bottom',
|
|
81606
|
+
'pptx.table.marginLeft': 'Left',
|
|
81607
|
+
'pptx.table.marginRight': 'Right',
|
|
81608
|
+
'pptx.table.marginTop': 'Top',
|
|
81225
81609
|
};
|
|
81226
81610
|
/**
|
|
81227
81611
|
* Convert a dotted translation key to a human-readable label when no
|