@file-viewer/renderer-ofd 2.2.7 → 2.2.8

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.
Files changed (2) hide show
  1. package/dist/ofd.js +16 -3
  2. package/package.json +2 -2
package/dist/ofd.js CHANGED
@@ -18,7 +18,8 @@ const ofdStyle = `
18
18
  .ofd-state[hidden]{display:none!important}
19
19
  .ofd-state.error{color:#b42318}
20
20
  .ofd-page-frame{position:relative;display:block;margin:0 auto 20px;overflow:visible}
21
- .ofd-page{display:block;margin-left:auto!important;margin-right:auto!important;background:#fff!important;color:#111827!important;color-scheme:only light;forced-color-adjust:none;isolation:isolate;box-shadow:0 10px 26px rgba(15,23,42,.12);transition:transform .16s ease}
21
+ .ofd-page{display:block;margin-left:auto!important;margin-right:auto!important;background:#fff!important;color:#111827!important;color-scheme:only light;forced-color-adjust:none;isolation:isolate;box-shadow:0 10px 26px rgba(15,23,42,.12);transition:none}
22
+ .ofd-page.ofd-page--zoom-ready{transition:transform .16s ease}
22
23
  .ofd-page,.ofd-page *{color-scheme:only light;forced-color-adjust:none}
23
24
  .ofd-page svg,.ofd-page canvas,.ofd-page img{filter:none!important;mix-blend-mode:normal!important}
24
25
  [data-viewer-theme='dark'] .ofd-viewer{background:var(--file-viewer-render-surface-background,#172033);color:#e5eef8}
@@ -31,6 +32,7 @@ const ofdStyle = `
31
32
  [data-viewer-theme='dark'] .ofd-page-meter{color:#94a3b8}
32
33
  [data-viewer-theme='dark'] .ofd-page-meter strong{color:#f1f5f9}
33
34
  @media (prefers-color-scheme:dark){[data-viewer-theme='system'] .ofd-viewer{background:var(--file-viewer-render-surface-background,#172033);color:#e5eef8}[data-viewer-theme='system'] .ofd-state{background:rgba(15,23,42,.9);color:#cbd5e1}[data-viewer-theme='system'] .ofd-toolbar{border-color:rgba(100,116,139,.5);background:rgba(15,23,42,.9)}[data-viewer-theme='system'] .ofd-toolbar-group{border-color:#475569;background:#1e293b}[data-viewer-theme='system'] .ofd-page-button{color:#e2e8f0}[data-viewer-theme='system'] .ofd-page-button:hover:not(:disabled){border-color:#4d79ad;color:#93c5fd;background:#263b55}[data-viewer-theme='system'] .ofd-page-button:disabled{color:#64748b}[data-viewer-theme='system'] .ofd-page-meter{color:#94a3b8}[data-viewer-theme='system'] .ofd-page-meter strong{color:#f1f5f9}}
35
+ @media (prefers-reduced-motion:reduce){.ofd-page.ofd-page--zoom-ready{transition:none}}
34
36
  @media print{.ofd-viewer{display:block;background:#fff!important}.ofd-toolbar{display:none!important}.ofd-stage{padding:0!important;overflow:visible!important}.ofd-page-frame{break-after:page;page-break-after:always;margin:0 auto!important}.ofd-page-frame:last-child{break-after:auto;page-break-after:auto}.ofd-page{box-shadow:none!important;transition:none!important}}
35
37
  `;
36
38
  const loadOfdModule = (() => {
@@ -282,13 +284,14 @@ export default async function renderOfd(buffer, target, context) {
282
284
  minScale: OFD_MIN_SCALE,
283
285
  maxScale: OFD_MAX_SCALE,
284
286
  });
285
- const syncPageZoom = () => {
287
+ const syncPageZoom = (animate = false) => {
286
288
  const HTMLElementCtor = (targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.HTMLElement) || globalThis.HTMLElement;
287
289
  stage.querySelectorAll('.ofd-page-frame').forEach(frame => {
288
290
  const page = frame.firstElementChild;
289
291
  if (!HTMLElementCtor || !(page instanceof HTMLElementCtor)) {
290
292
  return;
291
293
  }
294
+ page.classList.toggle('ofd-page--zoom-ready', animate);
292
295
  page.style.position = 'absolute';
293
296
  page.style.top = '0';
294
297
  page.style.left = '50%';
@@ -305,9 +308,18 @@ export default async function renderOfd(buffer, target, context) {
305
308
  frame.style.height = `${Math.ceil(pageHeight * zoom)}px`;
306
309
  });
307
310
  };
311
+ const enablePageZoomTransitions = () => {
312
+ stage.querySelectorAll('.ofd-page').forEach(page => {
313
+ // Commit the initial centering transform without a transition. Otherwise
314
+ // a newly inserted page animates from `none` to `translateX(-50%)` and
315
+ // looks like the document was opened a second time.
316
+ page.getBoundingClientRect();
317
+ page.classList.add('ofd-page--zoom-ready');
318
+ });
319
+ };
308
320
  const setZoom = (nextZoom) => {
309
321
  zoom = clampZoom(nextZoom);
310
- syncPageZoom();
322
+ syncPageZoom(true);
311
323
  zoomEmitter.emit();
312
324
  return getZoomState();
313
325
  };
@@ -361,6 +373,7 @@ export default async function renderOfd(buffer, target, context) {
361
373
  lastRenderedWidth = width;
362
374
  await waitForPaint(targetWindow);
363
375
  syncPageZoom();
376
+ enablePageZoomTransitions();
364
377
  syncPageNavigation();
365
378
  if (currentPage > 1)
366
379
  scrollToPage(currentPage, 'auto');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@file-viewer/renderer-ofd",
3
- "version": "2.2.7",
3
+ "version": "2.2.8",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Standalone OFD renderer plugin for File Viewer powered by DLTech21/ofd.js.",
@@ -53,7 +53,7 @@
53
53
  "LICENSE"
54
54
  ],
55
55
  "dependencies": {
56
- "@file-viewer/core": "2.2.7",
56
+ "@file-viewer/core": "2.2.8",
57
57
  "jszip": "^3.10.1"
58
58
  },
59
59
  "devDependencies": {