{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/entity/src/index.ts"],"sourcesContent":["import type { ExtractPropTypes, PropType, ExtractDefaultPropTypes } from 'vue'\nimport { createCommentVNode, defineComponent, getCurrentInstance, h } from 'vue'\nimport type { EntityEmitType, VcComponentInternalInstance } from '@vue-cesium/utils/types'\nimport { useCommon } from '@vue-cesium/composables/index'\nimport { position, plane, enableMouseEvent, show, viewFrom } from '@vue-cesium/utils/cesium-props'\nimport { getInstanceListener } from '@vue-cesium/utils/private/vm'\nimport { hSlot } from '@vue-cesium/utils/private/render'\nimport { kebabCase } from '@vue-cesium/utils/util'\nimport { commonEmits, pickEventEmits } from '@vue-cesium/utils/emits'\nimport { VcGraphicsBillboardProps } from '../../graphics'\n\nexport const entityProps = {\n  id: String,\n  name: String,\n  availability: Object as PropType<Cesium.TimeIntervalCollection>,\n  ...show,\n  description: [String, Object],\n  ...position,\n  orientation: Object,\n  ...viewFrom,\n  parent: Object,\n  billboard: Object as PropType<VcGraphicsBillboardProps>,\n  corridor: Object,\n  cylinder: Object,\n  ellipse: Object,\n  ellipsoid: Object,\n  box: Object,\n  label: Object,\n  model: Object,\n  tileset: Object,\n  path: Object,\n  ...plane,\n  point: Object,\n  polygon: Object,\n  polyline: Object,\n  properties: Object,\n  polylineVolume: Object,\n  rectangle: Object,\n  wall: Object,\n  ...enableMouseEvent\n}\n\nconst emits = {\n  ...commonEmits,\n  ...pickEventEmits,\n  definitionChanged: (property: Cesium.Property) => true,\n  'update:billboard': (payload: Cesium.BillboardGraphics) => true,\n  'update:box': (payload: Cesium.BoxGraphics) => true,\n  'update:corridor': (payload: Cesium.CorridorGraphics) => true,\n  'update:cylinder': (payload: Cesium.CylinderGraphics) => true,\n  'update:ellipse': (payload: Cesium.EllipseGraphics) => true,\n  'update:ellipsoid': (payload: Cesium.EllipsoidGraphics) => true,\n  'update:label': (payload: Cesium.LabelGraphics) => true,\n  'update:model': (payload: Cesium.ModelGraphics) => true,\n  'update:path': (payload: Cesium.PathGraphics) => true,\n  'update:plane': (payload: Cesium.PlaneGraphics) => true,\n  'update:point': (payload: Cesium.PointGraphics) => true,\n  'update:polygon': (payload: Cesium.PolygonGraphics) => true,\n  'update:polyline': (payload: Cesium.PolylineGraphics) => true,\n  'update:polylineVolume': (payload: Cesium.PolylineVolumeGraphics) => true,\n  'update:rectangle': (payload: Cesium.RectangleGraphics) => true,\n  'update:tileset': (payload: any) => true,\n  'update:wall': (payload: Cesium.WallGraphics) => true\n}\n\nexport default defineComponent({\n  name: 'VcEntity',\n  props: entityProps,\n  emits: emits,\n  setup(props, ctx) {\n    // state\n    const instance = getCurrentInstance() as VcComponentInternalInstance\n    instance.cesiumClass = 'Entity'\n    instance.cesiumEvents = ['definitionChanged']\n    const commonState = useCommon(props, ctx, instance)\n    if (commonState === void 0) {\n      return\n    }\n    const { $services } = commonState\n    const { emit } = ctx\n\n    // methods\n    instance.mount = async () => {\n      const entity = $services?.entities?.add(instance.cesiumObject as Cesium.Entity)\n      return $services?.entities.contains(entity)\n    }\n\n    instance.unmount = async () => {\n      return $services?.entities?.remove(instance.cesiumObject as Cesium.Entity)\n    }\n\n    const updateGraphics = (graphics, emitType) => {\n      const listener = getInstanceListener(instance, emitType)\n      if (listener) {\n        emit(emitType, graphics)\n      } else {\n        instance.cesiumObject && (instance.cesiumObject[emitType.substring(7)] = graphics)\n      }\n      graphics && (graphics._vcParent = instance.cesiumObject)\n      return true\n    }\n\n    // expose public methods\n    Object.assign(instance.proxy, {\n      // private but needed by VcGraphicsXXX\n      __updateGraphics: updateGraphics\n    })\n\n    return () =>\n      ctx.slots.default\n        ? h(\n            'i',\n            {\n              class: kebabCase(instance.proxy?.$options.name || ''),\n              style: { display: 'none !important' }\n            },\n            hSlot(ctx.slots.default)\n          )\n        : createCommentVNode(kebabCase(instance.proxy?.$options.name || ''))\n  }\n})\n\nexport type VcEntityProps = ExtractPropTypes<typeof entityProps>\nexport type VcEntityEmits = typeof emits\n"],"names":[],"mappings":";;;;;;;;;AAOY,MAAC,WAAW,GAAG;AAC3B,EAAE,EAAE,EAAE,MAAM;AACZ,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,YAAY,EAAE,MAAM;AACtB,EAAE,GAAG,IAAI;AACT,EAAE,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC/B,EAAE,GAAG,QAAQ;AACb,EAAE,WAAW,EAAE,MAAM;AACrB,EAAE,GAAG,QAAQ;AACb,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,SAAS,EAAE,MAAM;AACnB,EAAE,QAAQ,EAAE,MAAM;AAClB,EAAE,QAAQ,EAAE,MAAM;AAClB,EAAE,OAAO,EAAE,MAAM;AACjB,EAAE,SAAS,EAAE,MAAM;AACnB,EAAE,GAAG,EAAE,MAAM;AACb,EAAE,KAAK,EAAE,MAAM;AACf,EAAE,KAAK,EAAE,MAAM;AACf,EAAE,OAAO,EAAE,MAAM;AACjB,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,GAAG,KAAK;AACV,EAAE,KAAK,EAAE,MAAM;AACf,EAAE,OAAO,EAAE,MAAM;AACjB,EAAE,QAAQ,EAAE,MAAM;AAClB,EAAE,UAAU,EAAE,MAAM;AACpB,EAAE,cAAc,EAAE,MAAM;AACxB,EAAE,SAAS,EAAE,MAAM;AACnB,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,GAAG,gBAAgB;AACrB,EAAE;AACF,MAAM,KAAK,GAAG;AACd,EAAE,GAAG,WAAW;AAChB,EAAE,GAAG,cAAc;AACnB,EAAE,iBAAiB,EAAE,CAAC,QAAQ,KAAK,IAAI;AACvC,EAAE,kBAAkB,EAAE,CAAC,OAAO,KAAK,IAAI;AACvC,EAAE,YAAY,EAAE,CAAC,OAAO,KAAK,IAAI;AACjC,EAAE,iBAAiB,EAAE,CAAC,OAAO,KAAK,IAAI;AACtC,EAAE,iBAAiB,EAAE,CAAC,OAAO,KAAK,IAAI;AACtC,EAAE,gBAAgB,EAAE,CAAC,OAAO,KAAK,IAAI;AACrC,EAAE,kBAAkB,EAAE,CAAC,OAAO,KAAK,IAAI;AACvC,EAAE,cAAc,EAAE,CAAC,OAAO,KAAK,IAAI;AACnC,EAAE,cAAc,EAAE,CAAC,OAAO,KAAK,IAAI;AACnC,EAAE,aAAa,EAAE,CAAC,OAAO,KAAK,IAAI;AAClC,EAAE,cAAc,EAAE,CAAC,OAAO,KAAK,IAAI;AACnC,EAAE,cAAc,EAAE,CAAC,OAAO,KAAK,IAAI;AACnC,EAAE,gBAAgB,EAAE,CAAC,OAAO,KAAK,IAAI;AACrC,EAAE,iBAAiB,EAAE,CAAC,OAAO,KAAK,IAAI;AACtC,EAAE,uBAAuB,EAAE,CAAC,OAAO,KAAK,IAAI;AAC5C,EAAE,kBAAkB,EAAE,CAAC,OAAO,KAAK,IAAI;AACvC,EAAE,gBAAgB,EAAE,CAAC,OAAO,KAAK,IAAI;AACrC,EAAE,aAAa,EAAE,CAAC,OAAO,KAAK,IAAI;AAClC,CAAC,CAAC;AACF,aAAe,eAAe,CAAC;AAC/B,EAAE,IAAI,EAAE,UAAU;AAClB,EAAE,KAAK,EAAE,WAAW;AACpB,EAAE,KAAK;AACP,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE;AACpB,IAAI,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;AAC1C,IAAI,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC;AACpC,IAAI,QAAQ,CAAC,YAAY,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAClD,IAAI,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AACxD,IAAI,IAAI,WAAW,KAAK,KAAK,CAAC,EAAE;AAChC,MAAM,OAAO;AACb,KAAK;AACL,IAAI,MAAM,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;AACtC,IAAI,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;AACzB,IAAI,QAAQ,CAAC,KAAK,GAAG,YAAY;AACjC,MAAM,IAAI,EAAE,CAAC;AACb,MAAM,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,SAAS,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC,QAAQ,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC7H,MAAM,OAAO,SAAS,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC9E,KAAK,CAAC;AACN,IAAI,QAAQ,CAAC,OAAO,GAAG,YAAY;AACnC,MAAM,IAAI,EAAE,CAAC;AACb,MAAM,OAAO,CAAC,EAAE,GAAG,SAAS,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,SAAS,CAAC,QAAQ,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACxH,KAAK,CAAC;AACN,IAAI,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,QAAQ,KAAK;AACnD,MAAM,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/D,MAAM,IAAI,QAAQ,EAAE;AACpB,QAAQ,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACjC,OAAO,MAAM;AACb,QAAQ,QAAQ,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;AAC3F,OAAO;AACP,MAAM,QAAQ,KAAK,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC/D,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK,CAAC;AACN,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE;AAClC,MAAM,gBAAgB,EAAE,cAAc;AACtC,KAAK,CAAC,CAAC;AACP,IAAI,OAAO,MAAM;AACjB,MAAM,IAAI,EAAE,EAAE,EAAE,CAAC;AACjB,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE;AACxC,QAAQ,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC;AAC3F,QAAQ,KAAK,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE;AAC7C,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;AACtI,KAAK,CAAC;AACN,GAAG;AACH,CAAC,CAAC;;;;"}