{
  "version": 3,
  "sources": ["../src/Helper.ts"],
  "sourcesContent": ["import denormalise from './denormalise'\nimport groupEntitiesByLayer from './groupEntitiesByLayer'\nimport parseString from './parseString'\nimport toJson from './toJson'\nimport toPolylines from './toPolylines'\nimport toSVG from './toSVG'\nimport logger from './util/logger'\n\nimport type { Entity, LayerGroups, ParsedDXF, ToJsonOptions, ToSVGOptions } from './types'\n\nexport default class Helper {\n  private readonly _contents: string\n  private _parsed: ParsedDXF | null\n  private _denormalised: Entity[] | null\n  private _groups: LayerGroups | null\n\n  constructor(contents: string) {\n    if (typeof contents !== 'string') {\n      throw new TypeError('Helper constructor expects a DXF string')\n    }\n    this._contents = contents\n    this._parsed = null\n    this._denormalised = null\n    this._groups = null\n  }\n\n  parse(): ParsedDXF {\n    this._parsed = parseString(this._contents)\n    logger.info('parsed:', this.parsed)\n    return this._parsed\n  }\n\n  get parsed(): ParsedDXF {\n    if (this._parsed === null) {\n      this.parse()\n    }\n    return this._parsed as ParsedDXF\n  }\n\n  denormalise(): Entity[] {\n    this._denormalised = denormalise(this.parsed)\n    logger.info('denormalised:', this._denormalised)\n    return this._denormalised\n  }\n\n  get denormalised(): Entity[] {\n    if (!this._denormalised) {\n      this.denormalise()\n    }\n    return this._denormalised as Entity[]\n  }\n\n  group(): LayerGroups {\n    this._groups = groupEntitiesByLayer(this.denormalised)\n    return this._groups\n  }\n\n  get groups(): LayerGroups {\n    if (!this._groups) {\n      this.group()\n    }\n    return this._groups as LayerGroups\n  }\n\n  toSVG(options?: ToSVGOptions): string {\n    return toSVG(this.parsed, options)\n  }\n\n  toJson(options?: ToJsonOptions): string {\n    return toJson(this.parsed, options)\n  }\n\n  toPolylines(): ReturnType<typeof toPolylines> {\n    return toPolylines(this.parsed)\n  }\n}\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAwB;AACxB,kCAAiC;AACjC,yBAAwB;AACxB,oBAAmB;AACnB,yBAAwB;AACxB,mBAAkB;AAClB,oBAAmB;AAInB,MAAO,OAAqB;AAAA,EAM1B,YAAY,UAAkB;AAC5B,QAAI,OAAO,aAAa,UAAU;AAChC,YAAM,IAAI,UAAU,yCAAyC;AAAA,IAC/D;AACA,SAAK,YAAY;AACjB,SAAK,UAAU;AACf,SAAK,gBAAgB;AACrB,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,QAAmB;AACjB,SAAK,cAAU,mBAAAA,SAAY,KAAK,SAAS;AACzC,kBAAAC,QAAO,KAAK,WAAW,KAAK,MAAM;AAClC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,SAAoB;AACtB,QAAI,KAAK,YAAY,MAAM;AACzB,WAAK,MAAM;AAAA,IACb;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,cAAwB;AACtB,SAAK,oBAAgB,mBAAAC,SAAY,KAAK,MAAM;AAC5C,kBAAAD,QAAO,KAAK,iBAAiB,KAAK,aAAa;AAC/C,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,eAAyB;AAC3B,QAAI,CAAC,KAAK,eAAe;AACvB,WAAK,YAAY;AAAA,IACnB;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,QAAqB;AACnB,SAAK,cAAU,4BAAAE,SAAqB,KAAK,YAAY;AACrD,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,SAAsB;AACxB,QAAI,CAAC,KAAK,SAAS;AACjB,WAAK,MAAM;AAAA,IACb;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,SAAgC;AACpC,eAAO,aAAAC,SAAM,KAAK,QAAQ,OAAO;AAAA,EACnC;AAAA,EAEA,OAAO,SAAiC;AACtC,eAAO,cAAAC,SAAO,KAAK,QAAQ,OAAO;AAAA,EACpC;AAAA,EAEA,cAA8C;AAC5C,eAAO,mBAAAC,SAAY,KAAK,MAAM;AAAA,EAChC;AACF;",
  "names": ["parseString", "logger", "denormalise", "groupEntitiesByLayer", "toSVG", "toJson", "toPolylines"]
}
