casc-cesium
Version:
Vue 3.x components for CesiumJS.
1 lines • 6.58 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 'casc-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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"}