vue-cesium-jyt
Version:
Vue 3.x components for CesiumJS.
1 lines • 16.9 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/controls/vc-overview-map/index.ts"],"sourcesContent":["import type { ExtractPropTypes, VNode, WatchStopHandle, CSSProperties, PropType } from 'vue'\nimport { useCommon, useLocale } from '@vue-cesium/composables'\nimport usePosition from '@vue-cesium/composables/private/use-position'\nimport { VcBtn, VcTooltip } from '@vue-cesium/components/ui'\nimport { $ } from '@vue-cesium/utils/private/vm'\nimport type { VcBtnTooltipProps, VcComponentInternalInstance, VcReadyObject } from '@vue-cesium/utils/types'\nimport { computed, createCommentVNode, defineComponent, getCurrentInstance, h, onUnmounted, reactive, ref } from 'vue'\nimport VcViewer, { VcViewerProps } from '@vue-cesium/components/viewer'\nimport { hSlot } from '@vue-cesium/utils/private/render'\nimport { commonEmits } from '@vue-cesium/utils/emits'\n\nexport const overviewProps = {\n position: {\n type: String as PropType<'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'>,\n default: 'bottom-right',\n validator: (v: string) => ['top-right', 'top-left', 'bottom-right', 'bottom-left'].includes(v)\n },\n offset: {\n type: Array,\n validator: (v: Array<string>) => v.length === 2\n },\n width: {\n type: String,\n default: '150px'\n },\n height: {\n type: String,\n default: '150px'\n },\n border: {\n type: String,\n default: 'solid 4px rgb(255, 255, 255)'\n },\n borderRadius: {\n type: String\n },\n toggleOpts: {\n type: Object as PropType<VcBtnTooltipProps & { show: boolean }>\n },\n viewerOpts: {\n type: Object as PropType<VcViewerProps>\n }\n}\nexport default defineComponent({\n name: 'VcOverviewMap',\n props: overviewProps,\n emits: commonEmits,\n setup(props, ctx) {\n // state\n const instance = getCurrentInstance() as VcComponentInternalInstance\n instance.cesiumClass = 'VcOverviewMap'\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 rootStyle = reactive<CSSProperties>({})\n const toggleBtnRef = ref<typeof VcBtn | null>(null)\n const tooltipRef = ref<typeof VcTooltip | null>(null)\n const viewerRef = ref<typeof VcViewer | null>(null)\n const positionState = usePosition(props, $services)\n let minimized = false\n let unwatchFns: Array<WatchStopHandle> = []\n let overviewViewer: Cesium.Viewer\n\n // computed\n const toggleOpts = computed(() => {\n return Object.assign(\n {},\n {\n show: true,\n color: '#fff',\n background: '#3f4854',\n icon: 'vc-icons-overview-toggle',\n size: '15px',\n tooltip: {\n delay: 500,\n anchor: 'bottom middle',\n offset: [0, 20],\n tip: void 0\n }\n },\n props.toggleOpts\n )\n })\n\n const viewerOpts = computed(() => {\n return Object.assign(\n {},\n {\n removeCesiumScript: false,\n showCredit: false,\n sceneMode: 2\n },\n props.viewerOpts\n )\n })\n // watch\n\n // methods\n instance.createCesiumObject = async () => {\n const { viewer } = $services\n const viewerElement = (viewer as any)._element\n viewerElement.appendChild($(rootRef))\n return [$(rootRef), $(viewerRef)]\n }\n\n instance.mount = async () => {\n updateRootStyle()\n const { viewer } = $services\n viewer.clock.onTick.addEventListener(onClockTick)\n return true\n }\n\n instance.unmount = async () => {\n const { viewer } = $services\n const viewerElement = (viewer as any)._element\n viewer.clock.onTick.removeEventListener(onClockTick)\n viewerElement.contains($(rootRef)) && viewerElement.removeChild($(rootRef))\n return true\n }\n\n const onClockTick = () => {\n const { viewer } = $services\n overviewViewer &&\n overviewViewer.camera.flyTo({\n destination: viewer.camera.position,\n orientation: {\n heading: viewer.camera.heading,\n pitch: viewer.camera.pitch,\n roll: viewer.camera.roll\n },\n duration: 0.0\n })\n }\n\n const onViewerReady = ({ viewer }) => {\n overviewViewer = viewer\n const control = viewer.scene.screenSpaceCameraController\n control.enableRotate = false\n control.enableTranslate = false\n control.enableZoom = false\n control.enableTilt = false\n control.enableLook = false\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 css.borderRadius = props.borderRadius\n css.border = props.border\n css.width = props.width\n css.height = props.height\n minimized = false\n\n Object.assign(rootStyle, css)\n }\n\n // const onTooltipBeforeShow = () => {\n\n // }\n\n const onToggle = () => {\n if (!minimized) {\n minimize()\n } else {\n restore()\n }\n\n minimized = !minimized\n }\n\n const minimize = () => {\n if (toggleOpts.value.show) {\n const reg = /(\\d+)/g\n const regResult = reg.exec(props.border)\n const boder = regResult?.length ? parseFloat(regResult[0]) : 0\n const toggleBtnRefStyle = getComputedStyle($(toggleBtnRef)?.$el)\n rootStyle.width = `${parseFloat(toggleBtnRefStyle.width) + parseFloat(toggleBtnRefStyle.padding) + boder}px`\n rootStyle.height = `${parseFloat(toggleBtnRefStyle.height) + parseFloat(toggleBtnRefStyle.padding) + boder}px`\n } else {\n rootStyle.display = 'block'\n }\n }\n\n const restore = () => {\n if (toggleOpts.value.show) {\n rootStyle.width = props.width\n rootStyle.height = props.height\n } else {\n rootStyle.display = 'none'\n }\n }\n\n // life cycle\n onUnmounted(() => {\n unwatchFns.forEach(item => item())\n unwatchFns = []\n })\n\n return () => {\n const children: Array<VNode> = []\n children.push(\n h(\n VcBtn,\n {\n ref: toggleBtnRef,\n class: 'toggle toggle-' + props.position + (minimized ? ' minimized ' : ''),\n flat: true,\n dense: true,\n icon: toggleOpts.value.icon,\n size: toggleOpts.value.size,\n style: { color: toggleOpts.value.color, background: toggleOpts.value.background },\n onClick: onToggle\n },\n () =>\n toggleOpts.value.tooltip\n ? h(\n VcTooltip,\n {\n ref: tooltipRef,\n ...toggleOpts.value.tooltip\n // onBeforeShow: onTooltipBeforeShow\n },\n () => h('strong', {}, toggleOpts.value.tooltip.tip || t(`vc.overview.${minimized ? 'show' : 'hidden'}`))\n )\n : createCommentVNode('v-if')\n )\n )\n children.push(\n h(\n VcViewer,\n {\n ref: viewerRef,\n ...viewerOpts.value,\n onReady: onViewerReady\n },\n () => hSlot(ctx.slots.default)\n )\n )\n return h(\n 'div',\n {\n ref: rootRef,\n class: 'vc-overview-map ' + positionState.classes.value,\n style: rootStyle\n },\n children\n )\n }\n }\n})\n\n// export type VcOverviewMapProps = ExtractPropTypes<typeof overviewProps>\n// export type VcOverviewMapEmits = typeof emits\nexport type VcOverviewMapProps = {\n /**\n * Specify the position of the VcOverviewMap.\n * Default value: bottom-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 VcOverviewMap horizontally and vertically in pixels.\n * Default value: [0, 0]\n */\n offset?: [number, number]\n /**\n * Specify the width of the overviewmap component.\n * Default value: 150px\n */\n width?: string\n /**\n * Specify the height of the overviewmap component.\n * Default value: 150px\n */\n height?: string\n /**\n * Specify the border of the overviewmap component.\n * Default value: solid 4px rgb(255, 255, 255)\n */\n border?: string\n /**\n * Specify the border radius of the overviewmap component.\n */\n borderRadius?: string\n /**\n * Specify the toggle button options of the overviewmap component.\n */\n toggleOpts?: VcBtnTooltipProps & { show: boolean }\n /**\n * Specify the vc-viewer component options in the overviewmap component.\n */\n viewerOpts?: VcViewerProps\n /**\n * Triggers before the VcOverviewMap is loaded.\n * @param instance\n */\n onBeforeLoad?: (instance: VcComponentInternalInstance) => void\n /**\n * Triggers when the VcOverviewMap is successfully loaded.\n */\n onReady?: (readyObject: VcReadyObject) => void\n /**\n * Triggers when the VcOverviewMap is destroyed.\n */\n onDestroyed?: (instance: VcComponentInternalInstance) => void\n}\n\nexport interface VcOverviewMapSlots {\n /**\n * Default slot content of the component\n */\n default: () => VNode[]\n}\n"],"names":["VcViewer"],"mappings":"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"}