{"version":3,"file":"index.mjs","sources":["../../../../../../../packages/components/measurements/src/polyline/index.ts"],"sourcesContent":["/*\n * @Author: zouyaoji@https://github.com/zouyaoji\n * @Date: 2021-10-11 09:17:23\n * @LastEditTime: 2022-06-24 16:58:39\n * @LastEditors: zouyaoji\n * @Description:\n * @FilePath: \\vue-cesium@next\\packages\\components\\measurements\\src\\polyline\\index.ts\n */\nimport { ComputedRef, defineComponent, Ref } from 'vue'\nimport useDrawingPolyline from 'casc-cesium-composables/use-drawing/use-drawing-polyline'\nimport { useDrawingActionProps } from 'casc-cesium-composables/use-drawing/props'\nimport type { PropType } from 'vue'\nimport { MeasureUnits } from 'casc-cesium-shared'\nimport type { VcLabelProps, VcPointProps } from '../../../primitive-collections'\nimport type { VcGeometryPolylineProps } from '../../../geometries'\nimport { drawingEmit } from 'casc-cesium-utils/emits'\nimport type { VcPrimitiveGroundPolylineProps, VcPrimitiveProps } from '../../../primitives'\nimport {\n  MeasurementDecimals,\n  VcDrawingDrawEvt,\n  VcDrawingEditorEvt,\n  VcDrawingMouseEvt,\n  VcDrawingPreRenderDatas,\n  VcDrawTipOpts,\n  VcEditorOpts,\n  VcPolylineDrawing\n} from 'casc-cesium-utils/drawing-types'\nimport { VcComponentInternalInstance, VcComponentPublicInstance, VcReadyObject } from 'casc-cesium-utils/types'\n\nexport default defineComponent({\n  name: 'VcMeasurementPolyline',\n  props: {\n    ...useDrawingActionProps,\n    polylineOpts: Object as PropType<VcGeometryPolylineProps>,\n    primitiveOpts: Object as PropType<VcPrimitiveProps & VcPrimitiveGroundPolylineProps>,\n    loop: Boolean,\n    clampToGround: Boolean,\n    measureUnits: Object as PropType<MeasureUnits>,\n    labelOpts: Object as PropType<VcLabelProps>,\n    labelsOpts: Object as PropType<VcLabelProps>,\n    locale: String,\n    decimals: Object as PropType<MeasurementDecimals>,\n    showLabel: Boolean,\n    showAngleLabel: Boolean,\n    showDistanceLabel: Boolean,\n    autoUpdateLabelPosition: Boolean\n  },\n  emits: drawingEmit,\n  setup(props, ctx) {\n    // state\n    return useDrawingPolyline(props, ctx, 'VcMeasurementPolyline')\n  }\n})\n\nexport type VcMeasurementPolylineProps = {\n  /**\n   * Specify whether to respond to mouse pick events.\n   */\n  enableMouseEvent?: boolean\n  /**\n   * Specify Whether the drawing object is visible.\n   */\n  show?: boolean\n  /**\n   * Specify whether the drawing result can be edited.\n   */\n  editable?: boolean\n  /**\n   * Specify drawing hints.\n   */\n  drawtip?: VcDrawTipOpts\n  /**\n   * Specify parameters for drawing points.\n   */\n  pointOpts?: VcPointProps\n  /**\n   * Specify editor options.\n   */\n  editorOpts?: VcEditorOpts\n  /**\n   * Specify editor mode.\n   */\n  mode?: number\n  /**\n   * Specify prerender datas.\n   */\n  preRenderDatas?: VcDrawingPreRenderDatas\n  /**\n   * Specify the unit of measurement\n   */\n  measureUnits?: MeasureUnits\n  /**\n   * Specify parameters for drawing polylines.\n   */\n  polylineOpts?: VcGeometryPolylineProps\n  /**\n   * Specify parameters for drawing primitives.\n   */\n  primitiveOpts?: VcPrimitiveProps & VcPrimitiveGroundPolylineProps\n  /**\n   * Specify whether a line segment will be added between the last and first line positions to make this line a loop.\n   */\n  loop?: boolean\n  /**\n   * Specify whether the drawing result object is attached to the ground or 3dtiles. Only polyline and polygon objects work.\n   */\n  clampToGround?: boolean\n  /**\n   * Specify parameters for measurement labels.\n   */\n  labelOpts?: VcLabelProps\n  /**\n   * Specify the labelsOpts.\n   */\n  labelsOpts?: VcLabelProps\n  /**\n   * Specify parameters for measurement locale.\n   */\n  locale?: string\n  /**\n   * Specify parameters for measurement decimals.\n   */\n  decimals?: MeasurementDecimals\n  /**\n   * Specify whether to display the label.\n   */\n  showLabel?: boolean\n  /**\n   * Specify whether to display angle labels.\n   */\n  showAngleLabel?: boolean\n  /**\n   * Specify whether to display distance labels.\n   */\n  showDistanceLabel?: boolean\n  /**\n   * Specify whether the depthTest is disabled.\n   * Default value: false\n   */\n  disableDepthTest?: boolean\n  /**\n   * Specify whether to update label position.\n   * Default value: true\n   */\n  autoUpdateLabelPosition?: boolean\n  /**\n   * Triggers before the VcMeasurementPolyline is loaded.\n   */\n  onBeforeLoad?: (instance: VcComponentInternalInstance) => void\n  /**\n   * Triggers when the VcMeasurementPolyline 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 VcMeasurementPolyline is destroyed.\n   */\n  onDestroyed?: (instance: VcComponentInternalInstance) => void\n  /**\n   * \tTriggers when drawing.\n   */\n  onDrawEvt?: (evt: VcDrawingDrawEvt<VcPolylineDrawing>, viewer: Cesium.Viewer) => void\n  /**\n   * Triggers when the editor button is clicked.\n   */\n  onEditorEvt?: (evt: VcDrawingEditorEvt, viewer: Cesium.Viewer) => void\n  /**\n   * Triggers when the mouse is over or out on the drawing point.\n   */\n  onMouseEvt?: (evt: VcDrawingMouseEvt, viewer: Cesium.Viewer) => void\n}\n\nexport interface VcMeasurementPolylineRef extends VcComponentPublicInstance<VcMeasurementPolylineProps> {\n  /**\n   * Get the array of rendering models.\n   */\n  renderDatas?: Ref<VcPolylineDrawing[]>\n  /**\n   * Get the computedRenderDatas.\n   */\n  computedRenderDatas?: ComputedRef<VcPolylineDrawing[]>\n  /**\n   * start a new draw.\n   */\n  startNew: () => void\n  /**\n   * stop drawing.\n   */\n  stop: (removeLatest?: boolean) => void\n  /**\n   * clear and stop drawing.\n   */\n  clear: () => void\n}\n"],"names":[],"mappings":";;;;;AAIA,4BAAe,eAAe,CAAC;AAC/B,EAAE,IAAI,EAAE,uBAAuB;AAC/B,EAAE,KAAK,EAAE;AACT,IAAI,GAAG,qBAAqB;AAC5B,IAAI,YAAY,EAAE,MAAM;AACxB,IAAI,aAAa,EAAE,MAAM;AACzB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,YAAY,EAAE,MAAM;AACxB,IAAI,SAAS,EAAE,MAAM;AACrB,IAAI,UAAU,EAAE,MAAM;AACtB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,QAAQ,EAAE,MAAM;AACpB,IAAI,SAAS,EAAE,OAAO;AACtB,IAAI,cAAc,EAAE,OAAO;AAC3B,IAAI,iBAAiB,EAAE,OAAO;AAC9B,IAAI,uBAAuB,EAAE,OAAO;AACpC,GAAG;AACH,EAAE,KAAK,EAAE,WAAW;AACpB,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;AACpB,IAAI,OAAO,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,uBAAuB,CAAC,CAAC;AACnE,GAAG;AACH,CAAC,CAAC;;;;"}