casc-cesium
Version:
Vue 3.x components for CesiumJS.
1 lines • 8.35 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/analyses/src/index.ts"],"sourcesContent":["/*\n * @Author: zouyaoji@https://github.com/zouyaoji\n * @Date: 2022-01-06 10:23:09\n * @LastEditTime: 2022-05-16 00:29:00\n * @LastEditors: zouyaoji\n * @Description:\n * @FilePath: \\vue-cesium@next\\packages\\components\\analyses\\src\\index.ts\n */\n\nimport type { VcActionTooltipProps, VcComponentInternalInstance, VcComponentPublicInstance } from 'casc-cesium-utils/types'\nimport { defineComponent, getCurrentInstance, reactive, ref, computed, VNode } from 'vue'\nimport { useLocale } from 'casc-cesium-composables'\nimport { defaultOptions, analysesProps, VcAnalysesProps } from './defaultProps'\nimport type { AnalysisActionCmpRef, VcDrawingActionInstance, VcDrawingOpts, VcViewshedAnalysisOpts } from 'casc-cesium-utils/drawing-types'\nimport { camelize } from 'casc-cesium-utils/util'\nimport type { VcFabActionRef, VcFabProps, VcFabRef } from 'casc-cesium-components/ui'\nimport useDrawingFab from 'casc-cesium-composables/use-drawing/use-drawing-fab'\nimport VcAnalysisSightline from './sightline'\nimport VcAnalysisViewshed from './viewshed'\nimport { drawingEmit } from 'casc-cesium-utils/emits'\n\nconst emits = {\n ...drawingEmit,\n fabUpdated: (value: boolean) => true\n}\nexport default defineComponent({\n name: 'VcAnalyses',\n props: analysesProps,\n emits: emits,\n setup(props: VcAnalysesProps, ctx) {\n // state\n const instance = getCurrentInstance() as VcComponentInternalInstance\n instance.cesiumClass = 'VcAnalyses'\n const { t } = useLocale()\n\n const options: any = {}\n // computed\n const clearActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.clearActionOpts, props.clearActionOpts))\n const mainFabOpts = reactive<VcActionTooltipProps & VcFabProps>(Object.assign({}, defaultOptions.mainFabOpts, props.mainFabOpts))\n\n const sightlineActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.sightlineActionOpts, props.sightlineActionOpts))\n const sightlineAnalysisOpts = reactive<VcDrawingOpts>(Object.assign({}, defaultOptions.sightlineAnalysisOpts, props.sightlineAnalysisOpts))\n\n const viewshedActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.viewshedActionOpts, props.viewshedActionOpts))\n const viewshedAnalysisOpts = reactive<VcViewshedAnalysisOpts>(Object.assign({}, defaultOptions.viewshedAnalysisOpts, props.viewshedAnalysisOpts))\n\n options.sightlineActionOpts = sightlineActionOpts\n options.sightlineAnalysisOpts = sightlineAnalysisOpts\n options.viewshedActionOpts = viewshedActionOpts\n options.viewshedAnalysisOpts = viewshedAnalysisOpts\n options.clearActionOpts = clearActionOpts\n\n const drawingActionInstances = computed<Array<VcDrawingActionInstance>>(() => {\n return props.analyses.map(analysisName => ({\n name: analysisName,\n type: 'analysis',\n actionStyle: {\n background: options[`${camelize(analysisName)}ActionOpts`].color,\n color: options[`${camelize(analysisName)}ActionOpts`].textColor\n },\n actionClass: `vc-analysis-${analysisName} vc-analysis-button`,\n actionRef: ref<VcFabActionRef>(null),\n actionOpts: options[`${camelize(analysisName)}ActionOpts`] as VcActionTooltipProps,\n cmp: getDrawingCmp(analysisName),\n cmpRef: ref<AnalysisActionCmpRef>(null!),\n cmpOpts: options[`${camelize(analysisName)}AnalysisOpts`] as VcDrawingOpts,\n tip: options[`${camelize(analysisName)}ActionOpts`].tooltip.tip || t(`vc.analysis.${camelize(analysisName)}.tip`),\n isActive: false\n }))\n })\n\n function getDrawingCmp(name) {\n switch (name) {\n case 'sightline':\n return VcAnalysisSightline\n case 'viewshed':\n return VcAnalysisViewshed\n default:\n return void 0\n }\n }\n\n return useDrawingFab(props, ctx, instance, drawingActionInstances, mainFabOpts, clearActionOpts, 'analysis')?.renderContent\n }\n})\n\nexport { VcAnalysisSightline, VcAnalysisViewshed, analysesProps }\n\nexport type { VcAnalysesProps } from './defaultProps'\nexport type VcAnalysesEmits = typeof emits\nexport interface VcAnalysesRef extends VcComponentPublicInstance<VcAnalysesProps> {\n /**\n * Get or set the editingActionName.\n */\n editingActionName?: string\n /**\n * Clear all drawing results.\n */\n clearAll: () => void\n /**\n * End listening for the ScreenSpaceEventHandler events.\n */\n deactivate: () => void\n /**\n * Start listening for ScreenSpaceEventHandler events.\n */\n activate: () => void\n /**\n * Toggle drawing instance.\n * @param drawingOption drawing instance or drawing instance name.\n */\n toggleAction: (drawingOption: VcDrawingActionInstance | string) => void\n /**\n * Get the float action button template reference.\n */\n getFabRef: () => VcFabRef\n /**\n * Get the drawingActionInstance by action name.\n */\n getDrawingActionInstance: (actionName: string) => VcDrawingActionInstance\n /**\n * Get the drawing action instances.\n */\n getDrawingActionInstances: () => Array<VcDrawingActionInstance>\n /**\n * Get the selected drawing action instance.\n */\n getSelectedDrawingActionInstance: () => VcDrawingActionInstance\n}\n\nexport type VcAnalysesSlots = {\n /**\n * body slot content of the component\n */\n body: (drawingActionInstances: Array<VcDrawingActionInstance>) => VNode[]\n}\n"],"names":[],"mappings":"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"}