@pdfslick/solid 1.5.2 → 2.0.0
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/dist/PDFSlickViewer.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/pdf_viewer.css +2889 -2294
- package/dist/source/PDFSlickViewer.jsx +3 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PDFSlickViewer.d.ts","sourceRoot":"","sources":["../PDFSlickViewer.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,CAAC;IAC3C,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"PDFSlickViewer.d.ts","sourceRoot":"","sources":["../PDFSlickViewer.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,CAAC;IAC3C,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK,EAAE,mBAAmB,OAmChE"}
|
package/dist/esm/index.js
CHANGED
|
@@ -25,6 +25,7 @@ function PDFSlickViewer(props) {
|
|
|
25
25
|
}, _el$);
|
|
26
26
|
_el$.style.setProperty("position", "absolute");
|
|
27
27
|
_el$.style.setProperty("inset", "0");
|
|
28
|
+
_el$.style.setProperty("overflow", "auto");
|
|
28
29
|
effect(() => className(_el$, `pdfSlickContainer ${props.class ?? ""}`));
|
|
29
30
|
return _el$;
|
|
30
31
|
})();
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../PDFSlickViewer.tsx","../../PDFSlickThumbnails.tsx","../../usePDFSlick.tsx"],"sourcesContent":["/** @jsxImportSource solid-js */\nimport { createEffect, createSignal } from \"solid-js\";\nimport { createElementSize } from \"@solid-primitives/resize-observer\";\nimport type { PDFSlickState } from \"@pdfslick/core\";\n\nexport type PDFSlickViewerProps = {\n viewerRef: (instance: HTMLElement) => void;\n store: PDFSlickState;\n class?: string;\n};\n\nexport default function PDFSlickViewer(props: PDFSlickViewerProps) {\n const [resizeRef, setResizeRef] = createSignal<HTMLElement>();\n\n const size = createElementSize(resizeRef);\n createEffect(() => {\n if (size.width && size.height) {\n if (\n props.store.pdfSlick &&\n (props.store.scaleValue === \"auto\" ||\n props.store.scaleValue === \"page-fit\" ||\n props.store.scaleValue === \"page-width\")\n ) {\n props.store.pdfSlick.viewer.currentScaleValue = props.store.scaleValue;\n }\n props.store.pdfSlick?.viewer.update();\n }\n });\n\n return (\n <div\n ref={(el) => {\n props.viewerRef(el);\n setResizeRef(el);\n }}\n id=\"viewerContainer\"\n class={`pdfSlickContainer ${props.class ?? \"\"}`}\n style={{\n position: \"absolute\",\n inset: 0,\n }}\n >\n <div id=\"viewer\" class=\"pdfSlickViewer pdfViewer\" />\n </div>\n );\n}\n","import { JSXElement, For, createSignal, createEffect } from \"solid-js\";\nimport { Portal } from \"solid-js/web\";\nimport { createElementSize } from \"@solid-primitives/resize-observer\";\nimport type { PDFSlickState } from \"@pdfslick/solid\";\n\nexport type PDFSlickThumbProps = {\n pageNumber: number;\n width: number;\n height: number;\n scale: number;\n rotation: number;\n loaded: boolean;\n pageLabel: string | null;\n src: string | null;\n};\n\nexport type PDFSlickThumbnailsContainerProps = {\n children: ({\n pageNumber,\n src,\n width,\n height,\n scale,\n rotation,\n pageLabel,\n loaded,\n }: PDFSlickThumbProps) => JSXElement;\n thumbsRef: (instance: HTMLElement) => void;\n store: PDFSlickState;\n class?: string;\n classList?: Record<string, boolean>;\n};\n\nexport function PDFSlickThumbnails(props: PDFSlickThumbnailsContainerProps) {\n const [resizeRef, setResizeRef] = createSignal<HTMLElement>();\n const size = createElementSize(resizeRef);\n\n createEffect(() => {\n if (size.width && size.height) {\n props.store.pdfSlick?.forceRendering();\n }\n });\n\n return (\n <div\n ref={(el) => {\n props.thumbsRef(el);\n setResizeRef(el);\n }}\n class={props.class ?? \"\"}\n classList={props.classList ?? {}}\n style={{\n position: \"absolute\",\n overflow: \"auto\",\n inset: 0,\n }}\n >\n <For each={Array.from(props.store.thumbnailViews)}>\n {([pageNumber, view]) => (\n <Portal mount={view.div}>\n {props.children({\n pageNumber,\n width: view.canvasWidth,\n height: view.canvasHeight,\n scale: view.scale,\n src: view?.src ?? null,\n rotation: view.rotation,\n pageLabel: view.pageLabel,\n loaded: view.loaded,\n })}\n </Portal>\n )}\n </For>\n </div>\n );\n}\n","import { createStore, reconcile } from \"solid-js/store\";\nimport { createEffect, createSignal, type Accessor } from \"solid-js\";\nimport { onCleanup } from \"solid-js\";\nimport { create, PDFSlick } from \"@pdfslick/core\";\nimport type {\n PDFSlickOptions,\n PDFSlickState,\n PDFException,\n} from \"@pdfslick/core\";\nimport { StoreApi } from \"zustand\";\nimport PDFSlickViewer from \"./PDFSlickViewer\";\nimport { PDFSlickThumbnails } from \"./PDFSlickThumbnails\";\n\ntype TUsePDFSlick = (\n url: string | URL | ArrayBuffer | undefined,\n options?: PDFSlickOptions\n) => {\n isDocumentLoaded: Accessor<boolean>;\n viewerRef: (node: HTMLElement) => void;\n thumbsRef: (node: HTMLElement) => void;\n pdfSlick: Accessor<PDFSlick | null>;\n pdfSlickStore: PDFSlickState;\n PDFSlickViewer: typeof PDFSlickViewer;\n PDFSlickThumbnails: typeof PDFSlickThumbnails;\n error: Accessor<PDFException | null>;\n};\n\ntype ExtractState<S> = S extends { getState: () => infer T } ? T : never;\nfunction useStore<S extends StoreApi<unknown>>(api: S): ExtractState<S>;\nfunction useStore<S extends StoreApi<unknown>, U>(\n api: S,\n selector: (state: ExtractState<S>) => U,\n equalityFn?: (a: U, b: U) => boolean\n): U;\n\nfunction useStore<TState extends object, StateSlice>(\n api: StoreApi<TState>,\n selector: (state: TState) => StateSlice = api.getState as any,\n equalityFn?: (a: StateSlice, b: StateSlice) => boolean\n) {\n const initialValue = selector(api.getState()) as any;\n const [state, setState] = createStore(initialValue);\n\n const listener = (nextState: TState, previousState: TState) => {\n const prevStateSlice = selector(previousState);\n const nextStateSlice = selector(nextState);\n\n if (equalityFn !== undefined) {\n if (!equalityFn(prevStateSlice, nextStateSlice))\n setState(reconcile(nextStateSlice));\n } else {\n setState(reconcile(nextStateSlice));\n }\n };\n\n const unsubscribe = api.subscribe(listener);\n onCleanup(() => unsubscribe());\n return state;\n}\n\nexport const usePDFSlick: TUsePDFSlick = (url, options) => {\n const [isDocumentLoaded, setIsDocumentLoaded] = createSignal(false);\n const [areContainersMounted, setContainersMounted] = createSignal(false);\n const [container, setContainer] = createSignal<HTMLElement | null>(null);\n const [thumbs, setThumbs] = createSignal<HTMLElement | null>(null);\n const [error, setError] = createSignal<PDFException | null>(null);\n\n const [pdfSlick, setPdfSlick] = createSignal<PDFSlick | null>(null);\n\n const zustandStore = create();\n const pdfSlickStore = useStore(zustandStore);\n\n const viewerRef = (node: HTMLElement) => {\n setContainer(node);\n setContainersMounted(true);\n };\n\n const thumbsRef = (node: HTMLElement) => {\n setThumbs(node);\n };\n\n createEffect(() => {\n if (url && areContainersMounted()) {\n const pdfSlick = new PDFSlick({\n container: container()! as HTMLDivElement,\n thumbs: thumbs()! as HTMLDivElement,\n store: zustandStore,\n options,\n onError: (err) => setError(err),\n });\n setPdfSlick(pdfSlick);\n zustandStore.setState({ pdfSlick });\n\n pdfSlick.loadDocument(url, options).then(() => {\n setIsDocumentLoaded(true);\n });\n }\n });\n\n return {\n isDocumentLoaded,\n viewerRef,\n thumbsRef,\n pdfSlick,\n pdfSlickStore,\n PDFSlickViewer,\n PDFSlickThumbnails,\n error,\n };\n};\n"],"names":["PDFSlickViewer","props","resizeRef","setResizeRef","createSignal","size","createElementSize","createEffect","width","height","store","pdfSlick","scaleValue","viewer","currentScaleValue","update","_el$","_tmpl$","_$use","el","viewerRef","style","setProperty","_$effect","_$className","class","PDFSlickThumbnails","forceRendering","thumbsRef","_$insert","_$createComponent","For","each","Array","from","thumbnailViews","children","pageNumber","view","Portal","mount","div","canvasWidth","canvasHeight","scale","src","rotation","pageLabel","loaded","_p$","_v$","_v$2","classList","e","t","_$classList","undefined","useStore","api","selector","getState","equalityFn","initialValue","state","setState","createStore","listener","nextState","previousState","nextStateSlice","reconcile","unsubscribe","subscribe","onCleanup","usePDFSlick","url","options","isDocumentLoaded","setIsDocumentLoaded","areContainersMounted","setContainersMounted","container","setContainer","thumbs","setThumbs","error","setError","setPdfSlick","zustandStore","create","pdfSlickStore","node","PDFSlick","onError","err","loadDocument","then"],"mappings":";;;;;;;;AAWe,SAASA,cAAcA,CAACC,KAA0B,EAAE;EACjE,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGC,YAAY,EAAe,CAAA;AAE7D,EAAA,MAAMC,IAAI,GAAGC,iBAAiB,CAACJ,SAAS,CAAC,CAAA;AACzCK,EAAAA,YAAY,CAAC,MAAM;AACjB,IAAA,IAAIF,IAAI,CAACG,KAAK,IAAIH,IAAI,CAACI,MAAM,EAAE;AAC7B,MAAA,IACER,KAAK,CAACS,KAAK,CAACC,QAAQ,KACnBV,KAAK,CAACS,KAAK,CAACE,UAAU,KAAK,MAAM,IAChCX,KAAK,CAACS,KAAK,CAACE,UAAU,KAAK,UAAU,IACrCX,KAAK,CAACS,KAAK,CAACE,UAAU,KAAK,YAAY,CAAC,EAC1C;AACAX,QAAAA,KAAK,CAACS,KAAK,CAACC,QAAQ,CAACE,MAAM,CAACC,iBAAiB,GAAGb,KAAK,CAACS,KAAK,CAACE,UAAU,CAAA;AACxE,OAAA;MACAX,KAAK,CAACS,KAAK,CAACC,QAAQ,EAAEE,MAAM,CAACE,MAAM,EAAE,CAAA;AACvC,KAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,OAAA,CAAA,MAAA;IAAA,IAAAC,IAAA,GAAAC,QAAA,EAAA,CAAA;IAAAC,GAAA,CAEUC,EAAE,IAAK;AACXlB,MAAAA,KAAK,CAACmB,SAAS,CAACD,EAAE,CAAC,CAAA;MACnBhB,YAAY,CAACgB,EAAE,CAAC,CAAA;AAClB,KAAC,EAAAH,IAAA,CAAA,CAAA;IAAAA,IAAA,CAAAK,KAAA,CAAAC,WAAA,CAAA,UAAA,EAAA,UAAA,CAAA,CAAA;IAAAN,IAAA,CAAAK,KAAA,CAAAC,WAAA,CAAA,OAAA,EAAA,GAAA,CAAA,CAAA;IAAAC,MAAA,CAAA,MAAAC,SAAA,CAAAR,IAAA,EAEM,CAAqBf,kBAAAA,EAAAA,KAAK,CAACwB,KAAK,IAAI,EAAE,CAAE,CAAA,CAAA,CAAA,CAAA;AAAA,IAAA,OAAAT,IAAA,CAAA;AAAA,GAAA,GAAA,CAAA;AASrD;;;ACZO,SAASU,kBAAkBA,CAACzB,KAAuC,EAAE;EAC1E,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGC,YAAY,EAAe,CAAA;AAC7D,EAAA,MAAMC,IAAI,GAAGC,iBAAiB,CAACJ,SAAS,CAAC,CAAA;AAEzCK,EAAAA,YAAY,CAAC,MAAM;AACjB,IAAA,IAAIF,IAAI,CAACG,KAAK,IAAIH,IAAI,CAACI,MAAM,EAAE;AAC7BR,MAAAA,KAAK,CAACS,KAAK,CAACC,QAAQ,EAAEgB,cAAc,EAAE,CAAA;AACxC,KAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,OAAA,CAAA,MAAA;IAAA,IAAAX,IAAA,GAAAC,MAAA,EAAA,CAAA;IAAAC,GAAA,CAEUC,EAAE,IAAK;AACXlB,MAAAA,KAAK,CAAC2B,SAAS,CAACT,EAAE,CAAC,CAAA;MACnBhB,YAAY,CAACgB,EAAE,CAAC,CAAA;AAClB,KAAC,EAAAH,IAAA,CAAA,CAAA;IAAAA,IAAA,CAAAK,KAAA,CAAAC,WAAA,CAAA,UAAA,EAAA,UAAA,CAAA,CAAA;IAAAN,IAAA,CAAAK,KAAA,CAAAC,WAAA,CAAA,UAAA,EAAA,MAAA,CAAA,CAAA;IAAAN,IAAA,CAAAK,KAAA,CAAAC,WAAA,CAAA,OAAA,EAAA,GAAA,CAAA,CAAA;AAAAO,IAAAA,MAAA,CAAAb,IAAA,EAAAc,eAAA,CASAC,GAAG,EAAA;AAAA,MAAA,IAACC,IAAIA,GAAA;QAAA,OAAEC,KAAK,CAACC,IAAI,CAACjC,KAAK,CAACS,KAAK,CAACyB,cAAc,CAAC,CAAA;AAAA,OAAA;MAAAC,QAAA,EAC9CA,CAAC,CAACC,UAAU,EAAEC,IAAI,CAAC,KAAAR,eAAA,CACjBS,MAAM,EAAA;AAAA,QAAA,IAACC,KAAKA,GAAA;UAAA,OAAEF,IAAI,CAACG,GAAG,CAAA;AAAA,SAAA;AAAA,QAAA,IAAAL,QAAA,GAAA;UAAA,OACpBnC,KAAK,CAACmC,QAAQ,CAAC;YACdC,UAAU;YACV7B,KAAK,EAAE8B,IAAI,CAACI,WAAW;YACvBjC,MAAM,EAAE6B,IAAI,CAACK,YAAY;YACzBC,KAAK,EAAEN,IAAI,CAACM,KAAK;AACjBC,YAAAA,GAAG,EAAEP,IAAI,EAAEO,GAAG,IAAI,IAAI;YACtBC,QAAQ,EAAER,IAAI,CAACQ,QAAQ;YACvBC,SAAS,EAAET,IAAI,CAACS,SAAS;YACzBC,MAAM,EAAEV,IAAI,CAACU,MAAAA;AACf,WAAC,CAAC,CAAA;AAAA,SAAA;AAAA,OAAA,CAAA;AAEL,KAAA,CAAA,CAAA,CAAA;AAAAzB,IAAAA,MAAA,CAAA0B,GAAA,IAAA;AAAA,MAAA,IAAAC,GAAA,GAtBIjD,KAAK,CAACwB,KAAK,IAAI,EAAE;AAAA0B,QAAAA,IAAA,GACblD,KAAK,CAACmD,SAAS,IAAI,EAAE,CAAA;AAAAF,MAAAA,GAAA,KAAAD,GAAA,CAAAI,CAAA,IAAA7B,SAAA,CAAAR,IAAA,EAAAiC,GAAA,CAAAI,CAAA,GAAAH,GAAA,CAAA,CAAA;MAAAD,GAAA,CAAAK,CAAA,GAAAC,SAAA,CAAAvC,IAAA,EAAAmC,IAAA,EAAAF,GAAA,CAAAK,CAAA,CAAA,CAAA;AAAA,MAAA,OAAAL,GAAA,CAAA;AAAA,KAAA,EAAA;AAAAI,MAAAA,CAAA,EAAAG,SAAA;AAAAF,MAAAA,CAAA,EAAAE,SAAAA;AAAA,KAAA,CAAA,CAAA;AAAA,IAAA,OAAAxC,IAAA,CAAA;AAAA,GAAA,GAAA,CAAA;AAyBtC;;ACxCA,SAASyC,QAAQA,CACfC,GAAqB,EACrBC,QAAuC,GAAGD,GAAG,CAACE,QAAe,EAC7DC,UAAsD,EACtD;EACA,MAAMC,YAAY,GAAGH,QAAQ,CAACD,GAAG,CAACE,QAAQ,EAAE,CAAQ,CAAA;EACpD,MAAM,CAACG,KAAK,EAAEC,QAAQ,CAAC,GAAGC,WAAW,CAACH,YAAY,CAAC,CAAA;AAEnD,EAAA,MAAMI,QAAQ,GAAGA,CAACC,SAAiB,EAAEC,aAAqB,KAAK;AAC7D,IAAuBT,QAAQ,CAACS,aAAa,EAAC;AAC9C,IAAA,MAAMC,cAAc,GAAGV,QAAQ,CAACQ,SAAS,CAAC,CAAA;IAKnC;AACLH,MAAAA,QAAQ,CAACM,SAAS,CAACD,cAAc,CAAC,CAAC,CAAA;AACrC,KAAA;GACD,CAAA;AAED,EAAA,MAAME,WAAW,GAAGb,GAAG,CAACc,SAAS,CAACN,QAAQ,CAAC,CAAA;AAC3CO,EAAAA,SAAS,CAAC,MAAMF,WAAW,EAAE,CAAC,CAAA;AAC9B,EAAA,OAAOR,KAAK,CAAA;AACd,CAAA;MAEaW,WAAyB,GAAGA,CAACC,GAAG,EAAEC,OAAO,KAAK;EACzD,MAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG1E,YAAY,CAAC,KAAK,CAAC,CAAA;EACnE,MAAM,CAAC2E,oBAAoB,EAAEC,oBAAoB,CAAC,GAAG5E,YAAY,CAAC,KAAK,CAAC,CAAA;EACxE,MAAM,CAAC6E,SAAS,EAAEC,YAAY,CAAC,GAAG9E,YAAY,CAAqB,IAAI,CAAC,CAAA;EACxE,MAAM,CAAC+E,MAAM,EAAEC,SAAS,CAAC,GAAGhF,YAAY,CAAqB,IAAI,CAAC,CAAA;EAClE,MAAM,CAACiF,KAAK,EAAEC,QAAQ,CAAC,GAAGlF,YAAY,CAAsB,IAAI,CAAC,CAAA;EAEjE,MAAM,CAACO,QAAQ,EAAE4E,WAAW,CAAC,GAAGnF,YAAY,CAAkB,IAAI,CAAC,CAAA;AAEnE,EAAA,MAAMoF,YAAY,GAAGC,MAAM,EAAE,CAAA;AAC7B,EAAA,MAAMC,aAAa,GAAGjC,QAAQ,CAAC+B,YAAY,CAAC,CAAA;EAE5C,MAAMpE,SAAS,GAAIuE,IAAiB,IAAK;IACvCT,YAAY,CAACS,IAAI,CAAC,CAAA;IAClBX,oBAAoB,CAAC,IAAI,CAAC,CAAA;GAC3B,CAAA;EAED,MAAMpD,SAAS,GAAI+D,IAAiB,IAAK;IACvCP,SAAS,CAACO,IAAI,CAAC,CAAA;GAChB,CAAA;AAEDpF,EAAAA,YAAY,CAAC,MAAM;AACjB,IAAA,IAAIoE,GAAG,IAAII,oBAAoB,EAAE,EAAE;AACjC,MAAA,MAAMpE,QAAQ,GAAG,IAAIiF,QAAQ,CAAC;QAC5BX,SAAS,EAAEA,SAAS,EAAqB;QACzCE,MAAM,EAAEA,MAAM,EAAqB;AACnCzE,QAAAA,KAAK,EAAE8E,YAAY;QACnBZ,OAAO;AACPiB,QAAAA,OAAO,EAAGC,GAAG,IAAKR,QAAQ,CAACQ,GAAG,CAAA;AAChC,OAAC,CAAC,CAAA;MACFP,WAAW,CAAC5E,QAAQ,CAAC,CAAA;MACrB6E,YAAY,CAACxB,QAAQ,CAAC;AAAErD,QAAAA,QAAAA;AAAS,OAAC,CAAC,CAAA;MAEnCA,QAAQ,CAACoF,YAAY,CAACpB,GAAG,EAAEC,OAAO,CAAC,CAACoB,IAAI,CAAC,MAAM;QAC7ClB,mBAAmB,CAAC,IAAI,CAAC,CAAA;AAC3B,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAC,CAAC,CAAA;EAEF,OAAO;IACLD,gBAAgB;IAChBzD,SAAS;IACTQ,SAAS;IACTjB,QAAQ;IACR+E,aAAa;IACb1F,cAAc;IACd0B,kBAAkB;AAClB2D,IAAAA,KAAAA;GACD,CAAA;AACH;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../PDFSlickViewer.tsx","../../PDFSlickThumbnails.tsx","../../usePDFSlick.tsx"],"sourcesContent":["/** @jsxImportSource solid-js */\nimport { createEffect, createSignal } from \"solid-js\";\nimport { createElementSize } from \"@solid-primitives/resize-observer\";\nimport type { PDFSlickState } from \"@pdfslick/core\";\n\nexport type PDFSlickViewerProps = {\n viewerRef: (instance: HTMLElement) => void;\n store: PDFSlickState;\n class?: string;\n};\n\nexport default function PDFSlickViewer(props: PDFSlickViewerProps) {\n const [resizeRef, setResizeRef] = createSignal<HTMLElement>();\n\n const size = createElementSize(resizeRef);\n createEffect(() => {\n if (size.width && size.height) {\n if (\n props.store.pdfSlick &&\n (props.store.scaleValue === \"auto\" ||\n props.store.scaleValue === \"page-fit\" ||\n props.store.scaleValue === \"page-width\")\n ) {\n props.store.pdfSlick.viewer.currentScaleValue = props.store.scaleValue;\n }\n props.store.pdfSlick?.viewer.update();\n }\n });\n\n return (\n <div\n ref={(el) => {\n props.viewerRef(el);\n setResizeRef(el);\n }}\n id=\"viewerContainer\"\n class={`pdfSlickContainer ${props.class ?? \"\"}`}\n style={{\n \"position\": \"absolute\",\n \"inset\": 0,\n \"overflow\": \"auto\"\n }}\n >\n <div id=\"viewer\" class=\"pdfSlickViewer pdfViewer\" />\n </div>\n );\n}\n","import { JSXElement, For, createSignal, createEffect } from \"solid-js\";\nimport { Portal } from \"solid-js/web\";\nimport { createElementSize } from \"@solid-primitives/resize-observer\";\nimport type { PDFSlickState } from \"@pdfslick/solid\";\n\nexport type PDFSlickThumbProps = {\n pageNumber: number;\n width: number;\n height: number;\n scale: number;\n rotation: number;\n loaded: boolean;\n pageLabel: string | null;\n src: string | null;\n};\n\nexport type PDFSlickThumbnailsContainerProps = {\n children: ({\n pageNumber,\n src,\n width,\n height,\n scale,\n rotation,\n pageLabel,\n loaded,\n }: PDFSlickThumbProps) => JSXElement;\n thumbsRef: (instance: HTMLElement) => void;\n store: PDFSlickState;\n class?: string;\n classList?: Record<string, boolean>;\n};\n\nexport function PDFSlickThumbnails(props: PDFSlickThumbnailsContainerProps) {\n const [resizeRef, setResizeRef] = createSignal<HTMLElement>();\n const size = createElementSize(resizeRef);\n\n createEffect(() => {\n if (size.width && size.height) {\n props.store.pdfSlick?.forceRendering();\n }\n });\n\n return (\n <div\n ref={(el) => {\n props.thumbsRef(el);\n setResizeRef(el);\n }}\n class={props.class ?? \"\"}\n classList={props.classList ?? {}}\n style={{\n position: \"absolute\",\n overflow: \"auto\",\n inset: 0,\n }}\n >\n <For each={Array.from(props.store.thumbnailViews)}>\n {([pageNumber, view]) => (\n <Portal mount={view.div}>\n {props.children({\n pageNumber,\n width: view.canvasWidth,\n height: view.canvasHeight,\n scale: view.scale,\n src: view?.src ?? null,\n rotation: view.rotation,\n pageLabel: view.pageLabel,\n loaded: view.loaded,\n })}\n </Portal>\n )}\n </For>\n </div>\n );\n}\n","import { createStore, reconcile } from \"solid-js/store\";\nimport { createEffect, createSignal, type Accessor } from \"solid-js\";\nimport { onCleanup } from \"solid-js\";\nimport { create, PDFSlick } from \"@pdfslick/core\";\nimport type {\n PDFSlickOptions,\n PDFSlickState,\n PDFException,\n} from \"@pdfslick/core\";\nimport { StoreApi } from \"zustand\";\nimport PDFSlickViewer from \"./PDFSlickViewer\";\nimport { PDFSlickThumbnails } from \"./PDFSlickThumbnails\";\n\ntype TUsePDFSlick = (\n url: string | URL | ArrayBuffer | undefined,\n options?: PDFSlickOptions\n) => {\n isDocumentLoaded: Accessor<boolean>;\n viewerRef: (node: HTMLElement) => void;\n thumbsRef: (node: HTMLElement) => void;\n pdfSlick: Accessor<PDFSlick | null>;\n pdfSlickStore: PDFSlickState;\n PDFSlickViewer: typeof PDFSlickViewer;\n PDFSlickThumbnails: typeof PDFSlickThumbnails;\n error: Accessor<PDFException | null>;\n};\n\ntype ExtractState<S> = S extends { getState: () => infer T } ? T : never;\nfunction useStore<S extends StoreApi<unknown>>(api: S): ExtractState<S>;\nfunction useStore<S extends StoreApi<unknown>, U>(\n api: S,\n selector: (state: ExtractState<S>) => U,\n equalityFn?: (a: U, b: U) => boolean\n): U;\n\nfunction useStore<TState extends object, StateSlice>(\n api: StoreApi<TState>,\n selector: (state: TState) => StateSlice = api.getState as any,\n equalityFn?: (a: StateSlice, b: StateSlice) => boolean\n) {\n const initialValue = selector(api.getState()) as any;\n const [state, setState] = createStore(initialValue);\n\n const listener = (nextState: TState, previousState: TState) => {\n const prevStateSlice = selector(previousState);\n const nextStateSlice = selector(nextState);\n\n if (equalityFn !== undefined) {\n if (!equalityFn(prevStateSlice, nextStateSlice))\n setState(reconcile(nextStateSlice));\n } else {\n setState(reconcile(nextStateSlice));\n }\n };\n\n const unsubscribe = api.subscribe(listener);\n onCleanup(() => unsubscribe());\n return state;\n}\n\nexport const usePDFSlick: TUsePDFSlick = (url, options) => {\n const [isDocumentLoaded, setIsDocumentLoaded] = createSignal(false);\n const [areContainersMounted, setContainersMounted] = createSignal(false);\n const [container, setContainer] = createSignal<HTMLElement | null>(null);\n const [thumbs, setThumbs] = createSignal<HTMLElement | null>(null);\n const [error, setError] = createSignal<PDFException | null>(null);\n\n const [pdfSlick, setPdfSlick] = createSignal<PDFSlick | null>(null);\n\n const zustandStore = create();\n const pdfSlickStore = useStore(zustandStore);\n\n const viewerRef = (node: HTMLElement) => {\n setContainer(node);\n setContainersMounted(true);\n };\n\n const thumbsRef = (node: HTMLElement) => {\n setThumbs(node);\n };\n\n createEffect(() => {\n if (url && areContainersMounted()) {\n const pdfSlick = new PDFSlick({\n container: container()! as HTMLDivElement,\n thumbs: thumbs()! as HTMLDivElement,\n store: zustandStore,\n options,\n onError: (err) => setError(err),\n });\n setPdfSlick(pdfSlick);\n zustandStore.setState({ pdfSlick });\n\n pdfSlick.loadDocument(url, options).then(() => {\n setIsDocumentLoaded(true);\n });\n }\n });\n\n return {\n isDocumentLoaded,\n viewerRef,\n thumbsRef,\n pdfSlick,\n pdfSlickStore,\n PDFSlickViewer,\n PDFSlickThumbnails,\n error,\n };\n};\n"],"names":["PDFSlickViewer","props","resizeRef","setResizeRef","createSignal","size","createElementSize","createEffect","width","height","store","pdfSlick","scaleValue","viewer","currentScaleValue","update","_el$","_tmpl$","_$use","el","viewerRef","style","setProperty","_$effect","_$className","class","PDFSlickThumbnails","forceRendering","thumbsRef","_$insert","_$createComponent","For","each","Array","from","thumbnailViews","children","pageNumber","view","Portal","mount","div","canvasWidth","canvasHeight","scale","src","rotation","pageLabel","loaded","_p$","_v$","_v$2","classList","e","t","_$classList","undefined","useStore","api","selector","getState","equalityFn","initialValue","state","setState","createStore","listener","nextState","previousState","nextStateSlice","reconcile","unsubscribe","subscribe","onCleanup","usePDFSlick","url","options","isDocumentLoaded","setIsDocumentLoaded","areContainersMounted","setContainersMounted","container","setContainer","thumbs","setThumbs","error","setError","setPdfSlick","zustandStore","create","pdfSlickStore","node","PDFSlick","onError","err","loadDocument","then"],"mappings":"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"}
|