UNPKG

vue-cesium

Version:
1 lines 6.66 kB
{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/post-processes/post-process-stage-collection/index.ts"],"sourcesContent":["/*\n * @Author: zouyaoji@https://github.com/zouyaoji\n * @Date: 2021-09-16 09:28:13\n * @LastEditTime: 2022-03-30 13:39:37\n * @LastEditors: zouyaoji\n * @Description:\n * @FilePath: \\vue-cesium@next\\packages\\components\\post-processes\\post-process-stage-collection\\index.ts\n */\nimport type { WatchStopHandle, PropType, VNode } from 'vue'\nimport { createCommentVNode, defineComponent, getCurrentInstance, h, onUnmounted, watch } from 'vue'\nimport type { VcComponentInternalInstance, VcComponentPublicInstance, VcReadyObject } from '@vue-cesium/utils/types'\nimport { useCommon } from '@vue-cesium/composables/index'\nimport { kebabCase } from '@vue-cesium/utils/util'\nimport { hSlot } from '@vue-cesium/utils/private/render'\nimport { commonEmits } from '@vue-cesium/utils/emits'\nimport type { VcPostProcessStageProps } from '../post-process-stage'\n\nexport const postProcessStageCollectionProps = {\n postProcesses: {\n type: Array as PropType<Array<VcPostProcessStageProps>>,\n default: () => []\n }\n}\nexport default defineComponent({\n name: 'VcPostProcessStageCollection',\n props: postProcessStageCollectionProps,\n emits: commonEmits,\n setup(props, ctx) {\n // state\n const instance = getCurrentInstance() as VcComponentInternalInstance\n instance.cesiumClass = 'PostProcessStageCollection'\n instance.cesiumEvents = []\n const commonState = useCommon(props, ctx, instance)\n if (commonState === void 0) {\n return\n }\n const { $services } = commonState\n const stages: Array<Cesium.PostProcessStage | Cesium.PostProcessStageComposite> = []\n let unwatchFns: Array<WatchStopHandle> = []\n // watch\n unwatchFns.push(\n watch(\n () => props.postProcesses,\n val => {\n if (instance.mounted) {\n ;(instance.proxy as VcComponentPublicInstance).reload?.()\n }\n },\n { deep: true }\n )\n )\n\n // methods\n instance.createCesiumObject = async () => {\n return stages\n }\n\n instance.mount = async () => {\n const { postProcessStages } = $services\n props.postProcesses.forEach(postProcess => {\n const opts = commonState.transformProps(postProcess)\n stages.push(postProcessStages.add(new Cesium.PostProcessStage(opts as any)))\n })\n return true\n }\n\n instance.unmount = async () => {\n const { postProcessStages } = $services\n stages.forEach(stage => {\n postProcessStages.remove(stage)\n })\n stages.length = 0\n return true\n }\n\n // life cycle\n onUnmounted(() => {\n unwatchFns.forEach(item => item())\n unwatchFns = []\n })\n\n return () =>\n ctx.slots.default\n ? h(\n 'i',\n {\n class: kebabCase(instance.proxy?.$options.name || ''),\n style: { display: 'none !important' }\n },\n hSlot(ctx.slots.default)\n )\n : createCommentVNode(kebabCase(instance.proxy?.$options.name || ''))\n }\n})\n\nexport type VcPostProcessStageCollectionProps = {\n /**\n * Specify the post-processing collection. The props are consistent with [`vc-post-process-stage`](https://zouyaoji.top/vue-cesium/#/en-US/component/post-processes/vc-post-process-stage#props).\n */\n postProcesses?: Array<VcPostProcessStageProps>\n /**\n * Triggers before the component is loaded.\n */\n onBeforeLoad?: (instance: VcComponentInternalInstance) => void\n /**\n * Triggers when the component 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 component is destroyed.\n */\n onDestroyed?: (instance: VcComponentInternalInstance) => void\n}\n\nexport type VcPostProcessStageCollectionRef = VcComponentPublicInstance<VcPostProcessStageCollectionProps>\n\nexport type VcPostProcessStageCollectionSlots = {\n /**\n * Slot for vc-post-process-stage-scan, vc-post-process-stage\n */\n default: () => VNode[]\n}\n"],"names":[],"mappings":"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"}