vue-cesium
Version:
Vue 3.x components for CesiumJS.
1 lines • 18.6 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/controls/compass/index.ts"],"sourcesContent":["import { Teleport, VNode } from 'vue'\nimport { defineComponent, getCurrentInstance, ref, computed, nextTick, CSSProperties, watch, reactive, createCommentVNode, h } from 'vue'\nimport usePosition from '@vue-cesium/composables/private/use-position'\nimport type { VcCompassEvt, VcBtnTooltipProps, VcComponentInternalInstance, VcReadyObject, VcComponentPublicInstance } from '@vue-cesium/utils/types'\nimport { $, getVcParentInstance } from '@vue-cesium/utils/private/vm'\nimport { defaultProps, defaultOptions } from './defaultProps'\nimport { hMergeSlot } from '@vue-cesium/utils/private/render'\nimport { VcBtn, VcIcon, VcTooltip } from '@vue-cesium/components/ui'\nimport type { VcBtnRef } from '@vue-cesium/components/ui'\nimport { useCommon, useLocale } from '@vue-cesium/composables'\nimport useCompass from './use-compass'\nimport { commonEmits } from '@vue-cesium/utils/emits'\n\nconst emits = {\n ...commonEmits,\n compassEvt: (evt: VcCompassEvt) => true\n}\nexport const compassProps = defaultProps\nexport default defineComponent({\n name: 'VcCompass',\n props: compassProps,\n emits: emits,\n setup(props: VcCompassProps, ctx) {\n // state\n const instance = getCurrentInstance() as VcComponentInternalInstance\n instance.cesiumClass = 'VcCompass'\n const commonState = useCommon(props, ctx, instance)\n if (commonState === void 0) {\n return\n }\n const { t } = useLocale()\n const parentInstance = getVcParentInstance(instance)\n const { $services } = commonState\n const compassState = useCompass(props, ctx, instance)\n const positionState = usePosition(props, $services)\n const rootRef = ref<HTMLElement>(null)\n const outerRingRef = ref<VcBtnRef>(null)\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 // computed\n const innerOptions = computed(() => {\n return Object.assign({}, defaultOptions.innerOptions, props.innerOptions)\n })\n const outerOptions = computed(() => {\n return Object.assign({}, defaultOptions.outerOptions, props.outerOptions)\n })\n const markerOptions = computed(() => {\n return Object.assign({}, defaultOptions.markerOptions, props.markerOptions)\n })\n const outerCircleStyle = computed(() => {\n return {\n transform: 'translate(-50%,-50%) rotate(-' + compassState.heading.value + 'rad)',\n WebkitTransform: 'translate(-50%,-50%) rotate(-' + compassState.heading.value + 'rad)',\n // transform: 'rotate(-' + heading.value + 'rad)',\n // WebkitTransform: 'rotate(-' + heading.value + 'rad)',\n opacity: undefined,\n background: outerOptions.value.background,\n color: outerOptions.value.color\n }\n })\n const rotationMarkerStyle = computed(() => {\n return {\n transform: 'rotate(-' + compassState.orbitCursorAngle.value + 'rad)',\n WebkitTransform: 'rotate(-' + compassState.orbitCursorAngle.value + 'rad)',\n opacity: compassState.orbitCursorOpacity.value,\n color: markerOptions.value.color\n }\n })\n const innerRingStyle = computed(() => {\n const css: CSSProperties = {\n background: innerOptions.value.background,\n color: innerOptions.value.color\n }\n return css\n })\n\n // methods\n instance.createCesiumObject = async () => {\n return rootRef\n }\n instance.mount = async () => {\n canRender.value = true\n nextTick(() => {\n updateRootStyle()\n })\n const { viewer } = $services\n viewer.viewerWidgetResized?.raiseEvent({\n type: instance.cesiumClass,\n status: 'mounted',\n target: $(rootRef)\n })\n return compassState.load($services.viewer)\n }\n instance.unmount = async () => {\n canRender.value = false\n const { viewer } = $services\n viewer.viewerWidgetResized?.raiseEvent({\n type: instance.cesiumClass,\n status: 'unmounted',\n target: $(rootRef)\n })\n return compassState.unload()\n }\n\n const updateRootStyle = () => {\n const css: CSSProperties = positionState.style.value\n const outerRingTarget = $(outerRingRef)?.$el as HTMLElement\n if (outerRingTarget !== void 0) {\n const clientRect = outerRingTarget.getBoundingClientRect()\n css.width = `${clientRect.width}px`\n css.height = `${clientRect.height}px`\n }\n\n if (typeof props.teleportToViewer === 'undefined' || props.teleportToViewer) {\n rootStyle.left = css.left\n rootStyle.top = css.top\n rootStyle.transform = css.transform\n const side = positionState.attach.value\n if (outerRingTarget !== void 0) {\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 return () => {\n if (canRender.value) {\n let children: Array<VNode> = []\n children = hMergeSlot(ctx.slots.default, children)\n children.push(\n h(\n VcBtn,\n {\n ref: outerRingRef,\n class: 'vc-compass-outerRing absolute-center',\n style: outerCircleStyle.value,\n size: outerOptions.value.size,\n dense: true,\n round: true,\n disabled: !props.enableCompassOuterRing\n },\n () => [\n h(VcIcon, {\n size: outerOptions.value.size,\n name: outerOptions.value.icon\n }),\n outerOptions.value.tooltip\n ? h(\n VcTooltip,\n {\n ref: compassState.iconOuterTooltipRef,\n ...outerOptions.value.tooltip,\n onBeforeShow: compassState.onTooltipBeforeShow\n },\n () => h('strong', {}, outerOptions.value.tooltip.tip || t('vc.navigation.compass.outerTip'))\n )\n : createCommentVNode('v-if')\n ]\n )\n )\n\n children.push(\n h(\n VcBtn,\n {\n class: 'vc-compass-innerRing absolute-center',\n style: innerRingStyle.value,\n size: innerOptions.value.size,\n dense: true,\n round: true\n },\n () => [\n h(VcIcon, {\n size: innerOptions.value.size,\n name: innerOptions.value.icon\n }),\n innerOptions.value.tooltip\n ? h(\n VcTooltip,\n {\n ref: compassState.iconInnerTooltipRef,\n ...innerOptions.value.tooltip,\n onBeforeShow: compassState.onTooltipBeforeShow\n },\n () => h('strong', {}, innerOptions.value.tooltip.tip || t('vc.navigation.compass.innerTip'))\n )\n : createCommentVNode('v-if')\n ]\n )\n )\n\n children.push(\n rotationMarkerStyle.value.opacity\n ? h(\n VcBtn,\n {\n class: 'vc-compass-rotation-marker absolute-center',\n dense: true,\n round: true\n },\n () => [\n h(VcIcon, {\n size: markerOptions.value.size,\n name: markerOptions.value.icon,\n style: rotationMarkerStyle.value\n })\n ]\n )\n : createCommentVNode('v-if')\n )\n\n const renderContent = h(\n 'div',\n {\n ref: rootRef,\n class: `vc-compass ${positionState.classes.value} ${props.customClass}`,\n style: rootStyle,\n onDblclick: compassState.handleDoubleClick,\n onMousedown: compassState.handleMouseDown,\n onMouseup: compassState.resetRotater,\n onTouchend: compassState.resetRotater,\n onTouchstart: compassState.handleMouseDown\n },\n children\n )\n\n return !hasVcNavigation && props.teleportToViewer ? h(Teleport, { to: $services.viewer._element }, renderContent) : renderContent\n } else {\n return createCommentVNode('v-if')\n }\n }\n }\n})\n\nexport type VcCompassEmits = typeof emits\nexport type VcCompassProps = {\n /**\n * Specify the position of the VcCompass.\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 VcCompass 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 */\n enableCompassOuterRing?: boolean\n /**\n * Specify the flight time to restore the camera, in seconds.\n */\n duration?: number\n /**\n * Specify the parameters of the compass outer ring.\n */\n outerOptions?: VcBtnTooltipProps\n /**\n * Specify the parameters of the inner ring.\n */\n innerOptions?: VcBtnTooltipProps\n /**\n * Specify the parameters of the maker when the compass rotates.\n */\n markerOptions?: VcBtnTooltipProps\n /**\n * Specify the customClass of the vc-compass.\n */\n customClass?: string\n /**\n * Specify whether to add to the cesium-viewer node.\n * Default value: true\n */\n teleportToViewer?: boolean\n /**\n * Triggers before the VcCompass is loaded.\n */\n onBeforeLoad?: (instance: VcComponentInternalInstance) => void\n /**\n * Triggers when the VcCompass is successfully loaded.\n */\n onReady?: (readyObject: VcReadyObject) => void\n /**\n * Triggers when the component load failed.\n */\n onUnready?: (e: any) => void\n /**\n * Triggers when the VcCompass is destroyed.\n */\n onDestroyed?: (instance: VcComponentInternalInstance) => void\n /**\n * Triggers when the VcCompass is operated.\n */\n onCompassEvt?: (evt: VcCompassEvt) => void\n}\n\nexport type VcCompassRef = VcComponentPublicInstance<VcCompassProps>\n"],"names":["_a"],"mappings":"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"}