{
  "version": 3,
  "sources": ["../../../src/handlers/entity/mline.ts"],
  "sourcesContent": ["import type { DXFTuple, PartialPoint3D } from '../../types'\n\nimport common from './common'\n\nexport const TYPE = 'MLINE'\n\ninterface MLineEntity {\n  type: typeof TYPE\n\n  startPoint?: PartialPoint3D\n  endPoint?: PartialPoint3D\n\n  vertexCount?: number\n  styleName?: string\n\n  [key: string]: unknown\n}\n\nfunction ensurePoint3(entity: MLineEntity, key: 'startPoint' | 'endPoint'): PartialPoint3D {\n  entity[key] ??= {}\n  return entity[key]\n}\n\nexport const process = (tuples: DXFTuple[]): MLineEntity => {\n  return tuples.reduce(\n    (entity, tuple) => {\n      const code = tuple[0]\n      const value = tuple[1]\n\n      switch (code) {\n        // Start point\n        case 10:\n          ensurePoint3(entity, 'startPoint').x = value as number\n          break\n        case 20:\n          ensurePoint3(entity, 'startPoint').y = value as number\n          break\n        case 30:\n          ensurePoint3(entity, 'startPoint').z = value as number\n          break\n\n        // End point\n        case 11:\n          ensurePoint3(entity, 'endPoint').x = value as number\n          break\n        case 21:\n          ensurePoint3(entity, 'endPoint').y = value as number\n          break\n        case 31:\n          ensurePoint3(entity, 'endPoint').z = value as number\n          break\n\n        case 71:\n          entity.vertexCount = value as number\n          break\n\n        case 2:\n          entity.styleName = String(value)\n          break\n\n        default:\n          Object.assign(entity, common(code, value))\n          break\n      }\n\n      return entity\n    },\n    {\n      type: TYPE,\n    } as MLineEntity,\n  )\n}\n\nexport default { TYPE, process }\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAAmB;AAEZ,MAAM,OAAO;AAcpB,SAAS,aAAa,QAAqB,KAAgD;AACzF,gCAAgB,CAAC;AACjB,SAAO,OAAO,GAAG;AACnB;AAEO,MAAM,UAAU,CAAC,WAAoC;AAC1D,SAAO,OAAO;AAAA,IACZ,CAAC,QAAQ,UAAU;AACjB,YAAM,OAAO,MAAM,CAAC;AACpB,YAAM,QAAQ,MAAM,CAAC;AAErB,cAAQ,MAAM;AAAA;AAAA,QAEZ,KAAK;AACH,uBAAa,QAAQ,YAAY,EAAE,IAAI;AACvC;AAAA,QACF,KAAK;AACH,uBAAa,QAAQ,YAAY,EAAE,IAAI;AACvC;AAAA,QACF,KAAK;AACH,uBAAa,QAAQ,YAAY,EAAE,IAAI;AACvC;AAAA;AAAA,QAGF,KAAK;AACH,uBAAa,QAAQ,UAAU,EAAE,IAAI;AACrC;AAAA,QACF,KAAK;AACH,uBAAa,QAAQ,UAAU,EAAE,IAAI;AACrC;AAAA,QACF,KAAK;AACH,uBAAa,QAAQ,UAAU,EAAE,IAAI;AACrC;AAAA,QAEF,KAAK;AACH,iBAAO,cAAc;AACrB;AAAA,QAEF,KAAK;AACH,iBAAO,YAAY,OAAO,KAAK;AAC/B;AAAA,QAEF;AACE,iBAAO,OAAO,YAAQ,cAAAA,SAAO,MAAM,KAAK,CAAC;AACzC;AAAA,MACJ;AAEA,aAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,IAAO,gBAAQ,EAAE,MAAM,QAAQ;",
  "names": ["common"]
}
