{"version":3,"file":"utils-Ja9fODrz.js","sources":["../../../app/javascript/lib/helpers/HideByCheckbox.ts","../../../app/javascript/entrypoints/shared/utils.ts"],"sourcesContent":["interface ByCheckBoxOptions {\n whenChecked: \"hide\" | \"show\"\n disableInputs: boolean\n}\n\nclass ByCheckBox {\n private readonly _target: HTMLElement;\n private readonly _checkBox: HTMLInputElement;\n private readonly _whenChecked: \"hide\" | \"show\";\n private readonly _disableInputs: boolean;\n constructor(target: HTMLElement, checkBox: HTMLInputElement, { whenChecked, disableInputs }: ByCheckBoxOptions) {\n this._target = target;\n this._checkBox = checkBox;\n this._whenChecked = whenChecked;\n this._disableInputs = disableInputs;\n }\n\n connect() {\n this._checkBox.addEventListener(\"change\", () => this.onChecked());\n this.onChecked();\n }\n\n private onChecked() {\n let hide: boolean;\n switch (this._whenChecked) {\n case \"hide\":\n hide = this._checkBox.checked;\n break;\n case \"show\":\n hide = !this._checkBox.checked;\n break;\n }\n this._target.classList.toggle(\"d-none\", hide);\n if (this._disableInputs) {\n this._target.querySelectorAll(\"input,textarea,select\")\n .forEach((input: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement) => {\n input.disabled = hide;\n });\n }\n }\n}\n\nexport class ShowByCheckbox extends ByCheckBox {\n constructor(target: HTMLElement, checkbox: HTMLInputElement = null) {\n const checkBoxSelector = target.dataset.showByCheckbox;\n checkbox = checkbox || document.querySelector(checkBoxSelector);\n\n if (!checkbox) throw `Failed to find checkbox with selector ${checkBoxSelector}`;\n\n super(target, checkbox, { whenChecked: \"show\", disableInputs: true });\n }\n}\n\nexport class HideByCheckbox extends ByCheckBox {\n constructor(target: HTMLElement, checkbox: HTMLInputElement = null) {\n const checkBoxSelector = target.dataset.hideByCheckbox;\n checkbox = checkbox || document.querySelector(checkBoxSelector);\n\n if (!checkbox) throw `Failed to find checkbox with selector ${checkBoxSelector}`;\n\n super(target, checkbox, { whenChecked: \"hide\", disableInputs: false });\n }\n}\n","import \"@/lib/_jquery\";\nimport { HideByCheckbox, ShowByCheckbox } from \"@/lib/helpers/HideByCheckbox\";\n\n$(function() {\n // Hide element depending on checkbox\n $(\"[data-hide-by-checkbox]\").each(function() {\n try {\n new HideByCheckbox(this).connect();\n } catch {\n console.log(\"Failed to find checkbox for HideByCheckbox\")\n }\n\n });\n\n $(\"[data-show-by-checkbox]\").each(function() {\n try {\n new ShowByCheckbox(this).connect();\n } catch {\n console.log(\"Failed to find checkbox for ShowByCheckbox\")\n }\n });\n\n // Hide element depending on checkbox\n $(\"[data-hide-by-select]\").each(function() {\n const $area = $(this);\n const $select = $($(this).data(\"hide-by-select\"));\n const select_value = $(this).data(\"hide-by-select-value\").toString();\n\n const activate = function() {\n const value = $(this).val();\n $area.toggleClass(\"d-none\", value === select_value);\n };\n\n $select.change(activate);\n $select.trigger(\"change\");\n });\n\n document.querySelectorAll(\"[data-show-by-select]\").forEach(element => {\n const showBySelect = (element as HTMLSelectElement).dataset.showBySelect;\n const showBySelectValue = (element as HTMLSelectElement).dataset.showBySelectValue;\n const select: HTMLSelectElement = document.querySelector(showBySelect);\n\n function listener() {\n return element.classList.toggle(\"d-none\", select.value !== showBySelectValue);\n }\n\n select.addEventListener(\"change\", listener);\n listener();\n });\n\n\n $(function () {\n $(\"[data-bs-toggle='tooltip']\").tooltip();\n });\n\n\n // Focus first input or first input with error\n $(\".fn-slick-form-focus form\").each(function() {\n if (window.navigator.userAgent === \"playwright\") return;\n let focusedElement = $(\".is-invalid:input:visible\").not(\":button\").first();\n if (focusedElement.length === 0) {\n focusedElement = $(\":input:visible\").not(\":button\").first();\n }\n\n // Select text on focus\n focusedElement.on(\"focus\", function () {\n // Delay sightly to allow focus to \"stick\" before selecting.\n setTimeout(function() { focusedElement.select(); }, 50);\n });\n\n // Focus the first input of form\n focusedElement.focus();\n });\n\n // This is only needed one place.\n // Don't know how to utilise\n // \"fn-slick-form-focus\" on election config forms\n // without it jumping to bottom of page.\n $(\".stay-top\").each(function() {\n $(document).scrollTop(0);\n });\n});\n\n$(function() {\n const counters = $(\"[id^='counter_']\");\n\n counters.each(function(i, val) {\n const counter = $(`#${val.id}`);\n const identity = counter.data(\"identity\");\n const textArea = $(`${identity}`);\n counter?.text((textArea.val() as string[]).length);\n textArea.on(\"input\", function() {\n counter?.text(($(this).val() as string[]).length);\n });\n });\n});\n\n$(function() {\n const wysiwygCounters = [];\n $($(\".trumbowyg-box\")).each(function (_i, v) {\n if ($(v).find(\"textarea\")[0].maxLength > 0) {\n wysiwygCounters.push($(v));\n }\n });\n\n const counters = [];\n $(\"[id^='richcounter_']\").each(function(_i, v) {\n counters.push($(v));\n });\n\n $(wysiwygCounters).each(function(index, val) {\n const textarea = val.find(\"textarea\")[0];\n const editor = val.find(\".trumbowyg-editor\")[0];\n const counter = counters[index];\n counter?.text(editor.innerText.length);\n $(textarea).on(\"tbwchange\", function() {\n counter?.text(editor.innerText.length);\n });\n });\n});\n"],"names":["ByCheckBox","target","checkBox","whenChecked","disableInputs","hide","input","ShowByCheckbox","checkbox","checkBoxSelector","HideByCheckbox","$area","$select","select_value","activate","value","element","showBySelect","showBySelectValue","select","listener","focusedElement","i","val","counter","identity","textArea","wysiwygCounters","_i","v","counters","index","textarea","editor"],"mappings":"qEAKA,MAAMA,CAAW,CAKf,YAAYC,EAAqBC,EAA4B,CAAE,YAAAC,EAAa,cAAAC,GAAoC,CAC9G,KAAK,QAAUH,EACf,KAAK,UAAYC,EACjB,KAAK,aAAeC,EACpB,KAAK,eAAiBC,CAAA,CAGxB,SAAU,CACR,KAAK,UAAU,iBAAiB,SAAU,IAAM,KAAK,WAAW,EAChE,KAAK,UAAU,CAAA,CAGT,WAAY,CACd,IAAAC,EACJ,OAAQ,KAAK,aAAc,CACzB,IAAK,OACHA,EAAO,KAAK,UAAU,QACtB,MACF,IAAK,OACIA,EAAA,CAAC,KAAK,UAAU,QACvB,KAAA,CAEJ,KAAK,QAAQ,UAAU,OAAO,SAAUA,CAAI,EACxC,KAAK,gBACP,KAAK,QAAQ,iBAAiB,uBAAuB,EAClD,QAASC,GAAsE,CAChFA,EAAM,SAAWD,CAAA,CAClB,CACH,CAEJ,CAEO,MAAME,UAAuBP,CAAW,CAC7C,YAAYC,EAAqBO,EAA6B,KAAM,CAC5D,MAAAC,EAAmBR,EAAO,QAAQ,eAGxC,GAFWO,EAAAA,GAAY,SAAS,cAAcC,CAAgB,EAE1D,CAACD,EAAgB,KAAA,yCAAyCC,CAAgB,GAE9E,MAAMR,EAAQO,EAAU,CAAE,YAAa,OAAQ,cAAe,GAAM,CAAA,CAExE,CAEO,MAAME,UAAuBV,CAAW,CAC7C,YAAYC,EAAqBO,EAA6B,KAAM,CAC5D,MAAAC,EAAmBR,EAAO,QAAQ,eAGxC,GAFWO,EAAAA,GAAY,SAAS,cAAcC,CAAgB,EAE1D,CAACD,EAAgB,KAAA,yCAAyCC,CAAgB,GAE9E,MAAMR,EAAQO,EAAU,CAAE,YAAa,OAAQ,cAAe,GAAO,CAAA,CAEzE,CC3DA,EAAE,UAAW,CAET,EAAA,yBAAyB,EAAE,KAAK,UAAW,CACvC,GAAA,CACE,IAAAE,EAAe,IAAI,EAAE,QAAQ,CAAA,MAC3B,CACN,QAAQ,IAAI,4CAA4C,CAAA,CAC1D,CAED,EAEC,EAAA,yBAAyB,EAAE,KAAK,UAAW,CACvC,GAAA,CACE,IAAAH,EAAe,IAAI,EAAE,QAAQ,CAAA,MAC3B,CACN,QAAQ,IAAI,4CAA4C,CAAA,CAC1D,CACD,EAGC,EAAA,uBAAuB,EAAE,KAAK,UAAW,CACnC,MAAAI,EAAQ,EAAE,IAAI,EACdC,EAAU,EAAE,EAAE,IAAI,EAAE,KAAK,gBAAgB,CAAC,EAC1CC,EAAe,EAAE,IAAI,EAAE,KAAK,sBAAsB,EAAE,SAAS,EAE7DC,EAAW,UAAW,CAC1B,MAAMC,EAAQ,EAAE,IAAI,EAAE,IAAI,EACpBJ,EAAA,YAAY,SAAUI,IAAUF,CAAY,CACpD,EAEAD,EAAQ,OAAOE,CAAQ,EACvBF,EAAQ,QAAQ,QAAQ,CAAA,CACzB,EAED,SAAS,iBAAiB,uBAAuB,EAAE,QAAmBI,GAAA,CAC9D,MAAAC,EAAgBD,EAA8B,QAAQ,aACtDE,EAAqBF,EAA8B,QAAQ,kBAC3DG,EAA4B,SAAS,cAAcF,CAAY,EAErE,SAASG,GAAW,CAClB,OAAOJ,EAAQ,UAAU,OAAO,SAAUG,EAAO,QAAUD,CAAiB,CAAA,CAGvEC,EAAA,iBAAiB,SAAUC,CAAQ,EACjCA,EAAA,CAAA,CACV,EAGD,EAAE,UAAY,CACV,EAAA,4BAA4B,EAAE,QAAQ,CAAA,CACzC,EAIC,EAAA,2BAA2B,EAAE,KAAK,UAAW,CACzC,GAAA,OAAO,UAAU,YAAc,aAAc,OACjD,IAAIC,EAAiB,EAAE,2BAA2B,EAAE,IAAI,SAAS,EAAE,MAAM,EACrEA,EAAe,SAAW,IAC5BA,EAAiB,EAAE,gBAAgB,EAAE,IAAI,SAAS,EAAE,MAAM,GAI7CA,EAAA,GAAG,QAAS,UAAY,CAErC,WAAW,UAAW,CAAEA,EAAe,OAAO,GAAM,EAAE,CAAA,CACvD,EAGDA,EAAe,MAAM,CAAA,CACtB,EAMC,EAAA,WAAW,EAAE,KAAK,UAAW,CAC3B,EAAA,QAAQ,EAAE,UAAU,CAAC,CAAA,CACxB,CACH,CAAC,EAED,EAAE,UAAW,CACM,EAAE,kBAAkB,EAE5B,KAAK,SAASC,EAAGC,EAAK,CAC7B,MAAMC,EAAU,EAAE,IAAID,EAAI,EAAE,EAAE,EACxBE,EAAWD,EAAQ,KAAK,UAAU,EAClCE,EAAW,EAAE,GAAGD,CAAQ,EAAE,EAChCD,GAAA,MAAAA,EAAS,KAAME,EAAS,IAAI,EAAe,QAClCA,EAAA,GAAG,QAAS,UAAW,CAC9BF,GAAA,MAAAA,EAAS,KAAM,EAAE,IAAI,EAAE,MAAmB,OAAM,CACjD,CAAA,CACF,CACH,CAAC,EAED,EAAE,UAAW,CACX,MAAMG,EAAkB,CAAC,EACzB,EAAE,EAAE,gBAAgB,CAAC,EAAE,KAAK,SAAUC,EAAIC,EAAG,CACvC,EAAEA,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC,EAAE,UAAY,GACvBF,EAAA,KAAK,EAAEE,CAAC,CAAC,CAC3B,CACD,EAED,MAAMC,EAAW,CAAC,EAClB,EAAE,sBAAsB,EAAE,KAAK,SAASF,EAAIC,EAAG,CACpCC,EAAA,KAAK,EAAED,CAAC,CAAC,CAAA,CACnB,EAED,EAAEF,CAAe,EAAE,KAAK,SAASI,EAAOR,EAAK,CAC3C,MAAMS,EAAWT,EAAI,KAAK,UAAU,EAAE,CAAC,EACjCU,EAASV,EAAI,KAAK,mBAAmB,EAAE,CAAC,EACxCC,EAAUM,EAASC,CAAK,EACrBP,GAAA,MAAAA,EAAA,KAAKS,EAAO,UAAU,QAC/B,EAAED,CAAQ,EAAE,GAAG,YAAa,UAAW,CAC5BR,GAAA,MAAAA,EAAA,KAAKS,EAAO,UAAU,OAAM,CACtC,CAAA,CACF,CACH,CAAC"}