qidian-vue-ui 1.2.0 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,7 @@ import _sfc_main from "./index.vue2.mjs";
4
4
  /* empty css */
5
5
  /* empty css */
6
6
  import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
7
- const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-0b91db2d"]]);
7
+ const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-bd896941"]]);
8
8
  export {
9
9
  index as default
10
10
  };
@@ -1,6 +1,6 @@
1
1
  import './index2.css'
2
2
  import './index.css'
3
- import { defineComponent, inject, computed, ref, shallowRef, onMounted, watch, createBlock, openBlock, unref, withCtx, withDirectives, createElementBlock, createCommentVNode, createElementVNode, createVNode, createTextVNode, toDisplayString, triggerRef } from "vue";
3
+ import { defineComponent, inject, computed, ref, shallowRef, onMounted, watch, createBlock, openBlock, unref, withCtx, withDirectives, createVNode, createElementBlock, createElementVNode, Transition, createCommentVNode, createTextVNode, toDisplayString, triggerRef } from "vue";
4
4
  import { useCsl, resizeDirective, toPrecision, to, isDev } from "qidian-shared";
5
5
  import { GlobalWorkerOptions, getDocument } from "../../../node_modules/.pnpm/pdfjs-dist@5.4.394/node_modules/pdfjs-dist/legacy/build/pdf.mjs";
6
6
  import { PDFLinkService, EventBus, PDFFindController, PDFScriptingManager as PDFScriptingManagerComponents, PDFViewer } from "../../../node_modules/.pnpm/pdfjs-dist@5.4.394/node_modules/pdfjs-dist/legacy/web/pdf_viewer.mjs";
@@ -51,6 +51,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
51
51
  const viewer = shallowRef();
52
52
  const isAdaptiveView = computed(() => viewer.value?.currentScaleValue === ADAPTIVE_VIEW);
53
53
  const debounceUpdateViewer = useDebounceFn(updateViewer, 300, { maxWait: 900 });
54
+ const showControls = ref(false);
54
55
  const { zoomOut, zoomIn, adaptiveView, onWheel, onResize } = useZoom({
55
56
  viewer,
56
57
  updateViewer,
@@ -182,7 +183,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
182
183
  return openBlock(), createBlock(unref(Loading), {
183
184
  class: "qd-office-pdf",
184
185
  loading: loading.value,
185
- size: "small"
186
+ size: "small",
187
+ onMouseover: _cache[5] || (_cache[5] = ($event) => showControls.value = true),
188
+ onMouseleave: _cache[6] || (_cache[6] = ($event) => showControls.value = false)
186
189
  }, {
187
190
  default: withCtx(() => [
188
191
  withDirectives((openBlock(), createElementBlock("div", {
@@ -206,120 +209,125 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
206
209
  { "300": true }
207
210
  ]
208
211
  ]),
209
- viewer.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
210
- createElementVNode("div", _hoisted_2, [
211
- createElementVNode("div", _hoisted_3, [
212
- createVNode(unref(Tooltip), {
213
- content: unref(t)("prevPage"),
214
- disabled: prevPageDisabled.value
215
- }, {
216
- default: withCtx(() => [
217
- createVNode(unref(Button), {
218
- variant: "text",
219
- theme: "default",
220
- disabled: prevPageDisabled.value,
221
- onClick: _cache[1] || (_cache[1] = ($event) => updatePage(viewer.value.currentPageNumber - 1))
212
+ createVNode(Transition, { name: "controls-fade" }, {
213
+ default: withCtx(() => [
214
+ viewer.value && showControls.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
215
+ createElementVNode("div", _hoisted_2, [
216
+ createElementVNode("div", _hoisted_3, [
217
+ createVNode(unref(Tooltip), {
218
+ content: unref(t)("prevPage"),
219
+ disabled: prevPageDisabled.value
222
220
  }, {
223
- icon: withCtx(() => [
224
- createVNode(unref(ChevronLeftIcon))
221
+ default: withCtx(() => [
222
+ createVNode(unref(Button), {
223
+ variant: "text",
224
+ theme: "default",
225
+ disabled: prevPageDisabled.value,
226
+ onClick: _cache[1] || (_cache[1] = ($event) => updatePage(viewer.value.currentPageNumber - 1))
227
+ }, {
228
+ icon: withCtx(() => [
229
+ createVNode(unref(ChevronLeftIcon))
230
+ ]),
231
+ _: 1
232
+ }, 8, ["disabled"])
225
233
  ]),
226
234
  _: 1
227
- }, 8, ["disabled"])
228
- ]),
229
- _: 1
230
- }, 8, ["content", "disabled"]),
231
- createElementVNode("div", _hoisted_4, [
232
- createVNode(unref(InputNumber), {
233
- modelValue: viewer.value.currentPageNumber,
234
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => viewer.value.currentPageNumber = $event),
235
- "auto-width": "",
236
- theme: "normal",
237
- align: "center",
238
- size: "small",
239
- min: 1,
240
- max: viewer.value.pagesCount
241
- }, null, 8, ["modelValue", "max"]),
242
- createTextVNode(" / " + toDisplayString(viewer.value.pagesCount), 1)
243
- ]),
244
- createVNode(unref(Tooltip), {
245
- content: unref(t)("nextPage"),
246
- disabled: nextPageDisabled.value
247
- }, {
248
- default: withCtx(() => [
249
- createVNode(unref(Button), {
250
- variant: "text",
251
- theme: "default",
252
- disabled: nextPageDisabled.value,
253
- onClick: _cache[3] || (_cache[3] = ($event) => updatePage(viewer.value.currentPageNumber + 1))
235
+ }, 8, ["content", "disabled"]),
236
+ createElementVNode("div", _hoisted_4, [
237
+ createVNode(unref(InputNumber), {
238
+ modelValue: viewer.value.currentPageNumber,
239
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => viewer.value.currentPageNumber = $event),
240
+ "auto-width": "",
241
+ theme: "normal",
242
+ align: "center",
243
+ size: "small",
244
+ min: 1,
245
+ max: viewer.value.pagesCount
246
+ }, null, 8, ["modelValue", "max"]),
247
+ createTextVNode(" / " + toDisplayString(viewer.value.pagesCount), 1)
248
+ ]),
249
+ createVNode(unref(Tooltip), {
250
+ content: unref(t)("nextPage"),
251
+ disabled: nextPageDisabled.value
254
252
  }, {
255
- icon: withCtx(() => [
256
- createVNode(unref(ChevronRightIcon))
253
+ default: withCtx(() => [
254
+ createVNode(unref(Button), {
255
+ variant: "text",
256
+ theme: "default",
257
+ disabled: nextPageDisabled.value,
258
+ onClick: _cache[3] || (_cache[3] = ($event) => updatePage(viewer.value.currentPageNumber + 1))
259
+ }, {
260
+ icon: withCtx(() => [
261
+ createVNode(unref(ChevronRightIcon))
262
+ ]),
263
+ _: 1
264
+ }, 8, ["disabled"])
257
265
  ]),
258
266
  _: 1
259
- }, 8, ["disabled"])
267
+ }, 8, ["content", "disabled"])
260
268
  ]),
261
- _: 1
262
- }, 8, ["content", "disabled"])
263
- ]),
264
- createVNode(unref(Divider), { layout: "vertical" }),
265
- createVNode(unref(Tooltip), {
266
- content: unref(t)("zoomOut"),
267
- disabled: zoomOutDisabled.value
268
- }, {
269
- default: withCtx(() => [
270
- createVNode(unref(Button), {
271
- variant: "text",
272
- theme: "default",
273
- disabled: zoomOutDisabled.value,
274
- onClick: unref(zoomOut)
269
+ createVNode(unref(Divider), { layout: "vertical" }),
270
+ createVNode(unref(Tooltip), {
271
+ content: unref(t)("zoomOut"),
272
+ disabled: zoomOutDisabled.value
275
273
  }, {
276
- icon: withCtx(() => [
277
- createVNode(unref(ZoomOutIcon))
274
+ default: withCtx(() => [
275
+ createVNode(unref(Button), {
276
+ variant: "text",
277
+ theme: "default",
278
+ disabled: zoomOutDisabled.value,
279
+ onClick: unref(zoomOut)
280
+ }, {
281
+ icon: withCtx(() => [
282
+ createVNode(unref(ZoomOutIcon))
283
+ ]),
284
+ _: 1
285
+ }, 8, ["disabled", "onClick"])
278
286
  ]),
279
287
  _: 1
280
- }, 8, ["disabled", "onClick"])
281
- ]),
282
- _: 1
283
- }, 8, ["content", "disabled"]),
284
- createElementVNode("div", _hoisted_5, toDisplayString(unref(toPrecision)(viewer.value.currentScale * 100)) + "% ", 1),
285
- createVNode(unref(Tooltip), {
286
- content: unref(t)("zoomIn"),
287
- disabled: zoomInDisabled.value
288
- }, {
289
- default: withCtx(() => [
290
- createVNode(unref(Button), {
291
- variant: "text",
292
- theme: "default",
293
- disabled: zoomInDisabled.value,
294
- onClick: unref(zoomIn)
288
+ }, 8, ["content", "disabled"]),
289
+ createElementVNode("div", _hoisted_5, toDisplayString(unref(toPrecision)(viewer.value.currentScale * 100)) + "% ", 1),
290
+ createVNode(unref(Tooltip), {
291
+ content: unref(t)("zoomIn"),
292
+ disabled: zoomInDisabled.value
295
293
  }, {
296
- icon: withCtx(() => [
297
- createVNode(unref(ZoomInIcon))
294
+ default: withCtx(() => [
295
+ createVNode(unref(Button), {
296
+ variant: "text",
297
+ theme: "default",
298
+ disabled: zoomInDisabled.value,
299
+ onClick: unref(zoomIn)
300
+ }, {
301
+ icon: withCtx(() => [
302
+ createVNode(unref(ZoomInIcon))
303
+ ]),
304
+ _: 1
305
+ }, 8, ["disabled", "onClick"])
298
306
  ]),
299
307
  _: 1
300
- }, 8, ["disabled", "onClick"])
301
- ]),
302
- _: 1
303
- }, 8, ["content", "disabled"]),
304
- createVNode(unref(Tooltip), {
305
- content: isAdaptiveView.value ? unref(t)("cancelAdaptiveView") : unref(t)("adaptiveView")
306
- }, {
307
- default: withCtx(() => [
308
- createVNode(unref(Button), {
309
- variant: "text",
310
- theme: isAdaptiveView.value ? "primary" : "default",
311
- onClick: _cache[4] || (_cache[4] = ($event) => unref(adaptiveView)(!isAdaptiveView.value))
308
+ }, 8, ["content", "disabled"]),
309
+ createVNode(unref(Tooltip), {
310
+ content: isAdaptiveView.value ? unref(t)("cancelAdaptiveView") : unref(t)("adaptiveView")
312
311
  }, {
313
- icon: withCtx(() => [
314
- isAdaptiveView.value ? (openBlock(), createBlock(unref(CenterFocusStrongFilledIcon), { key: 0 })) : (openBlock(), createBlock(unref(CenterFocusStrongIcon), { key: 1 }))
312
+ default: withCtx(() => [
313
+ createVNode(unref(Button), {
314
+ variant: "text",
315
+ theme: isAdaptiveView.value ? "primary" : "default",
316
+ onClick: _cache[4] || (_cache[4] = ($event) => unref(adaptiveView)(!isAdaptiveView.value))
317
+ }, {
318
+ icon: withCtx(() => [
319
+ isAdaptiveView.value ? (openBlock(), createBlock(unref(CenterFocusStrongFilledIcon), { key: 0 })) : (openBlock(), createBlock(unref(CenterFocusStrongIcon), { key: 1 }))
320
+ ]),
321
+ _: 1
322
+ }, 8, ["theme"])
315
323
  ]),
316
324
  _: 1
317
- }, 8, ["theme"])
318
- ]),
319
- _: 1
320
- }, 8, ["content"])
321
- ])
322
- ])) : createCommentVNode("", true)
325
+ }, 8, ["content"])
326
+ ])
327
+ ])) : createCommentVNode("", true)
328
+ ]),
329
+ _: 1
330
+ })
323
331
  ]),
324
332
  _: 1
325
333
  }, 8, ["loading"]);
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue2.mjs","sources":["../../../../src/components/office/pdf/index.vue"],"sourcesContent":["<template>\n <t-loading class=\"qd-office-pdf\" :loading=\"loading\" size=\"small\">\n <div\n ref=\"containerRef\"\n v-resize.300=\"onResize\"\n class=\"qd-office-pdf__container\"\n @wheel=\"onWheel\"\n @scroll=\"onScroll\"\n >\n <div ref=\"viewerRef\" class=\"qd-office-pdf__viewer pdfViewer\"></div>\n </div>\n\n <div v-if=\"viewer\" class=\"qd-office-pdf__controls\">\n <div class=\"qd-office-pdf__controls-body\">\n <div class=\"qd-office-pdf__controls-page\">\n <t-tooltip :content=\"t('prevPage')\" :disabled=\"prevPageDisabled\">\n <t-button\n variant=\"text\"\n theme=\"default\"\n :disabled=\"prevPageDisabled\"\n @click=\"updatePage(viewer.currentPageNumber - 1)\"\n >\n <template #icon><chevron-left-icon /></template>\n </t-button>\n </t-tooltip>\n\n <div class=\"qd-office-pdf__controls-page-input\">\n <t-input-number\n v-model=\"viewer.currentPageNumber\"\n auto-width\n theme=\"normal\"\n align=\"center\"\n size=\"small\"\n :min=\"1\"\n :max=\"viewer.pagesCount\"\n />\n / {{ viewer.pagesCount }}\n </div>\n\n <t-tooltip :content=\"t('nextPage')\" :disabled=\"nextPageDisabled\">\n <t-button\n variant=\"text\"\n theme=\"default\"\n :disabled=\"nextPageDisabled\"\n @click=\"updatePage(viewer.currentPageNumber + 1)\"\n >\n <template #icon><chevron-right-icon /></template>\n </t-button>\n </t-tooltip>\n </div>\n\n <t-divider layout=\"vertical\" />\n\n <t-tooltip :content=\"t('zoomOut')\" :disabled=\"zoomOutDisabled\">\n <t-button variant=\"text\" theme=\"default\" :disabled=\"zoomOutDisabled\" @click=\"zoomOut\">\n <template #icon><zoom-out-icon /></template>\n </t-button>\n </t-tooltip>\n\n <div class=\"qd-office-pdf__controls-scale\">\n {{ toPrecision(viewer.currentScale * 100) }}%\n </div>\n\n <t-tooltip :content=\"t('zoomIn')\" :disabled=\"zoomInDisabled\">\n <t-button variant=\"text\" theme=\"default\" :disabled=\"zoomInDisabled\" @click=\"zoomIn\">\n <template #icon><zoom-in-icon /></template>\n </t-button>\n </t-tooltip>\n\n <t-tooltip :content=\"isAdaptiveView ? t('cancelAdaptiveView') : t('adaptiveView')\">\n <t-button\n variant=\"text\"\n :theme=\"isAdaptiveView ? 'primary' : 'default'\"\n @click=\"adaptiveView(!isAdaptiveView)\"\n >\n <template #icon>\n <center-focus-strong-filled-icon v-if=\"isAdaptiveView\" />\n <center-focus-strong-icon v-else />\n </template>\n </t-button>\n </t-tooltip>\n </div>\n </div>\n </t-loading>\n</template>\n\n<script setup lang=\"ts\">\n import type { PageRenderedEvent, QdOfficePdfProps, TextLayerRenderedEvent } from './types'\n import { useDebounceFn } from '@vueuse/core'\n import { to, useCsl, isDev, toPrecision, resizeDirective } from 'qidian-shared'\n import { computed, inject, onMounted, ref, shallowRef, triggerRef, watch } from 'vue'\n import { getDocument, GlobalWorkerOptions } from 'pdfjs-dist/legacy/build/pdf.mjs'\n import {\n EventBus,\n PDFFindController,\n PDFLinkService,\n PDFScriptingManager,\n PDFViewer\n } from 'pdfjs-dist/legacy/web/pdf_viewer.mjs'\n import {\n CenterFocusStrongFilledIcon,\n CenterFocusStrongIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ZoomInIcon,\n ZoomOutIcon\n } from 'tdesign-icons-vue-next'\n import {\n Loading as TLoading,\n Tooltip as TTooltip,\n Button as TButton,\n InputNumber as TInputNumber,\n Divider as TDivider\n } from 'tdesign-vue-next'\n import { ADAPTIVE_VIEW, ZOOM_SCALE_LIMIT } from './config'\n import { useZoom } from './hooks/useZoom'\n import { useConfig } from '../../config-provider/useConfig'\n import { PROVIDE_OFFICE } from '../../config-provider/config'\n\n defineOptions({\n name: 'QdOfficePdf'\n })\n\n const props = defineProps<QdOfficePdfProps>()\n const emit = defineEmits<{\n pagesInit: [PDFViewer]\n textLayerRendered: [TextLayerRenderedEvent]\n }>()\n\n const vResize = resizeDirective\n\n const csl = useCsl('pdf')\n const { t } = useConfig('office')\n const globalOffice = inject(\n PROVIDE_OFFICE,\n computed(() => undefined)\n )\n GlobalWorkerOptions.workerSrc = globalOffice.value?.pdfWorkerUrl || props.workerUrl || ''\n\n const loading = ref(false)\n const containerRef = ref<HTMLDivElement>()\n const viewerRef = ref<HTMLDivElement>()\n const viewer = shallowRef<PDFViewer | undefined>()\n const isAdaptiveView = computed(() => viewer.value?.currentScaleValue === ADAPTIVE_VIEW)\n const debounceUpdateViewer = useDebounceFn(updateViewer, 300, { maxWait: 900 })\n\n const { zoomOut, zoomIn, adaptiveView, onWheel, onResize } = useZoom({\n viewer,\n updateViewer,\n debounceUpdateViewer\n })\n\n const prevPageDisabled = computed(() => {\n const viewerVm = viewer.value\n return viewerVm && viewerVm.currentPageNumber <= 1\n })\n const nextPageDisabled = computed(() => {\n const viewerVm = viewer.value\n return viewerVm && viewerVm.currentPageNumber >= viewerVm.pagesCount\n })\n const zoomOutDisabled = computed(() => {\n const viewerVm = viewer.value\n return viewerVm && viewerVm.currentScale <= ZOOM_SCALE_LIMIT.MIN\n })\n const zoomInDisabled = computed(() => {\n const viewerVm = viewer.value\n return viewerVm && viewerVm.currentScale >= ZOOM_SCALE_LIMIT.MAX\n })\n\n async function render() {\n const { src, cMapUrl, iccUrl, wasmUrl, standardFontDataUrl } = props\n const containerEl = containerRef.value\n const viewerEl = viewerRef.value\n if (!src || !containerEl || !viewerEl) return\n\n loading.value = true\n const eventBus = new EventBus()\n const linkService = new PDFLinkService({\n eventBus,\n externalLinkTarget: 2,\n externalLinkRel: ''\n })\n linkService.externalLinkEnabled = false // 禁用外链跳转\n\n const findController = new PDFFindController({\n eventBus,\n linkService,\n updateMatchesCountOnProgress: true\n })\n const scriptingManager = new PDFScriptingManager({\n eventBus,\n sandboxBundleSrc: globalOffice.value?.pdfSandboxUrl || props.sandboxUrl\n })\n\n viewer.value = new PDFViewer({\n container: containerEl,\n viewer: viewerEl,\n eventBus,\n linkService,\n findController,\n scriptingManager,\n annotationEditorMode: 0,\n textLayerMode: 1,\n annotationMode: 1,\n enablePrintAutoRotate: true,\n maxCanvasPixels: 33554432,\n maxCanvasDim: 32767,\n capCanvasAreaFactor: 200,\n enableHWA: true,\n enableDetailCanvas: true,\n enablePermissions: true,\n supportsPinchToZoom: true,\n enableAutoLinking: true,\n minDurationToUpdateCanvas: 500,\n l10n: undefined\n })\n const viewerVm = viewer.value\n\n linkService.setViewer(viewerVm)\n scriptingManager.setViewer(viewerVm)\n\n const loadingTask = getDocument({\n url: src,\n cMapUrl: globalOffice.value?.pdfCMapUrl || cMapUrl,\n iccUrl: globalOffice.value?.pdfIccUrl || iccUrl,\n wasmUrl: globalOffice.value?.pdfWasmUrl || wasmUrl,\n standardFontDataUrl: globalOffice.value?.pdfStandardFontDataUrl || standardFontDataUrl,\n pdfBug: isDev,\n cMapPacked: true,\n enableXfa: true,\n enableHWA: true,\n isEvalSupported: true,\n isOffscreenCanvasSupported: true,\n useWasm: true,\n useWorkerFetch: true,\n\n verbosity: 1,\n maxImageSize: -1,\n canvasMaxAreaInBytes: -1,\n\n fontExtraProperties: false,\n disableAutoFetch: false,\n disableFontFace: false,\n disableRange: false,\n disableStream: false\n })\n const [pdfErr, pdf] = await to(loadingTask.promise)\n if (pdfErr) {\n loading.value = false\n return\n }\n\n viewerVm.setDocument(pdf)\n linkService.setDocument(pdf)\n\n eventBus.on('pagesinit', () => {\n csl.log.dev('pagesInit')\n loading.value = false\n emit('pagesInit', viewerVm)\n })\n\n eventBus.on('pagerendered', (evt: PageRenderedEvent) => {\n csl.log.dev('pageRendered', evt.pageNumber)\n })\n\n eventBus.on('textlayerrendered', (evt: TextLayerRenderedEvent) => {\n emit('textLayerRendered', evt)\n })\n }\n\n function updateViewer() {\n if (!viewer.value) return\n\n triggerRef(viewer)\n }\n\n function updatePage(page: number) {\n const viewerVm = viewer.value\n if (!viewerVm) return\n\n viewerVm.currentPageNumber = page\n updateViewer()\n }\n\n function onScroll() {\n debounceUpdateViewer()\n }\n\n onMounted(() => {\n render()\n watch(() => props.src, render)\n })\n</script>\n\n<style lang=\"less\">\n @import 'pdfjs-dist/legacy/web/pdf_viewer.css';\n</style>\n\n<style lang=\"less\" scoped>\n .qd-office-pdf {\n width: 100%;\n height: 100%;\n position: relative;\n background-color: var(--td-bg-color-component);\n\n &__container {\n position: absolute;\n width: 100%;\n max-height: 100%;\n overflow: auto;\n }\n\n &__viewer {\n width: 100%;\n height: 100%;\n\n :deep(.page) {\n // NOTE 解决 textLayer 整体偏移问题\n box-sizing: content-box;\n }\n\n :deep(.annotationLayer) {\n :is(.linkAnnotation, .buttonWidgetAnnotation.pushButton):not(.hasBorder) > a {\n background-color: transparent;\n }\n }\n }\n\n &__controls {\n position: absolute;\n left: 50%;\n bottom: var(--td-comp-paddingTB-xl) !important;\n transform: translateX(-50%);\n border-radius: 3px;\n background-color: rgba(var(--td-bg-color-container), 0.5);\n backdrop-filter: blur(2px);\n box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.08);\n user-select: none;\n transition: all 0.2s linear;\n\n .t-button {\n width: 38px;\n height: 38px;\n padding: 0;\n margin-left: 0;\n }\n\n &-body {\n display: flex;\n align-items: center;\n opacity: 0.5;\n transition: opacity 0.2s linear;\n }\n\n &-scale {\n width: 39px;\n margin: 0 var(--td-comp-margin-s);\n }\n\n &-page {\n display: flex;\n align-items: stretch;\n\n :deep(.t-input-number) {\n width: auto;\n\n .t-input {\n padding: 0;\n\n &__wrap {\n min-width: 32px;\n }\n\n &__inner {\n min-width: 32px;\n }\n }\n }\n\n &-input {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n padding: 0 var(--td-comp-paddingTB-s);\n font-size: var(--td-font-body-medium);\n gap: var(--td-comp-margin-s);\n background-color: var(--td-bg-color-secondarycontainer);\n border-radius: var(--td-radius-default);\n }\n }\n\n &:hover {\n background-color: var(--td-bg-color-container);\n\n .qd-office-pdf__controls-body {\n opacity: 1;\n }\n }\n }\n }\n</style>\n"],"names":["PDFScriptingManager","_createBlock","_unref","TLoading","_createElementBlock","_createElementVNode","_openBlock","_createVNode","TTooltip","TButton","TInputNumber","_toDisplayString","TDivider"],"mappings":"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"}
1
+ {"version":3,"file":"index.vue2.mjs","sources":["../../../../src/components/office/pdf/index.vue"],"sourcesContent":["<template>\n <t-loading\n class=\"qd-office-pdf\"\n :loading=\"loading\"\n size=\"small\"\n @mouseover=\"showControls = true\"\n @mouseleave=\"showControls = false\"\n >\n <div\n ref=\"containerRef\"\n v-resize.300=\"onResize\"\n class=\"qd-office-pdf__container\"\n @wheel=\"onWheel\"\n @scroll=\"onScroll\"\n >\n <div ref=\"viewerRef\" class=\"qd-office-pdf__viewer pdfViewer\"></div>\n </div>\n\n <transition name=\"controls-fade\">\n <div v-if=\"viewer && showControls\" class=\"qd-office-pdf__controls\">\n <div class=\"qd-office-pdf__controls-body\">\n <div class=\"qd-office-pdf__controls-page\">\n <t-tooltip :content=\"t('prevPage')\" :disabled=\"prevPageDisabled\">\n <t-button\n variant=\"text\"\n theme=\"default\"\n :disabled=\"prevPageDisabled\"\n @click=\"updatePage(viewer.currentPageNumber - 1)\"\n >\n <template #icon><chevron-left-icon /></template>\n </t-button>\n </t-tooltip>\n\n <div class=\"qd-office-pdf__controls-page-input\">\n <t-input-number\n v-model=\"viewer.currentPageNumber\"\n auto-width\n theme=\"normal\"\n align=\"center\"\n size=\"small\"\n :min=\"1\"\n :max=\"viewer.pagesCount\"\n />\n / {{ viewer.pagesCount }}\n </div>\n\n <t-tooltip :content=\"t('nextPage')\" :disabled=\"nextPageDisabled\">\n <t-button\n variant=\"text\"\n theme=\"default\"\n :disabled=\"nextPageDisabled\"\n @click=\"updatePage(viewer.currentPageNumber + 1)\"\n >\n <template #icon><chevron-right-icon /></template>\n </t-button>\n </t-tooltip>\n </div>\n\n <t-divider layout=\"vertical\" />\n\n <t-tooltip :content=\"t('zoomOut')\" :disabled=\"zoomOutDisabled\">\n <t-button variant=\"text\" theme=\"default\" :disabled=\"zoomOutDisabled\" @click=\"zoomOut\">\n <template #icon><zoom-out-icon /></template>\n </t-button>\n </t-tooltip>\n\n <div class=\"qd-office-pdf__controls-scale\">\n {{ toPrecision(viewer.currentScale * 100) }}%\n </div>\n\n <t-tooltip :content=\"t('zoomIn')\" :disabled=\"zoomInDisabled\">\n <t-button variant=\"text\" theme=\"default\" :disabled=\"zoomInDisabled\" @click=\"zoomIn\">\n <template #icon><zoom-in-icon /></template>\n </t-button>\n </t-tooltip>\n\n <t-tooltip :content=\"isAdaptiveView ? t('cancelAdaptiveView') : t('adaptiveView')\">\n <t-button\n variant=\"text\"\n :theme=\"isAdaptiveView ? 'primary' : 'default'\"\n @click=\"adaptiveView(!isAdaptiveView)\"\n >\n <template #icon>\n <center-focus-strong-filled-icon v-if=\"isAdaptiveView\" />\n <center-focus-strong-icon v-else />\n </template>\n </t-button>\n </t-tooltip>\n </div>\n </div>\n </transition>\n </t-loading>\n</template>\n\n<script setup lang=\"ts\">\n import type { PageRenderedEvent, QdOfficePdfProps, TextLayerRenderedEvent } from './types'\n import { useDebounceFn } from '@vueuse/core'\n import { to, useCsl, isDev, toPrecision, resizeDirective } from 'qidian-shared'\n import { computed, inject, onMounted, ref, shallowRef, triggerRef, watch } from 'vue'\n import { getDocument, GlobalWorkerOptions } from 'pdfjs-dist/legacy/build/pdf.mjs'\n import {\n EventBus,\n PDFFindController,\n PDFLinkService,\n PDFScriptingManager,\n PDFViewer\n } from 'pdfjs-dist/legacy/web/pdf_viewer.mjs'\n import {\n CenterFocusStrongFilledIcon,\n CenterFocusStrongIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ZoomInIcon,\n ZoomOutIcon\n } from 'tdesign-icons-vue-next'\n import {\n Loading as TLoading,\n Tooltip as TTooltip,\n Button as TButton,\n InputNumber as TInputNumber,\n Divider as TDivider\n } from 'tdesign-vue-next'\n import { ADAPTIVE_VIEW, ZOOM_SCALE_LIMIT } from './config'\n import { useZoom } from './hooks/useZoom'\n import { useConfig } from '../../config-provider/useConfig'\n import { PROVIDE_OFFICE } from '../../config-provider/config'\n\n defineOptions({\n name: 'QdOfficePdf'\n })\n\n const props = defineProps<QdOfficePdfProps>()\n const emit = defineEmits<{\n pagesInit: [PDFViewer]\n textLayerRendered: [TextLayerRenderedEvent]\n }>()\n\n const vResize = resizeDirective\n\n const csl = useCsl('pdf')\n const { t } = useConfig('office')\n const globalOffice = inject(\n PROVIDE_OFFICE,\n computed(() => undefined)\n )\n GlobalWorkerOptions.workerSrc = globalOffice.value?.pdfWorkerUrl || props.workerUrl || ''\n\n const loading = ref(false)\n const containerRef = ref<HTMLDivElement>()\n const viewerRef = ref<HTMLDivElement>()\n const viewer = shallowRef<PDFViewer | undefined>()\n const isAdaptiveView = computed(() => viewer.value?.currentScaleValue === ADAPTIVE_VIEW)\n const debounceUpdateViewer = useDebounceFn(updateViewer, 300, { maxWait: 900 })\n const showControls = ref(false)\n\n const { zoomOut, zoomIn, adaptiveView, onWheel, onResize } = useZoom({\n viewer,\n updateViewer,\n debounceUpdateViewer\n })\n\n const prevPageDisabled = computed(() => {\n const viewerVm = viewer.value\n return viewerVm && viewerVm.currentPageNumber <= 1\n })\n const nextPageDisabled = computed(() => {\n const viewerVm = viewer.value\n return viewerVm && viewerVm.currentPageNumber >= viewerVm.pagesCount\n })\n const zoomOutDisabled = computed(() => {\n const viewerVm = viewer.value\n return viewerVm && viewerVm.currentScale <= ZOOM_SCALE_LIMIT.MIN\n })\n const zoomInDisabled = computed(() => {\n const viewerVm = viewer.value\n return viewerVm && viewerVm.currentScale >= ZOOM_SCALE_LIMIT.MAX\n })\n\n async function render() {\n const { src, cMapUrl, iccUrl, wasmUrl, standardFontDataUrl } = props\n const containerEl = containerRef.value\n const viewerEl = viewerRef.value\n if (!src || !containerEl || !viewerEl) return\n\n loading.value = true\n const eventBus = new EventBus()\n const linkService = new PDFLinkService({\n eventBus,\n externalLinkTarget: 2,\n externalLinkRel: ''\n })\n linkService.externalLinkEnabled = false // 禁用外链跳转\n\n const findController = new PDFFindController({\n eventBus,\n linkService,\n updateMatchesCountOnProgress: true\n })\n const scriptingManager = new PDFScriptingManager({\n eventBus,\n sandboxBundleSrc: globalOffice.value?.pdfSandboxUrl || props.sandboxUrl\n })\n\n viewer.value = new PDFViewer({\n container: containerEl,\n viewer: viewerEl,\n eventBus,\n linkService,\n findController,\n scriptingManager,\n annotationEditorMode: 0,\n textLayerMode: 1,\n annotationMode: 1,\n enablePrintAutoRotate: true,\n maxCanvasPixels: 33554432,\n maxCanvasDim: 32767,\n capCanvasAreaFactor: 200,\n enableHWA: true,\n enableDetailCanvas: true,\n enablePermissions: true,\n supportsPinchToZoom: true,\n enableAutoLinking: true,\n minDurationToUpdateCanvas: 500,\n l10n: undefined\n })\n const viewerVm = viewer.value\n\n linkService.setViewer(viewerVm)\n scriptingManager.setViewer(viewerVm)\n\n const loadingTask = getDocument({\n url: src,\n cMapUrl: globalOffice.value?.pdfCMapUrl || cMapUrl,\n iccUrl: globalOffice.value?.pdfIccUrl || iccUrl,\n wasmUrl: globalOffice.value?.pdfWasmUrl || wasmUrl,\n standardFontDataUrl: globalOffice.value?.pdfStandardFontDataUrl || standardFontDataUrl,\n pdfBug: isDev,\n cMapPacked: true,\n enableXfa: true,\n enableHWA: true,\n isEvalSupported: true,\n isOffscreenCanvasSupported: true,\n useWasm: true,\n useWorkerFetch: true,\n\n verbosity: 1,\n maxImageSize: -1,\n canvasMaxAreaInBytes: -1,\n\n fontExtraProperties: false,\n disableAutoFetch: false,\n disableFontFace: false,\n disableRange: false,\n disableStream: false\n })\n const [pdfErr, pdf] = await to(loadingTask.promise)\n if (pdfErr) {\n loading.value = false\n return\n }\n\n viewerVm.setDocument(pdf)\n linkService.setDocument(pdf)\n\n eventBus.on('pagesinit', () => {\n csl.log.dev('pagesInit')\n loading.value = false\n emit('pagesInit', viewerVm)\n })\n\n eventBus.on('pagerendered', (evt: PageRenderedEvent) => {\n csl.log.dev('pageRendered', evt.pageNumber)\n })\n\n eventBus.on('textlayerrendered', (evt: TextLayerRenderedEvent) => {\n emit('textLayerRendered', evt)\n })\n }\n\n function updateViewer() {\n if (!viewer.value) return\n\n triggerRef(viewer)\n }\n\n function updatePage(page: number) {\n const viewerVm = viewer.value\n if (!viewerVm) return\n\n viewerVm.currentPageNumber = page\n updateViewer()\n }\n\n function onScroll() {\n debounceUpdateViewer()\n }\n\n onMounted(() => {\n render()\n watch(() => props.src, render)\n })\n</script>\n\n<style lang=\"less\">\n @import 'pdfjs-dist/legacy/web/pdf_viewer.css';\n</style>\n\n<style lang=\"less\" scoped>\n .qd-office-pdf {\n width: 100%;\n height: 100%;\n position: relative;\n background-color: var(--td-bg-color-component);\n\n &__container {\n position: absolute;\n width: 100%;\n max-height: 100%;\n overflow: auto;\n }\n\n &__viewer {\n width: 100%;\n height: 100%;\n\n :deep(.page) {\n // NOTE 解决 textLayer 整体偏移问题\n box-sizing: content-box;\n }\n\n :deep(.annotationLayer) {\n :is(.linkAnnotation, .buttonWidgetAnnotation.pushButton):not(.hasBorder) > a {\n background-color: transparent;\n }\n }\n }\n\n &__controls {\n position: absolute;\n left: 50%;\n bottom: var(--td-comp-paddingTB-xl) !important;\n transform: translateX(-50%);\n border-radius: 3px;\n background-color: rgba(var(--td-bg-color-container), 0.5);\n backdrop-filter: blur(2px);\n box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.08);\n user-select: none;\n transition: all 0.2s linear;\n\n .t-button {\n width: 38px;\n height: 38px;\n padding: 0;\n margin-left: 0;\n }\n\n &-body {\n display: flex;\n align-items: center;\n opacity: 0.5;\n transition: opacity 0.2s linear;\n }\n\n &-scale {\n width: 39px;\n margin: 0 var(--td-comp-margin-s);\n }\n\n &-page {\n display: flex;\n align-items: stretch;\n\n :deep(.t-input-number) {\n width: auto;\n\n .t-input {\n padding: 0;\n\n &__wrap {\n min-width: 32px;\n }\n\n &__inner {\n min-width: 32px;\n }\n }\n }\n\n &-input {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n padding: 0 var(--td-comp-paddingTB-s);\n font-size: var(--td-font-body-medium);\n gap: var(--td-comp-margin-s);\n background-color: var(--td-bg-color-secondarycontainer);\n border-radius: var(--td-radius-default);\n }\n }\n\n &:hover {\n background-color: var(--td-bg-color-container);\n\n .qd-office-pdf__controls-body {\n opacity: 1;\n }\n }\n }\n }\n\n .controls-fade-leave-active,\n .controls-fade-enter-active {\n transition: opacity 0.28s cubic-bezier(0.38, 0, 0.24, 1);\n }\n\n .controls-fade-enter-from,\n .controls-fade-leave-to {\n opacity: 0;\n }\n</style>\n"],"names":["PDFScriptingManager","_createBlock","_unref","TLoading","_createElementBlock","_createElementVNode","_createVNode","_Transition","_openBlock","TTooltip","TButton","TInputNumber","_toDisplayString","TDivider"],"mappings":"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"}
@@ -1,26 +1,26 @@
1
- .qd-office-pdf[data-v-0b91db2d] {
1
+ .qd-office-pdf[data-v-bd896941] {
2
2
  width: 100%;
3
3
  height: 100%;
4
4
  position: relative;
5
5
  background-color: var(--td-bg-color-component);
6
6
  }
7
- .qd-office-pdf__container[data-v-0b91db2d] {
7
+ .qd-office-pdf__container[data-v-bd896941] {
8
8
  position: absolute;
9
9
  width: 100%;
10
10
  max-height: 100%;
11
11
  overflow: auto;
12
12
  }
13
- .qd-office-pdf__viewer[data-v-0b91db2d] {
13
+ .qd-office-pdf__viewer[data-v-bd896941] {
14
14
  width: 100%;
15
15
  height: 100%;
16
16
  }
17
- .qd-office-pdf__viewer[data-v-0b91db2d] .page {
17
+ .qd-office-pdf__viewer[data-v-bd896941] .page {
18
18
  box-sizing: content-box;
19
19
  }
20
- .qd-office-pdf__viewer[data-v-0b91db2d] .annotationLayer :is(.linkAnnotation, .buttonWidgetAnnotation.pushButton):not(.hasBorder) > a {
20
+ .qd-office-pdf__viewer[data-v-bd896941] .annotationLayer :is(.linkAnnotation, .buttonWidgetAnnotation.pushButton):not(.hasBorder) > a {
21
21
  background-color: transparent;
22
22
  }
23
- .qd-office-pdf__controls[data-v-0b91db2d] {
23
+ .qd-office-pdf__controls[data-v-bd896941] {
24
24
  position: absolute;
25
25
  left: 50%;
26
26
  bottom: var(--td-comp-paddingTB-xl) !important;
@@ -32,39 +32,39 @@
32
32
  user-select: none;
33
33
  transition: all 0.2s linear;
34
34
  }
35
- .qd-office-pdf__controls .t-button[data-v-0b91db2d] {
35
+ .qd-office-pdf__controls .t-button[data-v-bd896941] {
36
36
  width: 38px;
37
37
  height: 38px;
38
38
  padding: 0;
39
39
  margin-left: 0;
40
40
  }
41
- .qd-office-pdf__controls-body[data-v-0b91db2d] {
41
+ .qd-office-pdf__controls-body[data-v-bd896941] {
42
42
  display: flex;
43
43
  align-items: center;
44
44
  opacity: 0.5;
45
45
  transition: opacity 0.2s linear;
46
46
  }
47
- .qd-office-pdf__controls-scale[data-v-0b91db2d] {
47
+ .qd-office-pdf__controls-scale[data-v-bd896941] {
48
48
  width: 39px;
49
49
  margin: 0 var(--td-comp-margin-s);
50
50
  }
51
- .qd-office-pdf__controls-page[data-v-0b91db2d] {
51
+ .qd-office-pdf__controls-page[data-v-bd896941] {
52
52
  display: flex;
53
53
  align-items: stretch;
54
54
  }
55
- .qd-office-pdf__controls-page[data-v-0b91db2d] .t-input-number {
55
+ .qd-office-pdf__controls-page[data-v-bd896941] .t-input-number {
56
56
  width: auto;
57
57
  }
58
- .qd-office-pdf__controls-page[data-v-0b91db2d] .t-input-number .t-input {
58
+ .qd-office-pdf__controls-page[data-v-bd896941] .t-input-number .t-input {
59
59
  padding: 0;
60
60
  }
61
- .qd-office-pdf__controls-page[data-v-0b91db2d] .t-input-number .t-input__wrap {
61
+ .qd-office-pdf__controls-page[data-v-bd896941] .t-input-number .t-input__wrap {
62
62
  min-width: 32px;
63
63
  }
64
- .qd-office-pdf__controls-page[data-v-0b91db2d] .t-input-number .t-input__inner {
64
+ .qd-office-pdf__controls-page[data-v-bd896941] .t-input-number .t-input__inner {
65
65
  min-width: 32px;
66
66
  }
67
- .qd-office-pdf__controls-page-input[data-v-0b91db2d] {
67
+ .qd-office-pdf__controls-page-input[data-v-bd896941] {
68
68
  display: inline-flex;
69
69
  align-items: center;
70
70
  flex-shrink: 0;
@@ -74,9 +74,17 @@
74
74
  background-color: var(--td-bg-color-secondarycontainer);
75
75
  border-radius: var(--td-radius-default);
76
76
  }
77
- .qd-office-pdf__controls[data-v-0b91db2d]:hover {
77
+ .qd-office-pdf__controls[data-v-bd896941]:hover {
78
78
  background-color: var(--td-bg-color-container);
79
79
  }
80
- .qd-office-pdf__controls:hover .qd-office-pdf__controls-body[data-v-0b91db2d] {
80
+ .qd-office-pdf__controls:hover .qd-office-pdf__controls-body[data-v-bd896941] {
81
81
  opacity: 1;
82
82
  }
83
+ .controls-fade-leave-active[data-v-bd896941],
84
+ .controls-fade-enter-active[data-v-bd896941] {
85
+ transition: opacity 0.28s cubic-bezier(0.38, 0, 0.24, 1);
86
+ }
87
+ .controls-fade-enter-from[data-v-bd896941],
88
+ .controls-fade-leave-to[data-v-bd896941] {
89
+ opacity: 0;
90
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qidian-vue-ui",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "基于 TDesign 的 QiDian Vue UI 组件库",
5
5
  "author": "qidian",
6
6
  "license": "MIT",