UNPKG

vue-cesium-jyt

Version:
1 lines 19.8 kB
{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/controls/print/index.ts"],"sourcesContent":["import type { ExtractPropTypes, CSSProperties, VNode } from 'vue'\nimport { createCommentVNode, defineComponent, getCurrentInstance, nextTick, ref, h, watch, reactive } from 'vue'\nimport type { VcPrintEvt, VcComponentInternalInstance, VcReadyObject } from '@vue-cesium/utils/types'\nimport { $, getVcParentInstance, getInstanceListener } from '@vue-cesium/utils/private/vm'\nimport usePosition from '@vue-cesium/composables/private/use-position'\nimport { captureScreenshot } from '@vue-cesium/utils/cesium-helpers'\nimport { VcBtn, VcTooltip, VcIcon, VcTooltipProps } from '@vue-cesium/components/ui'\nimport { useCommon, useLocale } from '@vue-cesium/composables'\nimport createPrintView from './createPrintView'\nimport defaultProps from './defaultProps'\nimport printWindow from './printWindow'\nimport { isPlainObject } from '@vue-cesium/utils/util'\nimport { commonEmits } from '@vue-cesium/utils/emits'\n\nconst emits = {\n ...commonEmits,\n printEvt: (evt: VcPrintEvt) => true\n}\nexport const printProps = defaultProps\nexport default defineComponent({\n name: 'VcPrint',\n props: printProps,\n emits: emits,\n setup(props, ctx) {\n // state\n const instance = getCurrentInstance() as VcComponentInternalInstance\n instance.cesiumClass = 'VcPrint'\n instance.cesiumEvents = []\n const commonState = useCommon(props, ctx, instance)\n if (commonState === void 0) {\n return\n }\n const { t } = useLocale()\n const { $services } = commonState\n const rootRef = ref<HTMLElement | null>(null)\n const tooltipRef = ref<typeof VcTooltip | null>(null)\n const btnRef = ref<typeof VcBtn | null>(null)\n const positionState = usePosition(props, $services)\n const creatingPrintView = ref(false)\n const parentInstance = getVcParentInstance(instance)\n const hasVcNavigation = parentInstance.proxy?.$options.name === 'VcNavigation'\n const canRender = ref(hasVcNavigation)\n const rootStyle = reactive<CSSProperties>({})\n // watch\n watch(\n () => props,\n val => {\n nextTick(() => {\n if (!instance.mounted) {\n return\n }\n updateRootStyle()\n })\n },\n {\n deep: true\n }\n )\n // methods\n instance.createCesiumObject = async () => {\n return new Promise((resolve, reject) => {\n canRender.value = true\n nextTick(() => {\n const { viewer } = $services\n if (!hasVcNavigation) {\n const viewerElement = (viewer as any)._element\n viewerElement.appendChild($(rootRef))\n resolve($(rootRef))\n } else {\n resolve($(rootRef))\n }\n })\n })\n }\n instance.mount = async () => {\n updateRootStyle()\n const { viewer } = $services\n viewer.viewerWidgetResized?.raiseEvent({\n type: instance.cesiumClass,\n status: 'mounted',\n target: $(rootRef)\n })\n return true\n }\n instance.unmount = async () => {\n const viewerElement = ($services.viewer as any)._element\n if (!hasVcNavigation) {\n viewerElement.contains($(rootRef)) && viewerElement.removeChild($(rootRef))\n }\n\n const { viewer } = $services\n\n viewer.viewerWidgetResized?.raiseEvent({\n type: instance.cesiumClass,\n status: 'unmounted',\n target: $(rootRef)\n })\n return true\n }\n\n const updateRootStyle = () => {\n const css: CSSProperties = positionState.style.value\n rootStyle.left = css.left\n rootStyle.top = css.top\n rootStyle.transform = css.transform\n\n if (!hasVcNavigation) {\n const side = positionState.attach.value\n const btnTarget = $(btnRef)?.$el\n if (btnTarget !== void 0) {\n // const clientRect = btnTarget.getBoundingClientRect()\n // css.width = `${clientRect.width}px`\n // css.height = `${clientRect.height}px`\n\n if ((side.bottom || side.top) && !side.left && !side.right) {\n css.left = '50%'\n css.transform = 'translate(-50%, 0)'\n }\n\n if ((side.left || side.right) && !side.top && !side.bottom) {\n css.top = '50%'\n css.transform = 'translate(0, -50%)'\n }\n }\n }\n\n Object.assign(rootStyle, css)\n }\n\n const onHandleClick = () => {\n $(tooltipRef)?.hide()\n\n const { viewer } = $services\n captureScreenshot(viewer).then(imgSrc => {\n if (props.downloadAutomatically) {\n const link = document.createElement('a')\n link.download = t('vc.navigation.screenshot') || '场景截图'\n link.style.display = 'none'\n link.href = imgSrc\n document.body.appendChild(link)\n link.click()\n document.body.removeChild(link)\n }\n\n if (props.printAutomatically || props.showPrintView) {\n if (props.showPrintView) {\n showPrintView(imgSrc)\n } else if (props.printAutomatically) {\n print(imgSrc)\n }\n }\n\n const listener = getInstanceListener(instance, 'printEvt')\n listener &&\n ctx.emit('printEvt', {\n type: 'capture',\n image: imgSrc,\n status: 'end'\n })\n })\n }\n\n const print = image => {\n create(true, true, image)\n }\n\n const showPrintView = image => {\n create(false, false, image)\n }\n\n const create = (hidden, printAutomatically, image) => {\n creatingPrintView.value = true\n let iframe\n if (hidden) {\n iframe = document.createElement('iframe')\n document.body.appendChild(iframe)\n }\n\n const { viewer } = $services\n\n createPrintView({\n image,\n showCredit: props.showCredit,\n credits: getCredits(viewer),\n printWindow: iframe ? iframe.contentWindow : undefined,\n title: t('vc.navigation.print.printViewTitle'),\n readyCallback: windowToPrint => {\n if (printAutomatically) {\n printWindow(windowToPrint)\n .otherwise(e => {\n commonState.logger.warn(e)\n })\n .always(() => {\n if (iframe) {\n document.body.removeChild(iframe)\n }\n if (hidden) {\n creatingPrintView.value = false\n }\n })\n }\n },\n closeCallback: windowToPrint => {\n if (hidden) {\n creatingPrintView.value = false\n }\n }\n })\n\n if (!hidden) {\n creatingPrintView.value = false\n }\n }\n\n const getCredits = viewer => {\n const credits = viewer.scene.frameState.creditDisplay._currentFrameCredits.screenCredits.values.concat(\n viewer.scene.frameState.creditDisplay._currentFrameCredits.lightboxCredits.values\n )\n return credits.map(credit => credit.html)\n }\n\n const onTooltipBeforeShow = e => {\n if (creatingPrintView.value) {\n e.cancel = true\n }\n }\n\n return () => {\n if (canRender.value) {\n const inner: Array<VNode> = []\n inner.push(\n h(VcIcon, {\n name: props.icon,\n size: props.size\n })\n )\n\n inner.push(h('div', null, props.label))\n if (isPlainObject(props.tooltip)) {\n inner.push(\n h(\n VcTooltip,\n {\n ref: tooltipRef,\n onBeforeShow: onTooltipBeforeShow,\n ...props.tooltip\n },\n () => h('strong', null, (isPlainObject(props.tooltip) && props.tooltip.tip) || t('vc.navigation.print.printTip'))\n )\n )\n } else {\n inner.push(createCommentVNode('v-if'))\n }\n\n const child = [\n h(\n VcBtn,\n {\n ref: btnRef,\n size: props.size,\n disabled: creatingPrintView.value,\n flat: props.flat,\n stack: props.stack,\n round: props.round,\n style: { color: props.color, background: props.background },\n dense: true,\n onClick: onHandleClick\n },\n () => inner\n )\n ]\n\n return h(\n 'div',\n {\n ref: rootRef,\n class: 'vc-print ' + positionState.classes.value,\n style: rootStyle\n },\n child\n )\n } else {\n return createCommentVNode('v-if')\n }\n }\n }\n})\n\n// export type VcPrintProps = ExtractPropTypes<typeof printProps>\nexport type VcPrintEmits = typeof emits\nexport type VcPrintProps = {\n /**\n * Specify the position of the VcPrint.\n * Default value: top-right\n */\n position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top' | 'right' | 'bottom' | 'left'\n /**\n * An array of two numbers to offset the VcPrint horizontally and vertically in pixels.\n * Default value: [0, 0]\n */\n offset?: [number, number]\n /**\n * Specify whether to display the copyright information of the loaded data when printing pictures.\n * Default value: true\n */\n showCredit?: boolean\n /**\n * Specify whether to print automatically. Need to set showPrintView to false.\n * Default value: false\n */\n printAutomatically?: boolean\n /**\n * Specify whether to display the print preview.\n * Default value: true\n */\n showPrintView?: boolean\n /**\n * Specify whether to download the printed pictures.\n * Default value: false\n */\n downloadAutomatically?: boolean\n /**\n * Specify the icon of the VcPrint.\n * Default value: vc-icons-geolocation\n */\n icon?: string\n /**\n * Specify the size of the VcPrint.\n * Default value: 24px\n */\n size?: string\n /**\n * Specify the css color of the VcPrint.\n * Default value: #3f4854\n */\n color?: string\n /**\n * Specify the css background of the VcPrint.\n * Default value: #fff\n */\n background?: string\n /**\n * Makes a circle shaped VcPrint.\n */\n round?: boolean\n /**\n * Use 'flat' design.\n */\n flat?: boolean\n /**\n * The text that will be shown on the VcPrint.\n */\n label?: string\n /**\n * Stack icon and label vertically instead of on same line.\n */\n stack?: boolean\n /**\n * The tooltip parameter.\n */\n tooltip?: false | VcTooltipProps\n /**\n * Triggers before the VcPrint is loaded.\n * @param instance\n */\n onBeforeLoad?: (instance: VcComponentInternalInstance) => void\n /**\n * Triggers when the VcPrint is successfully loaded.\n */\n onReady?: (readyObject: VcReadyObject) => void\n /**\n * Triggers when the VcPrint is destroyed.\n */\n onDestroyed?: (instance: VcComponentInternalInstance) => void\n /**\n * Triggers when the print button is clicked.\n */\n onPrintEvt?: (evt: VcPrintEvt) => void\n}\n"],"names":["defaultProps"],"mappings":"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"}