{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/analyses/src/index.ts"],"sourcesContent":["/*\n * @Author: zouyaoji@https://github.com/zouyaoji\n * @Date: 2022-01-06 10:23:09\n * @LastEditTime: 2022-02-18 23:45:13\n * @LastEditors: zouyaoji\n * @Description:\n * @FilePath: \\vue-cesium@next\\packages\\components\\analyses\\src\\index.ts\n */\n\nimport { VcActionTooltipProps, VcComponentInternalInstance, VcReadyObject } from '@vue-cesium/utils/types'\nimport { defineComponent, ExtractPropTypes, getCurrentInstance, reactive, ref, VNode } from 'vue'\nimport { useLocale } from '@vue-cesium/composables'\nimport { clearActionDefault } from '@vue-cesium/composables/use-drawing/defaultOpts'\nimport {\n  defaultOptions,\n  analysesProps,\n  mainFabDefault,\n  sightlineAnalysisActionDefault,\n  sightlineAnalysisDefault,\n  viewshedAnalysisActionDefault\n} from './defaultProps'\nimport {\n  AnalysisActionCmpOpts,\n  AnalysisActionCmpRef,\n  AnalysisActionOpts,\n  VcDrawingActionInstance,\n  VcDrawingActiveEvt,\n  VcDrawingDrawEvt,\n  VcDrawingEditorEvt,\n  VcDrawingMouseEvt,\n  VcDrawingOpts,\n  VcViewshedAnalysisOpts\n} from '@vue-cesium/utils/drawing-types'\nimport { camelize } from '@vue-cesium/utils/util'\nimport { VcFabAction, VcFabProps } from '@vue-cesium/components/ui'\nimport useDrawingFab from '@vue-cesium/composables/use-drawing/use-drawing-fab'\nimport VcAnalysisSightline from './sightline'\nimport VcAnalysisViewshed from './viewshed'\nimport { drawingEmit } from '@vue-cesium/utils/emits'\n\nconst emits = {\n  ...drawingEmit,\n  fabUpdated: (value: boolean) => true\n}\nexport default defineComponent({\n  name: 'VcAnalyses',\n  props: analysesProps,\n  emits: emits,\n  setup(props: ExtractPropTypes<typeof analysesProps>, ctx) {\n    // state\n    const instance = getCurrentInstance() as VcComponentInternalInstance\n    instance.cesiumClass = 'VcAnalyses'\n    const { t } = useLocale()\n\n    const options: any = {}\n    // computed\n    const clearActionOpts = reactive<typeof clearActionDefault>(Object.assign({}, defaultOptions.clearActionOpts, props.clearActionOpts))\n    const mainFabOpts = reactive<typeof mainFabDefault>(Object.assign({}, defaultOptions.mainFabOpts, props.mainFabOpts))\n\n    const sightlineActionOpts = reactive<typeof sightlineAnalysisActionDefault>(\n      Object.assign({}, defaultOptions.sightlineActionOpts, props.sightlineActionOpts)\n    )\n    const sightlineAnalysisOpts = reactive<typeof sightlineAnalysisDefault>(\n      Object.assign({}, defaultOptions.sightlineAnalysisOpts, props.sightlineAnalysisOpts)\n    )\n\n    const viewshedActionOpts = reactive<typeof viewshedAnalysisActionDefault>(\n      Object.assign({}, defaultOptions.viewshedActionOpts, props.viewshedActionOpts)\n    )\n    const viewshedAnalysisOpts = reactive<typeof sightlineAnalysisDefault>(\n      Object.assign({}, defaultOptions.viewshedAnalysisOpts, props.viewshedAnalysisOpts)\n    )\n\n    options.sightlineActionOpts = sightlineActionOpts\n    options.sightlineAnalysisOpts = sightlineAnalysisOpts\n    options.viewshedActionOpts = viewshedActionOpts\n    options.viewshedAnalysisOpts = viewshedAnalysisOpts\n    options.clearActionOpts = clearActionOpts\n\n    const drawingActionInstances: Array<VcDrawingActionInstance> = props.analyses.map(analysisName => ({\n      name: analysisName,\n      type: 'analysis',\n      actionStyle: {\n        background: options[`${camelize(analysisName)}ActionOpts`].color,\n        color: options[`${camelize(analysisName)}ActionOpts`].textColor\n      },\n      actionClass: `vc-analysis-${analysisName} vc-analysis-button${\n        analysisName === (instance.proxy as any).selectedDrawingActionInstance?.name ? ' active' : ''\n      }`,\n      actionRef: ref<typeof VcFabAction>(null!),\n      actionOpts: options[`${camelize(analysisName)}ActionOpts`] as AnalysisActionOpts,\n      cmp: getDrawingCmp(analysisName),\n      cmpRef: ref<AnalysisActionCmpRef>(null!),\n      cmpOpts: options[`${camelize(analysisName)}AnalysisOpts`] as AnalysisActionCmpOpts,\n      tip: options[`${camelize(analysisName)}ActionOpts`].tooltip.tip || t(`vc.analysis.${camelize(analysisName)}.tip`),\n      isActive: false\n    }))\n\n    function getDrawingCmp(name) {\n      switch (name) {\n        case 'sightline':\n          return VcAnalysisSightline\n        case 'viewshed':\n          return VcAnalysisViewshed\n        default:\n          return void 0\n      }\n    }\n\n    return useDrawingFab(props, ctx, instance, drawingActionInstances, mainFabOpts, clearActionOpts, 'analysis')?.renderContent\n  }\n})\n\nexport { VcAnalysisSightline, VcAnalysisViewshed, analysesProps }\n\n// export type { VcAnalysesProps } from './defaultProps'\nexport type VcAnalysesEmits = typeof emits\n\nexport type VcAnalysesProps = {\n  /**\n   * Specify the position of the VcAnalyses.\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 VcAnalyses horizontally and vertically in pixels.\n   * Default value: [0, 0]\n   */\n  offset?: [number, number]\n  /**\n   * Specify whether the analysis 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 analysis instances to load.\n   * Default value: ['sightline', 'viewshed']\n   */\n  analyses?: Array<'sightline' | 'viewshed'>\n  /**\n   * Specify the color when the analysis instance is activated.\n   * Default value: positive\n   */\n  activeColor?: string\n  /**\n   * Specify whether the analysis result can be edited.\n   * Default value: false\n   */\n  editable?: boolean\n  /**\n   * Specify the style options of the floating action button of the VcAnalyses component.\n   */\n  mainFabOpts?: VcActionTooltipProps & VcFabProps\n  /**\n   * Specify the style options of the sightline analysis action button.\n   */\n  sightlineActionOpts?: VcActionTooltipProps\n  /**\n   * Specify sightline analysis options.\n   */\n  sightlineAnalysisOpts?: VcDrawingOpts\n  /**\n   * Specify the style options of the viewshed analysis action button.\n   */\n  viewshedActionOpts?: VcActionTooltipProps\n  /**\n   * Specify viewshed analysis options.\n   */\n  viewshedAnalysisOpts?: VcViewshedAnalysisOpts\n  /**\n   * Specify the style options of the clear action button.\n   */\n  clearActionOpts?: VcActionTooltipProps\n  /**\n   * Triggers before the VcCompass is loaded.\n   */\n  onBeforeLoad?: (instance: VcComponentInternalInstance) => void\n  /**\n   * Triggers when the VcCompass is successfully loaded.\n   */\n  onReady?: (readyObject: VcReadyObject) => void\n  /**\n   * Triggers when the VcCompass is destroyed.\n   */\n  onDestroyed?: (instance: VcComponentInternalInstance) => void\n  /**\n   * Triggers when the analysis action is actived.\n   */\n  onActiveEvt?: (evt: VcDrawingActiveEvt, viewer: Cesium.Viewer) => void\n  /**\n   * \tTriggers when drawing.\n   */\n  onDrawEvt?: (evt: VcDrawingDrawEvt, 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\nexport type VcAnalysesSlots = {\n  /**\n   * body slot content of the component\n   */\n  body: () => VNode[]\n}\n"],"names":[],"mappings":"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"}