UNPKG

vue-cesium

Version:
1 lines 13.2 kB
{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/drawings/src/index.ts"],"sourcesContent":["import { defineComponent, getCurrentInstance, ref, reactive, VNode, computed } from 'vue'\nimport { drawingsProps, defaultOptions } from './defaultProps'\nimport { camelize } from '@vue-cesium/utils/util'\nimport type { VcFabActionRef, VcFabProps, VcFabRef } from '@vue-cesium/components/ui'\nimport type { VcActionTooltipProps, VcComponentInternalInstance, VcComponentPublicInstance } from '@vue-cesium/utils/types'\nimport VcDrawingPin from './pin'\nimport VcDrawingPoint from './point'\nimport VcDrawingPolyline from './polyline'\nimport VcDrawingPolygon from './polygon'\nimport VcDrawingRegular from './regular'\nimport VcDrawingRectangle from './rectangle'\nimport type { DrawingActionCmpRef, VcDrawingActionInstance, VcDrawingOpts } from '@vue-cesium/utils/drawing-types'\nimport useDrawingFab from '@vue-cesium/composables/use-drawing/use-drawing-fab'\nimport { useLocale } from '@vue-cesium/composables'\nimport { drawingEmit } from '@vue-cesium/utils/emits'\nimport { VcDrawingsProps } from '..'\nimport { cloneDeep, isEqual, 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: 'VcDrawings',\n props: drawingsProps,\n emits: emits,\n setup(props: VcDrawingsProps, ctx) {\n // state\n const instance = getCurrentInstance() as VcComponentInternalInstance\n instance.cesiumClass = 'VcDrawings'\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 const fabActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.fabActionOpts, props.fabActionOpts))\n const pointActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.pointActionOpts, mergeActionOpts('pointActionOpts')))\n const pointDrawingOpts = reactive<VcDrawingOpts>(merge(cloneDeep(defaultOptions.pointDrawingOpts), props.pointDrawingOpts))\n const polylineActionOpts = reactive<VcActionTooltipProps>(\n Object.assign({}, defaultOptions.polylineActionOpts, mergeActionOpts('polylineActionOpts'))\n )\n const polylineDrawingOpts = reactive<VcDrawingOpts>(merge(cloneDeep(defaultOptions.polylineDrawingOpts), props.polylineDrawingOpts))\n const polygonActionOpts = reactive<VcActionTooltipProps>(\n Object.assign({}, defaultOptions.polygonActionOpts, mergeActionOpts('polygonActionOpts'))\n )\n const polygonDrawingOpts = reactive<VcDrawingOpts>(merge(cloneDeep(defaultOptions.polygonDrawingOpts), props.polygonDrawingOpts))\n const rectangleActionOpts = reactive<VcActionTooltipProps>(\n Object.assign({}, defaultOptions.rectangleActionOpts, mergeActionOpts('rectangleActionOpts'))\n )\n const rectangleDrawingOpts = reactive<VcDrawingOpts>(merge(cloneDeep(defaultOptions.rectangleDrawingOpts), props.rectangleDrawingOpts))\n const circleActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.circleActionOpts, mergeActionOpts('circleActionOpts')))\n const circleDrawingOpts = reactive<VcDrawingOpts>(merge(cloneDeep(defaultOptions.circleDrawingOpts), props.circleDrawingOpts))\n const regularActionOpts = reactive<VcActionTooltipProps>(\n Object.assign({}, defaultOptions.regularActionOpts, mergeActionOpts('regularActionOpts'))\n )\n const regularDrawingOpts = reactive<VcDrawingOpts>(merge(cloneDeep(defaultOptions.regularDrawingOpts), props.regularDrawingOpts))\n const pinActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.pinActionOpts, mergeActionOpts('pinActionOpts')))\n const pinDrawingOpts = reactive<VcDrawingOpts>(merge(cloneDeep(defaultOptions.pinDrawingOpts), props.pinDrawingOpts))\n\n options.pointActionOpts = pointActionOpts\n options.pointDrawingOpts = pointDrawingOpts\n options.polylineActionOpts = polylineActionOpts\n options.polylineDrawingOpts = polylineDrawingOpts\n options.polygonActionOpts = polygonActionOpts\n options.polygonDrawingOpts = polygonDrawingOpts\n options.rectangleActionOpts = rectangleActionOpts\n options.rectangleDrawingOpts = rectangleDrawingOpts\n options.circleActionOpts = circleActionOpts\n options.circleDrawingOpts = circleDrawingOpts\n options.regularActionOpts = regularActionOpts\n options.regularDrawingOpts = regularDrawingOpts\n options.pinActionOpts = pinActionOpts\n options.pinDrawingOpts = pinDrawingOpts\n options.clearActionOpts = clearActionOpts\n\n const drawingActionInstances = computed<Array<VcDrawingActionInstance>>(() => {\n return props.drawings.map(drawing => ({\n name: drawing,\n type: 'drawing',\n actionStyle: {\n background: options[`${camelize(drawing)}ActionOpts`].color,\n color: options[`${camelize(drawing)}ActionOpts`].textColor\n },\n actionClass: `vc-draw-${drawing} vc-draw-button`,\n actionRef: ref<VcFabActionRef>(null!),\n actionOpts: options[`${camelize(drawing)}ActionOpts`] as VcActionTooltipProps,\n cmp: getDrawingCmp(drawing),\n cmpRef: ref<DrawingActionCmpRef>(null!),\n cmpOpts: options[`${camelize(drawing)}DrawingOpts`] as VcDrawingOpts,\n tip: options[`${camelize(drawing)}ActionOpts`].tooltip.tip || t(`vc.drawing.${camelize(drawing)}.tip`),\n isActive: false\n }))\n })\n\n function getDrawingCmp(name) {\n switch (name) {\n case 'pin':\n return VcDrawingPin\n case 'point':\n return VcDrawingPoint\n case 'polyline':\n return VcDrawingPolyline\n case 'polygon':\n return VcDrawingPolygon\n case 'rectangle':\n if (rectangleDrawingOpts.regular) {\n return VcDrawingRegular\n } else {\n return VcDrawingRectangle\n }\n case 'circle':\n case 'regular':\n return VcDrawingRegular\n default:\n return void 0\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, 'drawing')?.renderContent\n }\n})\n\nexport { VcDrawingPin, VcDrawingPoint, VcDrawingPolygon, VcDrawingPolyline, VcDrawingRectangle, VcDrawingRegular, drawingsProps }\n\nexport type { VcDrawingsProps } from './defaultProps'\nexport type VcDrawingsEmits = typeof emits\nexport type VcDrawingsSlots = {\n /**\n * body slot content of the component\n */\n body: (drawingActionInstances: Array<VcDrawingActionInstance>) => VNode[]\n}\nexport interface VcDrawingsRef extends VcComponentPublicInstance<VcDrawingsProps> {\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"],"names":[],"mappings":"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"}