{
  "version": 3,
  "sources": ["../../../src/handlers/entity/viewport.ts"],
  "sourcesContent": ["import type { DXFTuple, ViewportEntity } from '../../types'\n\nimport common from './common'\n\nexport const TYPE = 'VIEWPORT'\n\nexport const process = (tuples: DXFTuple[]): ViewportEntity => {\n  return tuples.reduce(\n    (entity, tuple) => {\n      const type = tuple[0]\n      const value = tuple[1]\n\n      // Map coordinate cases to their properties\n      const coordMap: Record<number, { obj: keyof ViewportEntity; prop: string }> = {\n        10: { obj: 'center', prop: 'x' },\n        20: { obj: 'center', prop: 'y' },\n        30: { obj: 'center', prop: 'z' },\n        12: { obj: 'centerDCS', prop: 'x' },\n        22: { obj: 'centerDCS', prop: 'y' },\n        13: { obj: 'snap', prop: 'x' },\n        23: { obj: 'snap', prop: 'y' },\n        14: { obj: 'snapSpacing', prop: 'x' },\n        24: { obj: 'snapSpacing', prop: 'y' },\n        15: { obj: 'gridSpacing', prop: 'x' },\n        25: { obj: 'gridSpacing', prop: 'y' },\n        16: { obj: 'direction', prop: 'x' },\n        26: { obj: 'direction', prop: 'y' },\n        36: { obj: 'direction', prop: 'z' },\n        17: { obj: 'target', prop: 'x' },\n        27: { obj: 'target', prop: 'y' },\n        37: { obj: 'target', prop: 'z' },\n      }\n\n      if (coordMap[type]) {\n        const { obj, prop } = coordMap[type]\n        const target = entity[obj]\n        if (target && typeof target === 'object') {\n          ;(target as any)[prop] = Number.parseFloat(String(value))\n        }\n      } else {\n        switch (type) {\n          case 1:\n            entity.layout = Number.parseFloat(String(value))\n            break\n          case 40:\n            entity.width = Number.parseFloat(String(value))\n            break\n          case 41:\n            entity.height = Number.parseFloat(String(value))\n            break\n          case 50:\n            entity.snapAngle = Number.parseFloat(String(value))\n            break\n          case 51:\n            entity.angle = Number.parseFloat(String(value))\n            break\n          case 68:\n            entity.status = value\n            break\n          case 69:\n            entity.id = value\n            break\n          case 90:\n            entity.flags = value\n            break\n          case 110:\n            entity.x = Number.parseFloat(String(value))\n            break\n          case 120:\n            entity.y = Number.parseFloat(String(value))\n            break\n          case 130:\n            entity.z = Number.parseFloat(String(value))\n            break\n          case 111:\n            entity.xAxisX = Number.parseFloat(String(value))\n            break\n          case 121:\n            entity.xAxisY = Number.parseFloat(String(value))\n            break\n          case 131:\n            entity.xAxisZ = Number.parseFloat(String(value))\n            break\n          case 112:\n            entity.xAxisX = Number.parseFloat(String(value))\n            break\n          case 122:\n            entity.xAxisY = Number.parseFloat(String(value))\n            break\n          case 132:\n            entity.xAxisZ = Number.parseFloat(String(value))\n            break\n          case 146:\n            entity.elevation = Number.parseFloat(String(value))\n            break\n          case 281:\n            entity.render = value\n            break\n          default:\n            Object.assign(entity, common(type, value))\n            break\n        }\n      }\n      return entity\n    },\n    {\n      type: TYPE,\n      center: {},\n      centerDCS: {},\n      snap: {},\n      snapSpacing: {},\n      gridSpacing: {},\n      direction: {},\n      target: {},\n    } as ViewportEntity,\n  )\n}\n\nexport default { TYPE, process }\n"],
  "mappings": "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",
  "names": ["common"]
}
