{"version":3,"file":"flavor_profile_controller-998b6790.js","sources":["../../../app/javascript/entrypoints/controllers/flavor_profile_controller.js"],"sourcesContent":["import { Controller } from \"@hotwired/stimulus\";\nimport { appendQueryParamToLink } from \"../appQueryParamToLink\";\n\nexport default class extends Controller {\n connect() {\n this.link = document.getElementById(\"link\");\n const link = this.link;\n const fillInWineBottle = this.fillInWineBottle;\n /* TASTE PROFILE */\n $(\"#wineSliderDryness\").slider({\n orientation: \"vertical\",\n range: \"max\",\n min: 0,\n max: 3,\n value: 3,\n step: 1,\n change: function (event, ui) {\n const slideValue = ui.value;\n const wineBottle = \"#Wine_Bottle_Dryness\";\n switch (slideValue) {\n case 2:\n fillInWineBottle(wineBottle, {\n top: 1,\n bottom: 0.4,\n middle: 0.4,\n });\n appendQueryParamToLink(link, \"dryness=dry\");\n break;\n case 1:\n fillInWineBottle(wineBottle, {\n top: 1,\n middle: 1,\n bottom: 0.4,\n });\n appendQueryParamToLink(link, \"dryness=medium\");\n break;\n case 0:\n fillInWineBottle(wineBottle, { top: 1, middle: 1, bottom: 1 });\n appendQueryParamToLink(link, \"dryness=sweet\");\n break;\n default:\n fillInWineBottle(wineBottle, {\n top: 0.4,\n bottom: 0.4,\n middle: 0.4,\n });\n break;\n }\n },\n });\n\n $(\"#wineSliderBody\").slider({\n orientation: \"vertical\",\n range: \"max\",\n min: 0,\n max: 3,\n value: 3,\n step: 1,\n change: function (event, ui) {\n const slideValue = ui.value;\n const wineBottle = \"#Wine_Bottle_Body\";\n switch (slideValue) {\n case 2:\n fillInWineBottle(wineBottle, { top: 1, middle: 0.4, bottom: 0.4 });\n appendQueryParamToLink(link, \"body=light\");\n break;\n case 1:\n fillInWineBottle(wineBottle, { top: 1, middle: 1, bottom: 0.4 });\n appendQueryParamToLink(link, \"body=medium\");\n break;\n case 0:\n fillInWineBottle(wineBottle, { top: 1, middle: 1, bottom: 1 });\n appendQueryParamToLink(link, \"body=full\");\n break;\n default:\n fillInWineBottle(wineBottle, {\n top: 0.4,\n middle: 0.4,\n bottom: 0.4,\n });\n break;\n }\n },\n });\n\n $(\"#wineSliderTannin\").slider({\n orientation: \"vertical\",\n range: \"max\",\n min: 0,\n max: 3,\n value: 3,\n step: 1,\n change: function (event, ui) {\n const slideValue = ui.value;\n const wineBottle = \"#Wine_Bottle_Tannin\";\n switch (slideValue) {\n case 2:\n fillInWineBottle(wineBottle, { top: 1, middle: 0.4, bottom: 0.4 });\n appendQueryParamToLink(link, \"tannin=low\");\n break;\n case 1:\n fillInWineBottle(wineBottle, { top: 1, middle: 1, bottom: 0.4 });\n appendQueryParamToLink(link, \"tannin=medium\");\n break;\n case 0:\n fillInWineBottle(wineBottle, { top: 1, middle: 1, bottom: 1 });\n appendQueryParamToLink(link, \"tannin=heavy\");\n break;\n default:\n fillInWineBottle(wineBottle, {\n top: 0.4,\n middle: 0.4,\n bottom: 0.4,\n });\n break;\n }\n },\n });\n\n /* MODALS */\n $(\".dialogBox\").dialog({ autoOpen: false, resizable: false, width: 700 });\n\n $(\".dialogBox .close-button\").on(\"click\", function () {\n $(\".dialogBox\").dialog(\"close\");\n });\n\n $(document).on(\"click\", \".tannin-title\", function (event) {\n $(\"#info-popup\").dialog(\"open\");\n });\n }\n\n adjustSliderPosition(wineSlider, values) {\n const { height, bottom } = values;\n $(`${wineSlider} .ui-widget-header`).attr(\"style\", `height: ${height}`);\n $(`${wineSlider} .ui-slider-handle`).attr(\"style\", `bottom: ${bottom}`);\n }\n\n fillInWineBottle(wineBottle, opacity) {\n const { top, middle, bottom } = opacity;\n $(`${wineBottle} #Top`).css({ opacity: top });\n $(`${wineBottle} #Middle`).css({ opacity: middle });\n $(`${wineBottle} #Bottom`).css({ opacity: bottom });\n }\n\n get flavorCharacteristics() {\n return {\n dryness: {\n flexible: \"flexible\",\n light: \"dry\",\n medium: \"medium\",\n strong: \"sweet\",\n },\n body: {\n flexible: \"flexible\",\n light: \"light\",\n medium: \"medium\",\n strong: \"full\",\n },\n tannin: {\n flexible: \"flexible\",\n light: \"low\",\n medium: \"medium\",\n strong: \"heavy\",\n },\n };\n }\n\n assignFlavor(event) {\n const { characteristic, characteristicFlavor, wineBottle, wineSlider } =\n event.params;\n const flavorCharacteristics = this.flavorCharacteristics[characteristic];\n console.log(event.params);\n console.log(flavorCharacteristics);\n switch (characteristicFlavor) {\n case flavorCharacteristics.flexible:\n this.fillInWineBottle(`${wineBottle}`, {\n top: 0.4,\n bottom: 0.4,\n middle: 0.4,\n });\n this.adjustSliderPosition(`${wineSlider}`, {\n height: \"0%\",\n bottom: \"100%\",\n });\n break;\n case flavorCharacteristics.light:\n this.fillInWineBottle(`${wineBottle}`, {\n top: 1,\n bottom: 0.4,\n middle: 0.4,\n });\n this.adjustSliderPosition(`${wineSlider}`, {\n height: \"33.3333%\",\n bottom: \"66.6667%\",\n });\n break;\n case flavorCharacteristics.medium:\n this.fillInWineBottle(`${wineBottle}`, {\n top: 1,\n middle: 1,\n bottom: 0.4,\n });\n this.adjustSliderPosition(`${wineSlider}`, {\n height: \"66.6667%\",\n bottom: \"33.3333%\",\n });\n break;\n case flavorCharacteristics.strong:\n this.fillInWineBottle(`${wineBottle}`, {\n top: 1,\n bottom: 1,\n middle: 1,\n });\n this.adjustSliderPosition(`${wineSlider}`, {\n height: \"100%\",\n bottom: \"0%\",\n });\n break;\n default:\n break;\n }\n appendQueryParamToLink(\n this.link,\n `${characteristic}=${characteristicFlavor}`\n );\n }\n}\n"],"names":["flavor_profile_controller","Controller","link","fillInWineBottle","$","event","ui","slideValue","wineBottle","appendQueryParamToLink","wineSlider","values","height","bottom","opacity","top","middle","characteristic","characteristicFlavor","flavorCharacteristics"],"mappings":"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"}