UNPKG

vue-cesium-jyt

Version:
1 lines 14 kB
{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/controls/navigation-sm/index.ts"],"sourcesContent":["import type { ExtractPropTypes, CSSProperties, VNode, PropType } from 'vue'\nimport { defineComponent, getCurrentInstance, watch, nextTick, ref, reactive, h, createCommentVNode, computed } from 'vue'\nimport type { VcCompassEvt, VcComponentInternalInstance, VcReadyObject, VcZoomEvt } from '@vue-cesium/utils/types'\nimport usePosition, { positionProps } from '@vue-cesium/composables/private/use-position'\nimport { $, getInstanceListener } from '@vue-cesium/utils/private/vm'\nimport { hMergeSlot } from '@vue-cesium/utils/private/render'\nimport { useCommon } from '@vue-cesium/composables'\nimport VcCompassSm, { VcCompassSmProps } from './compass-sm'\nimport VcZoomControlSm, { VcZoomControlSmProps } from './zoom-control-sm'\nimport { commonEmits } from '@vue-cesium/utils/emits'\n\nconst compassOptsDefault = {\n enableCompassOuterRing: true,\n duration: 1.5,\n autoHidden: true,\n tooltip: {\n delay: 1000,\n anchor: 'bottom middle',\n offset: [0, 20],\n tip: void 0\n }\n}\n\nconst zoomOptsDefault = {\n autoHidden: true,\n tooltip: {\n delay: 1000,\n anchor: 'bottom middle',\n offset: [0, 20],\n tip: void 0\n }\n}\n\nexport const navigationSmProps = {\n ...positionProps,\n compassOpts: {\n type: [Boolean, Object] as PropType<false | VcCompassSmProps>,\n default: () => compassOptsDefault as VcCompassSmProps\n },\n zoomOpts: {\n type: [Boolean, Object] as PropType<false | VcZoomControlSmProps>,\n default: () => zoomOptsDefault as VcZoomControlSmProps\n }\n}\nconst emits = {\n ...commonEmits,\n zoomEvt: (evt: VcZoomEvt) => true,\n compassEvt: (evt: VcCompassEvt) => true\n}\nexport default defineComponent({\n name: 'VcNavigationSm',\n inheritAttrs: false,\n props: navigationSmProps,\n emits: emits,\n setup(props, ctx) {\n // state\n const instance = getCurrentInstance() as VcComponentInternalInstance\n instance.cesiumClass = 'VcNavigationSm'\n const commonState = useCommon(props, ctx, instance)\n if (commonState === void 0) {\n return\n }\n\n const canRender = ref(false)\n const { $services } = commonState\n const positionState = usePosition(props, $services)\n const rootRef = ref<HTMLElement | null>(null)\n const compassRef = ref<typeof VcCompassSm | null>(null)\n const zoomControlRef = ref<typeof VcZoomControlSm | null>(null)\n const rootStyle = reactive<CSSProperties>({})\n const { emit } = ctx\n // watch\n watch(\n () => props,\n () => {\n nextTick(() => {\n updateRootStyle()\n $(compassRef)?.reload()\n $(zoomControlRef)?.reload()\n })\n },\n {\n deep: true\n }\n )\n // computed\n const compassOptions = computed(() => Object.assign({}, compassOptsDefault, props.compassOpts))\n const zoomControlOptions = computed(() => Object.assign({}, zoomOptsDefault, props.zoomOpts))\n\n // methods\n const onCompassEvt = e => {\n const listener = getInstanceListener(instance, 'compassEvt')\n listener && emit('compassEvt', e)\n }\n const onZoomEvt = e => {\n const listener = getInstanceListener(instance, 'zoomEvt')\n listener && emit('zoomEvt', e)\n }\n\n instance.createCesiumObject = async () => {\n canRender.value = true\n const { viewer } = $services\n viewer.viewerWidgetResized?.addEventListener(onViewerWidgetResized)\n return new Promise((resolve, reject) => {\n nextTick(() => {\n const viewerElement = (viewer as any)._element\n viewerElement.appendChild($(rootRef))\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\n instance.unmount = async () => {\n const { viewer } = $services\n const viewerElement = (viewer as any)._element\n viewerElement.contains($(rootRef)) && viewerElement.removeChild($(rootRef))\n viewer.viewerWidgetResized?.removeEventListener(onViewerWidgetResized)\n viewer.viewerWidgetResized?.raiseEvent({\n type: instance.cesiumClass,\n status: 'unmounted',\n target: $(rootRef)\n })\n return true\n }\n\n const onViewerWidgetResized = () => {\n nextTick(() => {\n updateRootStyle()\n })\n }\n\n const updateRootStyle = () => {\n const css: CSSProperties = positionState.style.value\n const side = positionState.attach.value\n rootStyle.left = css.left\n rootStyle.top = css.top\n rootStyle.transform = css.transform\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 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 if (compassOptions.value && props.compassOpts !== false) {\n children.push(\n h(VcCompassSm, {\n ref: compassRef,\n onCompassEvt: onCompassEvt,\n ...compassOptions.value\n })\n )\n }\n if (zoomControlOptions.value && props.zoomOpts !== false) {\n children.push(\n h(VcZoomControlSm, {\n ref: zoomControlRef,\n onZoomEvt: onZoomEvt,\n ...zoomControlOptions.value\n })\n )\n }\n return h(\n 'div',\n {\n ref: rootRef,\n class: 'vc-navigation-sm ' + positionState.classes.value,\n style: rootStyle\n },\n children\n )\n } else {\n return createCommentVNode('v-if')\n }\n }\n }\n})\n\n// export type VcNavigationSmProps = ExtractPropTypes<typeof navigationSmProps>\nexport type VcNavigationSmEmits = typeof emits\nexport type VcNavigationSmProps = {\n /**\n * Specify the position of the VcNavigationSm.\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 VcNavigationSm horizontally and vertically in pixels.\n * Default value: [0, 0]\n */\n offset?: [number, number]\n /**\n * Specify the compass options of the component. false means no display.\n */\n compassOpts?: false | VcCompassSmProps\n /**\n * Specify the zoom control options of the component. false means no display.\n */\n zoomOpts?: false | VcZoomControlSmProps\n /**\n * Triggers before the VcNavigationSm is loaded.\n */\n onBeforeLoad?: (instance: VcComponentInternalInstance) => void\n /**\n * Triggers when the VcNavigationSm is successfully loaded.\n */\n onReady?: (readyObject: VcReadyObject) => void\n /**\n * Triggers when the VcNavigationSm is destroyed.\n */\n onDestroyed?: (instance: VcComponentInternalInstance) => void\n /**\n * Triggers when the zoom control is operated.\n */\n onZoomEvt?: (evt: VcZoomEvt) => void\n /**\n * Triggers when the compass control is operated.\n */\n onCompassEvt?: (evt: VcCompassEvt) => void\n}\n\nexport interface VcNavigationSmSlots {\n /**\n * Suggestion: VcCompassSm, VcZoomControlSm\n */\n default: () => VNode[]\n}\n"],"names":["VcCompassSm","VcZoomControlSm"],"mappings":"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"}