@eternalheart/vue-file-preview 1.3.13 → 1.3.14

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 (49) hide show
  1. package/lib/FilePreviewContent.vue.d.ts +3 -0
  2. package/lib/FilePreviewContent.vue.d.ts.map +1 -1
  3. package/lib/FilePreviewEmbed.vue.d.ts +5 -0
  4. package/lib/FilePreviewEmbed.vue.d.ts.map +1 -1
  5. package/lib/FilePreviewModal.vue.d.ts.map +1 -1
  6. package/lib/chunks/{index-BHi1WRQZ.mjs → index-5hGtGeD4.mjs} +2 -2
  7. package/lib/chunks/{index-BHi1WRQZ.mjs.map → index-5hGtGeD4.mjs.map} +1 -1
  8. package/lib/chunks/{index-DBw8tvyb.mjs → index-B-f41wjl.mjs} +2 -2
  9. package/lib/chunks/{index-DBw8tvyb.mjs.map → index-B-f41wjl.mjs.map} +1 -1
  10. package/lib/chunks/{index-CYt6tpQC.mjs → index-BI32fnT-.mjs} +2 -2
  11. package/lib/chunks/{index-CYt6tpQC.mjs.map → index-BI32fnT-.mjs.map} +1 -1
  12. package/lib/chunks/{index-DTtHrdBl.mjs → index-BgdBpGYv.mjs} +2 -2
  13. package/lib/chunks/{index-DTtHrdBl.mjs.map → index-BgdBpGYv.mjs.map} +1 -1
  14. package/lib/chunks/{index-DT9dPz8I.mjs → index-BkMYaea2.mjs} +2 -2
  15. package/lib/chunks/{index-DT9dPz8I.mjs.map → index-BkMYaea2.mjs.map} +1 -1
  16. package/lib/chunks/{index-BTW1xwB9.mjs → index-BlD2p_KC.mjs} +2 -2
  17. package/lib/chunks/{index-BTW1xwB9.mjs.map → index-BlD2p_KC.mjs.map} +1 -1
  18. package/lib/chunks/{index-B2lqsdp7.mjs → index-Bz9nKaz5.mjs} +2 -2
  19. package/lib/chunks/{index-B2lqsdp7.mjs.map → index-Bz9nKaz5.mjs.map} +1 -1
  20. package/lib/chunks/{index-GGGDPwxX.mjs → index-C0OWrmU8.mjs} +2 -2
  21. package/lib/chunks/{index-GGGDPwxX.mjs.map → index-C0OWrmU8.mjs.map} +1 -1
  22. package/lib/chunks/{index-Oxwizt6-.mjs → index-CFaWV6cC.mjs} +87 -82
  23. package/lib/chunks/index-CFaWV6cC.mjs.map +1 -0
  24. package/lib/chunks/{index-BvegaxQF.mjs → index-CJ86PaaF.mjs} +2 -2
  25. package/lib/chunks/{index-BvegaxQF.mjs.map → index-CJ86PaaF.mjs.map} +1 -1
  26. package/lib/chunks/{index-DIe0vHlt.mjs → index-CMKtCKpo.mjs} +2 -2
  27. package/lib/chunks/{index-DIe0vHlt.mjs.map → index-CMKtCKpo.mjs.map} +1 -1
  28. package/lib/chunks/{index-Cjnw238n.mjs → index-CUA_z4GJ.mjs} +2 -2
  29. package/lib/chunks/{index-Cjnw238n.mjs.map → index-CUA_z4GJ.mjs.map} +1 -1
  30. package/lib/chunks/{index-CyrFxdIJ.mjs → index-Cr0Z36a0.mjs} +3 -3
  31. package/lib/chunks/{index-CyrFxdIJ.mjs.map → index-Cr0Z36a0.mjs.map} +1 -1
  32. package/lib/chunks/{index-Ctd0JQ6K.mjs → index-DVJfd09T.mjs} +2 -2
  33. package/lib/chunks/{index-Ctd0JQ6K.mjs.map → index-DVJfd09T.mjs.map} +1 -1
  34. package/lib/chunks/{index-DyipSoKh.mjs → index-DYrRDrZL.mjs} +2 -2
  35. package/lib/chunks/{index-DyipSoKh.mjs.map → index-DYrRDrZL.mjs.map} +1 -1
  36. package/lib/chunks/{index-Zwl5J-Uw.mjs → index-GcvjVFMf.mjs} +2 -2
  37. package/lib/chunks/{index-Zwl5J-Uw.mjs.map → index-GcvjVFMf.mjs.map} +1 -1
  38. package/lib/chunks/{index-DX_NBPzS.mjs → index-P8naV3DU.mjs} +2 -2
  39. package/lib/chunks/{index-DX_NBPzS.mjs.map → index-P8naV3DU.mjs.map} +1 -1
  40. package/lib/chunks/{index-Dw1U4YqT.mjs → index-VTsO_yR7.mjs} +2 -2
  41. package/lib/chunks/{index-Dw1U4YqT.mjs.map → index-VTsO_yR7.mjs.map} +1 -1
  42. package/lib/chunks/{index-DEoR7aDN.mjs → index-dG-p4BPD.mjs} +2 -2
  43. package/lib/chunks/{index-DEoR7aDN.mjs.map → index-dG-p4BPD.mjs.map} +1 -1
  44. package/lib/index.cjs +20 -20
  45. package/lib/index.cjs.map +1 -1
  46. package/lib/index.css +1 -1
  47. package/lib/index.mjs +1 -1
  48. package/package.json +1 -1
  49. package/lib/chunks/index-Oxwizt6-.mjs.map +0 -1
@@ -24,6 +24,8 @@ interface Props {
24
24
  shouldFetchAsBlob?: ShouldFetchAsBlob;
25
25
  /** 自定义下载回调;不传时库内默认通过 fetcher 拉 Blob 触发下载 */
26
26
  onDownload?: (file: PreviewFile) => void | Promise<void>;
27
+ /** 关闭回调:传入后工具栏显示关闭按钮 */
28
+ onClose?: () => void;
27
29
  }
28
30
  declare const _default: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
29
31
  close: () => any;
@@ -36,6 +38,7 @@ declare const _default: import("vue").DefineComponent<Props, {}, {}, {}, {}, imp
36
38
  }>, {
37
39
  requestInit: RequestInitFactory;
38
40
  requestHandler: RequestHandler;
41
+ onClose: () => void;
39
42
  mode: "modal" | "embed";
40
43
  theme: Theme;
41
44
  customRenderers: CustomRenderer[];
@@ -1 +1 @@
1
- {"version":3,"file":"FilePreviewContent.vue.d.ts","sourceRoot":"","sources":["../src/FilePreviewContent.vue"],"names":[],"mappings":"AA2vBA,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,KAAK,EACV,KAAK,0BAA0B,EAC/B,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAyB,MAAM,SAAS,CAAC;AAuCrE,UAAU,KAAK;IACb,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,kCAAkC;IAClC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB,qCAAqC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS;IACT,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtD,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,mDAAmD;IACnD,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,4BAA4B;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,4CAA4C;IAC5C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;;;;;;;;;;iBAPe,kBAAkB;oBAEf,cAAc;UAdxB,OAAO,GAAG,OAAO;WAUhB,KAAK;qBAZK,cAAc,EAAE;qBAIhB,MAAM;YAEf,MAAM;cAEJ,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;cAE1C,OAAO;uBAQE,iBAAiB;gBAExB,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;;AA0nC1D,wBAQG"}
1
+ {"version":3,"file":"FilePreviewContent.vue.d.ts","sourceRoot":"","sources":["../src/FilePreviewContent.vue"],"names":[],"mappings":"AA8vBA,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,KAAK,EACV,KAAK,0BAA0B,EAC/B,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAyB,MAAM,SAAS,CAAC;AAuCrE,UAAU,KAAK;IACb,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,kCAAkC;IAClC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB,qCAAqC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS;IACT,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtD,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,mDAAmD;IACnD,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,4BAA4B;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,4CAA4C;IAC5C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;;;;;;;;;;iBATe,kBAAkB;oBAEf,cAAc;aAMrB,MAAM,IAAI;UApBb,OAAO,GAAG,OAAO;WAUhB,KAAK;qBAZK,cAAc,EAAE;qBAIhB,MAAM;YAEf,MAAM;cAEJ,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;cAE1C,OAAO;uBAQE,iBAAiB;gBAExB,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;;AA8nC1D,wBAQG"}
@@ -24,16 +24,21 @@ interface Props {
24
24
  shouldFetchAsBlob?: ShouldFetchAsBlob;
25
25
  /** 自定义下载回调;不传时库内默认通过 fetcher 拉 Blob 触发下载 */
26
26
  onDownload?: (file: PreviewFile) => void | Promise<void>;
27
+ /** 关闭回调:传入后工具栏显示关闭按钮 */
28
+ onClose?: () => void;
27
29
  }
28
30
  declare const _default: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
31
+ close: () => any;
29
32
  navigate: (index: number) => any;
30
33
  "custom-event": (payload: CustomRendererEventPayload<unknown>) => any;
31
34
  }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
35
+ onClose?: (() => any) | undefined;
32
36
  onNavigate?: ((index: number) => any) | undefined;
33
37
  "onCustom-event"?: ((payload: CustomRendererEventPayload<unknown>) => any) | undefined;
34
38
  }>, {
35
39
  requestInit: RequestInitFactory;
36
40
  requestHandler: RequestHandler;
41
+ onClose: () => void;
37
42
  height: number | string;
38
43
  width: number | string;
39
44
  theme: Theme;
@@ -1 +1 @@
1
- {"version":3,"file":"FilePreviewEmbed.vue.d.ts","sourceRoot":"","sources":["../src/FilePreviewEmbed.vue"],"names":[],"mappings":"AAsHA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,0BAA0B,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACjM,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C,UAAU,KAAK;IACb,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,SAAS;IACT,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtD,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,mDAAmD;IACnD,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,4BAA4B;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,4CAA4C;IAC5C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;;;;;;;;iBAPe,kBAAkB;oBAEf,cAAc;YAZtB,MAAM,GAAG,MAAM;WAFhB,MAAM,GAAG,MAAM;WAUf,KAAK;kBAbE,MAAM;qBACH,cAAc,EAAE;YAMzB,MAAM;cAEJ,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;cAE1C,OAAO;uBAQE,iBAAiB;gBAExB,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;;AAsK1D,wBAQG"}
1
+ {"version":3,"file":"FilePreviewEmbed.vue.d.ts","sourceRoot":"","sources":["../src/FilePreviewEmbed.vue"],"names":[],"mappings":"AA4HA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,0BAA0B,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACjM,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C,UAAU,KAAK;IACb,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,SAAS;IACT,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtD,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,mDAAmD;IACnD,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,4BAA4B;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,4CAA4C;IAC5C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;;;;;;;;;;iBATe,kBAAkB;oBAEf,cAAc;aAMrB,MAAM,IAAI;YAlBX,MAAM,GAAG,MAAM;WAFhB,MAAM,GAAG,MAAM;WAUf,KAAK;kBAbE,MAAM;qBACH,cAAc,EAAE;YAMzB,MAAM;cAEJ,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;cAE1C,OAAO;uBAQE,iBAAiB;gBAExB,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;;AAiL1D,wBAQG"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilePreviewModal.vue.d.ts","sourceRoot":"","sources":["../src/FilePreviewModal.vue"],"names":[],"mappings":"AAoIA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,0BAA0B,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACjM,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAI9C,UAAU,KAAK;IACb,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,SAAS;IACT,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtD,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,mDAAmD;IACnD,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,4BAA4B;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,4CAA4C;IAC5C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;;;;;;;;;;iBAPe,kBAAkB;oBAEf,cAAc;WAJvB,KAAK;qBARK,cAAc,EAAE;YAEzB,MAAM;cAEJ,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;cAE1C,OAAO;uBAQE,iBAAiB;gBAExB,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;;AAuN1D,wBAQG"}
1
+ {"version":3,"file":"FilePreviewModal.vue.d.ts","sourceRoot":"","sources":["../src/FilePreviewModal.vue"],"names":[],"mappings":"AAqIA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,0BAA0B,EAAE,cAAc,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACjM,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAI9C,UAAU,KAAK;IACb,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,SAAS;IACT,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtD,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,mDAAmD;IACnD,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,4BAA4B;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,4CAA4C;IAC5C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;;;;;;;;;;iBAPe,kBAAkB;oBAEf,cAAc;WAJvB,KAAK;qBARK,cAAc,EAAE;YAEzB,MAAM;cAEJ,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;cAE1C,OAAO;uBAQE,iBAAiB;gBAExB,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;;AAyN1D,wBAQG"}
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as U, ref as f, watch as te, onBeforeUnmount as oe, openBlock as m, createElementBlock as _, createBlock as ae, createCommentVNode as C, createElementVNode as p, normalizeStyle as S, toDisplayString as re, unref as $, createVNode as P, h } from "vue";
2
2
  import { X as le } from "lucide-vue-next";
3
3
  import "foliate-js/view.js";
4
- import { u as ne, a as se, _ as ie } from "./index-Oxwizt6-.mjs";
4
+ import { u as ne, a as se, _ as ie } from "./index-CFaWV6cC.mjs";
5
5
  import { _ as fe } from "./RendererError.vue_vue_type_script_setup_true_lang-CbgZBSDr.mjs";
6
6
  const pe = { class: "vfp-relative vfp-w-full vfp-h-full vfp-flex vfp-justify-center vfp-bg-surface-1 vfp-overflow-hidden" }, ce = {
7
7
  key: 1,
@@ -199,4 +199,4 @@ const pe = { class: "vfp-relative vfp-w-full vfp-h-full vfp-flex vfp-justify-cen
199
199
  export {
200
200
  ke as default
201
201
  };
202
- //# sourceMappingURL=index-BHi1WRQZ.mjs.map
202
+ //# sourceMappingURL=index-5hGtGeD4.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-BHi1WRQZ.mjs","sources":["../../src/renderers/Mobi/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, watch, onBeforeUnmount, defineComponent, h, type PropType } from 'vue';\nimport { X } from 'lucide-vue-next';\nimport 'foliate-js/view.js';\nimport { useTranslator } from '../../composables/useTranslator';\nimport { useFetcher } from '../../composables/useRequest';\nimport RendererError from '../RendererError.vue';\n\ninterface TocItem {\n label: string;\n href?: string;\n subitems?: TocItem[];\n}\n\ninterface FoliateView extends HTMLElement {\n book: {\n sections: unknown[];\n toc?: TocItem[];\n destroy?: () => void;\n } | null;\n renderer: HTMLElement & {\n setStyles?: (css: string) => void;\n next?: () => Promise<void>;\n page?: number;\n pages?: number;\n };\n open(target: string | Blob | File | ArrayBuffer): Promise<void>;\n goTo(target: number | string): Promise<void>;\n prev(distance?: number): Promise<void>;\n next(distance?: number): Promise<void>;\n}\n\nconst READER_CSS = `\n @namespace epub \"http://www.idpf.org/2007/ops\";\n html { color-scheme: light; }\n body {\n background: #ffffff !important;\n color: #1a1a1a !important;\n font-family: \"Noto Serif SC\", \"Source Han Serif SC\", Georgia, \"Times New Roman\", serif !important;\n font-size: 16px !important;\n line-height: 2 !important;\n max-width: 100% !important;\n box-sizing: border-box !important;\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n }\n p, li, blockquote, dd { line-height: 2; text-align: justify; }\n p { text-indent: 2em; margin: 0.8em 0; }\n h1 { text-align: center; margin: 1.5em 0 1em; }\n h2 { margin: 1.2em 0 0.8em; }\n h3 { margin: 1em 0 0.6em; }\n img { max-width: 100% !important; height: auto !important; }\n a { color: #2563eb; text-decoration: none; }\n pre { white-space: pre-wrap !important; }\n`;\n\nconst A4_WIDTH = 794;\n\nconst props = defineProps<{ url: string }>();\nconst emit = defineEmits<{\n (e: 'chapterChange', current: number, total: number): void;\n (e: 'fullWidthChange', isFullWidth: boolean): void;\n}>();\n\nconst { t } = useTranslator();\nconst fetcher = useFetcher();\n\nconst hostRef = ref<HTMLDivElement | null>(null);\nlet viewInstance: FoliateView | null = null;\nlet totalLocations = 1;\n\nconst loading = ref(true);\nconst error = ref<string | null>(null);\nconst toc = ref<TocItem[]>([]);\nconst showToc = ref(false);\nconst activeTocHref = ref('');\nconst isFullWidth = ref(false);\n\nconst reportProgress = (current: number, total: number) => {\n if (total > 0) totalLocations = total;\n emit('chapterChange', Math.max(1, current + 1), totalLocations);\n};\n\nconst prevPage = () => { viewInstance?.prev().catch(() => {}); };\nconst nextPage = () => { viewInstance?.next().catch(() => {}); };\nconst toggleToc = () => { showToc.value = !showToc.value; };\nconst toggleFullWidth = () => {\n isFullWidth.value = !isFullWidth.value;\n emit('fullWidthChange', isFullWidth.value);\n if (viewInstance?.renderer) {\n viewInstance.renderer.setAttribute('max-inline-size', isFullWidth.value ? '9999' : '720');\n }\n};\n\nconst handleTocClick = (href: string) => {\n activeTocHref.value = href;\n showToc.value = false;\n viewInstance?.goTo(href).catch(() => {});\n};\n\ndefineExpose({ prevPage, nextPage, toggleFullWidth, toggleToc });\n\nconst load = async () => {\n const host = hostRef.value;\n if (!host) return;\n loading.value = true;\n error.value = null;\n toc.value = [];\n showToc.value = false;\n activeTocHref.value = '';\n host.replaceChildren();\n viewInstance = null;\n\n try {\n const view = document.createElement('foliate-view') as FoliateView;\n host.appendChild(view);\n viewInstance = view;\n\n // 先注册事件\n view.addEventListener('relocate', (e: Event) => {\n const detail = (e as CustomEvent).detail;\n if (!detail) return;\n const loc = detail.location as { current?: number; total?: number } | undefined;\n if (loc && typeof loc.current === 'number' && typeof loc.total === 'number') {\n reportProgress(loc.current, loc.total);\n } else {\n const sections = viewInstance?.book?.sections ?? [];\n const idx = detail.index ?? 0;\n const frac = detail.fraction ?? 0;\n const total = Math.max(sections.length, 1);\n reportProgress(Math.round((idx + frac) / total * total), total);\n }\n const tocItem = detail.tocItem as { href?: string } | undefined;\n if (tocItem?.href) activeTocHref.value = tocItem.href;\n });\n\n const res = await fetcher.value(props.url);\n if (!res.ok) throw new Error(`请求失败: ${res.status}`);\n const blob = await res.blob();\n let name = 'book.mobi';\n try {\n const u = new URL(props.url, window.location.href);\n const base = u.pathname.split('/').pop();\n if (base) name = decodeURIComponent(base);\n } catch { /* blob: URL */ }\n\n await view.open(new File([blob], name));\n\n // 配置 paginator:paginated 模式 + 动画\n const renderer = view.renderer;\n if (renderer) {\n renderer.setAttribute('animated', '');\n renderer.setAttribute('max-inline-size', '720');\n renderer.setAttribute('margin', '48');\n renderer.setAttribute('gap', '5%');\n renderer.setStyles?.(READER_CSS);\n await renderer.next?.();\n }\n\n toc.value = (view.book?.toc ?? []) as TocItem[];\n loading.value = false;\n reportProgress(0, view.book?.sections.length ?? 1);\n } catch (err) {\n console.error('MOBI/AZW3 加载错误:', err);\n error.value = t.value('mobi.load_failed');\n loading.value = false;\n }\n};\n\nwatch(() => props.url, (newUrl) => {\n // 只有 URL 有效时才加载(避免空字符串或已 revoke 的 blob URL)\n if (newUrl) load();\n}, { immediate: true });\nonBeforeUnmount(() => {\n try { viewInstance?.book?.destroy?.(); } catch { /* ignore */ }\n viewInstance = null;\n hostRef.value?.replaceChildren();\n});\n</script>\n\n<template>\n <div\n class=\"vfp-relative vfp-w-full vfp-h-full vfp-flex vfp-justify-center vfp-bg-surface-1 vfp-overflow-hidden\"\n >\n <RendererError v-if=\"error\" :message=\"error\" class=\"vfp-absolute vfp-inset-0\" />\n\n <div\n v-if=\"loading && !error\"\n class=\"vfp-absolute vfp-inset-0 vfp-flex vfp-items-center vfp-justify-center vfp-z-10\"\n >\n <div class=\"vfp-w-12 vfp-h-12 vfp-border-4 vfp-border-line-strong vfp-border-t-spinner-head vfp-rounded-full vfp-animate-spin\" />\n </div>\n\n <!-- 目录侧栏 -->\n <div\n v-if=\"toc.length > 0\"\n class=\"vfp-absolute vfp-inset-0 vfp-z-20 vfp-flex vfp-transition-opacity vfp-duration-300\"\n :style=\"{ opacity: showToc ? 1 : 0, pointerEvents: showToc ? 'auto' : 'none' }\"\n >\n <div\n class=\"vfp-w-72 vfp-max-w-[80%] vfp-h-full vfp-bg-surface-overlay vfp-backdrop-blur-xl vfp-border-r vfp-border-line-weak vfp-flex vfp-flex-col vfp-shadow-2xl vfp-transition-transform vfp-duration-300\"\n :style=\"{ transform: showToc ? 'translateX(0)' : 'translateX(-100%)' }\"\n >\n <div class=\"vfp-flex vfp-items-center vfp-justify-between vfp-px-4 vfp-py-3 vfp-border-b vfp-border-line-weak vfp-flex-shrink-0\">\n <span class=\"vfp-text-fg-primary vfp-font-medium vfp-text-sm\">{{ t('toolbar.toc') }}</span>\n <button class=\"toc-close-btn\" @click=\"showToc = false\">\n <X class=\"vfp-w-4 vfp-h-4\" />\n </button>\n </div>\n <div class=\"vfp-flex-1 vfp-overflow-y-auto vfp-py-4 vfp-px-1\">\n <MobiTocList :items=\"toc\" :active-href=\"activeTocHref\" @select=\"handleTocClick\" />\n </div>\n </div>\n <div\n class=\"vfp-flex-1 vfp-transition-opacity vfp-duration-300\"\n :style=\"{ background: showToc ? 'rgba(0,0,0,0.3)' : 'transparent' }\"\n @click=\"showToc = false\"\n />\n </div>\n\n <div\n v-if=\"!error\"\n ref=\"hostRef\"\n class=\"vfp-h-full vfp-bg-surface-toolbar vfp-shadow-lg\"\n :style=\"{ width: isFullWidth ? '100%' : A4_WIDTH + 'px', maxWidth: '100%', transition: 'width 0.3s ease' }\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\ninterface TocItemLocal {\n label: string;\n href?: string;\n subitems?: TocItemLocal[];\n}\n\nconst MobiTocList = defineComponent({\n name: 'MobiTocList',\n props: {\n items: { type: Array as PropType<TocItemLocal[]>, required: true },\n activeHref: { type: String, default: '' },\n depth: { type: Number, default: 0 },\n },\n emits: ['select'],\n render(): ReturnType<typeof h> {\n return h(\n 'ul',\n { style: { listStyle: 'none', padding: 0, margin: this.depth > 0 ? '0 0 0 16px' : 0 } },\n this.items.map((item: TocItemLocal, i: number) =>\n h('li', { key: `${item.href ?? item.label}-${i}` }, [\n item.href\n ? h(\n 'button',\n {\n onClick: () => this.$emit('select', item.href),\n class: [\n 'vfp-w-full vfp-text-left vfp-py-2 vfp-px-3 vfp-text-sm vfp-rounded vfp-transition-all vfp-truncate',\n this.activeHref === item.href\n ? 'vfp-text-fg-primary vfp-bg-surface-3 vfp-font-medium'\n : 'vfp-text-fg-secondary hover:vfp-text-fg-primary hover:vfp-bg-surface-2',\n ],\n title: item.label,\n style: 'background: none; border: none; cursor: pointer',\n },\n item.label?.trim()\n )\n : h(\n 'div',\n { class: 'vfp-w-full vfp-py-2 vfp-px-3 vfp-text-sm vfp-text-fg-tertiary vfp-truncate' },\n item.label?.trim()\n ),\n item.subitems?.length\n ? h(MobiTocList, {\n items: item.subitems,\n activeHref: this.activeHref,\n depth: (this.depth as number) + 1,\n onSelect: (href: string) => this.$emit('select', href),\n })\n : null,\n ])\n )\n );\n },\n});\n\nexport default { name: 'MobiRenderer' };\n</script>\n\n<style scoped>\n.toc-close-btn {\n color: var(--fp-fg-tertiary);\n background: none;\n border: none;\n cursor: pointer;\n transition: color 0.15s;\n}\n.toc-close-btn:hover { color: #fff; }\n</style>\n"],"names":["MobiTocList","defineComponent","item","i","_a","_b","_c","href","__default__","READER_CSS","props","__props","emit","__emit","t","useTranslator","fetcher","useFetcher","hostRef","ref","viewInstance","totalLocations","loading","error","toc","showToc","activeTocHref","isFullWidth","reportProgress","current","total","prevPage","nextPage","toggleToc","toggleFullWidth","handleTocClick","__expose","load","host","view","e","detail","loc","sections","idx","frac","tocItem","res","blob","name","base","renderer","_d","err","watch","newUrl","onBeforeUnmount","_openBlock","_createElementBlock","_hoisted_1","_createBlock","RendererError","_hoisted_2","_cache","_createElementVNode","_normalizeStyle","_hoisted_3","_hoisted_4","_toDisplayString","_unref","_createVNode","X","_hoisted_5"],"mappings":"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"}
1
+ {"version":3,"file":"index-5hGtGeD4.mjs","sources":["../../src/renderers/Mobi/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, watch, onBeforeUnmount, defineComponent, h, type PropType } from 'vue';\nimport { X } from 'lucide-vue-next';\nimport 'foliate-js/view.js';\nimport { useTranslator } from '../../composables/useTranslator';\nimport { useFetcher } from '../../composables/useRequest';\nimport RendererError from '../RendererError.vue';\n\ninterface TocItem {\n label: string;\n href?: string;\n subitems?: TocItem[];\n}\n\ninterface FoliateView extends HTMLElement {\n book: {\n sections: unknown[];\n toc?: TocItem[];\n destroy?: () => void;\n } | null;\n renderer: HTMLElement & {\n setStyles?: (css: string) => void;\n next?: () => Promise<void>;\n page?: number;\n pages?: number;\n };\n open(target: string | Blob | File | ArrayBuffer): Promise<void>;\n goTo(target: number | string): Promise<void>;\n prev(distance?: number): Promise<void>;\n next(distance?: number): Promise<void>;\n}\n\nconst READER_CSS = `\n @namespace epub \"http://www.idpf.org/2007/ops\";\n html { color-scheme: light; }\n body {\n background: #ffffff !important;\n color: #1a1a1a !important;\n font-family: \"Noto Serif SC\", \"Source Han Serif SC\", Georgia, \"Times New Roman\", serif !important;\n font-size: 16px !important;\n line-height: 2 !important;\n max-width: 100% !important;\n box-sizing: border-box !important;\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n }\n p, li, blockquote, dd { line-height: 2; text-align: justify; }\n p { text-indent: 2em; margin: 0.8em 0; }\n h1 { text-align: center; margin: 1.5em 0 1em; }\n h2 { margin: 1.2em 0 0.8em; }\n h3 { margin: 1em 0 0.6em; }\n img { max-width: 100% !important; height: auto !important; }\n a { color: #2563eb; text-decoration: none; }\n pre { white-space: pre-wrap !important; }\n`;\n\nconst A4_WIDTH = 794;\n\nconst props = defineProps<{ url: string }>();\nconst emit = defineEmits<{\n (e: 'chapterChange', current: number, total: number): void;\n (e: 'fullWidthChange', isFullWidth: boolean): void;\n}>();\n\nconst { t } = useTranslator();\nconst fetcher = useFetcher();\n\nconst hostRef = ref<HTMLDivElement | null>(null);\nlet viewInstance: FoliateView | null = null;\nlet totalLocations = 1;\n\nconst loading = ref(true);\nconst error = ref<string | null>(null);\nconst toc = ref<TocItem[]>([]);\nconst showToc = ref(false);\nconst activeTocHref = ref('');\nconst isFullWidth = ref(false);\n\nconst reportProgress = (current: number, total: number) => {\n if (total > 0) totalLocations = total;\n emit('chapterChange', Math.max(1, current + 1), totalLocations);\n};\n\nconst prevPage = () => { viewInstance?.prev().catch(() => {}); };\nconst nextPage = () => { viewInstance?.next().catch(() => {}); };\nconst toggleToc = () => { showToc.value = !showToc.value; };\nconst toggleFullWidth = () => {\n isFullWidth.value = !isFullWidth.value;\n emit('fullWidthChange', isFullWidth.value);\n if (viewInstance?.renderer) {\n viewInstance.renderer.setAttribute('max-inline-size', isFullWidth.value ? '9999' : '720');\n }\n};\n\nconst handleTocClick = (href: string) => {\n activeTocHref.value = href;\n showToc.value = false;\n viewInstance?.goTo(href).catch(() => {});\n};\n\ndefineExpose({ prevPage, nextPage, toggleFullWidth, toggleToc });\n\nconst load = async () => {\n const host = hostRef.value;\n if (!host) return;\n loading.value = true;\n error.value = null;\n toc.value = [];\n showToc.value = false;\n activeTocHref.value = '';\n host.replaceChildren();\n viewInstance = null;\n\n try {\n const view = document.createElement('foliate-view') as FoliateView;\n host.appendChild(view);\n viewInstance = view;\n\n // 先注册事件\n view.addEventListener('relocate', (e: Event) => {\n const detail = (e as CustomEvent).detail;\n if (!detail) return;\n const loc = detail.location as { current?: number; total?: number } | undefined;\n if (loc && typeof loc.current === 'number' && typeof loc.total === 'number') {\n reportProgress(loc.current, loc.total);\n } else {\n const sections = viewInstance?.book?.sections ?? [];\n const idx = detail.index ?? 0;\n const frac = detail.fraction ?? 0;\n const total = Math.max(sections.length, 1);\n reportProgress(Math.round((idx + frac) / total * total), total);\n }\n const tocItem = detail.tocItem as { href?: string } | undefined;\n if (tocItem?.href) activeTocHref.value = tocItem.href;\n });\n\n const res = await fetcher.value(props.url);\n if (!res.ok) throw new Error(`请求失败: ${res.status}`);\n const blob = await res.blob();\n let name = 'book.mobi';\n try {\n const u = new URL(props.url, window.location.href);\n const base = u.pathname.split('/').pop();\n if (base) name = decodeURIComponent(base);\n } catch { /* blob: URL */ }\n\n await view.open(new File([blob], name));\n\n // 配置 paginator:paginated 模式 + 动画\n const renderer = view.renderer;\n if (renderer) {\n renderer.setAttribute('animated', '');\n renderer.setAttribute('max-inline-size', '720');\n renderer.setAttribute('margin', '48');\n renderer.setAttribute('gap', '5%');\n renderer.setStyles?.(READER_CSS);\n await renderer.next?.();\n }\n\n toc.value = (view.book?.toc ?? []) as TocItem[];\n loading.value = false;\n reportProgress(0, view.book?.sections.length ?? 1);\n } catch (err) {\n console.error('MOBI/AZW3 加载错误:', err);\n error.value = t.value('mobi.load_failed');\n loading.value = false;\n }\n};\n\nwatch(() => props.url, (newUrl) => {\n // 只有 URL 有效时才加载(避免空字符串或已 revoke 的 blob URL)\n if (newUrl) load();\n}, { immediate: true });\nonBeforeUnmount(() => {\n try { viewInstance?.book?.destroy?.(); } catch { /* ignore */ }\n viewInstance = null;\n hostRef.value?.replaceChildren();\n});\n</script>\n\n<template>\n <div\n class=\"vfp-relative vfp-w-full vfp-h-full vfp-flex vfp-justify-center vfp-bg-surface-1 vfp-overflow-hidden\"\n >\n <RendererError v-if=\"error\" :message=\"error\" class=\"vfp-absolute vfp-inset-0\" />\n\n <div\n v-if=\"loading && !error\"\n class=\"vfp-absolute vfp-inset-0 vfp-flex vfp-items-center vfp-justify-center vfp-z-10\"\n >\n <div class=\"vfp-w-12 vfp-h-12 vfp-border-4 vfp-border-line-strong vfp-border-t-spinner-head vfp-rounded-full vfp-animate-spin\" />\n </div>\n\n <!-- 目录侧栏 -->\n <div\n v-if=\"toc.length > 0\"\n class=\"vfp-absolute vfp-inset-0 vfp-z-20 vfp-flex vfp-transition-opacity vfp-duration-300\"\n :style=\"{ opacity: showToc ? 1 : 0, pointerEvents: showToc ? 'auto' : 'none' }\"\n >\n <div\n class=\"vfp-w-72 vfp-max-w-[80%] vfp-h-full vfp-bg-surface-overlay vfp-backdrop-blur-xl vfp-border-r vfp-border-line-weak vfp-flex vfp-flex-col vfp-shadow-2xl vfp-transition-transform vfp-duration-300\"\n :style=\"{ transform: showToc ? 'translateX(0)' : 'translateX(-100%)' }\"\n >\n <div class=\"vfp-flex vfp-items-center vfp-justify-between vfp-px-4 vfp-py-3 vfp-border-b vfp-border-line-weak vfp-flex-shrink-0\">\n <span class=\"vfp-text-fg-primary vfp-font-medium vfp-text-sm\">{{ t('toolbar.toc') }}</span>\n <button class=\"toc-close-btn\" @click=\"showToc = false\">\n <X class=\"vfp-w-4 vfp-h-4\" />\n </button>\n </div>\n <div class=\"vfp-flex-1 vfp-overflow-y-auto vfp-py-4 vfp-px-1\">\n <MobiTocList :items=\"toc\" :active-href=\"activeTocHref\" @select=\"handleTocClick\" />\n </div>\n </div>\n <div\n class=\"vfp-flex-1 vfp-transition-opacity vfp-duration-300\"\n :style=\"{ background: showToc ? 'rgba(0,0,0,0.3)' : 'transparent' }\"\n @click=\"showToc = false\"\n />\n </div>\n\n <div\n v-if=\"!error\"\n ref=\"hostRef\"\n class=\"vfp-h-full vfp-bg-surface-toolbar vfp-shadow-lg\"\n :style=\"{ width: isFullWidth ? '100%' : A4_WIDTH + 'px', maxWidth: '100%', transition: 'width 0.3s ease' }\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\ninterface TocItemLocal {\n label: string;\n href?: string;\n subitems?: TocItemLocal[];\n}\n\nconst MobiTocList = defineComponent({\n name: 'MobiTocList',\n props: {\n items: { type: Array as PropType<TocItemLocal[]>, required: true },\n activeHref: { type: String, default: '' },\n depth: { type: Number, default: 0 },\n },\n emits: ['select'],\n render(): ReturnType<typeof h> {\n return h(\n 'ul',\n { style: { listStyle: 'none', padding: 0, margin: this.depth > 0 ? '0 0 0 16px' : 0 } },\n this.items.map((item: TocItemLocal, i: number) =>\n h('li', { key: `${item.href ?? item.label}-${i}` }, [\n item.href\n ? h(\n 'button',\n {\n onClick: () => this.$emit('select', item.href),\n class: [\n 'vfp-w-full vfp-text-left vfp-py-2 vfp-px-3 vfp-text-sm vfp-rounded vfp-transition-all vfp-truncate',\n this.activeHref === item.href\n ? 'vfp-text-fg-primary vfp-bg-surface-3 vfp-font-medium'\n : 'vfp-text-fg-secondary hover:vfp-text-fg-primary hover:vfp-bg-surface-2',\n ],\n title: item.label,\n style: 'background: none; border: none; cursor: pointer',\n },\n item.label?.trim()\n )\n : h(\n 'div',\n { class: 'vfp-w-full vfp-py-2 vfp-px-3 vfp-text-sm vfp-text-fg-tertiary vfp-truncate' },\n item.label?.trim()\n ),\n item.subitems?.length\n ? h(MobiTocList, {\n items: item.subitems,\n activeHref: this.activeHref,\n depth: (this.depth as number) + 1,\n onSelect: (href: string) => this.$emit('select', href),\n })\n : null,\n ])\n )\n );\n },\n});\n\nexport default { name: 'MobiRenderer' };\n</script>\n\n<style scoped>\n.toc-close-btn {\n color: var(--fp-fg-tertiary);\n background: none;\n border: none;\n cursor: pointer;\n transition: color 0.15s;\n}\n.toc-close-btn:hover { color: #fff; }\n</style>\n"],"names":["MobiTocList","defineComponent","item","i","_a","_b","_c","href","__default__","READER_CSS","props","__props","emit","__emit","t","useTranslator","fetcher","useFetcher","hostRef","ref","viewInstance","totalLocations","loading","error","toc","showToc","activeTocHref","isFullWidth","reportProgress","current","total","prevPage","nextPage","toggleToc","toggleFullWidth","handleTocClick","__expose","load","host","view","e","detail","loc","sections","idx","frac","tocItem","res","blob","name","base","renderer","_d","err","watch","newUrl","onBeforeUnmount","_openBlock","_createElementBlock","_hoisted_1","_createBlock","RendererError","_hoisted_2","_cache","_createElementVNode","_normalizeStyle","_hoisted_3","_hoisted_4","_toDisplayString","_unref","_createVNode","X","_hoisted_5"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as d, ref as U, watch as h, openBlock as $, createElementBlock as q, createElementVNode as K, createBlock as x, createVNode as C, unref as ee, h as g, inject as ne, computed as H } from "vue";
2
- import { u as le, a as te, E as ie, L as ue, W as fe, c as oe } from "./index-Oxwizt6-.mjs";
2
+ import { u as le, a as te, E as ie, L as ue, W as fe, c as oe } from "./index-CFaWV6cC.mjs";
3
3
  import { _ as se } from "./RendererError.vue_vue_type_script_setup_true_lang-CbgZBSDr.mjs";
4
4
  import { ChevronDown as ce, ChevronRight as pe } from "lucide-vue-next";
5
5
  function ke(e, f = !1) {
@@ -614,4 +614,4 @@ const D = d({
614
614
  export {
615
615
  Ne as default
616
616
  };
617
- //# sourceMappingURL=index-DBw8tvyb.mjs.map
617
+ //# sourceMappingURL=index-B-f41wjl.mjs.map