{"version":3,"file":"defaultProps.mjs","sources":["../../../../../../packages/components/measurements/src/defaultProps.ts"],"sourcesContent":["/*\n * @Author: zouyaoji@https://github.com/zouyaoji\n * @Date: 2021-10-13 09:21:13\n * @LastEditTime: 2022-06-24 16:56:16\n * @LastEditors: zouyaoji\n * @Description:\n * @FilePath: \\vue-cesium@next\\packages\\components\\measurements\\src\\defaultProps.ts\n */\nimport { getDefaultOptionByProps } from 'casc-cesium-utils/util'\nimport type { PropType } from 'vue'\nimport { MeasureUnits } from 'casc-cesium-shared'\nimport {\n  actionOptions,\n  circleDrawingActionDefault,\n  editorOptsDefault,\n  labelOptsDefault,\n  pointDrawingDefault,\n  pointOptsDefault,\n  polygonDrawingDefault,\n  polylineDrawingDefault,\n  polylineOptsDefault,\n  polylinePrimitiveOptsDefault,\n  regularDrawingActionDefault,\n  segmentDrawingDefault\n} from 'casc-cesium-composables/use-drawing/defaultOpts'\nimport { useDrawingFabProps } from 'casc-cesium-composables/use-drawing/props'\nimport type { VcFabProps } from '../../ui'\nimport type { VcActionTooltipProps, VcComponentInternalInstance, VcReadyObject } from 'casc-cesium-utils/types'\nimport type { VcLabelProps } from '../../primitive-collections'\nimport type {\n  VcComponentDistanceMeasurementOpts,\n  VcDrawingActiveEvt,\n  VcDrawingDrawEvt,\n  VcDrawingEditorEvt,\n  VcDrawingMouseEvt,\n  VcHorizontalMeasurementOpts,\n  VcMeasurementOpts,\n  VcPointDrawing,\n  VcPolylineDrawing,\n  VcPolylineMeasurementOpts,\n  VcRegularMeasurementOpts,\n  VcSegmentDrawing\n} from 'casc-cesium-utils/drawing-types'\n\nconst distanceMeasurementActionDefault: VcActionTooltipProps = Object.assign({}, actionOptions, {\n  icon: 'vc-icons-measure-distance'\n})\n\nconst distanceMeasurementDefault: VcMeasurementOpts = Object.assign({}, segmentDrawingDefault, {\n  labelOpts: Object.assign({}, labelOptsDefault, {\n    horizontalOrigin: 1, // left\n    verticalOrigin: -1, // top\n    pixelOffset: [10, 10]\n  }) as VcLabelProps,\n  measureUnits: new MeasureUnits(),\n  decimals: {\n    distance: 2,\n    angle: 2\n  },\n  locale: undefined,\n  autoUpdateLabelPosition: true\n})\n\nconst componentDistanceMeasurementActionDefault: VcActionTooltipProps = Object.assign({}, actionOptions, {\n  icon: 'vc-icons-measure-component-distance'\n})\n\nconst componentDistanceMeasurementDefault: VcComponentDistanceMeasurementOpts = Object.assign({}, distanceMeasurementDefault, {\n  showComponentLines: true,\n  xLabelOpts: labelOptsDefault,\n  xAngleLabelOpts: Object.assign({}, labelOptsDefault, {\n    horizontalOrigin: 1, // left\n    verticalOrigin: 0, // center\n    pixelOffset: [9, 0]\n  }),\n  yLabelOpts: Object.assign({}, labelOptsDefault, {\n    horizontalOrigin: -1, // right\n    pixelOffset: [-9, 0]\n  }),\n  yAngleLabelOpts: Object.assign({}, labelOptsDefault, {\n    verticalOrigin: -1, // top\n    pixelOffset: [0, 9]\n  })\n})\n\nconst polylineMeasurementActionDefault: VcActionTooltipProps = Object.assign({}, actionOptions, {\n  icon: 'vc-icons-measure-polyline-distance'\n})\n\nconst polylineMeasurementDefault: VcPolylineMeasurementOpts = Object.assign({}, polylineDrawingDefault, {\n  measureUnits: new MeasureUnits(),\n  labelOpts: labelOptsDefault,\n  labelsOpts: Object.assign({}, labelOptsDefault, {\n    scale: 0.8,\n    horizontalOrigin: 1, // left\n    verticalOrigin: -1, // tOP,\n    pixelOffset: [5, 5]\n  }),\n  decimals: {\n    distance: 2,\n    angle: 2\n  },\n  showLabel: true,\n  showAngleLabel: true,\n  showDistanceLabel: true,\n  locale: undefined,\n  loop: false,\n  autoUpdateLabelPosition: true\n})\n\nconst horizontalMeasurementActionDefault: VcActionTooltipProps = Object.assign({}, actionOptions, {\n  icon: 'vc-icons-measure-horizontal-distance'\n})\n\nconst horizontalMeasurementDefault: VcHorizontalMeasurementOpts = Object.assign({}, polylineMeasurementDefault, {\n  dashLineOpts: {\n    width: 2\n  },\n  dashLinePrimitiveOpts: Object.assign({}, polylinePrimitiveOptsDefault, {\n    appearance: {\n      type: 'PolylineMaterialAppearance',\n      options: {\n        material: {\n          fabric: {\n            type: 'PolylineDash',\n            uniforms: {\n              color: [255, 255, 0, 255]\n            }\n          }\n        }\n      }\n    },\n    depthFailAppearance: {\n      type: 'PolylineMaterialAppearance',\n      options: {\n        material: {\n          fabric: {\n            type: 'PolylineDash',\n            uniforms: {\n              color: [255, 255, 0, 255]\n            }\n          }\n        }\n      }\n    }\n  }),\n  labelOpts: Object.assign({}, labelOptsDefault, {\n    horizontalOrigin: 1,\n    verticalOrigin: 1,\n    pixelOffset: [10, -10]\n  }),\n  labelsOpts: Object.assign({}, labelOptsDefault, {\n    scale: 0.8,\n    horizontalOrigin: 1, // left\n    verticalOrigin: -1, // tOP,\n    pixelOffset: [5, 5]\n  }),\n  showDashedLine: true\n})\n\nconst verticalMeasurementActionDefault: VcActionTooltipProps = Object.assign({}, actionOptions, {\n  icon: 'vc-icons-measure-vertical-distance'\n})\n\nconst verticalMeasurementDefault: VcMeasurementOpts = Object.assign({}, segmentDrawingDefault, {\n  labelOpts: Object.assign({}, labelOptsDefault, {\n    horizontalOrigin: 1, // left\n    verticalOrigin: -1, // top\n    pixelOffset: [10, 10]\n  }),\n  measureUnits: new MeasureUnits(),\n  decimals: {\n    distance: 2,\n    angle: 2\n  },\n  locale: undefined,\n  autoUpdateLabelPosition: true\n})\n\nconst heightMeasurementActionDefault: VcActionTooltipProps = Object.assign({}, actionOptions, {\n  icon: 'vc-icons-measure-height-from-terrain'\n})\n\nconst heightMeasurementDefault: VcMeasurementOpts = Object.assign({}, pointDrawingDefault, {\n  polylineOpts: polylineOptsDefault,\n  labelOpts: Object.assign({}, labelOptsDefault, {\n    horizontalOrigin: 1, // left\n    verticalOrigin: -1, // top\n    pixelOffset: [10, 10]\n  }),\n  editorOpts: {\n    pixelOffset: [16, -8],\n    delay: 1000,\n    hideDelay: 1000,\n    move: Object.assign({}, editorOptsDefault),\n    removeAll: Object.assign({}, editorOptsDefault, {\n      icon: 'vc-icons-delete'\n    })\n  },\n  measureUnits: new MeasureUnits(),\n  decimals: {\n    distance: 2\n  },\n  locale: undefined,\n  primitiveOpts: polylinePrimitiveOptsDefault\n})\n\nconst areaMeasurementActionDefault: VcActionTooltipProps = Object.assign({}, actionOptions, {\n  icon: 'vc-icons-measure-area'\n})\n\nconst areaMeasurementDefault: VcPolylineMeasurementOpts = Object.assign({}, polygonDrawingDefault, {\n  labelOpts: labelOptsDefault,\n  labelsOpts: Object.assign({}, labelOptsDefault, {\n    scale: 0.8,\n    horizontalOrigin: 1, // left\n    verticalOrigin: -1, // tOP,\n    pixelOffset: [5, 5]\n  }),\n  showDistanceLabel: true,\n  showAngleLabel: true,\n  showLabel: true,\n  measureUnits: new MeasureUnits(),\n  decimals: {\n    area: 2,\n    distance: 2,\n    angle: 2\n  },\n  loop: true,\n  locale: undefined,\n  autoUpdateLabelPosition: true\n})\n\nconst pointMeasurementActionDefault: VcActionTooltipProps = Object.assign({}, actionOptions, {\n  icon: 'vc-icons-measure-point-coordinates'\n})\n\nconst pointMeasurementDefault: VcMeasurementOpts = Object.assign({}, pointDrawingDefault, {\n  heightReference: 1, // 0: NONE, 1: CLAMP_TO_GROUND\n  measureUnits: new MeasureUnits(),\n  drawtip: {\n    show: true,\n    pixelOffset: [32, 48]\n  },\n  labelOpts: Object.assign({}, labelOptsDefault, {\n    horizontalOrigin: 1, // left\n    verticalOrigin: 0, // center\n    pixelOffset: [10, 0]\n  }),\n  decimals: {\n    lng: 6,\n    lat: 6,\n    height: 2,\n    slope: 3\n  },\n  locale: undefined,\n  showLabel: true\n})\n\nconst rectangleMeasurementActionDefault: VcActionTooltipProps = Object.assign({}, actionOptions, {\n  icon: 'vc-icons-drawing-rectangle'\n})\n\nconst rectangleMeasurementDefault: VcRegularMeasurementOpts = Object.assign({}, areaMeasurementDefault, {\n  pointOpts: Object.assign({}, pointOptsDefault, {\n    show: false\n  }),\n  drawtip: {\n    show: true,\n    pixelOffset: [32, 32]\n  },\n  editorOpts: {\n    pixelOffset: [16, -8],\n    delay: 1000,\n    hideDelay: 1000,\n    move: Object.assign({}, editorOptsDefault),\n    removeAll: Object.assign({}, editorOptsDefault, {\n      icon: 'vc-icons-delete'\n    })\n  },\n  edge: 4,\n  loop: false,\n  showAngleLabel: false\n})\n\nconst regularMeasurementDefault: VcRegularMeasurementOpts = Object.assign({}, rectangleMeasurementDefault, {\n  edge: 6,\n  loop: true\n})\n\nconst circleMeasurementDefault: VcRegularMeasurementOpts = Object.assign({}, rectangleMeasurementDefault, {\n  edge: 360,\n  loop: true,\n  showDistanceLabel: false,\n  showAngleLabel: false\n})\n\nconst mainFabDefault = Object.assign({}, actionOptions, {\n  direction: 'right',\n  icon: 'vc-icons-measurement-button',\n  activeIcon: 'vc-icons-measurement-button',\n  verticalActionsAlign: 'center',\n  hideIcon: false,\n  persistent: false,\n  modelValue: true,\n  hideActionOnClick: false,\n  color: 'info'\n} as VcFabProps)\n\nexport const measurementType = [\n  'distance',\n  'component-distance',\n  'polyline',\n  'horizontal',\n  'vertical',\n  'height',\n  'area',\n  'point',\n  'rectangle',\n  'regular',\n  'circle'\n]\nconst isValidMeasurementType = (measurements: string[]) => {\n  let flag = true\n  measurements.forEach(measurement => {\n    if (!measurementType.includes(measurement)) {\n      console.error(`VueCesium: unknown measurement type: ${measurement}`)\n      flag = false\n    }\n  })\n  return flag\n}\n\nconst measurementsProps = {\n  ...useDrawingFabProps,\n  measurements: {\n    type: Array as PropType<\n      Array<\n        'distance' | 'component-distance' | 'polyline' | 'horizontal' | 'vertical' | 'height' | 'area' | 'point' | 'rectangle' | 'regular' | 'circle'\n      >\n    >,\n    default: () => measurementType,\n    validator: isValidMeasurementType\n  },\n  mainFabOpts: {\n    type: Object as PropType<VcActionTooltipProps & VcFabProps>,\n    default: () => mainFabDefault\n  },\n  distanceActionOpts: {\n    type: Object as PropType<VcActionTooltipProps>,\n    default: () => distanceMeasurementActionDefault\n  },\n  distanceMeasurementOpts: {\n    type: Object as PropType<VcMeasurementOpts>,\n    default: () => distanceMeasurementDefault\n  },\n  componentDistanceActionOpts: {\n    type: Object as PropType<VcActionTooltipProps>,\n    default: () => componentDistanceMeasurementActionDefault\n  },\n  componentDistanceMeasurementOpts: {\n    type: Object as PropType<VcComponentDistanceMeasurementOpts>,\n    default: () => componentDistanceMeasurementDefault\n  },\n  polylineActionOpts: {\n    type: Object as PropType<VcActionTooltipProps>,\n    default: () => polylineMeasurementActionDefault\n  },\n  polylineMeasurementOpts: {\n    type: Object as PropType<VcPolylineMeasurementOpts>,\n    default: () => polylineMeasurementDefault\n  },\n  horizontalActionOpts: {\n    type: Object as PropType<VcActionTooltipProps>,\n    default: () => horizontalMeasurementActionDefault\n  },\n  horizontalMeasurementOpts: {\n    type: Object as PropType<VcHorizontalMeasurementOpts>,\n    default: () => horizontalMeasurementDefault\n  },\n  verticalActionOpts: {\n    type: Object as PropType<VcActionTooltipProps>,\n    default: () => verticalMeasurementActionDefault\n  },\n  verticalMeasurementOpts: {\n    type: Object as PropType<VcMeasurementOpts>,\n    default: () => verticalMeasurementDefault\n  },\n  heightActionOpts: {\n    type: Object as PropType<VcActionTooltipProps>,\n    default: () => heightMeasurementActionDefault\n  },\n  heightMeasurementOpts: {\n    type: Object as PropType<VcMeasurementOpts>,\n    default: () => heightMeasurementDefault\n  },\n  areaActionOpts: {\n    type: Object as PropType<VcActionTooltipProps>,\n    default: () => areaMeasurementActionDefault\n  },\n  areaMeasurementOpts: {\n    type: Object as PropType<VcPolylineMeasurementOpts>,\n    default: () => areaMeasurementDefault\n  },\n  pointActionOpts: {\n    type: Object as PropType<VcActionTooltipProps>,\n    default: () => pointMeasurementActionDefault\n  },\n  pointMeasurementOpts: {\n    type: Object as PropType<VcMeasurementOpts>,\n    default: () => pointMeasurementDefault\n  },\n  rectangleActionOpts: {\n    type: Object as PropType<VcActionTooltipProps>,\n    default: () => rectangleMeasurementActionDefault\n  },\n  rectangleMeasurementOpts: {\n    type: Object as PropType<VcRegularMeasurementOpts>,\n    default: () => rectangleMeasurementDefault\n  },\n  regularActionOpts: {\n    type: Object as PropType<VcActionTooltipProps>,\n    default: () => regularDrawingActionDefault\n  },\n  regularMeasurementOpts: {\n    type: Object as PropType<VcRegularMeasurementOpts>,\n    default: () => regularMeasurementDefault\n  },\n  circleActionOpts: {\n    type: Object as PropType<VcActionTooltipProps>,\n    default: () => circleDrawingActionDefault\n  },\n  circleMeasurementOpts: {\n    type: Object as PropType<VcRegularMeasurementOpts>,\n    default: () => circleMeasurementDefault\n  }\n}\n\nconst defaultOptions = getDefaultOptionByProps<VcMeasurementsProps>(measurementsProps)\n\nexport {\n  measurementsProps,\n  defaultOptions,\n  distanceMeasurementActionDefault,\n  distanceMeasurementDefault,\n  componentDistanceMeasurementActionDefault,\n  componentDistanceMeasurementDefault,\n  polylineMeasurementActionDefault,\n  polylineMeasurementDefault,\n  horizontalMeasurementActionDefault,\n  horizontalMeasurementDefault,\n  verticalMeasurementActionDefault,\n  verticalMeasurementDefault,\n  heightMeasurementActionDefault,\n  heightMeasurementDefault,\n  areaMeasurementActionDefault,\n  areaMeasurementDefault,\n  pointMeasurementActionDefault,\n  pointMeasurementDefault,\n  rectangleMeasurementActionDefault,\n  rectangleMeasurementDefault,\n  regularMeasurementDefault,\n  circleMeasurementDefault,\n  mainFabDefault\n}\n\nexport type VcMeasurementsProps = {\n  /**\n   * Specify the position of the VcMeasurements.\n   * Default value: bottom-left\n   */\n  position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top' | 'right' | 'bottom' | 'left'\n  /**\n   * An array of two numbers to offset the VcMeasurements horizontally and vertically in pixels.\n   * Default value: [0, 0]\n   */\n  offset?: [number, number]\n  /**\n   * Specify whether the measurement result is visible.\n   * Default value: true\n   */\n  show?: boolean\n  /**\n   * Specify the interactive drawing mode, 0 means continuous drawing, and 1 means drawing ends once.\n   * Default value: 1\n   */\n  mode?: number\n  /**\n   * Specify which measurement instances to load.\n   * Default value: ['distance', 'component-distance', 'polyline', 'horizontal', 'vertical', 'height', 'area', 'point', 'rectangle', 'regular', 'circle']\n   */\n  measurements?: Array<\n    'distance' | 'component-distance' | 'polyline' | 'horizontal' | 'vertical' | 'height' | 'area' | 'point' | 'rectangle' | 'regular' | 'circle'\n  >\n  /**\n   * Specify the color when the measurement instance is activated.\n   * Default value: positive\n   */\n  activeColor?: string\n  /**\n   * Specify whether the measurement result can be edited.\n   * Default value: false\n   */\n  editable?: boolean\n  /**\n   * Specify whether the drawing result object is attached to the ground or 3dtiles. Only polyline and polygon objects work.\n   * Default value: false\n   */\n  clampToGround?: boolean\n  /**\n   * Specify the style options of the floating action button of the VcMeasurements component.\n   */\n  mainFabOpts?: VcActionTooltipProps & VcFabProps\n  /**\n   * Specify the style options of the distance measurement action button.\n   */\n  distanceActionOpts?: VcActionTooltipProps\n  /**\n   * Specify distance measurement options.\n   */\n  distanceMeasurementOpts?: VcMeasurementOpts\n  /**\n   * Specify the style options of the component distance measurement action button.\n   */\n  componentDistanceActionOpts?: VcActionTooltipProps\n  /**\n   * Specify the component distance measurement options.\n   */\n  componentDistanceMeasurementOpts?: VcMeasurementOpts\n  /**\n   * Specify the style options of the polyline distance measurement action button.\n   */\n  polylineActionOpts?: VcActionTooltipProps\n  /**\n   * Specify the polyline distance measurement options.\n   */\n  polylineMeasurementOpts?: VcMeasurementOpts\n  /**\n   * Specify the style options of the horizontal distance measurement action button.\n   */\n  horizontalActionOpts?: VcActionTooltipProps\n  /**\n   * Specify the horizontal distance measurement options.\n   */\n  horizontalMeasurementOpts?: VcMeasurementOpts\n  /**\n   * Specify the style options of the vertical distance measurement action button.\n   */\n  verticalActionOpts?: VcActionTooltipProps\n  /**\n   * Specify the vertical distance measurement options.\n   */\n  verticalMeasurementOpts?: VcMeasurementOpts\n  /**\n   * Specify the style options of the height measurement action button.\n   */\n  heightActionOpts?: VcActionTooltipProps\n  /**\n   * Specify the height measurement options.\n   */\n  heightMeasurementOpts?: VcMeasurementOpts\n  /**\n   * Specify the style options of the area measurement action button.\n   */\n  areaActionOpts?: VcActionTooltipProps\n  /**\n   * Specify the area measurement options.\n   */\n  areaMeasurementOpts?: VcMeasurementOpts\n  /**\n   * Specify the style options of the point measurement action button.\n   */\n  pointActionOpts?: VcActionTooltipProps\n  /**\n   * Specify the point measurement options.\n   */\n  pointMeasurementOpts?: VcMeasurementOpts\n  /**\n   * Specify the style options of the rectangle measurement action button.\n   */\n  rectangleActionOpts?: VcActionTooltipProps\n  /**\n   * Specify the rectangle measurement options.\n   */\n  rectangleMeasurementOpts?: VcMeasurementOpts\n  /**\n   * Specify the style options of the circle measurement action button.\n   */\n  circleActionOpts?: VcActionTooltipProps\n  /**\n   * Specify the circle measurement options.\n   */\n  circleMeasurementOpts?: VcMeasurementOpts\n  /**\n   * Specify the style options of the regular measurement action button.\n   */\n  regularActionOpts?: VcActionTooltipProps\n  /**\n   * Specify the regular measurement options.\n   */\n  regularMeasurementOpts?: VcMeasurementOpts\n  /**\n   * Specify the style options of the clear action button.\n   */\n  clearActionOpts?: VcActionTooltipProps\n  /**\n   * Triggers before the VcMeasurements is loaded.\n   */\n  onBeforeLoad?: (instance: VcComponentInternalInstance) => void\n  /**\n   * Triggers when the VcMeasurements 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 VcMeasurements is destroyed.\n   */\n  onDestroyed?: (instance: VcComponentInternalInstance) => void\n  /**\n   * Triggers when the measurement action is actived.\n   */\n  onActiveEvt?: (evt: VcDrawingActiveEvt, viewer: Cesium.Viewer) => void\n  /**\n   * \tTriggers when drawing.\n   */\n  onDrawEvt?: (evt: VcDrawingDrawEvt<VcPolylineDrawing | VcSegmentDrawing | VcPointDrawing>, 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   * Triggers when the floating button is expanded or collapsed.\n   */\n  onFabUpdated?: (value: boolean) => void\n}\n"],"names":[],"mappings":"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"}