{
  "version": 3,
  "sources": ["../../src/handlers/header.ts"],
  "sourcesContent": ["import type { DXFTuple, ParsedHeader } from '../types'\n\nexport default function parseHeader(tuples: DXFTuple[]): ParsedHeader {\n  let state: 'measurement' | 'insUnits' | 'extMin' | 'extMax' | 'dimArrowSize' | undefined\n  const header: ParsedHeader = {}\n\n  for (const tuple of tuples) {\n    const type = tuple[0]\n    const value = tuple[1]\n\n    switch (value) {\n      case '$MEASUREMENT': {\n        state = 'measurement'\n        break\n      }\n      case '$INSUNITS': {\n        state = 'insUnits'\n        break\n      }\n      case '$EXTMIN':\n        header.extMin = {}\n        state = 'extMin'\n        break\n      case '$EXTMAX':\n        header.extMax = {}\n        state = 'extMax'\n        break\n      case '$DIMASZ':\n        header.dimArrowSize = {}\n        state = 'dimArrowSize'\n        break\n      default:\n        switch (state) {\n          case 'extMin':\n          case 'extMax': {\n            const target = header[state]\n            if (target) {\n              switch (type) {\n                case 10:\n                  target.x = value as number\n                  break\n                case 20:\n                  target.y = value as number\n                  break\n                case 30:\n                  target.z = value as number\n                  state = undefined\n                  break\n              }\n            }\n            break\n          }\n          case 'measurement':\n          case 'insUnits': {\n            if (type === 70) {\n              header[state] = value\n              state = undefined\n            }\n            break\n          }\n          case 'dimArrowSize': {\n            if (type === 40) {\n              header[state] = value\n              state = undefined\n            }\n            break\n          }\n        }\n    }\n  }\n\n  return header\n}\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEe,SAAR,YAA6B,QAAkC;AACpE,MAAI;AACJ,QAAM,SAAuB,CAAC;AAE9B,aAAW,SAAS,QAAQ;AAC1B,UAAM,OAAO,MAAM,CAAC;AACpB,UAAM,QAAQ,MAAM,CAAC;AAErB,YAAQ,OAAO;AAAA,MACb,KAAK,gBAAgB;AACnB,gBAAQ;AACR;AAAA,MACF;AAAA,MACA,KAAK,aAAa;AAChB,gBAAQ;AACR;AAAA,MACF;AAAA,MACA,KAAK;AACH,eAAO,SAAS,CAAC;AACjB,gBAAQ;AACR;AAAA,MACF,KAAK;AACH,eAAO,SAAS,CAAC;AACjB,gBAAQ;AACR;AAAA,MACF,KAAK;AACH,eAAO,eAAe,CAAC;AACvB,gBAAQ;AACR;AAAA,MACF;AACE,gBAAQ,OAAO;AAAA,UACb,KAAK;AAAA,UACL,KAAK,UAAU;AACb,kBAAM,SAAS,OAAO,KAAK;AAC3B,gBAAI,QAAQ;AACV,sBAAQ,MAAM;AAAA,gBACZ,KAAK;AACH,yBAAO,IAAI;AACX;AAAA,gBACF,KAAK;AACH,yBAAO,IAAI;AACX;AAAA,gBACF,KAAK;AACH,yBAAO,IAAI;AACX,0BAAQ;AACR;AAAA,cACJ;AAAA,YACF;AACA;AAAA,UACF;AAAA,UACA,KAAK;AAAA,UACL,KAAK,YAAY;AACf,gBAAI,SAAS,IAAI;AACf,qBAAO,KAAK,IAAI;AAChB,sBAAQ;AAAA,YACV;AACA;AAAA,UACF;AAAA,UACA,KAAK,gBAAgB;AACnB,gBAAI,SAAS,IAAI;AACf,qBAAO,KAAK,IAAI;AAChB,sBAAQ;AAAA,YACV;AACA;AAAA,UACF;AAAA,QACF;AAAA,IACJ;AAAA,EACF;AAEA,SAAO;AACT;",
  "names": []
}
