@embedpdf/plugin-pan 1.5.0 → 2.0.0-next.1
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/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +239 -52
- package/dist/index.js.map +1 -1
- package/dist/lib/actions.d.ts +33 -0
- package/dist/lib/index.d.ts +5 -2
- package/dist/lib/pan-plugin.d.ts +17 -7
- package/dist/lib/reducer.d.ts +6 -0
- package/dist/lib/types.d.ts +21 -1
- package/dist/preact/index.cjs +1 -1
- package/dist/preact/index.cjs.map +1 -1
- package/dist/preact/index.js +9 -7
- package/dist/preact/index.js.map +1 -1
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.js +9 -7
- package/dist/react/index.js.map +1 -1
- package/dist/shared/hooks/use-pan.d.ts +6 -2
- package/dist/shared/index.d.ts +1 -1
- package/dist/shared-preact/hooks/use-pan.d.ts +6 -2
- package/dist/shared-preact/index.d.ts +1 -1
- package/dist/shared-react/hooks/use-pan.d.ts +6 -2
- package/dist/shared-react/index.d.ts +1 -1
- package/dist/svelte/hooks/use-pan.svelte.d.ts +10 -4
- package/dist/svelte/index.cjs +1 -1
- package/dist/svelte/index.cjs.map +1 -1
- package/dist/svelte/index.d.ts +1 -1
- package/dist/svelte/index.js +23 -12
- package/dist/svelte/index.js.map +1 -1
- package/dist/vue/components/pan-mode.vue.d.ts +2 -1
- package/dist/vue/hooks/use-pan.d.ts +8 -3
- package/dist/vue/index.cjs +1 -1
- package/dist/vue/index.cjs.map +1 -1
- package/dist/vue/index.d.ts +1 -1
- package/dist/vue/index.js +22 -13
- package/dist/vue/index.js.map +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Reducer } from '@embedpdf/core';
|
|
2
|
+
import { PanAction } from './actions';
|
|
3
|
+
import { PanState, PanDocumentState } from './types';
|
|
4
|
+
export declare const initialDocumentState: PanDocumentState;
|
|
5
|
+
export declare const initialState: PanState;
|
|
6
|
+
export declare const panReducer: Reducer<PanState, PanAction>;
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -7,10 +7,30 @@ export interface PanPluginConfig extends BasePluginConfig {
|
|
|
7
7
|
* – 'always' : default on every device */
|
|
8
8
|
defaultMode?: PanDefaultMode;
|
|
9
9
|
}
|
|
10
|
-
export interface
|
|
10
|
+
export interface PanDocumentState {
|
|
11
|
+
isPanMode: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface PanState {
|
|
14
|
+
documents: Record<string, PanDocumentState>;
|
|
15
|
+
activeDocumentId: string | null;
|
|
16
|
+
}
|
|
17
|
+
export interface PanModeChangeEvent {
|
|
18
|
+
documentId: string;
|
|
19
|
+
isPanMode: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface PanScope {
|
|
22
|
+
enablePan: () => void;
|
|
23
|
+
disablePan: () => void;
|
|
24
|
+
togglePan: () => void;
|
|
25
|
+
isPanMode: () => boolean;
|
|
11
26
|
onPanModeChange: EventHook<boolean>;
|
|
27
|
+
}
|
|
28
|
+
export interface PanCapability {
|
|
12
29
|
enablePan: () => void;
|
|
13
30
|
disablePan: () => void;
|
|
14
31
|
togglePan: () => void;
|
|
15
32
|
makePanDefault: (autoActivate?: boolean) => void;
|
|
33
|
+
isPanMode: () => boolean;
|
|
34
|
+
forDocument(documentId: string): PanScope;
|
|
35
|
+
onPanModeChange: EventHook<PanModeChangeEvent>;
|
|
16
36
|
}
|
package/dist/preact/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/core"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/core"),n=require("@embedpdf/plugin-pan");require("preact");const t=require("preact/hooks"),r=require("@embedpdf/core/preact"),o=()=>r.usePlugin(n.PanPlugin.id),i=()=>r.useCapability(n.PanPlugin.id),a=()=>{const{provides:e}=i(),{plugin:n}=o();return t.useEffect(()=>{var t;if(!e||!n)return;const r=(null==(t=n.config)?void 0:t.defaultMode)??"never",o="undefined"!=typeof window&&("ontouchstart"in window||navigator.maxTouchPoints>0);"mobile"===r&&o&&e.makePanDefault()},[e,n]),null},u=e.createPluginPackage(n.PanPluginPackage).addUtility(a).build();exports.PanMode=a,exports.PanPluginPackage=u,exports.usePan=e=>{const{provides:r}=i(),[o,a]=t.useState(n.initialDocumentState.isPanMode);return t.useEffect(()=>{if(!r)return;const n=r.forDocument(e);return a(n.isPanMode()),n.onPanModeChange(e=>{a(e)})},[r,e]),{provides:(null==r?void 0:r.forDocument(e))??null,isPanning:o}},exports.usePanCapability=i,exports.usePanPlugin=o,Object.keys(n).forEach(e=>{"default"===e||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:()=>n[e]})});
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../src/shared/hooks/use-pan.ts","../../src/shared/components/pan-mode.tsx","../../src/shared/index.ts"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/@framework';\nimport { PanPlugin } from '@embedpdf/plugin-pan';\nimport { useEffect, useState } from '@framework';\n\nexport const usePanPlugin = () => usePlugin<PanPlugin>(PanPlugin.id);\nexport const usePanCapability = () => useCapability<PanPlugin>(PanPlugin.id);\n\nexport const usePan = () => {\n const { provides } = usePanCapability();\n const [isPanning, setIsPanning] = useState(
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/shared/hooks/use-pan.ts","../../src/shared/components/pan-mode.tsx","../../src/shared/index.ts"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/@framework';\nimport { PanPlugin, initialDocumentState } from '@embedpdf/plugin-pan';\nimport { useEffect, useState } from '@framework';\n\nexport const usePanPlugin = () => usePlugin<PanPlugin>(PanPlugin.id);\nexport const usePanCapability = () => useCapability<PanPlugin>(PanPlugin.id);\n\n/**\n * Hook for pan state for a specific document\n * @param documentId Document ID\n */\nexport const usePan = (documentId: string) => {\n const { provides } = usePanCapability();\n const [isPanning, setIsPanning] = useState(initialDocumentState.isPanMode);\n\n useEffect(() => {\n if (!provides) return;\n\n const scope = provides.forDocument(documentId);\n\n // Get initial state\n setIsPanning(scope.isPanMode());\n\n // Subscribe to pan mode changes\n return scope.onPanModeChange((isPan) => {\n setIsPanning(isPan);\n });\n }, [provides, documentId]);\n\n return {\n provides: provides?.forDocument(documentId) ?? null,\n isPanning,\n };\n};\n","import { useEffect } from '@framework';\nimport { usePanCapability, usePanPlugin } from '../hooks';\n\nexport const PanMode = () => {\n const { provides: pan } = usePanCapability();\n const { plugin: panPlugin } = usePanPlugin();\n\n useEffect(() => {\n if (!pan || !panPlugin) return;\n\n const mode = panPlugin.config?.defaultMode ?? 'never';\n const SUPPORT_TOUCH =\n typeof window !== 'undefined' && ('ontouchstart' in window || navigator.maxTouchPoints > 0);\n\n if (mode === 'mobile' && SUPPORT_TOUCH) {\n pan.makePanDefault();\n }\n }, [pan, panPlugin]);\n\n // This component is only used to make the pan mode default when the plugin is initialized.\n return null;\n};\n","import { createPluginPackage } from '@embedpdf/core';\nimport { PanPluginPackage as BasePanPackage } from '@embedpdf/plugin-pan';\n\nimport { PanMode } from './components';\n\nexport * from './hooks';\nexport * from './components';\nexport * from '@embedpdf/plugin-pan';\n\nexport const PanPluginPackage = createPluginPackage(BasePanPackage).addUtility(PanMode).build();\n"],"names":["usePanPlugin","usePlugin","PanPlugin","id","usePanCapability","useCapability","PanMode","provides","pan","plugin","panPlugin","useEffect","mode","_a","config","defaultMode","SUPPORT_TOUCH","window","navigator","maxTouchPoints","makePanDefault","PanPluginPackage","createPluginPackage","BasePanPackage","addUtility","build","documentId","isPanning","setIsPanning","useState","initialDocumentState","isPanMode","scope","forDocument","onPanModeChange","isPan"],"mappings":"yOAIaA,EAAe,IAAMC,YAAqBC,EAAAA,UAAUC,IACpDC,EAAmB,IAAMC,gBAAyBH,EAAAA,UAAUC,ICF5DG,EAAU,KACrB,MAAQC,SAAUC,GAAQJ,KAClBK,OAAQC,GAAcV,IAe9B,OAbAW,EAAAA,UAAU,WACR,IAAKH,IAAQE,EAAW,OAExB,MAAME,GAAO,OAAAC,EAAAH,EAAUI,aAAV,EAAAD,EAAkBE,cAAe,QACxCC,EACc,oBAAXC,SAA2B,iBAAkBA,QAAUC,UAAUC,eAAiB,GAE9E,WAATP,GAAqBI,GACvBR,EAAIY,kBAEL,CAACZ,EAAKE,IAGF,MCXIW,EAAmBC,EAAAA,oBAAoBC,EAAAA,kBAAgBC,WAAWlB,GAASmB,oEFEjEC,IACrB,MAAMnB,SAAEA,GAAaH,KACduB,EAAWC,GAAgBC,EAAAA,SAASC,EAAAA,qBAAqBC,WAgBhE,OAdApB,EAAAA,UAAU,KACR,IAAKJ,EAAU,OAEf,MAAMyB,EAAQzB,EAAS0B,YAAYP,GAMnC,OAHAE,EAAaI,EAAMD,aAGZC,EAAME,gBAAiBC,IAC5BP,EAAaO,MAEd,CAAC5B,EAAUmB,IAEP,CACLnB,UAAU,MAAAA,OAAA,EAAAA,EAAU0B,YAAYP,KAAe,KAC/CC"}
|
package/dist/preact/index.js
CHANGED
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
import { createPluginPackage } from "@embedpdf/core";
|
|
2
|
-
import { PanPlugin, PanPluginPackage as PanPluginPackage$1 } from "@embedpdf/plugin-pan";
|
|
2
|
+
import { PanPlugin, initialDocumentState, PanPluginPackage as PanPluginPackage$1 } from "@embedpdf/plugin-pan";
|
|
3
3
|
export * from "@embedpdf/plugin-pan";
|
|
4
4
|
import "preact";
|
|
5
5
|
import { useState, useEffect } from "preact/hooks";
|
|
6
6
|
import { useCapability, usePlugin } from "@embedpdf/core/preact";
|
|
7
7
|
const usePanPlugin = () => usePlugin(PanPlugin.id);
|
|
8
8
|
const usePanCapability = () => useCapability(PanPlugin.id);
|
|
9
|
-
const usePan = () => {
|
|
9
|
+
const usePan = (documentId) => {
|
|
10
10
|
const { provides } = usePanCapability();
|
|
11
|
-
const [isPanning, setIsPanning] = useState(
|
|
11
|
+
const [isPanning, setIsPanning] = useState(initialDocumentState.isPanMode);
|
|
12
12
|
useEffect(() => {
|
|
13
13
|
if (!provides) return;
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
const scope = provides.forDocument(documentId);
|
|
15
|
+
setIsPanning(scope.isPanMode());
|
|
16
|
+
return scope.onPanModeChange((isPan) => {
|
|
17
|
+
setIsPanning(isPan);
|
|
16
18
|
});
|
|
17
|
-
}, [provides]);
|
|
19
|
+
}, [provides, documentId]);
|
|
18
20
|
return {
|
|
19
|
-
provides,
|
|
21
|
+
provides: (provides == null ? void 0 : provides.forDocument(documentId)) ?? null,
|
|
20
22
|
isPanning
|
|
21
23
|
};
|
|
22
24
|
};
|
package/dist/preact/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/shared/hooks/use-pan.ts","../../src/shared/components/pan-mode.tsx","../../src/shared/index.ts"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/@framework';\nimport { PanPlugin } from '@embedpdf/plugin-pan';\nimport { useEffect, useState } from '@framework';\n\nexport const usePanPlugin = () => usePlugin<PanPlugin>(PanPlugin.id);\nexport const usePanCapability = () => useCapability<PanPlugin>(PanPlugin.id);\n\nexport const usePan = () => {\n const { provides } = usePanCapability();\n const [isPanning, setIsPanning] = useState(
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/shared/hooks/use-pan.ts","../../src/shared/components/pan-mode.tsx","../../src/shared/index.ts"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/@framework';\nimport { PanPlugin, initialDocumentState } from '@embedpdf/plugin-pan';\nimport { useEffect, useState } from '@framework';\n\nexport const usePanPlugin = () => usePlugin<PanPlugin>(PanPlugin.id);\nexport const usePanCapability = () => useCapability<PanPlugin>(PanPlugin.id);\n\n/**\n * Hook for pan state for a specific document\n * @param documentId Document ID\n */\nexport const usePan = (documentId: string) => {\n const { provides } = usePanCapability();\n const [isPanning, setIsPanning] = useState(initialDocumentState.isPanMode);\n\n useEffect(() => {\n if (!provides) return;\n\n const scope = provides.forDocument(documentId);\n\n // Get initial state\n setIsPanning(scope.isPanMode());\n\n // Subscribe to pan mode changes\n return scope.onPanModeChange((isPan) => {\n setIsPanning(isPan);\n });\n }, [provides, documentId]);\n\n return {\n provides: provides?.forDocument(documentId) ?? null,\n isPanning,\n };\n};\n","import { useEffect } from '@framework';\nimport { usePanCapability, usePanPlugin } from '../hooks';\n\nexport const PanMode = () => {\n const { provides: pan } = usePanCapability();\n const { plugin: panPlugin } = usePanPlugin();\n\n useEffect(() => {\n if (!pan || !panPlugin) return;\n\n const mode = panPlugin.config?.defaultMode ?? 'never';\n const SUPPORT_TOUCH =\n typeof window !== 'undefined' && ('ontouchstart' in window || navigator.maxTouchPoints > 0);\n\n if (mode === 'mobile' && SUPPORT_TOUCH) {\n pan.makePanDefault();\n }\n }, [pan, panPlugin]);\n\n // This component is only used to make the pan mode default when the plugin is initialized.\n return null;\n};\n","import { createPluginPackage } from '@embedpdf/core';\nimport { PanPluginPackage as BasePanPackage } from '@embedpdf/plugin-pan';\n\nimport { PanMode } from './components';\n\nexport * from './hooks';\nexport * from './components';\nexport * from '@embedpdf/plugin-pan';\n\nexport const PanPluginPackage = createPluginPackage(BasePanPackage).addUtility(PanMode).build();\n"],"names":["BasePanPackage"],"mappings":";;;;;;AAIO,MAAM,eAAe,MAAM,UAAqB,UAAU,EAAE;AAC5D,MAAM,mBAAmB,MAAM,cAAyB,UAAU,EAAE;AAMpE,MAAM,SAAS,CAAC,eAAuB;AAC5C,QAAM,EAAE,SAAA,IAAa,iBAAA;AACrB,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,qBAAqB,SAAS;AAEzE,YAAU,MAAM;AACd,QAAI,CAAC,SAAU;AAEf,UAAM,QAAQ,SAAS,YAAY,UAAU;AAG7C,iBAAa,MAAM,WAAW;AAG9B,WAAO,MAAM,gBAAgB,CAAC,UAAU;AACtC,mBAAa,KAAK;AAAA,IACpB,CAAC;AAAA,EACH,GAAG,CAAC,UAAU,UAAU,CAAC;AAEzB,SAAO;AAAA,IACL,WAAU,qCAAU,YAAY,gBAAe;AAAA,IAC/C;AAAA,EAAA;AAEJ;AC9BO,MAAM,UAAU,MAAM;AAC3B,QAAM,EAAE,UAAU,IAAA,IAAQ,iBAAA;AAC1B,QAAM,EAAE,QAAQ,UAAA,IAAc,aAAA;AAE9B,YAAU,MAAM;;AACd,QAAI,CAAC,OAAO,CAAC,UAAW;AAExB,UAAM,SAAO,eAAU,WAAV,mBAAkB,gBAAe;AAC9C,UAAM,gBACJ,OAAO,WAAW,gBAAgB,kBAAkB,UAAU,UAAU,iBAAiB;AAE3F,QAAI,SAAS,YAAY,eAAe;AACtC,UAAI,eAAA;AAAA,IACN;AAAA,EACF,GAAG,CAAC,KAAK,SAAS,CAAC;AAGnB,SAAO;AACT;ACZO,MAAM,mBAAmB,oBAAoBA,kBAAc,EAAE,WAAW,OAAO,EAAE,MAAA;"}
|
package/dist/react/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/core"),n=require("@embedpdf/plugin-pan"),t=require("react"),r=require("@embedpdf/core/react"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/core"),n=require("@embedpdf/plugin-pan"),t=require("react"),r=require("@embedpdf/core/react"),o=()=>r.usePlugin(n.PanPlugin.id),i=()=>r.useCapability(n.PanPlugin.id),a=()=>{const{provides:e}=i(),{plugin:n}=o();return t.useEffect(()=>{var t;if(!e||!n)return;const r=(null==(t=n.config)?void 0:t.defaultMode)??"never",o="undefined"!=typeof window&&("ontouchstart"in window||navigator.maxTouchPoints>0);"mobile"===r&&o&&e.makePanDefault()},[e,n]),null},u=e.createPluginPackage(n.PanPluginPackage).addUtility(a).build();exports.PanMode=a,exports.PanPluginPackage=u,exports.usePan=e=>{const{provides:r}=i(),[o,a]=t.useState(n.initialDocumentState.isPanMode);return t.useEffect(()=>{if(!r)return;const n=r.forDocument(e);return a(n.isPanMode()),n.onPanModeChange(e=>{a(e)})},[r,e]),{provides:(null==r?void 0:r.forDocument(e))??null,isPanning:o}},exports.usePanCapability=i,exports.usePanPlugin=o,Object.keys(n).forEach(e=>{"default"===e||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:()=>n[e]})});
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/react/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../src/shared/hooks/use-pan.ts","../../src/shared/components/pan-mode.tsx","../../src/shared/index.ts"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/@framework';\nimport { PanPlugin } from '@embedpdf/plugin-pan';\nimport { useEffect, useState } from '@framework';\n\nexport const usePanPlugin = () => usePlugin<PanPlugin>(PanPlugin.id);\nexport const usePanCapability = () => useCapability<PanPlugin>(PanPlugin.id);\n\nexport const usePan = () => {\n const { provides } = usePanCapability();\n const [isPanning, setIsPanning] = useState(
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/shared/hooks/use-pan.ts","../../src/shared/components/pan-mode.tsx","../../src/shared/index.ts"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/@framework';\nimport { PanPlugin, initialDocumentState } from '@embedpdf/plugin-pan';\nimport { useEffect, useState } from '@framework';\n\nexport const usePanPlugin = () => usePlugin<PanPlugin>(PanPlugin.id);\nexport const usePanCapability = () => useCapability<PanPlugin>(PanPlugin.id);\n\n/**\n * Hook for pan state for a specific document\n * @param documentId Document ID\n */\nexport const usePan = (documentId: string) => {\n const { provides } = usePanCapability();\n const [isPanning, setIsPanning] = useState(initialDocumentState.isPanMode);\n\n useEffect(() => {\n if (!provides) return;\n\n const scope = provides.forDocument(documentId);\n\n // Get initial state\n setIsPanning(scope.isPanMode());\n\n // Subscribe to pan mode changes\n return scope.onPanModeChange((isPan) => {\n setIsPanning(isPan);\n });\n }, [provides, documentId]);\n\n return {\n provides: provides?.forDocument(documentId) ?? null,\n isPanning,\n };\n};\n","import { useEffect } from '@framework';\nimport { usePanCapability, usePanPlugin } from '../hooks';\n\nexport const PanMode = () => {\n const { provides: pan } = usePanCapability();\n const { plugin: panPlugin } = usePanPlugin();\n\n useEffect(() => {\n if (!pan || !panPlugin) return;\n\n const mode = panPlugin.config?.defaultMode ?? 'never';\n const SUPPORT_TOUCH =\n typeof window !== 'undefined' && ('ontouchstart' in window || navigator.maxTouchPoints > 0);\n\n if (mode === 'mobile' && SUPPORT_TOUCH) {\n pan.makePanDefault();\n }\n }, [pan, panPlugin]);\n\n // This component is only used to make the pan mode default when the plugin is initialized.\n return null;\n};\n","import { createPluginPackage } from '@embedpdf/core';\nimport { PanPluginPackage as BasePanPackage } from '@embedpdf/plugin-pan';\n\nimport { PanMode } from './components';\n\nexport * from './hooks';\nexport * from './components';\nexport * from '@embedpdf/plugin-pan';\n\nexport const PanPluginPackage = createPluginPackage(BasePanPackage).addUtility(PanMode).build();\n"],"names":["usePanPlugin","usePlugin","PanPlugin","id","usePanCapability","useCapability","PanMode","provides","pan","plugin","panPlugin","useEffect","mode","_a","config","defaultMode","SUPPORT_TOUCH","window","navigator","maxTouchPoints","makePanDefault","PanPluginPackage","createPluginPackage","BasePanPackage","addUtility","build","documentId","isPanning","setIsPanning","useState","initialDocumentState","isPanMode","scope","forDocument","onPanModeChange","isPan"],"mappings":"yMAIaA,EAAe,IAAMC,YAAqBC,EAAAA,UAAUC,IACpDC,EAAmB,IAAMC,gBAAyBH,EAAAA,UAAUC,ICF5DG,EAAU,KACrB,MAAQC,SAAUC,GAAQJ,KAClBK,OAAQC,GAAcV,IAe9B,OAbAW,EAAAA,UAAU,WACR,IAAKH,IAAQE,EAAW,OAExB,MAAME,GAAO,OAAAC,EAAAH,EAAUI,aAAV,EAAAD,EAAkBE,cAAe,QACxCC,EACc,oBAAXC,SAA2B,iBAAkBA,QAAUC,UAAUC,eAAiB,GAE9E,WAATP,GAAqBI,GACvBR,EAAIY,kBAEL,CAACZ,EAAKE,IAGF,MCXIW,EAAmBC,EAAAA,oBAAoBC,EAAAA,kBAAgBC,WAAWlB,GAASmB,oEFEjEC,IACrB,MAAMnB,SAAEA,GAAaH,KACduB,EAAWC,GAAgBC,EAAAA,SAASC,EAAAA,qBAAqBC,WAgBhE,OAdApB,EAAAA,UAAU,KACR,IAAKJ,EAAU,OAEf,MAAMyB,EAAQzB,EAAS0B,YAAYP,GAMnC,OAHAE,EAAaI,EAAMD,aAGZC,EAAME,gBAAiBC,IAC5BP,EAAaO,MAEd,CAAC5B,EAAUmB,IAEP,CACLnB,UAAU,MAAAA,OAAA,EAAAA,EAAU0B,YAAYP,KAAe,KAC/CC"}
|
package/dist/react/index.js
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
import { createPluginPackage } from "@embedpdf/core";
|
|
2
|
-
import { PanPlugin, PanPluginPackage as PanPluginPackage$1 } from "@embedpdf/plugin-pan";
|
|
2
|
+
import { PanPlugin, initialDocumentState, PanPluginPackage as PanPluginPackage$1 } from "@embedpdf/plugin-pan";
|
|
3
3
|
export * from "@embedpdf/plugin-pan";
|
|
4
4
|
import { useState, useEffect } from "react";
|
|
5
5
|
import { useCapability, usePlugin } from "@embedpdf/core/react";
|
|
6
6
|
const usePanPlugin = () => usePlugin(PanPlugin.id);
|
|
7
7
|
const usePanCapability = () => useCapability(PanPlugin.id);
|
|
8
|
-
const usePan = () => {
|
|
8
|
+
const usePan = (documentId) => {
|
|
9
9
|
const { provides } = usePanCapability();
|
|
10
|
-
const [isPanning, setIsPanning] = useState(
|
|
10
|
+
const [isPanning, setIsPanning] = useState(initialDocumentState.isPanMode);
|
|
11
11
|
useEffect(() => {
|
|
12
12
|
if (!provides) return;
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
const scope = provides.forDocument(documentId);
|
|
14
|
+
setIsPanning(scope.isPanMode());
|
|
15
|
+
return scope.onPanModeChange((isPan) => {
|
|
16
|
+
setIsPanning(isPan);
|
|
15
17
|
});
|
|
16
|
-
}, [provides]);
|
|
18
|
+
}, [provides, documentId]);
|
|
17
19
|
return {
|
|
18
|
-
provides,
|
|
20
|
+
provides: (provides == null ? void 0 : provides.forDocument(documentId)) ?? null,
|
|
19
21
|
isPanning
|
|
20
22
|
};
|
|
21
23
|
};
|
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/shared/hooks/use-pan.ts","../../src/shared/components/pan-mode.tsx","../../src/shared/index.ts"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/@framework';\nimport { PanPlugin } from '@embedpdf/plugin-pan';\nimport { useEffect, useState } from '@framework';\n\nexport const usePanPlugin = () => usePlugin<PanPlugin>(PanPlugin.id);\nexport const usePanCapability = () => useCapability<PanPlugin>(PanPlugin.id);\n\nexport const usePan = () => {\n const { provides } = usePanCapability();\n const [isPanning, setIsPanning] = useState(
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/shared/hooks/use-pan.ts","../../src/shared/components/pan-mode.tsx","../../src/shared/index.ts"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/@framework';\nimport { PanPlugin, initialDocumentState } from '@embedpdf/plugin-pan';\nimport { useEffect, useState } from '@framework';\n\nexport const usePanPlugin = () => usePlugin<PanPlugin>(PanPlugin.id);\nexport const usePanCapability = () => useCapability<PanPlugin>(PanPlugin.id);\n\n/**\n * Hook for pan state for a specific document\n * @param documentId Document ID\n */\nexport const usePan = (documentId: string) => {\n const { provides } = usePanCapability();\n const [isPanning, setIsPanning] = useState(initialDocumentState.isPanMode);\n\n useEffect(() => {\n if (!provides) return;\n\n const scope = provides.forDocument(documentId);\n\n // Get initial state\n setIsPanning(scope.isPanMode());\n\n // Subscribe to pan mode changes\n return scope.onPanModeChange((isPan) => {\n setIsPanning(isPan);\n });\n }, [provides, documentId]);\n\n return {\n provides: provides?.forDocument(documentId) ?? null,\n isPanning,\n };\n};\n","import { useEffect } from '@framework';\nimport { usePanCapability, usePanPlugin } from '../hooks';\n\nexport const PanMode = () => {\n const { provides: pan } = usePanCapability();\n const { plugin: panPlugin } = usePanPlugin();\n\n useEffect(() => {\n if (!pan || !panPlugin) return;\n\n const mode = panPlugin.config?.defaultMode ?? 'never';\n const SUPPORT_TOUCH =\n typeof window !== 'undefined' && ('ontouchstart' in window || navigator.maxTouchPoints > 0);\n\n if (mode === 'mobile' && SUPPORT_TOUCH) {\n pan.makePanDefault();\n }\n }, [pan, panPlugin]);\n\n // This component is only used to make the pan mode default when the plugin is initialized.\n return null;\n};\n","import { createPluginPackage } from '@embedpdf/core';\nimport { PanPluginPackage as BasePanPackage } from '@embedpdf/plugin-pan';\n\nimport { PanMode } from './components';\n\nexport * from './hooks';\nexport * from './components';\nexport * from '@embedpdf/plugin-pan';\n\nexport const PanPluginPackage = createPluginPackage(BasePanPackage).addUtility(PanMode).build();\n"],"names":["BasePanPackage"],"mappings":";;;;;AAIO,MAAM,eAAe,MAAM,UAAqB,UAAU,EAAE;AAC5D,MAAM,mBAAmB,MAAM,cAAyB,UAAU,EAAE;AAMpE,MAAM,SAAS,CAAC,eAAuB;AAC5C,QAAM,EAAE,SAAA,IAAa,iBAAA;AACrB,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,qBAAqB,SAAS;AAEzE,YAAU,MAAM;AACd,QAAI,CAAC,SAAU;AAEf,UAAM,QAAQ,SAAS,YAAY,UAAU;AAG7C,iBAAa,MAAM,WAAW;AAG9B,WAAO,MAAM,gBAAgB,CAAC,UAAU;AACtC,mBAAa,KAAK;AAAA,IACpB,CAAC;AAAA,EACH,GAAG,CAAC,UAAU,UAAU,CAAC;AAEzB,SAAO;AAAA,IACL,WAAU,qCAAU,YAAY,gBAAe;AAAA,IAC/C;AAAA,EAAA;AAEJ;AC9BO,MAAM,UAAU,MAAM;AAC3B,QAAM,EAAE,UAAU,IAAA,IAAQ,iBAAA;AAC1B,QAAM,EAAE,QAAQ,UAAA,IAAc,aAAA;AAE9B,YAAU,MAAM;;AACd,QAAI,CAAC,OAAO,CAAC,UAAW;AAExB,UAAM,SAAO,eAAU,WAAV,mBAAkB,gBAAe;AAC9C,UAAM,gBACJ,OAAO,WAAW,gBAAgB,kBAAkB,UAAU,UAAU,iBAAiB;AAE3F,QAAI,SAAS,YAAY,eAAe;AACtC,UAAI,eAAA;AAAA,IACN;AAAA,EACF,GAAG,CAAC,KAAK,SAAS,CAAC;AAGnB,SAAO;AACT;ACZO,MAAM,mBAAmB,oBAAoBA,kBAAc,EAAE,WAAW,OAAO,EAAE,MAAA;"}
|
|
@@ -9,7 +9,11 @@ export declare const usePanCapability: () => {
|
|
|
9
9
|
isLoading: boolean;
|
|
10
10
|
ready: Promise<void>;
|
|
11
11
|
};
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Hook for pan state for a specific document
|
|
14
|
+
* @param documentId Document ID
|
|
15
|
+
*/
|
|
16
|
+
export declare const usePan: (documentId: string) => {
|
|
17
|
+
provides: import('../../index.ts').PanScope | null;
|
|
14
18
|
isPanning: boolean;
|
|
15
19
|
};
|
package/dist/shared/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './hooks';
|
|
2
2
|
export * from './components';
|
|
3
3
|
export * from '../index.ts';
|
|
4
|
-
export declare const PanPluginPackage: import('@embedpdf/core').WithAutoMount<import('@embedpdf/core').PluginPackage<import('../index.ts').PanPlugin, import('../index.ts').PanPluginConfig,
|
|
4
|
+
export declare const PanPluginPackage: import('@embedpdf/core').WithAutoMount<import('@embedpdf/core').PluginPackage<import('../index.ts').PanPlugin, import('../index.ts').PanPluginConfig, import('../index.ts').PanState, import('../index.ts').PanAction>>;
|
|
@@ -9,7 +9,11 @@ export declare const usePanCapability: () => {
|
|
|
9
9
|
isLoading: boolean;
|
|
10
10
|
ready: Promise<void>;
|
|
11
11
|
};
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Hook for pan state for a specific document
|
|
14
|
+
* @param documentId Document ID
|
|
15
|
+
*/
|
|
16
|
+
export declare const usePan: (documentId: string) => {
|
|
17
|
+
provides: import('../../lib/index.ts').PanScope | null;
|
|
14
18
|
isPanning: boolean;
|
|
15
19
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './hooks';
|
|
2
2
|
export * from './components';
|
|
3
3
|
export * from '../lib/index.ts';
|
|
4
|
-
export declare const PanPluginPackage: import('@embedpdf/core').WithAutoMount<import('@embedpdf/core').PluginPackage<import('../lib/index.ts').PanPlugin, import('../lib/index.ts').PanPluginConfig,
|
|
4
|
+
export declare const PanPluginPackage: import('@embedpdf/core').WithAutoMount<import('@embedpdf/core').PluginPackage<import('../lib/index.ts').PanPlugin, import('../lib/index.ts').PanPluginConfig, import('../lib/index.ts').PanState, import('../lib/index.ts').PanAction>>;
|
|
@@ -9,7 +9,11 @@ export declare const usePanCapability: () => {
|
|
|
9
9
|
isLoading: boolean;
|
|
10
10
|
ready: Promise<void>;
|
|
11
11
|
};
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Hook for pan state for a specific document
|
|
14
|
+
* @param documentId Document ID
|
|
15
|
+
*/
|
|
16
|
+
export declare const usePan: (documentId: string) => {
|
|
17
|
+
provides: import('../../lib/index.ts').PanScope | null;
|
|
14
18
|
isPanning: boolean;
|
|
15
19
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './hooks';
|
|
2
2
|
export * from './components';
|
|
3
3
|
export * from '../lib/index.ts';
|
|
4
|
-
export declare const PanPluginPackage: import('@embedpdf/core').WithAutoMount<import('@embedpdf/core').PluginPackage<import('../lib/index.ts').PanPlugin, import('../lib/index.ts').PanPluginConfig,
|
|
4
|
+
export declare const PanPluginPackage: import('@embedpdf/core').WithAutoMount<import('@embedpdf/core').PluginPackage<import('../lib/index.ts').PanPlugin, import('../lib/index.ts').PanPluginConfig, import('../lib/index.ts').PanState, import('../lib/index.ts').PanAction>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PanPlugin } from '../../lib/index.ts';
|
|
1
|
+
import { PanPlugin, PanScope } from '../../lib/index.ts';
|
|
2
2
|
export declare const usePanPlugin: () => {
|
|
3
3
|
plugin: PanPlugin | null;
|
|
4
4
|
isLoading: boolean;
|
|
@@ -9,7 +9,13 @@ export declare const usePanCapability: () => {
|
|
|
9
9
|
isLoading: boolean;
|
|
10
10
|
ready: Promise<void>;
|
|
11
11
|
};
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
interface UsePanReturn {
|
|
13
|
+
provides: PanScope | null;
|
|
14
14
|
isPanning: boolean;
|
|
15
|
-
}
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Hook for pan state for a specific document
|
|
18
|
+
* @param getDocumentId Function that returns the document ID
|
|
19
|
+
*/
|
|
20
|
+
export declare const usePan: (getDocumentId: () => string | null) => UsePanReturn;
|
|
21
|
+
export {};
|
package/dist/svelte/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/core"),t=require("@embedpdf/plugin-pan");require("svelte/internal/disclose-version");const n=require("svelte/internal/client"),r=require("@embedpdf/core/svelte");function o(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const n in e)if("default"!==n){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}return t.default=e,Object.freeze(t)}const i=o(n),a=()=>r.usePlugin(t.PanPlugin.id),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/core"),t=require("@embedpdf/plugin-pan");require("svelte/internal/disclose-version");const n=require("svelte/internal/client"),r=require("@embedpdf/core/svelte");function o(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const n in e)if("default"!==n){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}return t.default=e,Object.freeze(t)}const i=o(n),a=()=>r.usePlugin(t.PanPlugin.id),s=()=>r.useCapability(t.PanPlugin.id);function u(e,t){i.push(t,!0);const{provides:n}=s(),{plugin:r}=a();i.user_effect(()=>{var e;if(!n||!r)return;const t=(null==(e=r.config)?void 0:e.defaultMode)??"never",o="undefined"!=typeof window&&("ontouchstart"in window||navigator.maxTouchPoints>0);"mobile"===t&&o&&n.makePanDefault()}),i.pop()}const c=e.createPluginPackage(t.PanPluginPackage).addUtility(u).build();exports.PanMode=u,exports.PanPluginPackage=c,exports.usePan=e=>{const n=s();let r=i.state(i.proxy(t.initialDocumentState.isPanMode));const o=i.derived(e),a=i.derived(()=>n.provides&&i.get(o)?n.provides.forDocument(i.get(o)):null);return i.user_effect(()=>{const e=n.provides,a=i.get(o);if(!e||!a)return void i.set(r,t.initialDocumentState.isPanMode,!0);const s=e.forDocument(a);return i.set(r,s.isPanMode(),!0),s.onPanModeChange(e=>{i.set(r,e,!0)})}),{get provides(){return i.get(a)},get isPanning(){return i.get(r)}}},exports.usePanCapability=s,exports.usePanPlugin=a,Object.keys(t).forEach(e=>{"default"===e||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:()=>t[e]})});
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../src/svelte/hooks/use-pan.svelte.ts","../../src/svelte/components/PanMode.svelte","../../src/svelte/index.ts"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/svelte';\nimport { PanPlugin } from '@embedpdf/plugin-pan';\n\nexport const usePanPlugin = () => usePlugin<PanPlugin>(PanPlugin.id);\nexport const usePanCapability = () => useCapability<PanPlugin>(PanPlugin.id);\n\nexport const usePan = () => {\n const capability = usePanCapability();\n\n
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/svelte/hooks/use-pan.svelte.ts","../../src/svelte/components/PanMode.svelte","../../src/svelte/index.ts"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/svelte';\nimport { PanPlugin, initialDocumentState, PanScope } from '@embedpdf/plugin-pan';\n\nexport const usePanPlugin = () => usePlugin<PanPlugin>(PanPlugin.id);\nexport const usePanCapability = () => useCapability<PanPlugin>(PanPlugin.id);\n\n// Define the return type explicitly to maintain type safety\ninterface UsePanReturn {\n provides: PanScope | null;\n isPanning: boolean;\n}\n\n/**\n * Hook for pan state for a specific document\n * @param getDocumentId Function that returns the document ID\n */\nexport const usePan = (getDocumentId: () => string | null): UsePanReturn => {\n const capability = usePanCapability();\n\n let isPanning = $state(initialDocumentState.isPanMode);\n\n // Reactive documentId\n const documentId = $derived(getDocumentId());\n\n // Scoped capability for current docId\n const scopedProvides = $derived(\n capability.provides && documentId ? capability.provides.forDocument(documentId) : null,\n );\n\n $effect(() => {\n const provides = capability.provides;\n const docId = documentId;\n\n if (!provides || !docId) {\n isPanning = initialDocumentState.isPanMode;\n return;\n }\n\n const scope = provides.forDocument(docId);\n\n // Set initial state\n isPanning = scope.isPanMode();\n\n // Subscribe to pan mode changes for this document\n return scope.onPanModeChange((isPan) => {\n isPanning = isPan;\n });\n });\n\n return {\n get provides() {\n return scopedProvides;\n },\n get isPanning() {\n return isPanning;\n },\n };\n};\n","<script lang=\"ts\">\n import { usePanCapability, usePanPlugin } from '../hooks';\n\n const { provides: pan } = usePanCapability();\n const { plugin: panPlugin } = usePanPlugin();\n\n $effect(() => {\n if (!pan || !panPlugin) return;\n\n const mode = panPlugin.config?.defaultMode ?? 'never';\n const SUPPORT_TOUCH =\n typeof window !== 'undefined' && ('ontouchstart' in window || navigator.maxTouchPoints > 0);\n\n if (mode === 'mobile' && SUPPORT_TOUCH) {\n pan.makePanDefault();\n }\n });\n</script>\n\n<!-- This component is only used to make the pan mode default when the plugin is initialized. -->\n","import { createPluginPackage } from '@embedpdf/core';\nimport { PanPluginPackage as BasePanPackage } from '@embedpdf/plugin-pan';\n\nimport { PanMode } from './components';\n\nexport * from './hooks';\nexport * from './components';\nexport * from '@embedpdf/plugin-pan';\n\nexport const PanPluginPackage = createPluginPackage(BasePanPackage).addUtility(PanMode).build();\n"],"names":["usePanPlugin","usePlugin","PanPlugin","id","usePanCapability","useCapability","provides","pan","plugin","panPlugin","$","user_effect","mode","_a","config","defaultMode","SUPPORT_TOUCH","window","navigator","maxTouchPoints","makePanDefault","PanPluginPackage","createPluginPackage","BasePanPackage","addUtility","PanMode","build","getDocumentId","capability","isPanning","state","proxy","initialDocumentState","isPanMode","documentId","scopedProvides","derived","forDocument","docId","scope","onPanModeChange","isPan","set"],"mappings":"qiBAGaA,EAAA,IAAqBC,YAAqBC,EAAAA,UAAUC,IACpDC,EAAA,IAAyBC,gBAAyBH,EAAAA,UAAUC,uCCD/DG,SAAUC,GAAQH,KAClBI,OAAQC,GAAcT,IAE9BU,EAAAC,YAAO,WACA,IAAAJ,IAAQE,EAAS,OAEhB,MAAAG,GAAO,OAAAC,EAAAJ,EAAUK,aAAV,EAAAD,EAAkBE,cAAe,QACxCC,EACc,oBAAXC,SAA2B,iBAAkBA,QAAUC,UAAUC,eAAiB,GAE9E,WAATP,GAAqBI,GACvBT,EAAIa,0BAGV,CCRO,MAAMC,EAAmBC,EAAAA,oBAAoBC,EAAAA,kBAAgBC,WAAWC,GAASC,oEFOjEC,IACf,MAAAC,EAAaxB,QAEfyB,EAAAnB,EAAAoB,MAAApB,EAAAqB,MAAmBC,EAAAA,qBAAqBC,YAGtC,MAAAC,YAAsBP,GAGtBQ,EAAAzB,EAAA0B,QAAA,IACJR,EAAWtB,gBAAY4B,GAAaN,EAAWtB,SAAS+B,kBAAYH,IAAc,aAGpFxB,EAAAC,uBACQL,EAAWsB,EAAWtB,SACtBgC,QAAQJ,OAET5B,IAAagC,oBAChBT,EAAYG,EAAAA,qBAAqBC,WAAA,GAI7B,MAAAM,EAAQjC,EAAS+B,YAAYC,GAM5B,aAHPT,EAAYU,EAAMN,aAAA,GAGXM,EAAMC,gBAAiBC,IAC5B/B,EAAAgC,IAAAb,EAAYY,GAAA,QAKV,YAAAnC,gBACK6B,EACT,EACI,aAAAN,gBACKA,EACT"}
|
package/dist/svelte/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './hooks';
|
|
2
2
|
export * from './components';
|
|
3
3
|
export * from '../lib/index.ts';
|
|
4
|
-
export declare const PanPluginPackage: import('@embedpdf/core').WithAutoMount<import('@embedpdf/core').PluginPackage<import('../lib/index.ts').PanPlugin, import('../lib/index.ts').PanPluginConfig,
|
|
4
|
+
export declare const PanPluginPackage: import('@embedpdf/core').WithAutoMount<import('@embedpdf/core').PluginPackage<import('../lib/index.ts').PanPlugin, import('../lib/index.ts').PanPluginConfig, import('../lib/index.ts').PanState, import('../lib/index.ts').PanAction>>;
|
package/dist/svelte/index.js
CHANGED
|
@@ -1,26 +1,37 @@
|
|
|
1
1
|
import { createPluginPackage } from "@embedpdf/core";
|
|
2
|
-
import { PanPlugin, PanPluginPackage as PanPluginPackage$1 } from "@embedpdf/plugin-pan";
|
|
2
|
+
import { PanPlugin, initialDocumentState, PanPluginPackage as PanPluginPackage$1 } from "@embedpdf/plugin-pan";
|
|
3
3
|
export * from "@embedpdf/plugin-pan";
|
|
4
4
|
import "svelte/internal/disclose-version";
|
|
5
5
|
import * as $ from "svelte/internal/client";
|
|
6
6
|
import { useCapability, usePlugin } from "@embedpdf/core/svelte";
|
|
7
7
|
const usePanPlugin = () => usePlugin(PanPlugin.id);
|
|
8
8
|
const usePanCapability = () => useCapability(PanPlugin.id);
|
|
9
|
-
const usePan = () => {
|
|
9
|
+
const usePan = (getDocumentId) => {
|
|
10
10
|
const capability = usePanCapability();
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
},
|
|
15
|
-
isPanning: false
|
|
16
|
-
});
|
|
11
|
+
let isPanning = $.state($.proxy(initialDocumentState.isPanMode));
|
|
12
|
+
const documentId = $.derived(getDocumentId);
|
|
13
|
+
const scopedProvides = $.derived(() => capability.provides && $.get(documentId) ? capability.provides.forDocument($.get(documentId)) : null);
|
|
17
14
|
$.user_effect(() => {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
const provides = capability.provides;
|
|
16
|
+
const docId = $.get(documentId);
|
|
17
|
+
if (!provides || !docId) {
|
|
18
|
+
$.set(isPanning, initialDocumentState.isPanMode, true);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const scope = provides.forDocument(docId);
|
|
22
|
+
$.set(isPanning, scope.isPanMode(), true);
|
|
23
|
+
return scope.onPanModeChange((isPan) => {
|
|
24
|
+
$.set(isPanning, isPan, true);
|
|
21
25
|
});
|
|
22
26
|
});
|
|
23
|
-
return
|
|
27
|
+
return {
|
|
28
|
+
get provides() {
|
|
29
|
+
return $.get(scopedProvides);
|
|
30
|
+
},
|
|
31
|
+
get isPanning() {
|
|
32
|
+
return $.get(isPanning);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
24
35
|
};
|
|
25
36
|
function PanMode($$anchor, $$props) {
|
|
26
37
|
$.push($$props, true);
|
package/dist/svelte/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/svelte/hooks/use-pan.svelte.ts","../../src/svelte/components/PanMode.svelte","../../src/svelte/index.ts"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/svelte';\nimport { PanPlugin } from '@embedpdf/plugin-pan';\n\nexport const usePanPlugin = () => usePlugin<PanPlugin>(PanPlugin.id);\nexport const usePanCapability = () => useCapability<PanPlugin>(PanPlugin.id);\n\nexport const usePan = () => {\n const capability = usePanCapability();\n\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/svelte/hooks/use-pan.svelte.ts","../../src/svelte/components/PanMode.svelte","../../src/svelte/index.ts"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/svelte';\nimport { PanPlugin, initialDocumentState, PanScope } from '@embedpdf/plugin-pan';\n\nexport const usePanPlugin = () => usePlugin<PanPlugin>(PanPlugin.id);\nexport const usePanCapability = () => useCapability<PanPlugin>(PanPlugin.id);\n\n// Define the return type explicitly to maintain type safety\ninterface UsePanReturn {\n provides: PanScope | null;\n isPanning: boolean;\n}\n\n/**\n * Hook for pan state for a specific document\n * @param getDocumentId Function that returns the document ID\n */\nexport const usePan = (getDocumentId: () => string | null): UsePanReturn => {\n const capability = usePanCapability();\n\n let isPanning = $state(initialDocumentState.isPanMode);\n\n // Reactive documentId\n const documentId = $derived(getDocumentId());\n\n // Scoped capability for current docId\n const scopedProvides = $derived(\n capability.provides && documentId ? capability.provides.forDocument(documentId) : null,\n );\n\n $effect(() => {\n const provides = capability.provides;\n const docId = documentId;\n\n if (!provides || !docId) {\n isPanning = initialDocumentState.isPanMode;\n return;\n }\n\n const scope = provides.forDocument(docId);\n\n // Set initial state\n isPanning = scope.isPanMode();\n\n // Subscribe to pan mode changes for this document\n return scope.onPanModeChange((isPan) => {\n isPanning = isPan;\n });\n });\n\n return {\n get provides() {\n return scopedProvides;\n },\n get isPanning() {\n return isPanning;\n },\n };\n};\n","<script lang=\"ts\">\n import { usePanCapability, usePanPlugin } from '../hooks';\n\n const { provides: pan } = usePanCapability();\n const { plugin: panPlugin } = usePanPlugin();\n\n $effect(() => {\n if (!pan || !panPlugin) return;\n\n const mode = panPlugin.config?.defaultMode ?? 'never';\n const SUPPORT_TOUCH =\n typeof window !== 'undefined' && ('ontouchstart' in window || navigator.maxTouchPoints > 0);\n\n if (mode === 'mobile' && SUPPORT_TOUCH) {\n pan.makePanDefault();\n }\n });\n</script>\n\n<!-- This component is only used to make the pan mode default when the plugin is initialized. -->\n","import { createPluginPackage } from '@embedpdf/core';\nimport { PanPluginPackage as BasePanPackage } from '@embedpdf/plugin-pan';\n\nimport { PanMode } from './components';\n\nexport * from './hooks';\nexport * from './components';\nexport * from '@embedpdf/plugin-pan';\n\nexport const PanPluginPackage = createPluginPackage(BasePanPackage).addUtility(PanMode).build();\n"],"names":["BasePanPackage"],"mappings":";;;;;;AAGa,MAAA,eAAA,MAAqB,UAAqB,UAAU,EAAE;AACtD,MAAA,mBAAA,MAAyB,cAAyB,UAAU,EAAE;MAY9D,SAAA,CAAU,kBAAqD;AACpE,QAAA,aAAa,iBAAA;MAEf,YAAA,EAAA,MAAA,EAAA,MAAmB,qBAAqB,SAAS,CAAA;AAG/C,QAAA,uBAAsB,aAAA;AAGtB,QAAA,iBAAA,EAAA,QAAA,MACJ,WAAW,kBAAY,UAAA,IAAa,WAAW,SAAS,kBAAY,UAAU,CAAA,IAAI,IAAA;AAGpF,IAAA,kBAAc;UACN,WAAW,WAAW;AACtB,UAAA,cAAQ,UAAA;SAET,YAAA,CAAa,OAAO;YACvB,WAAY,qBAAqB,WAAA,IAAA;;IAEnC;AAEM,UAAA,QAAQ,SAAS,YAAY,KAAK;UAGxC,WAAY,MAAM,UAAA,GAAA,IAAA;AAGX,WAAA,MAAM,gBAAA,CAAiB,UAAU;AACtC,QAAA,IAAA,WAAY,OAAA,IAAA;AAAA,IACd,CAAC;AAAA,EACH,CAAC;;IAGK,IAAA,WAAW;mBACN,cAAA;AAAA,IACT;AAAA,IACI,IAAA,YAAY;mBACP,SAAA;AAAA,IACT;AAAA;AAEJ;oCCzDA;;UAGU,UAAU,IAAG,IAAK,iBAAgB;UAClC,QAAQ,UAAS,IAAK,aAAY;AAE1C,IAAA,YAAO,MAAO;;AACP,QAAA,CAAA,QAAQ,UAAS;AAEhB,UAAA,SAAO,eAAU,WAAV,mBAAkB,gBAAe;AACxC,UAAA,gBAAa,OACV,WAAW,gBAAgB,kBAAkB,UAAU,UAAU,iBAAiB;AAEvF,QAAA,SAAS,YAAY,eAAe;AACtC,UAAI,eAAc;AAAA,IACpB;AAAA,EACF,CAAC;;AACH;ACRO,MAAM,mBAAmB,oBAAoBA,kBAAc,EAAE,WAAW,OAAO,EAAE,MAAA;"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
declare const
|
|
1
|
+
declare const __VLS_export: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
declare const _default: typeof __VLS_export;
|
|
2
3
|
export default _default;
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
+
import { MaybeRefOrGetter } from 'vue';
|
|
1
2
|
import { PanPlugin } from '../../lib/index.ts';
|
|
2
3
|
export declare const usePanPlugin: () => import('@embedpdf/core/vue').PluginState<PanPlugin>;
|
|
3
4
|
export declare const usePanCapability: () => import('@embedpdf/core/vue').CapabilityState<Readonly<import('../../lib/index.ts').PanCapability>>;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Hook for pan state for a specific document
|
|
7
|
+
* @param documentId Document ID (can be ref, computed, getter, or plain value)
|
|
8
|
+
*/
|
|
9
|
+
export declare const usePan: (documentId: MaybeRefOrGetter<string>) => {
|
|
10
|
+
provides: import('vue').ComputedRef<import('../../lib/index.ts').PanScope | null>;
|
|
11
|
+
isPanning: Readonly<import('vue').Ref<boolean, boolean>>;
|
|
7
12
|
};
|
package/dist/vue/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/core"),n=require("@embedpdf/plugin-pan"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/core"),n=require("@embedpdf/plugin-pan"),t=require("vue"),a=require("@embedpdf/core/vue"),o=()=>a.usePlugin(n.PanPlugin.id),u=()=>a.useCapability(n.PanPlugin.id),i=t.defineComponent({__name:"pan-mode",setup(e){const{provides:n}=u(),{plugin:a}=o();return t.onMounted(()=>{t.watchEffect(()=>{var e;if(!n.value||!a.value)return;const t=(null==(e=a.value.config)?void 0:e.defaultMode)??"never",o="undefined"!=typeof window&&("ontouchstart"in window||navigator.maxTouchPoints>0);"mobile"===t&&o&&n.value.makePanDefault()})}),(e,n)=>null}}),r=e.createPluginPackage(n.PanPluginPackage).addUtility(i).build();exports.PanMode=i,exports.PanPluginPackage=r,exports.usePan=e=>{const{provides:a}=u(),o=t.ref(n.initialDocumentState.isPanMode);t.watch([a,()=>t.toValue(e)],([e,t],a,u)=>{if(!e)return void(o.value=n.initialDocumentState.isPanMode);const i=e.forDocument(t);o.value=i.isPanMode();u(i.onPanModeChange(e=>{o.value=e}))},{immediate:!0});return{provides:t.computed(()=>{var n;const o=t.toValue(e);return(null==(n=a.value)?void 0:n.forDocument(o))??null}),isPanning:t.readonly(o)}},exports.usePanCapability=u,exports.usePanPlugin=o,Object.keys(n).forEach(e=>{"default"===e||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:()=>n[e]})});
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/vue/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../src/vue/hooks/use-pan.ts","../../src/vue/components/pan-mode.vue","../../src/vue/index.ts"],"sourcesContent":["import { ref, watch } from 'vue';\nimport { useCapability, usePlugin } from '@embedpdf/core/vue';\nimport { PanPlugin } from '@embedpdf/plugin-pan';\n\nexport const usePanPlugin = () => usePlugin<PanPlugin>(PanPlugin.id);\nexport const usePanCapability = () => useCapability<PanPlugin>(PanPlugin.id);\n\nexport const usePan = () => {\n const { provides } = usePanCapability();\n const isPanning = ref(
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/vue/hooks/use-pan.ts","../../src/vue/components/pan-mode.vue","../../src/vue/index.ts"],"sourcesContent":["import { ref, watch, computed, readonly, toValue, MaybeRefOrGetter } from 'vue';\nimport { useCapability, usePlugin } from '@embedpdf/core/vue';\nimport { PanPlugin, initialDocumentState } from '@embedpdf/plugin-pan';\n\nexport const usePanPlugin = () => usePlugin<PanPlugin>(PanPlugin.id);\nexport const usePanCapability = () => useCapability<PanPlugin>(PanPlugin.id);\n\n/**\n * Hook for pan state for a specific document\n * @param documentId Document ID (can be ref, computed, getter, or plain value)\n */\nexport const usePan = (documentId: MaybeRefOrGetter<string>) => {\n const { provides } = usePanCapability();\n const isPanning = ref(initialDocumentState.isPanMode);\n\n watch(\n [provides, () => toValue(documentId)],\n ([providesValue, docId], _, onCleanup) => {\n if (!providesValue) {\n isPanning.value = initialDocumentState.isPanMode;\n return;\n }\n\n const scope = providesValue.forDocument(docId);\n\n // Set initial state\n isPanning.value = scope.isPanMode();\n\n // Subscribe to pan mode changes\n const unsubscribe = scope.onPanModeChange((isPan) => {\n isPanning.value = isPan;\n });\n\n onCleanup(unsubscribe);\n },\n { immediate: true },\n );\n\n // Return a computed ref for the scoped capability\n const scopedProvides = computed(() => {\n const docId = toValue(documentId);\n return provides.value?.forDocument(docId) ?? null;\n });\n\n return {\n provides: scopedProvides,\n isPanning: readonly(isPanning),\n };\n};\n","<template>\n <!-- This component is only used to make the pan mode default when the plugin is initialized -->\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, watchEffect } from 'vue';\nimport { usePanCapability, usePanPlugin } from '../hooks/use-pan';\n\nconst { provides: pan } = usePanCapability();\nconst { plugin: panPlugin } = usePanPlugin();\n\nonMounted(() => {\n watchEffect(() => {\n if (!pan.value || !panPlugin.value) return;\n\n const mode = panPlugin.value.config?.defaultMode ?? 'never';\n const SUPPORT_TOUCH =\n typeof window !== 'undefined' && ('ontouchstart' in window || navigator.maxTouchPoints > 0);\n\n if (mode === 'mobile' && SUPPORT_TOUCH) {\n pan.value.makePanDefault();\n }\n });\n});\n</script>\n","import { createPluginPackage } from '@embedpdf/core';\nimport { PanPluginPackage as BasePanPackage } from '@embedpdf/plugin-pan';\nimport { PanMode } from './components';\n\nexport * from './hooks';\nexport * from './components';\nexport * from '@embedpdf/plugin-pan';\n\nexport const PanPluginPackage = createPluginPackage(BasePanPackage).addUtility(PanMode).build();\n"],"names":["usePanPlugin","usePlugin","PanPlugin","id","usePanCapability","useCapability","provides","pan","plugin","panPlugin","onMounted","watchEffect","value","mode","_a","config","defaultMode","SUPPORT_TOUCH","window","navigator","maxTouchPoints","makePanDefault","PanPluginPackage","createPluginPackage","BasePanPackage","addUtility","PanMode","build","documentId","isPanning","ref","initialDocumentState","isPanMode","watch","toValue","providesValue","docId","_","onCleanup","scope","forDocument","onPanModeChange","isPan","immediate","computed","readonly"],"mappings":"qMAIaA,EAAe,IAAMC,YAAqBC,EAAAA,UAAUC,IACpDC,EAAmB,IAAMC,gBAAyBH,EAAAA,UAAUC,oDCGzE,MAAQG,SAAUC,GAAQH,KAClBI,OAAQC,GAAcT,WAE9BU,EAAAA,UAAU,KACRC,EAAAA,YAAY,WACV,IAAKJ,EAAIK,QAAUH,EAAUG,MAAO,OAEpC,MAAMC,GAAO,OAAAC,EAAAL,EAAUG,MAAMG,iBAAQC,cAAe,QAC9CC,EACc,oBAAXC,SAA2B,iBAAkBA,QAAUC,UAAUC,eAAiB,GAE9E,WAATP,GAAqBI,GACvBV,EAAIK,MAAMS,oCCZHC,EAAmBC,EAAAA,oBAAoBC,EAAAA,kBAAgBC,WAAWC,GAASC,oEFGjEC,IACrB,MAAMtB,SAAEA,GAAaF,IACfyB,EAAYC,EAAAA,IAAIC,EAAAA,qBAAqBC,WAE3CC,EAAAA,MACE,CAAC3B,EAAU,IAAM4B,UAAQN,IACzB,EAAEO,EAAeC,GAAQC,EAAGC,KAC1B,IAAKH,EAEH,YADAN,EAAUjB,MAAQmB,EAAAA,qBAAqBC,WAIzC,MAAMO,EAAQJ,EAAcK,YAAYJ,GAGxCP,EAAUjB,MAAQ2B,EAAMP,YAOxBM,EAJoBC,EAAME,gBAAiBC,IACzCb,EAAUjB,MAAQ8B,MAKtB,CAAEC,WAAW,IASf,MAAO,CACLrC,SANqBsC,EAAAA,SAAS,WAC9B,MAAMR,EAAQF,EAAAA,QAAQN,GACtB,OAAO,OAAAd,EAAAR,EAASM,YAAT,EAAAE,EAAgB0B,YAAYJ,KAAU,OAK7CP,UAAWgB,EAAAA,SAAShB"}
|
package/dist/vue/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './hooks';
|
|
2
2
|
export * from './components';
|
|
3
3
|
export * from '../lib/index.ts';
|
|
4
|
-
export declare const PanPluginPackage: import('@embedpdf/core').WithAutoMount<import('@embedpdf/core').PluginPackage<import('../lib/index.ts').PanPlugin, import('../lib/index.ts').PanPluginConfig,
|
|
4
|
+
export declare const PanPluginPackage: import('@embedpdf/core').WithAutoMount<import('@embedpdf/core').PluginPackage<import('../lib/index.ts').PanPlugin, import('../lib/index.ts').PanPluginConfig, import('../lib/index.ts').PanState, import('../lib/index.ts').PanAction>>;
|
package/dist/vue/index.js
CHANGED
|
@@ -1,28 +1,37 @@
|
|
|
1
1
|
import { createPluginPackage } from "@embedpdf/core";
|
|
2
|
-
import { PanPlugin, PanPluginPackage as PanPluginPackage$1 } from "@embedpdf/plugin-pan";
|
|
2
|
+
import { PanPlugin, initialDocumentState, PanPluginPackage as PanPluginPackage$1 } from "@embedpdf/plugin-pan";
|
|
3
3
|
export * from "@embedpdf/plugin-pan";
|
|
4
|
-
import { ref, watch, defineComponent, onMounted, watchEffect } from "vue";
|
|
4
|
+
import { ref, watch, toValue, computed, readonly, defineComponent, onMounted, watchEffect } from "vue";
|
|
5
5
|
import { useCapability, usePlugin } from "@embedpdf/core/vue";
|
|
6
6
|
const usePanPlugin = () => usePlugin(PanPlugin.id);
|
|
7
7
|
const usePanCapability = () => useCapability(PanPlugin.id);
|
|
8
|
-
const usePan = () => {
|
|
8
|
+
const usePan = (documentId) => {
|
|
9
9
|
const { provides } = usePanCapability();
|
|
10
|
-
const isPanning = ref(
|
|
10
|
+
const isPanning = ref(initialDocumentState.isPanMode);
|
|
11
11
|
watch(
|
|
12
|
-
provides,
|
|
13
|
-
(providesValue, _, onCleanup) => {
|
|
14
|
-
if (providesValue) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
});
|
|
18
|
-
onCleanup(unsubscribe);
|
|
12
|
+
[provides, () => toValue(documentId)],
|
|
13
|
+
([providesValue, docId], _, onCleanup) => {
|
|
14
|
+
if (!providesValue) {
|
|
15
|
+
isPanning.value = initialDocumentState.isPanMode;
|
|
16
|
+
return;
|
|
19
17
|
}
|
|
18
|
+
const scope = providesValue.forDocument(docId);
|
|
19
|
+
isPanning.value = scope.isPanMode();
|
|
20
|
+
const unsubscribe = scope.onPanModeChange((isPan) => {
|
|
21
|
+
isPanning.value = isPan;
|
|
22
|
+
});
|
|
23
|
+
onCleanup(unsubscribe);
|
|
20
24
|
},
|
|
21
25
|
{ immediate: true }
|
|
22
26
|
);
|
|
27
|
+
const scopedProvides = computed(() => {
|
|
28
|
+
var _a;
|
|
29
|
+
const docId = toValue(documentId);
|
|
30
|
+
return ((_a = provides.value) == null ? void 0 : _a.forDocument(docId)) ?? null;
|
|
31
|
+
});
|
|
23
32
|
return {
|
|
24
|
-
provides,
|
|
25
|
-
isPanning
|
|
33
|
+
provides: scopedProvides,
|
|
34
|
+
isPanning: readonly(isPanning)
|
|
26
35
|
};
|
|
27
36
|
};
|
|
28
37
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
package/dist/vue/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/vue/hooks/use-pan.ts","../../src/vue/components/pan-mode.vue","../../src/vue/index.ts"],"sourcesContent":["import { ref, watch } from 'vue';\nimport { useCapability, usePlugin } from '@embedpdf/core/vue';\nimport { PanPlugin } from '@embedpdf/plugin-pan';\n\nexport const usePanPlugin = () => usePlugin<PanPlugin>(PanPlugin.id);\nexport const usePanCapability = () => useCapability<PanPlugin>(PanPlugin.id);\n\nexport const usePan = () => {\n const { provides } = usePanCapability();\n const isPanning = ref(
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/vue/hooks/use-pan.ts","../../src/vue/components/pan-mode.vue","../../src/vue/index.ts"],"sourcesContent":["import { ref, watch, computed, readonly, toValue, MaybeRefOrGetter } from 'vue';\nimport { useCapability, usePlugin } from '@embedpdf/core/vue';\nimport { PanPlugin, initialDocumentState } from '@embedpdf/plugin-pan';\n\nexport const usePanPlugin = () => usePlugin<PanPlugin>(PanPlugin.id);\nexport const usePanCapability = () => useCapability<PanPlugin>(PanPlugin.id);\n\n/**\n * Hook for pan state for a specific document\n * @param documentId Document ID (can be ref, computed, getter, or plain value)\n */\nexport const usePan = (documentId: MaybeRefOrGetter<string>) => {\n const { provides } = usePanCapability();\n const isPanning = ref(initialDocumentState.isPanMode);\n\n watch(\n [provides, () => toValue(documentId)],\n ([providesValue, docId], _, onCleanup) => {\n if (!providesValue) {\n isPanning.value = initialDocumentState.isPanMode;\n return;\n }\n\n const scope = providesValue.forDocument(docId);\n\n // Set initial state\n isPanning.value = scope.isPanMode();\n\n // Subscribe to pan mode changes\n const unsubscribe = scope.onPanModeChange((isPan) => {\n isPanning.value = isPan;\n });\n\n onCleanup(unsubscribe);\n },\n { immediate: true },\n );\n\n // Return a computed ref for the scoped capability\n const scopedProvides = computed(() => {\n const docId = toValue(documentId);\n return provides.value?.forDocument(docId) ?? null;\n });\n\n return {\n provides: scopedProvides,\n isPanning: readonly(isPanning),\n };\n};\n","<template>\n <!-- This component is only used to make the pan mode default when the plugin is initialized -->\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, watchEffect } from 'vue';\nimport { usePanCapability, usePanPlugin } from '../hooks/use-pan';\n\nconst { provides: pan } = usePanCapability();\nconst { plugin: panPlugin } = usePanPlugin();\n\nonMounted(() => {\n watchEffect(() => {\n if (!pan.value || !panPlugin.value) return;\n\n const mode = panPlugin.value.config?.defaultMode ?? 'never';\n const SUPPORT_TOUCH =\n typeof window !== 'undefined' && ('ontouchstart' in window || navigator.maxTouchPoints > 0);\n\n if (mode === 'mobile' && SUPPORT_TOUCH) {\n pan.value.makePanDefault();\n }\n });\n});\n</script>\n","import { createPluginPackage } from '@embedpdf/core';\nimport { PanPluginPackage as BasePanPackage } from '@embedpdf/plugin-pan';\nimport { PanMode } from './components';\n\nexport * from './hooks';\nexport * from './components';\nexport * from '@embedpdf/plugin-pan';\n\nexport const PanPluginPackage = createPluginPackage(BasePanPackage).addUtility(PanMode).build();\n"],"names":["BasePanPackage","PanMode"],"mappings":";;;;;AAIO,MAAM,eAAe,MAAM,UAAqB,UAAU,EAAE;AAC5D,MAAM,mBAAmB,MAAM,cAAyB,UAAU,EAAE;AAMpE,MAAM,SAAS,CAAC,eAAyC;AAC9D,QAAM,EAAE,SAAA,IAAa,iBAAA;AACrB,QAAM,YAAY,IAAI,qBAAqB,SAAS;AAEpD;AAAA,IACE,CAAC,UAAU,MAAM,QAAQ,UAAU,CAAC;AAAA,IACpC,CAAC,CAAC,eAAe,KAAK,GAAG,GAAG,cAAc;AACxC,UAAI,CAAC,eAAe;AAClB,kBAAU,QAAQ,qBAAqB;AACvC;AAAA,MACF;AAEA,YAAM,QAAQ,cAAc,YAAY,KAAK;AAG7C,gBAAU,QAAQ,MAAM,UAAA;AAGxB,YAAM,cAAc,MAAM,gBAAgB,CAAC,UAAU;AACnD,kBAAU,QAAQ;AAAA,MACpB,CAAC;AAED,gBAAU,WAAW;AAAA,IACvB;AAAA,IACA,EAAE,WAAW,KAAA;AAAA,EAAK;AAIpB,QAAM,iBAAiB,SAAS,MAAM;;AACpC,UAAM,QAAQ,QAAQ,UAAU;AAChC,aAAO,cAAS,UAAT,mBAAgB,YAAY,WAAU;AAAA,EAC/C,CAAC;AAED,SAAO;AAAA,IACL,UAAU;AAAA,IACV,WAAW,SAAS,SAAS;AAAA,EAAA;AAEjC;;;;ACxCA,UAAM,EAAE,UAAU,IAAA,IAAQ,iBAAA;AAC1B,UAAM,EAAE,QAAQ,UAAA,IAAc,aAAA;AAE9B,cAAU,MAAM;AACd,kBAAY,MAAM;;AAChB,YAAI,CAAC,IAAI,SAAS,CAAC,UAAU,MAAO;AAEpC,cAAM,SAAO,eAAU,MAAM,WAAhB,mBAAwB,gBAAe;AACpD,cAAM,gBACJ,OAAO,WAAW,gBAAgB,kBAAkB,UAAU,UAAU,iBAAiB;AAE3F,YAAI,SAAS,YAAY,eAAe;AACtC,cAAI,MAAM,eAAA;AAAA,QACZ;AAAA,MACF,CAAC;AAAA,IACH,CAAC;;;;;;ACfM,MAAM,mBAAmB,oBAAoBA,kBAAc,EAAE,WAAWC,SAAO,EAAE,MAAA;"}
|