{ "version": 3, "sources": ["islands/IngredientsList.tsx"], "sourcesContent": ["import { Signal } from \"@preact/signals\";\nimport type {\n Ingredient,\n IngredientGroup,\n Ingredients,\n} from \"../lib/recipes.ts\";\nimport { FunctionalComponent } from \"preact\";\n\nfunction numberToString(num: number) {\n return (Math.floor(num * 4) / 4).toString();\n}\n\nconst Ingredient = (\n { ingredient, amount, key = \"\", portion = 1 }: {\n ingredient: Ingredient;\n amount: Signal;\n key?: string | number;\n portion?: number;\n },\n) => {\n const { type, amount: _amount, unit } = ingredient;\n\n const finalAmount = (typeof _amount === \"number\" && amount)\n ? (_amount / portion) * (amount?.value || 1)\n : \"\";\n\n return (\n \n \n {numberToString(finalAmount || 0) +\n (typeof unit === \"string\" ? unit : \"\")}\n \n {type}\n \n );\n};\n\nexport const IngredientsList: FunctionalComponent<\n { ingredients: Ingredients; amount: Signal; portion?: number }\n> = (\n { ingredients, amount, portion },\n) => {\n return (\n \n \n {ingredients.map((item, index) => {\n if (\"name\" in item) {\n // Render IngredientGroup\n const { name, ingredients: groupIngredients } =\n item as IngredientGroup;\n\n return (\n <>\n \n \n \n {groupIngredients.map((item, index) => {\n // Render Ingredient\n return (\n \n );\n })}\n \n );\n } else {\n return (\n \n );\n }\n })}\n \n
{name}
\n );\n};\n"], "mappings": "kGAQA,SAAS,eAAe,IAAa,CACnC,OAAQ,KAAK,MAAM,IAAM,CAAC,EAAI,GAAG,SAAS,CAC5C,CAEA,IAAM,WAAa,CACjB,CAAE,WAAY,OAAQ,IAAM,GAAI,QAAU,CAAE,IAMzC,CACH,GAAM,CAAE,KAAM,OAAQ,QAAS,IAAK,EAAI,WAElC,YAAe,OAAO,SAAY,UAAY,OAC/C,QAAU,SAAY,QAAQ,OAAS,GACxC,GAEJ,OACE,EAAC,MACC,YAAC,MAAG,MAAM,YACP,wBAAe,aAAe,CAAC,GAC7B,OAAO,MAAS,SAAW,KAAO,IACvC,EACA,EAAC,MAAG,MAAM,YAAa,cAAK,IALrB,GAMT,CAEJ,EAEa,gBAET,CACF,CAAE,YAAa,OAAQ,OAAQ,IAG7B,EAAC,SAAM,MAAM,oCACX,WAAC,SACE,qBAAY,IAAI,CAAC,KAAM,QAAU,CAChC,GAAI,SAAU,KAAM,CAElB,GAAM,CAAE,KAAM,YAAa,gBAAiB,EAC1C,KAEF,OACE,KACE,YAAC,MACC,WAAC,MAAG,QAAS,EAAG,MAAM,wBAAyB,cAAK,GAD7C,KAET,EACC,iBAAiB,IAAI,CAACA,MAAMC,SAGzB,EAAC,YAEC,WAAYD,MACZ,OACA,SAHKC,MAIP,CAEH,GACH,CAEJ,KACE,QACE,EAAC,YAAW,WAAY,KAAM,OAAgB,QAAkB,CAGtE,CAAC,EACH,EACF", "names": ["item", "index"] }