{"version":3,"file":"view-render-command.mjs","names":["Actions.viewRenderAction"],"sources":["../../src/commands/view-render-command.ts"],"sourcesContent":["import { type Command, InvalidOptionArgumentError, Option } from 'commander';\n\nimport { cmdIntParser } from './cmd-int-parser.js';\nimport * as Actions from '../actions/index.js';\nimport {\n  contrastOption,\n  formatOption,\n  paletteOption,\n  scalerOption,\n} from './render-options.js';\n\nfunction parsePadding(\n  val: string,\n):\n  | [number]\n  | [number, number]\n  | [number, number, number]\n  | [number, number, number, number] {\n  const trimmed = val.trim();\n  let match: RegExpMatchArray | null;\n  match = trimmed.match(/^(\\d+)$/);\n  if (match) return [parseInt(match[1], 10)];\n  match = trimmed.match(/^(\\d+)\\s+(\\d+)$/);\n  if (match) return [parseInt(match[1], 10), parseInt(match[2], 10)];\n  match = trimmed.match(/^(\\d+)\\s+(\\d+)\\s+(\\d+)$/);\n  if (match)\n    return [\n      parseInt(match[1], 10),\n      parseInt(match[2], 10),\n      parseInt(match[3], 10),\n    ];\n  match = trimmed.match(/^(\\d+)\\s+(\\d+)\\s+(\\d+)\\s+(\\d+)$/);\n  if (match)\n    return [\n      parseInt(match[1], 10),\n      parseInt(match[2], 10),\n      parseInt(match[3], 10),\n      parseInt(match[4], 10),\n    ];\n\n  throw new InvalidOptionArgumentError(\n    `must be \"<all>\", \"<vetical> <horizontal>\", \"<top> <horizontal> <bottom>\", \"<top> <right> <bottom> <left>\"`,\n  );\n}\n\nexport const viewRenderCommand = (cmd: Command) =>\n  cmd\n    .command('render')\n    .argument('<num>', 'id to render', cmdIntParser)\n    .argument('<loop>', 'loop to render', cmdIntParser)\n    .addOption(paletteOption())\n    .addOption(contrastOption())\n    .addOption(scalerOption())\n    .addOption(\n      new Option('--animated', 'render loop as animated gif').default(false),\n    )\n    .addOption(\n      new Option(\n        '--padding <padding>',\n        'add extra padding around sprite (in pixels)',\n      ).argParser(parsePadding),\n    )\n    .option(\n      '-o, --output <string>',\n      'output filename, \"-\" for STDOUT',\n      undefined,\n    )\n    .addOption(formatOption())\n    .action(Actions.viewRenderAction);\n"],"mappings":";;;;;;AAWA,SAAS,aACP,KAKmC;CACnC,MAAM,UAAU,IAAI,KAAK;CACzB,IAAI;CACJ,QAAQ,QAAQ,MAAM,SAAS;CAC/B,IAAI,OAAO,OAAO,CAAC,SAAS,MAAM,IAAI,EAAE,CAAC;CACzC,QAAQ,QAAQ,MAAM,iBAAiB;CACvC,IAAI,OAAO,OAAO,CAAC,SAAS,MAAM,IAAI,EAAE,GAAG,SAAS,MAAM,IAAI,EAAE,CAAC;CACjE,QAAQ,QAAQ,MAAM,yBAAyB;CAC/C,IAAI,OACF,OAAO;EACL,SAAS,MAAM,IAAI,EAAE;EACrB,SAAS,MAAM,IAAI,EAAE;EACrB,SAAS,MAAM,IAAI,EAAE;CACvB;CACF,QAAQ,QAAQ,MAAM,iCAAiC;CACvD,IAAI,OACF,OAAO;EACL,SAAS,MAAM,IAAI,EAAE;EACrB,SAAS,MAAM,IAAI,EAAE;EACrB,SAAS,MAAM,IAAI,EAAE;EACrB,SAAS,MAAM,IAAI,EAAE;CACvB;CAEF,MAAM,IAAI,2BACR,2GACF;AACF;AAEA,MAAa,qBAAqB,QAChC,IACG,QAAQ,QAAQ,CAAC,CACjB,SAAS,SAAS,gBAAgB,YAAY,CAAC,CAC/C,SAAS,UAAU,kBAAkB,YAAY,CAAC,CAClD,UAAU,cAAc,CAAC,CAAC,CAC1B,UAAU,eAAe,CAAC,CAAC,CAC3B,UAAU,aAAa,CAAC,CAAC,CACzB,UACC,IAAI,OAAO,cAAc,6BAA6B,CAAC,CAAC,QAAQ,KAAK,CACvE,CAAC,CACA,UACC,IAAI,OACF,uBACA,6CACF,CAAC,CAAC,UAAU,YAAY,CAC1B,CAAC,CACA,OACC,yBACA,qCACA,KAAA,CACF,CAAC,CACA,UAAU,aAAa,CAAC,CAAC,CACzB,OAAOA,gBAAwB"}