{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/drawings/src/index.ts"],"sourcesContent":["import { defineComponent, getCurrentInstance, ref, ExtractPropTypes, reactive, VNode } from 'vue'\nimport { drawingsProps, defaultOptions } from './defaultProps'\nimport { camelize } from '@vue-cesium/utils/util'\nimport { VcFabAction, VcFabProps } from '@vue-cesium/components/ui'\nimport type { VcActionTooltipProps, VcComponentInternalInstance } 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 {\n  DrawingActionCmpOpts,\n  DrawingActionCmpRef,\n  DrawingActionOpts,\n  VcDrawingActionInstance,\n  VcDrawingOpts\n} 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'\n\nconst emits = {\n  ...drawingEmit,\n  fabUpdated: (value: boolean) => true\n}\nexport default defineComponent({\n  name: 'VcDrawings',\n  props: drawingsProps,\n  emits: emits,\n  setup(props: ExtractPropTypes<typeof drawingsProps>, 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 pointActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.pointActionOpts, props.pointActionOpts))\n    const pointDrawingOpts = reactive<VcDrawingOpts>(Object.assign({}, defaultOptions.pointDrawingOpts, props.pointDrawingOpts))\n    const polylineActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.polylineActionOpts, props.polylineActionOpts))\n    const polylineDrawingOpts = reactive<VcDrawingOpts>(Object.assign({}, defaultOptions.polylineDrawingOpts, props.polylineDrawingOpts))\n    const polygonActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.polygonActionOpts, props.polygonActionOpts))\n    const polygonDrawingOpts = reactive<VcDrawingOpts>(Object.assign({}, defaultOptions.polygonDrawingOpts, props.polygonDrawingOpts))\n    const rectangleActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.rectangleActionOpts, props.rectangleActionOpts))\n    const rectangleDrawingOpts = reactive<VcDrawingOpts>(Object.assign({}, defaultOptions.rectangleDrawingOpts, props.rectangleDrawingOpts))\n    const circleActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.circleActionOpts, props.circleActionOpts))\n    const circleDrawingOpts = reactive<VcDrawingOpts>(Object.assign({}, defaultOptions.circleDrawingOpts, props.circleDrawingOpts))\n    const regularActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.regularActionOpts, props.regularActionOpts))\n    const regularDrawingOpts = reactive<VcDrawingOpts>(Object.assign({}, defaultOptions.regularDrawingOpts, props.regularDrawingOpts))\n    const pinActionOpts = reactive<VcActionTooltipProps>(Object.assign({}, defaultOptions.pinActionOpts, props.pinActionOpts))\n    const pinDrawingOpts = reactive<VcDrawingOpts>(Object.assign({}, 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: Array<VcDrawingActionInstance> = 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${drawing === (instance.proxy as any).selectedDrawingActionInstance?.name ? ' active' : ''}`,\n      actionRef: ref<typeof VcFabAction>(null!),\n      actionOpts: options[`${camelize(drawing)}ActionOpts`] as DrawingActionOpts,\n      cmp: getDrawingCmp(drawing),\n      cmpRef: ref<DrawingActionCmpRef>(null!),\n      cmpOpts: options[`${camelize(drawing)}DrawingOpts`] as DrawingActionCmpOpts,\n      tip: options[`${camelize(drawing)}ActionOpts`].tooltip.tip || t(`vc.drawing.${camelize(drawing)}.tip`),\n      isActive: false\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    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: () => VNode[]\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,KAAK,GAAG;AACd,EAAE,GAAG,WAAW;AAChB,EAAE,UAAU,EAAE,CAAC,KAAK,KAAK,IAAI;AAC7B,CAAC,CAAC;AACF,eAAe,eAAe,CAAC;AAC/B,EAAE,IAAI,EAAE,YAAY;AACpB,EAAE,KAAK,EAAE,aAAa;AACtB,EAAE,KAAK;AACP,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;AACpB,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;AAC1C,IAAI,QAAQ,CAAC,WAAW,GAAG,YAAY,CAAC;AACxC,IAAI,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC;AAC9B,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;AACvB,IAAI,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;AAC/G,IAAI,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AACnG,IAAI,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;AAC/G,IAAI,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAClH,IAAI,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACxH,IAAI,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAC3H,IAAI,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACrH,IAAI,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACxH,IAAI,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAC3H,IAAI,MAAM,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAC9H,IAAI,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAClH,IAAI,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACrH,IAAI,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACrH,IAAI,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACxH,IAAI,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;AACzG,IAAI,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;AAC5G,IAAI,OAAO,CAAC,eAAe,GAAG,eAAe,CAAC;AAC9C,IAAI,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;AAChD,IAAI,OAAO,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;AACpD,IAAI,OAAO,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;AACtD,IAAI,OAAO,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;AAClD,IAAI,OAAO,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;AACpD,IAAI,OAAO,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;AACtD,IAAI,OAAO,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;AACxD,IAAI,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;AAChD,IAAI,OAAO,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;AAClD,IAAI,OAAO,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;AAClD,IAAI,OAAO,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;AACpD,IAAI,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;AAC1C,IAAI,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC;AAC5C,IAAI,OAAO,CAAC,eAAe,GAAG,eAAe,CAAC;AAC9C,IAAI,MAAM,sBAAsB,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK;AACnE,MAAM,IAAI,GAAG,CAAC;AACd,MAAM,OAAO;AACb,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,WAAW,EAAE;AACrB,UAAU,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK;AACrE,UAAU,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;AACpE,SAAS;AACT,QAAQ,WAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,eAAe,EAAE,OAAO,MAAM,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,6BAA6B,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,EAAE,CAAC,CAAC;AAC1K,QAAQ,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC;AAC5B,QAAQ,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC;AAC7D,QAAQ,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC;AACnC,QAAQ,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;AACzB,QAAQ,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC;AAC3D,QAAQ,GAAG,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9G,QAAQ,QAAQ,EAAE,KAAK;AACvB,OAAO,CAAC;AACR,KAAK,CAAC,CAAC;AACP,IAAI,SAAS,aAAa,CAAC,IAAI,EAAE;AACjC,MAAM,QAAQ,IAAI;AAClB,QAAQ,KAAK,KAAK;AAClB,UAAU,OAAO,YAAY,CAAC;AAC9B,QAAQ,KAAK,OAAO;AACpB,UAAU,OAAO,cAAc,CAAC;AAChC,QAAQ,KAAK,UAAU;AACvB,UAAU,OAAO,iBAAiB,CAAC;AACnC,QAAQ,KAAK,SAAS;AACtB,UAAU,OAAO,gBAAgB,CAAC;AAClC,QAAQ,KAAK,WAAW;AACxB,UAAU,IAAI,oBAAoB,CAAC,OAAO,EAAE;AAC5C,YAAY,OAAO,gBAAgB,CAAC;AACpC,WAAW,MAAM;AACjB,YAAY,OAAO,kBAAkB,CAAC;AACtC,WAAW;AACX,QAAQ,KAAK,QAAQ,CAAC;AACtB,QAAQ,KAAK,SAAS;AACtB,UAAU,OAAO,gBAAgB,CAAC;AAClC,QAAQ;AACR,UAAU,OAAO,KAAK,CAAC,CAAC;AACxB,OAAO;AACP,KAAK;AACL,IAAI,OAAO,CAAC,EAAE,GAAG,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,sBAAsB,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC;AAC3J,GAAG;AACH,CAAC,CAAC;;;;"}