{"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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"}