{"version":3,"file":"preview_controller-BahLFgu2.js","sources":["../../../app/javascript/controllers/popup/preview_controller.js"],"sourcesContent":["import { Controller } from \"@hotwired/stimulus\"\nimport { useColorPickerVisibilityControls } from \"../mixins/useColorPickerVisibilityControls\"\n\nexport default class extends Controller {\n static targets = [\n \"content\",\n \"backgroundPicker\",\n \"overlay\",\n \"actions\",\n \"backgroundButton\",\n ]\n\n connect() {\n if (this.hasBackgroundPickerTarget) {\n useColorPickerVisibilityControls(this, {\n pickerTarget: this.backgroundPickerTarget,\n afterColorPickerShow: () => {\n this.actionsTarget.classList.replace(\"hidden\", \"flex\")\n },\n onColorPickerHide: () => {\n this.actionsTarget.classList.replace(\"flex\", \"hidden\")\n },\n })\n }\n\n if (window.popup?.color) {\n this.element.style.color = window.popup?.color\n }\n\n if (window.popup?.backgroundColor) {\n this.element.style.backgroundColor = window.popup?.backgroundColor\n }\n\n if (window.popup?.fontSizeBase) {\n this.multiplyFontSizeWithBase(window.popup.fontSizeBase)\n }\n\n if (window.popup?.image) {\n this.element.style.backgroundImage = `url(${window.popup.image.path})`\n if (window.popup.image.fit === \"fill\") {\n this.element.style.backgroundSize = \"cover\"\n } else {\n this.element.style.backgroundRepeat = \"repeat\"\n }\n }\n\n this.dispatch(\"connected\")\n }\n\n changeTextColor({ detail }) {\n this.element.style.color = detail.color\n }\n\n changeBackgroundColor({ detail }) {\n this.element.style.backgroundColor = detail.color\n }\n\n changeTextSize({ detail }) {\n this.multiplyFontSizeWithBase(detail.size)\n }\n\n changeBodyBackground({ detail }) {\n this.element.style.backgroundImage = `url(${detail.imagePath})`\n this.element.style.backgroundSize = \"cover\"\n }\n\n changeBodyBackgroundFitToMosaic() {\n this.element.style.backgroundSize = \"contain\"\n this.element.style.backgroundRepeat = \"repeat\"\n }\n\n changeBodyBackgroundFitToFill() {\n this.element.style.backgroundSize = \"cover\"\n this.element.style.removeProperty(\"background-repeat\")\n }\n\n removeBodyBackground() {\n this.element.style.removeProperty(\"background-size\")\n this.element.style.removeProperty(\"background-repeat\")\n this.element.style.removeProperty(\"background-image\")\n }\n\n changeOverlayBackgroundColor({ detail: rgbaString, target }) {\n if (target !== this.backgroundPickerTarget) return\n\n const rgba = this.getRGBValues(rgbaString)\n\n rgbaString = `rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${rgba.a})`\n this.overlayTarget.style.backgroundColor = rgbaString\n\n this.dispatch(\"overlay:background-color-changed\", {\n target: document.documentElement,\n detail: rgbaString,\n })\n }\n\n hidePicker(e) {\n if (this.backgroundButtonTarget.contains(e?.target) === false) {\n this.backgroundPickerTarget.classList.add(\"hidden\")\n this.actionsTarget.classList.replace(\"flex\", \"hidden\")\n }\n }\n\n getRGBValues(str) {\n const vals = str.substring(str.indexOf(\"(\") + 1, str.length - 1).split(\", \")\n return {\n r: vals[0],\n g: vals[1],\n b: vals[2],\n a: 0.4,\n }\n }\n\n syncOverlayBackgroundImage({ detail: rgbaColor }) {\n this.overlayTarget.style.backgroundColor = rgbaColor\n }\n\n // private\n\n multiplyFontSizeWithBase(base) {\n const paragraphTags = this.element.querySelectorAll(\n \"[data-kind='paragraph']\"\n )\n const headerTags = this.element.querySelectorAll(\"[data-kind='heading']\")\n const smallTags = this.element.querySelectorAll(\"[data-kind='small']\")\n\n paragraphTags.forEach((element) => {\n const size =\n Number.parseFloat(element.dataset.size) * Number.parseFloat(base)\n element.style.fontSize = `${size}px`\n })\n\n headerTags.forEach((element) => {\n const size =\n Number.parseFloat(element.dataset.size) * Number.parseFloat(base)\n element.style.fontSize = `${size}px`\n })\n\n smallTags.forEach((element) => {\n const size =\n Number.parseFloat(element.dataset.size) * Number.parseFloat(base)\n element.style.fontSize = `${size}px`\n })\n }\n}\n"],"names":["preview_controller","Controller","useColorPickerVisibilityControls","_a","_b","_c","_d","_e","_f","detail","rgbaString","target","rgba","str","vals","rgbaColor","base","paragraphTags","headerTags","smallTags","element","size","__publicField"],"mappings":"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"}