{
  "version": 3,
  "sources": ["../../../src/handlers/entity/tolerance.ts"],
  "sourcesContent": ["import type { DXFTuple } from '../../types'\n\nimport common from './common'\n\nexport const TYPE = 'TOLERANCE'\n\ninterface ToleranceEntity {\n  type: typeof TYPE\n\n  insertionPoint: { x: number; y: number; z: number }\n  text?: string\n  dimensionStyleName?: string\n  xAxisDirection?: { x: number; y: number; z: number }\n\n  [key: string]: unknown\n}\n\nfunction ensureVector3(\n  entity: ToleranceEntity,\n  key: 'insertionPoint' | 'xAxisDirection',\n): { x: number; y: number; z: number } {\n  entity[key] ??= { x: 0, y: 0, z: 0 }\n  return entity[key] as { x: number; y: number; z: number }\n}\n\nexport const process = (tuples: DXFTuple[]): ToleranceEntity => {\n  return tuples.reduce(\n    (entity, tuple) => {\n      const code = tuple[0]\n      const value = tuple[1]\n\n      switch (code) {\n        case 3:\n          entity.dimensionStyleName = String(value)\n          break\n\n        case 10:\n          ensureVector3(entity, 'insertionPoint').x = value as number\n          break\n        case 20:\n          ensureVector3(entity, 'insertionPoint').y = value as number\n          break\n        case 30:\n          ensureVector3(entity, 'insertionPoint').z = value as number\n          break\n\n        case 1:\n          entity.text = String(value)\n          break\n\n        case 11:\n          ensureVector3(entity, 'xAxisDirection').x = value as number\n          break\n        case 21:\n          ensureVector3(entity, 'xAxisDirection').y = value as number\n          break\n        case 31:\n          ensureVector3(entity, 'xAxisDirection').z = value as number\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      insertionPoint: { x: 0, y: 0, z: 0 },\n    } as ToleranceEntity,\n  )\n}\n\nexport default { TYPE, process }\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAAmB;AAEZ,MAAM,OAAO;AAapB,SAAS,cACP,QACA,KACqC;AACrC,gCAAgB,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE;AACnC,SAAO,OAAO,GAAG;AACnB;AAEO,MAAM,UAAU,CAAC,WAAwC;AAC9D,SAAO,OAAO;AAAA,IACZ,CAAC,QAAQ,UAAU;AACjB,YAAM,OAAO,MAAM,CAAC;AACpB,YAAM,QAAQ,MAAM,CAAC;AAErB,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,iBAAO,qBAAqB,OAAO,KAAK;AACxC;AAAA,QAEF,KAAK;AACH,wBAAc,QAAQ,gBAAgB,EAAE,IAAI;AAC5C;AAAA,QACF,KAAK;AACH,wBAAc,QAAQ,gBAAgB,EAAE,IAAI;AAC5C;AAAA,QACF,KAAK;AACH,wBAAc,QAAQ,gBAAgB,EAAE,IAAI;AAC5C;AAAA,QAEF,KAAK;AACH,iBAAO,OAAO,OAAO,KAAK;AAC1B;AAAA,QAEF,KAAK;AACH,wBAAc,QAAQ,gBAAgB,EAAE,IAAI;AAC5C;AAAA,QACF,KAAK;AACH,wBAAc,QAAQ,gBAAgB,EAAE,IAAI;AAC5C;AAAA,QACF,KAAK;AACH,wBAAc,QAAQ,gBAAgB,EAAE,IAAI;AAC5C;AAAA,QAEF;AACE,iBAAO,OAAO,YAAQ,cAAAA,SAAO,MAAM,KAAK,CAAC;AACzC;AAAA,MACJ;AAEA,aAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,gBAAgB,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE;AAAA,IACrC;AAAA,EACF;AACF;AAEA,IAAO,oBAAQ,EAAE,MAAM,QAAQ;",
  "names": ["common"]
}
