{"version":3,"file":"switch_mode-CH9h7s8k.js","sources":["../../../app/assets/javascripts/components/widgets/switch_mode.ts"],"sourcesContent":["\nimport $ from \"jquery\"\nimport { EventEmitter } from \"events\"\n\n/*\n Toggle Display\n Put the data attributes on a button or link\n\n Required attributes:\n data-js-app-toggle-to: string or missing value for no mode\n data-js-app-toggle-target: selector of target element (Maybe can be self?)\n\n Optional attibutes:\n data-js-mark-active-button: mark the button being clicked active, with given class\n*/\n\nconst MODE_DATA_SELECTOR = \"js-app-toggle-to\"\nconst TARGET_DATA_SELECTOR = \"js-app-toggle-target\"\nconst MARK_ACTIVE_CLASS_DATA_SELECTOR = \"js-mark-active-button\"\nconst TOGGLE_SELECTOR = `[data-${MODE_DATA_SELECTOR}][data-${TARGET_DATA_SELECTOR}]`\nconst MODE_PREFIX = \"with-mode-\"\n\nclass SwitchMode extends EventEmitter {\n constructor() { super() }\n\n public onLoad(){\n $(\"body\").on(\"click\", TOGGLE_SELECTOR, (e) =>{\n e.preventDefault()\n const $this = $(e.target)\n const targetSelector = $this.data(TARGET_DATA_SELECTOR)\n const $targets = $(targetSelector)\n\n const new_mode = $this.data(MODE_DATA_SELECTOR)\n const mark_active_class = $this.data(MARK_ACTIVE_CLASS_DATA_SELECTOR)\n\n $targets.each((idx, el) => {\n const $target = $(el)\n // Remove all modes\n const class_names = $target.attr(\"class\").split(/\\s+/)\n class_names.forEach((class_name) => {\n if (class_name.match(new RegExp(`^${MODE_PREFIX}`))){\n $target.removeClass(class_name)\n }\n })\n // Add mode if present\n if (typeof new_mode === \"string\"){\n const new_mode_class = `${MODE_PREFIX}${new_mode}`\n $target.addClass(new_mode_class)\n }\n })\n\n $(`.${mark_active_class}`).removeClass(mark_active_class)\n if (typeof mark_active_class === \"string\"){\n $this.addClass(mark_active_class)\n }\n\n this.emit(\"switch_mode:mode_switched\", [$this, $targets, new_mode])\n })\n }\n}\n\n\nexport default new SwitchMode()\n"],"names":["MODE_DATA_SELECTOR","TARGET_DATA_SELECTOR","MARK_ACTIVE_CLASS_DATA_SELECTOR","TOGGLE_SELECTOR","MODE_PREFIX","SwitchMode","EventEmitter","$","e","$this","targetSelector","$targets","new_mode","mark_active_class","idx","el","$target","class_name","new_mode_class","SwitchMode$1"],"mappings":"iFAgBA,MAAMA,EAAqB,mBACrBC,EAAuB,uBACvBC,EAAkC,wBAClCC,EAAkB,SAAS,OAAAH,EAAkB,WAAU,OAAAC,EAAoB,KAC3EG,EAAc,aAEpB,MAAMC,UAAmBC,EAAAA,YAAa,CACpC,aAAc,CAAQ,MAAA,CAAA,CAEf,QAAQ,CACbC,EAAE,MAAM,EAAE,GAAG,QAASJ,EAAkBK,GAAK,CAC3CA,EAAE,eAAe,EACX,MAAAC,EAAQF,EAAEC,EAAE,MAAM,EAClBE,EAAiBD,EAAM,KAAKR,CAAoB,EAChDU,EAAWJ,EAAEG,CAAc,EAE3BE,EAAWH,EAAM,KAAKT,CAAkB,EACxCa,EAAoBJ,EAAM,KAAKP,CAA+B,EAE3DS,EAAA,KAAK,CAACG,EAAKC,IAAO,CACnB,MAAAC,EAAUT,EAAEQ,CAAE,EAShB,GAPgBC,EAAQ,KAAK,OAAO,EAAE,MAAM,KAAK,EACzC,QAASC,GAAe,CAC9BA,EAAW,MAAM,IAAI,OAAO,IAAI,OAAAb,EAAa,CAAC,GAChDY,EAAQ,YAAYC,CAAU,CAChC,CACD,EAEG,OAAOL,GAAa,SAAS,CAC/B,MAAMM,EAAiB,GAAG,OAAAd,GAAc,OAAAQ,GACxCI,EAAQ,SAASE,CAAc,CAAA,CACjC,CACD,EAEDX,EAAE,IAAI,OAAAM,EAAmB,EAAE,YAAYA,CAAiB,EACpD,OAAOA,GAAsB,UAC/BJ,EAAM,SAASI,CAAiB,EAGlC,KAAK,KAAK,4BAA6B,CAACJ,EAAOE,EAAUC,CAAQ,CAAC,CAAA,CACnE,CAAA,CAEL,CAGA,MAAeO,EAAA,IAAId"}