memorium/_fresh/island-ingredientslist_ingredientslist.js.map
2023-08-24 00:13:09 +02:00

8 lines
3.0 KiB
Plaintext

{
"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<number>;\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 <tr key={key}>\n <td class=\"pr-4 py-2\">\n {numberToString(finalAmount || 0) +\n (typeof unit === \"string\" ? unit : \"\")}\n </td>\n <td class=\"px-4 py-2\">{type}</td>\n </tr>\n );\n};\n\nexport const IngredientsList: FunctionalComponent<\n { ingredients: Ingredients; amount: Signal<number>; portion?: number }\n> = (\n { ingredients, amount, portion },\n) => {\n return (\n <table class=\"w-full border-collapse table-auto\">\n <tbody>\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 <tr key={index}>\n <td colSpan={3} class=\"pr-4 py-2 font-italic\">{name}</td>\n </tr>\n {groupIngredients.map((item, index) => {\n // Render Ingredient\n return (\n <Ingredient\n key={index}\n ingredient={item}\n amount={amount}\n portion={portion}\n />\n );\n })}\n </>\n );\n } else {\n return (\n <Ingredient ingredient={item} amount={amount} portion={portion} />\n );\n }\n })}\n </tbody>\n </table>\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"]
}