{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/primitives/osm-buildings/index.ts"],"sourcesContent":["import { createCommentVNode, defineComponent, getCurrentInstance, PropType, VNode } from 'vue'\nimport type {\n  VcCartesian2,\n  VcCartesian3Array,\n  VcColor,\n  VcComponentInternalInstance,\n  VcComponentPublicInstance,\n  VcDistanceDisplayCondition,\n  VcPickEvent,\n  VcReadyObject\n} from '@vue-cesium/utils/types'\nimport { usePrimitives } from '@vue-cesium/composables'\nimport { defaultColor, tileStyle, enableMouseEvent } from '@vue-cesium/utils/cesium-props'\nimport { kebabCase } from '@vue-cesium/utils/util'\nimport { primitiveEmits } from '@vue-cesium/utils/emits'\nimport { compareCesiumVersion } from '@vue-cesium/utils/cesium-helpers'\n\nexport const osmBuildingsProps = {\n  ...defaultColor,\n  ...tileStyle,\n  enableShowOutline: {\n    type: Boolean,\n    default: true\n  },\n  showOutline: {\n    type: Boolean,\n    default: true\n  },\n  ...enableMouseEvent\n}\nexport default defineComponent({\n  name: 'VcPrimitiveOsmBuildings',\n  props: osmBuildingsProps,\n  emits: {\n    ...primitiveEmits\n  },\n  setup(props, ctx) {\n    // state\n    const instance = getCurrentInstance() as VcComponentInternalInstance\n    instance.cesiumClass = 'VcPrimitiveOsmBuildings'\n    const primitivesState = usePrimitives(props, ctx, instance)\n    // methods\n    instance.createCesiumObject = async () => {\n      const options: any = primitivesState?.transformProps(props)\n      options.style = options.tileStyle\n      delete options.tileStyle\n      // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n      // @ts-ignore\n      return compareCesiumVersion(Cesium.VERSION, '1.104') ? await Cesium.createOsmBuildingsAsync(options) : Cesium.createOsmBuildings(options)\n    }\n    return () => createCommentVNode(kebabCase(instance.proxy?.$options.name || ''))\n  }\n})\n\nexport type VcPrimitiveOsmBuildingsProps = {\n  /**\n   * The default color to use for buildings that do not have a color. This parameter is ignored if options.style is specified.\n   * Default value: white\n   */\n  defaultColor?: VcColor\n  /**\n   * The style to use with the tileset. If not specified, a default style is used which gives each building or building part a color inferred from its OpenStreetMap tags. If no color can be inferred, options.defaultColor is used.\n   */\n  tileStyle?: Cesium.Cesium3DTileStyle\n  /**\n   * If true, enable rendering outlines. This can be set to false to avoid the additional processing of geometry at load time.\n   * Default value: true\n   */\n  enableShowOutline?: boolean\n  /**\n   * Whether to show outlines around buildings. When true, outlines are displayed. When false, outlines are not displayed.\n   * Default value: true\n   */\n  showOutline?: boolean\n  /**\n   * Specifies whether to respond to mouse pick events.\n   * Default Value: true\n   */\n  enableMouseEvent?: boolean\n  /**\n   * Triggers before the component is loaded.\n   */\n  onBeforeLoad?: (instance: VcComponentInternalInstance) => void\n  /**\n   * Triggers when the component 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 component is destroyed.\n   */\n  onDestroyed?: (instance: VcComponentInternalInstance) => void\n  /**\n   * Triggers when the mouse is pressed on this primitive.\n   */\n  onMousedown?: (evt: VcPickEvent) => void\n  /**\n   * Triggers when the mouse bounces up on this primitive.\n   */\n  onMouseup?: (evt: VcPickEvent) => void\n  /**\n   * Triggers when the mouse clicks on this primitive.\n   */\n  onClick?: (evt: VcPickEvent) => void\n  /**\n   * Triggers when the mouse clicks outside this primitive.\n   */\n  onClickout?: (evt: VcPickEvent) => void\n  /**\n   * Triggers when the left mouse button double-clicks this primitive.\n   */\n  onDblclick?: (evt: VcPickEvent) => void\n  /**\n   * Triggers when the mouse moves on this primitive.\n   */\n  onMousemove?: (evt: VcPickEvent) => void\n  /**\n   * Triggers when the mouse moves over to this primitive.\n   */\n  onMouseover?: (evt: VcPickEvent) => void\n  /**\n   * Triggers when the mouse moves out of this primitive.\n   */\n  onMouseout?: (evt: VcPickEvent) => void\n  /**\n   * Triggers when the primitive is ready to render.\n   */\n  onReadyPromise?: (primitive: Cesium.Primitive, viewer: Cesium.Viewer, instance: VcComponentPublicInstance) => void\n}\n\nexport type VcPrimitiveOsmBuildingsRef = VcComponentPublicInstance<VcPrimitiveOsmBuildingsProps>\n"],"names":[],"mappings":";;;;;;;;;AAiBO,MAAM,iBAAoB,GAAA;AAAA,EAC/B,GAAG,YAAA;AAAA,EACH,GAAG,SAAA;AAAA,EACH,iBAAmB,EAAA;AAAA,IACjB,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EACA,GAAG,gBAAA;AACL,EAAA;AACA,4BAAe,eAAgB,CAAA;AAAA,EAC7B,IAAM,EAAA,yBAAA;AAAA,EACN,KAAO,EAAA,iBAAA;AAAA,EACP,KAAO,EAAA;AAAA,IACL,GAAG,cAAA;AAAA,GACL;AAAA,EACA,KAAA,CAAM,OAAO,GAAK,EAAA;AAEhB,IAAA,MAAM,WAAW,kBAAmB,EAAA,CAAA;AACpC,IAAA,QAAA,CAAS,WAAc,GAAA,yBAAA,CAAA;AACvB,IAAA,MAAM,eAAkB,GAAA,aAAA,CAAc,KAAO,EAAA,GAAA,EAAK,QAAQ,CAAA,CAAA;AAE1D,IAAA,QAAA,CAAS,qBAAqB,YAAY;AACxC,MAAM,MAAA,OAAA,GAAe,mDAAiB,cAAe,CAAA,KAAA,CAAA,CAAA;AACrD,MAAA,OAAA,CAAQ,QAAQ,OAAQ,CAAA,SAAA,CAAA;AACxB,MAAA,OAAO,OAAQ,CAAA,SAAA,CAAA;AAGf,MAAA,OAAO,oBAAqB,CAAA,MAAA,CAAO,OAAS,EAAA,OAAO,CAAI,GAAA,MAAM,MAAO,CAAA,uBAAA,CAAwB,OAAO,CAAA,GAAI,MAAO,CAAA,kBAAA,CAAmB,OAAO,CAAA,CAAA;AAAA,KAC1I,CAAA;AACA,IAAA,OAAO,MAAG;AAlDd,MAAA,IAAA,EAAA,CAAA;AAkDiB,MAAA,OAAA,kBAAA,CAAmB,YAAU,EAAS,GAAA,QAAA,CAAA,KAAA,KAAT,mBAAgB,QAAS,CAAA,IAAA,KAAQ,EAAE,CAAC,CAAA,CAAA;AAAA,KAAA,CAAA;AAAA,GAChF;AACF,CAAC,CAAA;;;;"}