vue-cesium
Version:
Vue 3.x components for CesiumJS.
1 lines • 15.1 kB
Source Map (JSON)
{"version":3,"file":"zoom-control-sm.mjs","sources":["../../../../../../packages/components/controls/navigation-sm/zoom-control-sm.ts"],"sourcesContent":["import type { VNode, CSSProperties } from 'vue'\nimport { computed, defineComponent, getCurrentInstance, nextTick, ref, createCommentVNode, h, reactive, watch } from 'vue'\nimport type { VcComponentInternalInstance, VcComponentPublicInstance, VcZoomEvt } from '@vue-cesium/utils/types'\nimport usePosition, { positionProps } from '@vue-cesium/composables/private/use-position'\nimport { $, getVcParentInstance } from '@vue-cesium/utils/private/vm'\nimport { hMergeSlot } from '@vue-cesium/utils/private/render'\nimport { useCommon, useLocale } from '@vue-cesium/composables'\nimport useZoomControl from './use-zoom-control'\nimport { VcTooltip, VcTooltipProps } from '@vue-cesium/components/ui'\nimport { isObject } from '@vue-cesium/utils/util'\nimport { commonEmits } from '@vue-cesium/utils/emits'\n\nexport const zoomControlSmProps = {\n ...positionProps,\n autoHidden: {\n type: Boolean,\n default: false\n },\n tooltip: {\n type: Object,\n default: () => ({\n delay: 1000,\n anchor: 'bottom middle',\n offset: [0, 20],\n zoomInTip: void 0,\n zoomOutTip: void 0,\n zoomBarTip: void 0\n })\n }\n}\nconst emits = {\n ...commonEmits,\n zoomEvt: (evt: VcZoomEvt) => true\n}\nexport default defineComponent({\n name: 'VcZoomControlSm',\n props: zoomControlSmProps,\n emits: emits,\n setup(props, ctx) {\n // state\n const instance = getCurrentInstance() as VcComponentInternalInstance\n instance.cesiumClass = 'VcZoomControlSm'\n instance.cesiumEvents = []\n const rootRef = ref<HTMLElement>()\n const zoomInRef = ref<HTMLElement>()\n const zoomBarRef = ref<HTMLElement>()\n const zoomOutRef = ref<HTMLElement>()\n const parentInstance = getVcParentInstance(instance)\n const hasVcNavigation = parentInstance.proxy?.$options.name === 'VcNavigationSm'\n const canRender = ref(hasVcNavigation)\n const rootStyle = reactive<CSSProperties>({})\n const commonState = useCommon(props, ctx, instance)\n\n if (commonState === void 0) {\n return\n }\n const { t } = useLocale()\n const { $services } = commonState\n const positionState = usePosition(props, $services)\n const zoomControlState = useZoomControl(props, ctx, instance, $services)\n\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 // computed\n const zoombarStyle = computed(() => ({ top: zoomControlState.zoombarTop.value + 'px' }))\n // methods\n instance.createCesiumObject = async () => {\n return new Promise((resolve, reject) => {\n canRender.value = true\n nextTick(() => {\n const rootEl = $(rootRef)\n const { viewer } = $services\n if (!hasVcNavigation) {\n const viewerElement = viewer._element\n isObject(rootEl) && viewerElement?.appendChild(rootEl)\n resolve(rootEl)\n } else {\n resolve(rootEl)\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 zoomControlState.load($(rootRef))\n }\n instance.unmount = async () => {\n const { viewer } = $services\n if (!hasVcNavigation) {\n const viewerElement = viewer._element\n const rootEl = $(rootRef)\n isObject(rootEl) && viewerElement?.contains(rootEl) && viewerElement.removeChild(rootEl)\n }\n\n viewer.viewerWidgetResized?.raiseEvent({\n type: instance.cesiumClass,\n status: 'unmounted',\n target: $(rootRef)\n })\n\n return zoomControlState.unload()\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 rootStyle.visibility = props.autoHidden ? 'hidden' : 'visible'\n\n if (!hasVcNavigation) {\n const side = positionState.attach.value\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 Object.assign(rootStyle, css)\n }\n\n return () => {\n if (canRender.value) {\n let children: Array<VNode> = []\n children = hMergeSlot(ctx.slots.default, children)\n children.push(\n h(\n 'div',\n {\n ref: zoomInRef,\n class: 'vc-zoomin-sm',\n onMousedown: zoomControlState.handleZoomInMouseDown,\n onTouchstart: zoomControlState.handleZoomInMouseDown\n },\n props.tooltip\n ? h(\n VcTooltip,\n {\n ref: zoomControlState.zoomInTooltipRef,\n ...props.tooltip,\n onBeforeShow: zoomControlState.onTooltipBeforeShow\n },\n () => h('strong', {}, props.tooltip.zoomInTip || t('vc.navigationSm.zoomCotrol.zoomInTip'))\n )\n : createCommentVNode('v-if')\n )\n )\n\n children.push(\n h(\n 'div',\n {\n ref: zoomOutRef,\n class: 'vc-zoomout-sm',\n onMousedown: zoomControlState.handleZoomOutMouseDown,\n onTouchstart: zoomControlState.handleZoomOutMouseDown\n },\n props.tooltip\n ? h(\n VcTooltip,\n {\n ref: zoomControlState.zoomInTooltipRef,\n ...props.tooltip,\n onBeforeShow: zoomControlState.onTooltipBeforeShow\n },\n () => h('strong', {}, props.tooltip.zoomOutTip || t('vc.navigationSm.zoomCotrol.zoomOutTip'))\n )\n : createCommentVNode('v-if')\n )\n )\n\n children.push(\n h(\n 'div',\n {\n ref: zoomBarRef,\n class: 'vc-zoombar-sm',\n style: zoombarStyle.value,\n onMousedown: zoomControlState.handleZoomBarScrollMouseDown,\n onTouchstart: zoomControlState.handleZoomBarScrollMouseDown\n },\n props.tooltip\n ? h(\n VcTooltip,\n {\n ref: zoomControlState.zoomInTooltipRef,\n ...props.tooltip,\n onBeforeShow: zoomControlState.onTooltipBeforeShow\n },\n () => h('strong', {}, props.tooltip.zoomBarTip || t('vc.navigationSm.zoomCotrol.zoomBarTip'))\n )\n : createCommentVNode('v-if')\n )\n )\n\n return h(\n 'div',\n {\n ref: rootRef,\n class: 'vc-zoom-control-sm ' + positionState.classes.value,\n style: rootStyle\n },\n children\n )\n } else {\n return createCommentVNode('v-if')\n }\n }\n }\n})\n\nexport type VcZoomControlSmEmits = typeof emits\nexport type VcZoomControlSmProps = {\n /**\n * Specify the position of the VcZoomControlSm.\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 VcZoomControlSm horizontally and vertically in pixels.\n * Default value: [0, 0]\n */\n offset?: [number, number]\n /**\n * Specify whether the outer ring of the compass can be operated.\n * Default value: true\n */\n /**\n * Specify whether to automatically hide the zoom control.\n * Default value: true\n */\n autoHidden?: boolean\n /**\n * Specify the compass prompt information.\n */\n tooltip?: false | (VcTooltipProps & { zoomInTip: string; zoomOutTip: string; zoomBarTip: string })\n}\n\nexport type VcZoomControlSmRef = VcComponentPublicInstance<VcZoomControlSmProps>\n"],"names":["_a"],"mappings":"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"}