{"version":3,"file":"filter-graph.mjs","names":[],"sources":["../../src/actions/filter-graph.ts"],"sourcesContent":["export type FilterValue = string | number | boolean;\n\nexport const isFilterValue = (it: unknown): it is FilterValue =>\n  typeof it === 'boolean' || typeof it === 'number' || typeof it === 'string';\n\nexport const formatValue = (value: FilterValue): string => {\n  if (typeof value === 'boolean') return value ? 'true' : 'false';\n  if (typeof value === 'number') return value.toString(10);\n  return value;\n};\n\nexport type FilterArgs =\n  | Record<string, FilterValue>\n  | FilterValue[]\n  | FilterValue\n  | undefined;\n\nexport type Filter = [name: string, args?: FilterArgs];\n\nexport const formatFilter = ([name, args]: Filter): string => {\n  if (typeof args === 'undefined') return name;\n\n  if (isFilterValue(args)) return `${name}=${formatValue(args)}`;\n  if (Array.isArray(args)) return `${name}=${args.map(formatValue).join(':')}`;\n\n  const argString = Object.entries(args)\n    .map(([key, val]) => `${key}=${formatValue(val)}`)\n    .join(':');\n\n  return `${name}=${argString}`;\n};\n\nexport type FilterChain = Filter[];\nexport const formatChain = (chain: FilterChain) =>\n  chain.map(formatFilter).join(',');\n\nexport type GraphLink = string;\nexport const linkFmt = (links: GraphLink[]) =>\n  links.map((it) => `[${it}]`).join('');\n\nexport type FilterGraph = [GraphLink[], FilterChain, GraphLink[]][];\nexport const formatGraph = (graph: FilterGraph) =>\n  graph\n    .map(([inLinks, chain, outLinks]) => {\n      const inStr = linkFmt(inLinks);\n      const chainStr = formatChain(chain);\n      const outStr = linkFmt(outLinks);\n      return `${inStr}${chainStr}${outStr}`;\n    })\n    .join(';');\n"],"mappings":";AAEA,MAAa,iBAAiB,OAC5B,OAAO,OAAO,aAAa,OAAO,OAAO,YAAY,OAAO,OAAO;AAErE,MAAa,eAAe,UAA+B;CACzD,IAAI,OAAO,UAAU,WAAW,OAAO,QAAQ,SAAS;CACxD,IAAI,OAAO,UAAU,UAAU,OAAO,MAAM,SAAS,EAAE;CACvD,OAAO;AACT;AAUA,MAAa,gBAAgB,CAAC,MAAM,UAA0B;CAC5D,IAAI,OAAO,SAAS,aAAa,OAAO;CAExC,IAAI,cAAc,IAAI,GAAG,OAAO,GAAG,KAAK,GAAG,YAAY,IAAI;CAC3D,IAAI,MAAM,QAAQ,IAAI,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,IAAI,WAAW,CAAC,CAAC,KAAK,GAAG;CAMzE,OAAO,GAAG,KAAK,GAJG,OAAO,QAAQ,IAAI,CAAC,CACnC,KAAK,CAAC,KAAK,SAAS,GAAG,IAAI,GAAG,YAAY,GAAG,GAAG,CAAC,CACjD,KAAK,GAEkB;AAC5B;AAGA,MAAa,eAAe,UAC1B,MAAM,IAAI,YAAY,CAAC,CAAC,KAAK,GAAG;AAGlC,MAAa,WAAW,UACtB,MAAM,KAAK,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE;AAGtC,MAAa,eAAe,UAC1B,MACG,KAAK,CAAC,SAAS,OAAO,cAAc;CAInC,OAAO,GAHO,QAAQ,OAGR,IAFG,YAAY,KAEJ,IADV,QAAQ,QACW;AACpC,CAAC,CAAC,CACD,KAAK,GAAG"}