vue-cesium
Version:
Vue 3.x components for CesiumJS.
1 lines • 6.45 kB
Source Map (JSON)
{"version":3,"file":"use-position.mjs","sources":["../../../../../packages/composables/private/use-position.ts"],"sourcesContent":["import { computed, CSSProperties, PropType, ref } from 'vue'\nimport { VcViewerProvider } from '@vue-cesium/utils/types'\n\nexport const positionProps = {\n position: {\n type: String as PropType<'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top' | 'right' | 'bottom' | 'left'>,\n default: 'top-right',\n validator: (v: string) => ['top-right', 'top-left', 'bottom-right', 'bottom-left', 'top', 'right', 'bottom', 'left'].includes(v)\n },\n offset: {\n type: Array as PropType<unknown> as PropType<[number, number]>,\n validator: v => v.length === 2\n }\n}\n\nexport default function (props, $services: VcViewerProvider) {\n const attach = computed(() => {\n const pos = props.position\n\n return {\n top: pos.indexOf('top') > -1,\n right: pos.indexOf('right') > -1,\n bottom: pos.indexOf('bottom') > -1,\n left: pos.indexOf('left') > -1,\n vertical: pos === 'top' || pos === 'bottom',\n horizontal: pos === 'left' || pos === 'right'\n }\n })\n\n // Todo 自动调整位置\n // const { layout } = $services\n // const top = computed(() => {\n // let value = 0\n // if (layout.toolbarContainerRC) {\n // value += layout.toolbarContainerRC.height\n // }\n // return value\n // })\n\n // const bottom = computed(() => {\n // let value = 0\n // if (layout.bottomContainerRC) {\n // value += layout.bottomContainerRC.height\n // }\n // if (layout.timelineContainerRC) {\n // value += layout.timelineContainerRC.height\n // }\n // return value\n // })\n\n const top = ref(0)\n const right = ref(0)\n const left = ref(0)\n const bottom = ref(0)\n\n const style = computed(() => {\n let posX: number | string = 0\n let posY: number | string = 0\n\n const side = attach.value\n const dir = 1\n\n if (side.top === true && top.value !== 0) {\n posY = `${top.value}px`\n } else if (side.bottom === true && bottom.value !== 0) {\n posY = `${-bottom.value}px`\n }\n\n if (side.left === true && left.value !== 0) {\n posX = `${dir * left.value}px`\n } else if (side.right === true && right.value !== 0) {\n posX = `${-dir * right.value}px`\n }\n\n const css: CSSProperties = {\n transform: `translate(${posX}, ${posY})`\n }\n\n if (props.offset) {\n css.margin = `${props.offset[1]}px ${props.offset[0]}px`\n }\n\n if (side.vertical === true) {\n if (left.value !== 0) {\n css['right'] = `${left.value}px`\n }\n if (right.value !== 0) {\n css['left'] = `${right.value}px`\n }\n } else if (side.horizontal === true) {\n if (top.value !== 0) {\n css.top = `${top.value}px`\n }\n if (bottom.value !== 0) {\n css.bottom = `${bottom.value}px`\n }\n }\n\n return typeof props.teleportToViewer === 'undefined' || props.teleportToViewer ? css : {}\n })\n\n const classes = computed(() =>\n typeof props.teleportToViewer === 'undefined' || props.teleportToViewer ? `absolute absolute-${props.position}` : 'relative-position'\n )\n\n return {\n attach,\n style,\n classes\n }\n}\n"],"names":[],"mappings":"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"}