UNPKG

vue-cesium

Version:
1 lines 17.8 kB
{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/measurements/src/index.ts"],"sourcesContent":["import { defineComponent, getCurrentInstance, ref, reactive, computed, VNode } from 'vue'\nimport { measurementsProps, defaultOptions, VcMeasurementsProps } from './defaultProps'\nimport { camelize } from '@vue-cesium/utils/util'\nimport { VcFabActionRef, VcFabProps, VcFabRef } from '@vue-cesium/components/ui'\nimport VcMeasurementDistance from './distance'\nimport VcMeasurementPolyline from './polyline'\nimport VcMeasurementHorizontal from './horizontal'\nimport VcMeasurementVertical from './vertical'\nimport VcMeasurementHeight from './height'\nimport VcMeasurementPoint from './point'\nimport VcMeasurementArea from './area'\nimport VcMeasurementRectangle from './rectangle'\nimport VcMeasurementRegular from './regular'\nimport type {\n MeasurementActionCmpRef,\n VcComponentDistanceMeasurementOpts,\n VcDrawingActionInstance,\n VcHorizontalMeasurementOpts,\n VcMeasurementOpts,\n VcPolylineMeasurementOpts,\n VcRegularMeasurementOpts\n} from '@vue-cesium/utils/drawing-types'\nimport type { VcActionTooltipProps, VcComponentInternalInstance, VcComponentPublicInstance } from '@vue-cesium/utils/types'\nimport { useLocale } from '@vue-cesium/composables'\nimport useDrawingFab from '@vue-cesium/composables/use-drawing/use-drawing-fab'\nimport { drawingEmit } from '@vue-cesium/utils/emits'\nimport { isEqual, cloneDeep, merge } from 'lodash-es'\n\nconst emits = {\n ...drawingEmit,\n fabUpdated: (value: boolean) => true,\n clearEvt: (\n e: {\n type: 'clear'\n option: VcActionTooltipProps\n },\n viewer: Cesium.Viewer\n ) => true\n}\nexport default defineComponent({\n name: 'VcMeasurements',\n props: measurementsProps,\n emits: emits,\n setup(props: VcMeasurementsProps, ctx) {\n // state\n const instance = getCurrentInstance() as VcComponentInternalInstance\n instance.cesiumClass = 'VcMeasurements'\n const { t } = useLocale()\n\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 fabActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.fabActionOpts, props.fabActionOpts))\n\n const distanceActionOpts = reactive<VcActionTooltipProps>(\n Object.assign({}, defaultOptions.distanceActionOpts, mergeActionOpts('distanceActionOpts'))\n )\n const distanceMeasurementOpts = reactive<VcMeasurementOpts>(\n merge(cloneDeep(defaultOptions.distanceMeasurementOpts), props.distanceMeasurementOpts)\n )\n\n const componentDistanceActionOpts = reactive<VcActionTooltipProps>(\n Object.assign({}, defaultOptions.componentDistanceActionOpts, mergeActionOpts('componentDistanceActionOpts'))\n )\n const componentDistanceMeasurementOpts = reactive<VcComponentDistanceMeasurementOpts>(\n merge(cloneDeep(defaultOptions.componentDistanceMeasurementOpts), props.componentDistanceMeasurementOpts)\n )\n\n const polylineActionOpts = reactive<VcActionTooltipProps>(\n Object.assign({}, defaultOptions.polylineActionOpts, mergeActionOpts('polylineActionOpts'))\n )\n const polylineMeasurementOpts = reactive<VcPolylineMeasurementOpts>(\n merge(cloneDeep(defaultOptions.polylineMeasurementOpts), props.polylineMeasurementOpts)\n )\n\n const horizontalActionOpts = reactive<VcActionTooltipProps>(\n Object.assign({}, defaultOptions.horizontalActionOpts, mergeActionOpts('horizontalActionOpts'))\n )\n const horizontalMeasurementOpts = reactive<VcHorizontalMeasurementOpts>(\n merge(cloneDeep(defaultOptions.horizontalMeasurementOpts), props.horizontalMeasurementOpts)\n )\n\n const verticalActionOpts = reactive<VcActionTooltipProps>(\n Object.assign({}, defaultOptions.verticalActionOpts, mergeActionOpts('verticalActionOpts'))\n )\n const verticalMeasurementOpts = reactive<VcMeasurementOpts>(\n merge(cloneDeep(defaultOptions.verticalMeasurementOpts), props.verticalMeasurementOpts)\n )\n\n const heightActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.heightActionOpts, mergeActionOpts('heightActionOpts')))\n const heightMeasurementOpts = reactive<VcMeasurementOpts>(merge(cloneDeep(defaultOptions.heightMeasurementOpts), props.heightMeasurementOpts))\n\n const areaActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.areaActionOpts, mergeActionOpts('areaActionOpts')))\n const areaMeasurementOpts = reactive<VcPolylineMeasurementOpts>(\n merge(cloneDeep(defaultOptions.areaMeasurementOpts), props.areaMeasurementOpts)\n )\n\n const pointActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.pointActionOpts, mergeActionOpts('pointActionOpts')))\n const pointMeasurementOpts = reactive<VcMeasurementOpts>(merge(cloneDeep(defaultOptions.pointMeasurementOpts), props.pointMeasurementOpts))\n\n const rectangleActionOpts = reactive<VcActionTooltipProps>(\n Object.assign({}, defaultOptions.rectangleActionOpts, mergeActionOpts('rectangleActionOpts'))\n )\n const rectangleMeasurementOpts = reactive<VcRegularMeasurementOpts>(\n merge(cloneDeep(defaultOptions.rectangleMeasurementOpts), props.rectangleMeasurementOpts)\n )\n\n const regularActionOpts = reactive<VcActionTooltipProps>(\n Object.assign({}, defaultOptions.regularActionOpts, mergeActionOpts('regularActionOpts'))\n )\n const regularMeasurementOpts = reactive<VcRegularMeasurementOpts>(\n merge(cloneDeep(defaultOptions.regularMeasurementOpts), props.regularMeasurementOpts)\n )\n\n const circleActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.circleActionOpts, mergeActionOpts('circleActionOpts')))\n const circleMeasurementOpts = reactive<VcRegularMeasurementOpts>(\n merge(cloneDeep(defaultOptions.circleMeasurementOpts), props.circleMeasurementOpts)\n )\n\n const options: any = {}\n options.distanceActionOpts = distanceActionOpts\n options.distanceMeasurementOpts = distanceMeasurementOpts\n options.componentDistanceActionOpts = componentDistanceActionOpts\n options.componentDistanceMeasurementOpts = componentDistanceMeasurementOpts\n options.polylineActionOpts = polylineActionOpts\n options.polylineMeasurementOpts = polylineMeasurementOpts\n options.horizontalActionOpts = horizontalActionOpts\n options.horizontalMeasurementOpts = horizontalMeasurementOpts\n options.verticalActionOpts = verticalActionOpts\n options.verticalMeasurementOpts = verticalMeasurementOpts\n options.heightActionOpts = heightActionOpts\n options.heightMeasurementOpts = heightMeasurementOpts\n options.areaActionOpts = areaActionOpts\n options.areaMeasurementOpts = areaMeasurementOpts\n options.pointActionOpts = pointActionOpts\n options.pointMeasurementOpts = pointMeasurementOpts\n options.rectangleActionOpts = rectangleActionOpts\n options.rectangleMeasurementOpts = rectangleMeasurementOpts\n options.regularActionOpts = regularActionOpts\n options.regularMeasurementOpts = regularMeasurementOpts\n options.circleActionOpts = circleActionOpts\n options.circleMeasurementOpts = circleMeasurementOpts\n options.clearActionOpts = clearActionOpts\n\n const drawingActionInstances = computed<Array<VcDrawingActionInstance>>(() => {\n return props.measurements.map(measurement => ({\n name: measurement,\n type: 'measurement',\n actionStyle: {\n background: options[`${camelize(measurement)}ActionOpts`].color,\n color: options[`${camelize(measurement)}ActionOpts`].textColor\n },\n actionClass: `vc-measure-${measurement} vc-measure-button`,\n actionRef: ref<VcFabActionRef>(null),\n actionOpts: options[`${camelize(measurement)}ActionOpts`] as VcActionTooltipProps,\n cmp: getMeasurementCmp(measurement),\n cmpRef: ref<MeasurementActionCmpRef>(null!),\n cmpOpts: options[`${camelize(measurement)}MeasurementOpts`] as VcMeasurementOpts,\n tip: options[`${camelize(measurement)}ActionOpts`].tooltip.tip || t(`vc.measurement.${measurement}.tip`),\n isActive: false\n }))\n })\n\n function getMeasurementCmp(name) {\n switch (name) {\n case 'distance':\n case 'component-distance':\n return VcMeasurementDistance\n case 'polyline':\n return VcMeasurementPolyline\n case 'horizontal':\n return VcMeasurementHorizontal\n case 'vertical':\n return VcMeasurementVertical\n case 'height':\n return VcMeasurementHeight\n case 'point':\n return VcMeasurementPoint\n case 'area':\n return VcMeasurementArea\n case 'rectangle':\n return VcMeasurementRectangle\n case 'regular':\n case 'circle':\n return VcMeasurementRegular\n default:\n return undefined\n }\n }\n\n function mergeActionOpts(actionName) {\n return isEqual(defaultOptions[actionName], props[actionName]) ? fabActionOpts : Object.assign({}, fabActionOpts, props[actionName])\n }\n\n return useDrawingFab(props, ctx, instance, drawingActionInstances, mainFabOpts, clearActionOpts, 'measurement')?.renderContent\n }\n})\n\nexport {\n VcMeasurementDistance,\n VcMeasurementPolyline,\n VcMeasurementHorizontal,\n VcMeasurementVertical,\n VcMeasurementHeight,\n VcMeasurementPoint,\n VcMeasurementArea,\n VcMeasurementRectangle,\n VcMeasurementRegular,\n measurementsProps\n}\n\nexport type { VcMeasurementsProps } from './defaultProps'\nexport type VcMeasurementsEmits = typeof emits\nexport type VcMeasurementsSlots = {\n /**\n * body slot content of the component\n */\n body: (drawingActionInstances: Array<VcDrawingActionInstance>) => VNode[]\n}\n\nexport interface VcMeasurementsRef extends VcComponentPublicInstance<VcMeasurementsProps> {\n /**\n * Get or set the editingActionName.\n */\n editingActionName?: string\n /**\n * Get the drawing action instances.\n */\n drawingActionInstances: Array<VcDrawingActionInstance>\n /**\n * Get the selected drawing action instance.\n */\n selectedDrawingActionInstance: VcDrawingActionInstance\n /**\n * Clear all drawing results.\n */\n clearAll: () => void\n /**\n * End listening for the ScreenSpaceEventHandler event.\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.\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"],"names":[],"mappings":"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"}