{"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 'casc-cesium-utils/types'\nimport usePosition, { positionProps } from 'casc-cesium-composables/private/use-position'\nimport { $, getVcParentInstance } from 'casc-cesium-utils/private/vm'\nimport { hMergeSlot } from 'casc-cesium-utils/private/render'\nimport { useCommon, useLocale } from 'casc-cesium-composables'\nimport useZoomControl from './use-zoom-control'\nimport { VcTooltip, VcTooltipProps } from 'casc-cesium-components/ui'\nimport { isObject } from 'casc-cesium-utils/util'\nimport { commonEmits } from 'casc-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>(null)\n    const zoomInRef = ref<HTMLElement>(null)\n    const zoomBarRef = ref<HTMLElement>(null)\n    const zoomOutRef = ref<HTMLElement>(null)\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":[],"mappings":"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"}