{"version":3,"sources":["../../../src/accounting/invoices/lineItems.ts"],"sourcesContent":["import { isNil } from 'deep-cuts';\r\nimport type { LineItem } from 'xero-node';\r\n\r\nimport type { DecisionFunction } from '../../types';\r\n\r\nexport const filterInvoiceLineItems = (\r\n  lineItems: LineItem[],\r\n  minCode: DecisionFunction<LineItem> | string | number,\r\n  maxCode?: string | number,\r\n): LineItem[] => {\r\n  if (typeof minCode === 'function') {\r\n    return (lineItems || []).filter(minCode);\r\n  }\r\n\r\n  const parsedMinCode = isNil(minCode)\r\n    ? minCode\r\n    : Number.parseInt(minCode as string, 10);\r\n  const parsedMaxCode = isNil(maxCode)\r\n    ? maxCode\r\n    : Number.parseInt(maxCode as string, 10);\r\n  if (parsedMinCode || parsedMaxCode) {\r\n    return (lineItems || []).filter(({ itemCode }) => {\r\n      const parsedItemCode = isNil(itemCode)\r\n        ? itemCode\r\n        : Number.parseInt(itemCode as string, 10);\r\n      if (parsedItemCode) {\r\n        const greaterThanOrEqualToMinCode = isNil(parsedMinCode)\r\n          ? true\r\n          : parsedItemCode >= parsedMinCode;\r\n        const lessThanOrEqualToMaxCode = isNil(parsedMaxCode)\r\n          ? true\r\n          : parsedItemCode <= (parsedMaxCode || 0);\r\n        return greaterThanOrEqualToMinCode && lessThanOrEqualToMaxCode;\r\n      }\r\n\r\n      return false;\r\n    });\r\n  }\r\n\r\n  return lineItems || [];\r\n};\r\n"],"mappings":";AAAA,SAAS,aAAa;AAKf,IAAM,yBAAyB,CACpC,WACA,SACA,YACe;AACf,MAAI,OAAO,YAAY,YAAY;AACjC,YAAQ,aAAa,CAAC,GAAG,OAAO,OAAO;AAAA,EACzC;AAEA,QAAM,gBAAgB,MAAM,OAAO,IAC/B,UACA,OAAO,SAAS,SAAmB,EAAE;AACzC,QAAM,gBAAgB,MAAM,OAAO,IAC/B,UACA,OAAO,SAAS,SAAmB,EAAE;AACzC,MAAI,iBAAiB,eAAe;AAClC,YAAQ,aAAa,CAAC,GAAG,OAAO,CAAC,EAAE,SAAS,MAAM;AAChD,YAAM,iBAAiB,MAAM,QAAQ,IACjC,WACA,OAAO,SAAS,UAAoB,EAAE;AAC1C,UAAI,gBAAgB;AAClB,cAAM,8BAA8B,MAAM,aAAa,IACnD,OACA,kBAAkB;AACtB,cAAM,2BAA2B,MAAM,aAAa,IAChD,OACA,mBAAmB,iBAAiB;AACxC,eAAO,+BAA+B;AAAA,MACxC;AAEA,aAAO;AAAA,IACT,CAAC;AAAA,EACH;AAEA,SAAO,aAAa,CAAC;AACvB;","names":[]}