{"version":3,"sources":["../../../src/parser/nodes/section.ts"],"sourcesContent":["import Definitions from \"../../core/definitions\";\r\nimport { Position } from '../../core/positions';\r\nimport Section from \"../../core/section\";\r\nimport SectionCollection from \"../../core/section-collection\";\r\nimport CollectionNode from \"./collections\";\r\nimport Node           from \"./nodes\";\r\nimport ObjectNode from \"./objects\";\r\nimport TokenNode from \"./tokens\";\r\n\r\ntype SectionChild = CollectionNode | ObjectNode | null;\r\n\r\nclass SectionNode implements Node {\r\n  type: string;\r\n  child: SectionChild;\r\n  nameNode: TokenNode | null;\r\n  schemaNode: TokenNode | null;\r\n\r\n  constructor(child: SectionChild, nameNode: TokenNode | null, schemaNode: TokenNode | null) {\r\n    this.type = 'section';\r\n    this.child = child;\r\n    this.nameNode = nameNode;\r\n    this.schemaNode = schemaNode;\r\n  }\r\n\r\n  get name(): string | undefined {\r\n    return (this.nameNode?.value as string | undefined) || this.schemaNode?.value?.toString().substring(1) || 'unnamed';\r\n  }\r\n\r\n  get schemaName(): string | undefined {\r\n    return (this.schemaNode?.value as string | undefined) || \"$schema\";\r\n  }\r\n\r\n  get firstChild(): SectionChild {\r\n    return this.child;\r\n  }\r\n\r\n  get firstChildObject(): ObjectNode | null {\r\n    if (this.child instanceof ObjectNode) {\r\n      return this.child;\r\n    }\r\n    if (this.child instanceof CollectionNode && this.child.children.length > 0) {\r\n      return this.child.children[0] as ObjectNode;\r\n    }\r\n    return null;\r\n  }\r\n\r\n  getStartPos(): Position {\r\n    return this.child?.getStartPos() ?? Position.unknown;\r\n  }\r\n\r\n  getEndPos(): Position {\r\n    return this.child?.getEndPos() ?? Position.unknown;\r\n  }\r\n\r\n  toValue (defs?:Definitions):any {\r\n\r\n    let data = null;\r\n    if (this.child) {\r\n      data = this.child.toValue(defs);\r\n    }\r\n\r\n    return new Section(\r\n      data,\r\n      this.name,\r\n      this.schemaName\r\n    );\r\n  }\r\n}\r\n\r\nexport default SectionNode;\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,uBAAyB;AACzB,qBAAoB;AAEpB,yBAA2B;AAE3B,qBAAuB;AAKvB,MAAM,YAA4B;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,OAAqB,UAA4B,YAA8B;AACzF,SAAK,OAAO;AACZ,SAAK,QAAQ;AACb,SAAK,WAAW;AAChB,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,IAAI,OAA2B;AAC7B,WAAQ,KAAK,UAAU,SAAgC,KAAK,YAAY,OAAO,SAAS,EAAE,UAAU,CAAC,KAAK;AAAA,EAC5G;AAAA,EAEA,IAAI,aAAiC;AACnC,WAAQ,KAAK,YAAY,SAAgC;AAAA,EAC3D;AAAA,EAEA,IAAI,aAA2B;AAC7B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,mBAAsC;AACxC,QAAI,KAAK,iBAAiB,eAAAA,SAAY;AACpC,aAAO,KAAK;AAAA,IACd;AACA,QAAI,KAAK,iBAAiB,mBAAAC,WAAkB,KAAK,MAAM,SAAS,SAAS,GAAG;AAC1E,aAAO,KAAK,MAAM,SAAS,CAAC;AAAA,IAC9B;AACA,WAAO;AAAA,EACT;AAAA,EAEA,cAAwB;AACtB,WAAO,KAAK,OAAO,YAAY,KAAK,0BAAS;AAAA,EAC/C;AAAA,EAEA,YAAsB;AACpB,WAAO,KAAK,OAAO,UAAU,KAAK,0BAAS;AAAA,EAC7C;AAAA,EAEA,QAAS,MAAuB;AAE9B,QAAI,OAAO;AACX,QAAI,KAAK,OAAO;AACd,aAAO,KAAK,MAAM,QAAQ,IAAI;AAAA,IAChC;AAEA,WAAO,IAAI,eAAAC;AAAA,MACT;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,EACF;AACF;AAEA,IAAO,kBAAQ;","names":["ObjectNode","CollectionNode","Section"]}