{"version":3,"file":"pictParser.cjs","sources":["../../src/libs/pictParser.tsx"],"sourcesContent":["import { FaAddressBookIcon } from '../components/Icon'\n\ntype AnyObjectType = { [key: string]: any }\n\nexport const pictParser = <T extends AnyObjectType>(\n  pict: string,\n  formatter?: (vs: { [key: string]: any }) => T,\n) => {\n  const lines = pict.split('\\n')\n  const header = lines.shift()!.split('\\t')\n  const reducer = (prev: AnyObjectType, c: string, i: number) => {\n    prev[header[i]] = valueConverter(i === 0 ? c.replace(/^(\\s|\\t)+/, '') : c)\n\n    return prev\n  }\n\n  return lines.map((line) => {\n    const result = line.split('\\t').reduce(reducer, {} as T)\n\n    return formatter ? formatter(result) : result\n  })\n}\n\nconst NUM_REGEX = /^([0-9]+|[0-9]+\\.[0-9]+)$/\nconst valueConverter = (v: string): any => {\n  switch (v) {\n    case 'undefined':\n      return undefined\n    case 'null':\n      return null\n    case 'true':\n      return true\n    case 'false':\n      return false\n    case '<Icon />':\n      return <FaAddressBookIcon />\n  }\n\n  // HINT: 整数 or 少数含む数値の場合数値変換\n  if (NUM_REGEX.test(v)) {\n    return parseFloat(v)\n  }\n\n  return v\n}\n"],"names":["_jsx","FaAddressBookIcon"],"mappings":";;;;;;;MAIa,UAAU,GAAG,CACxB,IAAY,EACZ,SAA6C,KAC3C;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC,KAAK,CAAC,IAAI,CAAC;IACzC,MAAM,OAAO,GAAG,CAAC,IAAmB,EAAE,CAAS,EAAE,CAAS,KAAI;AAC5D,QAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AAE1E,QAAA,OAAO,IAAI;AACb,IAAA,CAAC;AAED,IAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACxB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,EAAO,CAAC;AAExD,QAAA,OAAO,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM;AAC/C,IAAA,CAAC,CAAC;AACJ;AAEA,MAAM,SAAS,GAAG,2BAA2B;AAC7C,MAAM,cAAc,GAAG,CAAC,CAAS,KAAS;IACxC,QAAQ,CAAC;AACP,QAAA,KAAK,WAAW;AACd,YAAA,OAAO,SAAS;AAClB,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,IAAI;AACb,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,IAAI;AACb,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,KAAK;AACd,QAAA,KAAK,UAAU;YACb,OAAOA,cAAA,CAACC,wCAAiB,EAAA,EAAA,CAAG;;;AAIhC,IAAA,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACrB,QAAA,OAAO,UAAU,CAAC,CAAC,CAAC;IACtB;AAEA,IAAA,OAAO,CAAC;AACV,CAAC;;;;"}