{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/providers/tiled-cache/index.ts"],"sourcesContent":["import type { ExtractPropTypes } from 'vue'\nimport { createCommentVNode, defineComponent, getCurrentInstance, PropType } from 'vue'\nimport type { VcComponentInternalInstance } from '@vue-cesium/utils/types'\nimport { useProviders } from '@vue-cesium/composables'\nimport {\n  url,\n  format,\n  credit,\n  minimumLevel,\n  maximumLevel,\n  rectangle,\n  tilingScheme,\n  ellipsoid,\n  tileWidth,\n  tileHeight\n} from '@vue-cesium/utils/cesium-props'\nimport { kebabCase } from '@vue-cesium/utils/util'\nimport { providerEmits } from '@vue-cesium/utils/emits'\n\nexport const tiledcacheImageryProviderProps = {\n  ...url,\n  ...format,\n  ...credit,\n  ...minimumLevel,\n  ...maximumLevel,\n  ...rectangle,\n  ...tilingScheme,\n  ...ellipsoid,\n  ...tileWidth,\n  ...tileHeight,\n  dir: {\n    type: String,\n    reqiured: true\n  },\n  scales: {\n    type: Array as PropType<Array<number>>,\n    default: () => {\n      return [\n        1 / 295829355,\n        1 / 147914678,\n        1 / 73957339,\n        1 / 36978669,\n        1 / 18489335,\n        1 / 9244667,\n        1 / 4622334,\n        1 / 2311167,\n        1 / 1155583,\n        1 / 577792,\n        1 / 288896,\n        1 / 144448,\n        1 / 72224,\n        1 / 36112,\n        1 / 18056,\n        1 / 9026,\n        1 / 4514\n      ]\n    }\n  }\n}\nexport default defineComponent({\n  name: 'VcImageryProviderTiledcache',\n  props: tiledcacheImageryProviderProps,\n  emits: providerEmits,\n  setup(props, ctx) {\n    // state\n    const instance = getCurrentInstance() as VcComponentInternalInstance\n    instance.cesiumClass = 'UrlTemplateImageryProvider'\n    const providersState = useProviders(props, ctx, instance)\n    if (undefined === providersState) {\n      return\n    }\n    // methods\n    instance.createCesiumObject = async () => {\n      const options = providersState.transformProps(props)\n      const { Credit, defined, defaultValue, DeveloperError, Ellipsoid, GeographicTilingScheme, Rectangle, Resource, UrlTemplateImageryProvider } =\n        Cesium\n\n      const { url, dir, format } = options\n      if (!defined(url)) {\n        throw new DeveloperError('options.url is required.')\n      }\n      if (!defined(dir)) {\n        throw new DeveloperError('options.dir is required.')\n      }\n      const resource = (Resource as any).createIfNeeded(url)\n      resource.url += `?dir=${dir}&scale={scale}&col={x}&row={y}&format=${format}`\n\n      const tilingScheme = defaultValue(\n        options.tilingScheme,\n        new GeographicTilingScheme({\n          ellipsoid: defaultValue(options.ellipsoid, Ellipsoid.WGS84),\n          numberOfLevelZeroTilesX: 2,\n          numberOfLevelZeroTilesY: 1\n        })\n      )\n      const tileWidth = defaultValue(options.tileWidth, 256)\n      const tileHeight = defaultValue(options.tileHeight, 256)\n      const maximumLevel = options.maximumLevel\n      const minimumLevel = defaultValue(options.minimumLevel, 0)\n      const rectangle = defaultValue(options.rectangle, tilingScheme.rectangle)\n      // Check the number of tiles at the minimum level.  If it's more than four,\n      // throw an exception, because starting at the higher minimum\n      // level will cause too many tiles to be downloaded and rendered.\n      const swTile = tilingScheme.positionToTileXY(Rectangle.southwest(rectangle), minimumLevel)\n      const neTile = tilingScheme.positionToTileXY(Rectangle.northeast(rectangle), minimumLevel)\n      const tileCount = (Math.abs(neTile.x - swTile.x) + 1) * (Math.abs(neTile.y - swTile.y) + 1)\n\n      if (tileCount > 4) {\n        throw new DeveloperError(\n          'The rectangle and minimumLevel indicate that there are ' +\n            tileCount +\n            ' tiles at the minimum level. Imagery providers with more than four tiles at the minimum level are not supported.'\n        )\n      }\n\n      let credit = defaultValue(options.credit, '')\n      if (typeof credit === 'string') {\n        credit = new Credit(credit)\n      }\n\n      return new UrlTemplateImageryProvider({\n        url: resource,\n        credit: credit,\n        tilingScheme: tilingScheme,\n        tileWidth: tileWidth,\n        tileHeight: tileHeight,\n        minimumLevel: minimumLevel,\n        maximumLevel: maximumLevel,\n        rectangle: rectangle,\n        customTags: {\n          scale: (imageryProvider, x, y, level) => {\n            const s = 1 / props.scales[level]\n            return padWithZerosIfNecessary(imageryProvider, '{scale}', s)\n          }\n        }\n      })\n    }\n\n    const padWithZerosIfNecessary = (imageryProvider, key, value) => {\n      if (\n        imageryProvider &&\n        imageryProvider.urlSchemeZeroPadding &&\n        Object.prototype.hasOwnProperty.call(imageryProvider.urlSchemeZeroPadding, key)\n      ) {\n        const paddingTemplate = imageryProvider.urlSchemeZeroPadding[key]\n        if (typeof paddingTemplate === 'string') {\n          const paddingTemplateWidth = paddingTemplate.length\n          if (paddingTemplateWidth > 1) {\n            value = value.length >= paddingTemplateWidth ? value : new Array(paddingTemplateWidth - value.toString().length + 1).join('0') + value\n          }\n        }\n      }\n      return value\n    }\n    return () => createCommentVNode(kebabCase(instance.proxy?.$options.name || ''))\n  }\n})\n\nexport type VcImageryProviderTiledcacheProps = ExtractPropTypes<typeof tiledcacheImageryProviderProps>\n"],"names":[],"mappings":"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"}