{"version":3,"file":"index.mjs","sources":["../../../../../packages/composables/use-primitive-collections/index.ts"],"sourcesContent":["/*\n * @Author: zouyaoji@https://github.com/zouyaoji\n * @Date: 2021-06-04 13:55:35\n * @LastEditTime: 2022-08-12 11:47:16\n * @LastEditors: zouyaoji\n * @Description:\n * @FilePath: \\10_vue-cesium\\packages\\composables\\use-primitive-collections\\index.ts\n */\n/**\n * for\n * PrimitiveCollection\n * BillboardCollection\n * LabelCollection\n * PointPrimitiveCollection\n * PolylineCollection\n */\n\nimport { VcComponentInternalInstance, VcViewerProvider } from 'casc-cesium-utils/types'\nimport useCommon from '../use-common'\nimport { mergeDescriptors } from 'casc-cesium-utils/merge-descriptors'\nimport { provide } from 'vue'\nimport { vcKey } from 'casc-cesium-utils/config'\n\nexport type Collection =\n  | Cesium.PrimitiveCollection\n  | Cesium.BillboardCollection\n  | Cesium.LabelCollection\n  | Cesium.PointPrimitiveCollection\n  | Cesium.PolylineCollection\n\nexport default function (props, ctx, vcInstance: VcComponentInternalInstance) {\n  // state\n  const commonState = useCommon(props, ctx, vcInstance)\n  if (commonState === void 0) {\n    return\n  }\n  // methods\n  vcInstance.mount = async () => {\n    const primitives = commonState.$services.primitives\n    const collection = vcInstance.cesiumObject as Collection\n    const object = primitives && primitives.add(collection)\n    return Cesium.defined(object)\n  }\n  vcInstance.unmount = async () => {\n    const primitives = commonState.$services.primitives\n    const collection = vcInstance.cesiumObject as Collection\n    return primitives && primitives.remove(collection)\n  }\n\n  const getServices = (): VcViewerProvider => {\n    return mergeDescriptors(commonState.getServices(), {\n      get primitives() {\n        return vcInstance.cesiumObject as Collection\n      }\n    })\n  }\n\n  // provide\n  provide(vcKey, getServices())\n\n  return {\n    transformProps: commonState.transformProps,\n    transformProp: commonState.transformProp,\n    unwatchFns: commonState.unwatchFns,\n    setPropsWatcher: commonState.setPropsWatcher\n  }\n}\n"],"names":[],"mappings":";;;;;AAIe,gCAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE;AAChD,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;AACxD,EAAE,IAAI,WAAW,KAAK,KAAK,CAAC,EAAE;AAC9B,IAAI,OAAO;AACX,GAAG;AACH,EAAE,UAAU,CAAC,KAAK,GAAG,YAAY;AACjC,IAAI,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC;AACxD,IAAI,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC;AAC/C,IAAI,MAAM,MAAM,GAAG,UAAU,IAAI,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC5D,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAClC,GAAG,CAAC;AACJ,EAAE,UAAU,CAAC,OAAO,GAAG,YAAY;AACnC,IAAI,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC;AACxD,IAAI,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC;AAC/C,IAAI,OAAO,UAAU,IAAI,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACvD,GAAG,CAAC;AACJ,EAAE,MAAM,WAAW,GAAG,MAAM;AAC5B,IAAI,OAAO,gBAAgB,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE;AACvD,MAAM,IAAI,UAAU,GAAG;AACvB,QAAQ,OAAO,UAAU,CAAC,YAAY,CAAC;AACvC,OAAO;AACP,KAAK,CAAC,CAAC;AACP,GAAG,CAAC;AACJ,EAAE,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;AAChC,EAAE,OAAO;AACT,IAAI,cAAc,EAAE,WAAW,CAAC,cAAc;AAC9C,IAAI,aAAa,EAAE,WAAW,CAAC,aAAa;AAC5C,IAAI,UAAU,EAAE,WAAW,CAAC,UAAU;AACtC,IAAI,eAAe,EAAE,WAAW,CAAC,eAAe;AAChD,GAAG,CAAC;AACJ;;;;"}