@inizioevoke/astro-core 1.6.0 → 1.6.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inizioevoke/astro-core",
3
- "version": "1.6.0",
3
+ "version": "1.6.2",
4
4
  "description": "",
5
5
  "license": "ISC",
6
6
  "author": "",
@@ -6,8 +6,9 @@ interface Props {
6
6
  id: string;
7
7
  class?: string;
8
8
  height?: number | string;
9
- theme?: 'black' | 'dark';
9
+ theme?: 'light' | 'dark' | 'black';
10
10
  pdf: string;
11
+ zoom?: 50 | 60 | 70 | 80 | 90 | 100 | 110 | 120 | 130 | 140 | 150;
11
12
  page?: number;
12
13
  pages?: string;
13
14
  bookmarks?: Record<string, number>;
@@ -23,6 +24,7 @@ const {
23
24
  height,
24
25
  theme,
25
26
  pdf,
27
+ zoom,
26
28
  page = 1,
27
29
  bookmarks,
28
30
  bookmarkText = 'Jump to',
@@ -40,6 +42,7 @@ if (height) {
40
42
  class:list={['evo-pdf-viewer', cssClass, theme ? `evo-pdf-viewer-theme-${theme}` : null]}
41
43
  data-pdf={pdf}
42
44
  data-page={page}
45
+ data-zoom={zoom}
43
46
  {...attrs}
44
47
  >
45
48
  <div class="evo-pdf-viewer-toolbar">
@@ -127,7 +127,7 @@
127
127
  }*/
128
128
  .evo-pdf-viewer-container {
129
129
  height: calc(var(--evo-pdf-viewer-height) - var(--evo-pdf-viewer-toolbar-height));
130
- padding: 0 9px 9px 9px;
130
+ padding: 0 9px 9px var(--evo-scroll-container-content-padding-right);
131
131
  box-sizing: border-box;
132
132
 
133
133
  .evo-scroll-container {
@@ -155,6 +155,9 @@
155
155
  .evo-pdf-viewer-link-overlay {
156
156
  pointer-events: auto;
157
157
  z-index: 1;
158
+ -webkit-tap-highlight-color: transparent;
159
+ user-select: none;
160
+ touch-action: manipulation;
158
161
 
159
162
  rect {
160
163
  cursor: pointer;
@@ -225,11 +225,11 @@ export async function createViewer(selector: string) {
225
225
  const toolbarHeight = parseFloat(getComputedStyle(toolbar).height);
226
226
  const pageSelect = toolbar.querySelector('.evo-pdf-viewer-nav-page select') as HTMLSelectElement;
227
227
  const scrollContainer = ScrollContainer.getScrollContainer(pdfViewer.querySelector('.evo-scroll-container') as HTMLElement) as ScrollContainer.IScrollContainer;
228
-
228
+ const defaultZoom = parseInt(pdfViewer.getAttribute('data-zoom') ?? '100', 10);
229
229
  const zoom = (z: number) => {
230
230
  const style = getComputedStyle(pdfViewer);
231
231
  const current = Math.floor(parseFloat(style.getPropertyValue('--evo-pdf-viewer-scale')) * 10);
232
- const scale = z === 0 ? 10 : current + z;
232
+ const scale = z === 0 ? defaultZoom / 10 : current + z;
233
233
  if (scale >= 1) {
234
234
  const scroll = ScrollContainer.getScroll(scrollContainer);
235
235
  pdfViewer.style.setProperty('--evo-pdf-viewer-scale', (scale/10).toString());
@@ -237,6 +237,7 @@ export async function createViewer(selector: string) {
237
237
  ScrollContainer.refresh(scrollContainer);
238
238
  }
239
239
  };
240
+ zoom(0);
240
241
 
241
242
  const gotoPage = (page: number | string) => {
242
243
  if (typeof page == 'string') {
@@ -271,11 +272,13 @@ export async function createViewer(selector: string) {
271
272
 
272
273
  const pdf: PDFDocumentProxy = await pdfjs.getDocument(pdfViewer.getAttribute('data-pdf') as string).promise;
273
274
 
274
- const bookmarksSelect = toolbar.querySelector('.evo-pdf-viewer-toolbar-bookmarks select') as HTMLSelectElement;
275
- bookmarksSelect.addEventListener('change', () => {
276
- gotoPage(bookmarksSelect.options[bookmarksSelect.selectedIndex].value);
277
- bookmarksSelect.selectedIndex = 0;
278
- });
275
+ const bookmarksSelect = toolbar.querySelector<HTMLSelectElement>('.evo-pdf-viewer-toolbar-bookmarks select');
276
+ if (bookmarksSelect) {
277
+ bookmarksSelect.addEventListener('change', () => {
278
+ gotoPage(bookmarksSelect.options[bookmarksSelect.selectedIndex].value);
279
+ bookmarksSelect.selectedIndex = 0;
280
+ });
281
+ }
279
282
 
280
283
  const outputScale = window.devicePixelRatio || 1;
281
284
  const pages = new Array(pdf.numPages).fill(1).map((v, i) => { return i + 1; });
@@ -295,7 +298,6 @@ export async function createViewer(selector: string) {
295
298
  }
296
299
  }, { passive: true });
297
300
 
298
-
299
301
  const pdfContainer = pdfViewer.querySelector('.evo-scroll-content') as HTMLElement;
300
302
  pdfViewer.querySelector<HTMLElement>('.evo-pdf-viewer-nav-page-count')!.innerText = pages.length.toString();
301
303
  pageSelect.options.remove(0);
@@ -9,6 +9,7 @@
9
9
  --evo-scroll-container-thumb-color: #666666;
10
10
  --evo-scroll-container-thumb-border-width: 0px;
11
11
  --evo-scroll-container-thumb-border-color: var(--evo-scroll-container-track-color);
12
+ --evo-scroll-container-content-padding-right: calc(1rem + var(--evo-scroll-container-track-width));
12
13
  }
13
14
 
14
15
  evo-scroll-container,
@@ -27,7 +28,7 @@
27
28
  .evo-scroll-content {
28
29
  height: 100%;
29
30
  overflow-y: scroll;
30
- padding-right: calc(1rem + var(--evo-scroll-container-track-width));
31
+ padding-right: var(--evo-scroll-container-content-padding-right);
31
32
  -ms-overflow-style: none;
32
33
  scrollbar-width: none;
33
34
  &::-webkit-scrollbar {