{"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, deepMerge } 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 } 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      deepMerge(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      deepMerge(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      deepMerge(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      deepMerge(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      deepMerge(cloneDeep(defaultOptions.verticalMeasurementOpts), props.verticalMeasurementOpts)\n    )\n\n    const heightActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.heightActionOpts, mergeActionOpts('heightActionOpts')))\n    const heightMeasurementOpts = reactive<VcMeasurementOpts>(deepMerge(cloneDeep(defaultOptions.heightMeasurementOpts), props.heightMeasurementOpts))\n\n    const areaActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.areaActionOpts, mergeActionOpts('areaActionOpts')))\n    const areaMeasurementOpts = reactive<VcPolylineMeasurementOpts>(\n      deepMerge(cloneDeep(defaultOptions.areaMeasurementOpts), props.areaMeasurementOpts)\n    )\n\n    const pointActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.pointActionOpts, mergeActionOpts('pointActionOpts')))\n    const pointMeasurementOpts = reactive<VcMeasurementOpts>(deepMerge(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      deepMerge(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      deepMerge(cloneDeep(defaultOptions.regularMeasurementOpts), props.regularMeasurementOpts)\n    )\n\n    const circleActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.circleActionOpts, mergeActionOpts('circleActionOpts')))\n    const circleMeasurementOpts = reactive<VcRegularMeasurementOpts>(\n      deepMerge(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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"}