{"version":3,"sources":["../../src/utils/helper.ts"],"names":["require_helper","__commonJSMin","exports","module","helper","item","price","quantity","items","total","tax","subTotal"],"mappings":"8DAAA,IAAAA,EAAAC,EAAA,CAAAC,EAAAC,IAAA,CASA,IAAMC,EAAkB,CAQvB,cAAe,SAAUC,EAAwB,CAChD,IAAMC,EAAQD,EAAK,OAAS,EACtBE,EAAWF,EAAK,UAAY,EAClC,OAAQC,EAAQC,GAAU,QAAQ,CAAC,CACpC,EASA,aAAc,SAAUC,EAAoC,CAC3D,GAAIA,EAAM,SAAW,EACpB,MAAO,GAGR,IAAIC,EAAQ,EAEZ,OAAAD,EAAM,QAASH,GAAS,CACvBI,GAAS,OAAO,KAAK,cAAcJ,CAAI,CAAC,CACzC,CAAC,EAEMI,EAAM,QAAQ,CAAC,CACvB,EASA,QAAS,SAAUD,EAAoC,CACtD,GAAIA,EAAM,SAAW,EACpB,MAAO,GAGR,IAAIC,EAAQ,EAEZ,OAAAD,EAAM,QAASH,GAAS,CACvB,IAAMC,EAAQD,EAAK,MACbE,EAAWF,EAAK,SAChBK,EAAML,EAAK,KAAO,EAExBI,GAAUH,EAAQC,EAAWG,EAAO,GACrC,CAAC,EAEMD,EAAM,QAAQ,CAAC,CACvB,EASA,eAAgB,SAAUD,EAAoC,CAC7D,GAAIA,EAAM,SAAW,EACpB,MAAO,GAGR,IAAMG,EAAW,OAAO,KAAK,aAAaH,CAAK,CAAC,EAC1CE,EAAM,OAAO,KAAK,QAAQF,CAAK,CAAC,EAEtC,OAAQG,EAAWD,GAAK,QAAQ,CAAC,CAClC,CACD,EAEAP,EAAO,QAAUC","sourcesContent":["import type { ItemInfo } from \"../../global\";\n\ninterface Helpers {\n\tcalcItemTotal(item: ItemInfo): number | string;\n\tcalcTax(items: ItemInfo[]): number | string;\n\tcalcSubTotal(items: ItemInfo[]): number | string;\n\tcalcFinalTotal(items: ItemInfo[]): number | string;\n}\n\nconst helper: Helpers = {\n\t/**\n\t * Item total price calculation.\n\t *\n\t * @param {Object} item.\n\t * @returns {number} total.\n\t * @since 1.0.0\n\t */\n\tcalcItemTotal: function (item: ItemInfo): string {\n\t\tconst price = item.price || 0;\n\t\tconst quantity = item.quantity || 1;\n\t\treturn (price * quantity).toFixed(2);\n\t},\n\n\t/**\n\t * Calculate subtotal.\n\t *\n\t * @param {Object} items.\n\t * @returns {number} total.\n\t * @since 1.0.0\n\t */\n\tcalcSubTotal: function (items: ItemInfo[]): number | string {\n\t\tif (items.length === 0) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tlet total = 0;\n\n\t\titems.forEach((item) => {\n\t\t\ttotal += Number(this.calcItemTotal(item));\n\t\t});\n\n\t\treturn total.toFixed(2);\n\t},\n\n\t/**\n\t * Calculate tax.\n\t *\n\t * @param {Object} items.\n\t * @returns {number} total.\n\t * @since 1.0.0\n\t */\n\tcalcTax: function (items: ItemInfo[]): number | string {\n\t\tif (items.length === 0) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tlet total = 0;\n\n\t\titems.forEach((item) => {\n\t\t\tconst price = item.price;\n\t\t\tconst quantity = item.quantity;\n\t\t\tconst tax = item.tax || 0;\n\n\t\t\ttotal += (price * quantity * tax) / 100;\n\t\t});\n\n\t\treturn total.toFixed(2);\n\t},\n\n\t/**\n\t * Calculate total final price.\n\t *\n\t * @param {Object} items.\n\t * @returns {number} total.\n\t * @since 1.0.0\n\t */\n\tcalcFinalTotal: function (items: ItemInfo[]): number | string {\n\t\tif (items.length === 0) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tconst subTotal = Number(this.calcSubTotal(items));\n\t\tconst tax = Number(this.calcTax(items));\n\n\t\treturn (subTotal + tax).toFixed(2);\n\t},\n};\n\nmodule.exports = helper;\n"]}