{"version":3,"file":"virtual_main.js","sources":["theme-78/virtual:init-settings","theme-78/virtual:theme","theme-78/discourse/connectors/sidebar-footer-actions/sfw-nsfw-toggle.hbs","theme-78/discourse/widgets/sidebar-sfw-nsfw-toggle.js","theme-78/virtual:main"],"sourcesContent":["import { registerSettings } from \"discourse/lib/theme-settings-store\";\n\nregisterSettings(78, {\n  \"user_field_settings\": \"[{\\\"name_or_id\\\":\\\"2\\\",\\\"label\\\":\\\"Work Mode\\\",\\\"title\\\":\\\"Browse Forum at public! Blur all the media!\\\",\\\"svg_enabled\\\":\\\"eye-slash\\\",\\\"svg_disabled\\\":\\\"eye\\\",\\\"emphasize\\\":\\\"enabled\\\"}]\",\n  \"svg_icons\": \"eye|eye-slash\"\n});\n","import { getObjectForTheme } from \"discourse/lib/theme-settings-store\";\n\nexport const settings = getObjectForTheme(78);\n\nexport function themePrefix(key) {\n  return `theme_translations.78.${key}`;\n}\n","{{#if this.currentUser}}\n  {{mount-widget widget=\"sidebar-sfw-nsfw-toggle\" args=this tagName=\"span\"}}\n{{/if}}\n","import { createWidget } from \"discourse/widgets/widget\";\nimport { userPath } from \"discourse/lib/url\";\nimport { ajax } from \"discourse/lib/ajax\";\nimport I18n from \"I18n\";\nimport { popupAjaxError } from \"discourse/lib/ajax-error\";\n\nlet user_fields;\n\nfunction toggleUserField(uf_id) {\n  user_fields[uf_id] = user_fields[uf_id] === \"true\" ? \"false\" : \"true\";\n}\n\n\ncreateWidget(\"sidebar-sfw-nsfw-toggle-button\", {\n  tagName: \"span.sidebar-sfw-nsfw-toggle\",\n\n  html(attrs) {\n    let className = `btn sidebar-footer-actions-button toggle-field-${this.attrs.fid}`\n    if (attrs.emphasize === 'enabled' && attrs.enable === \"true\") className += \" emphasized\";\n    if (attrs.emphasize === 'disabled' && !(attrs.enable === \"true\")) className += \" emphasized\";\n    return this.attach(\"button\", {\n      className,\n      action: \"updateStatus\",\n      icon: attrs.enable === \"true\" ? attrs.svg_enabled : attrs.svg_disabled,\n      label: attrs.label,\n      title: attrs.title,\n    });\n  },\n\n  updateStatus() {\n    toggleUserField(this.attrs.fid)\n    ajax(userPath(`${this.currentUser.username_lower}.json`), {\n      data: {\n        user_fields,\n      },\n      type: \"PUT\",\n    }).then((res) => {\n      // user_fields = res.user.user_fields;\n\n      // Use `api.onAppEvent(\"sidebar_user_fields_updated\", (user) => { ... });`\n      // to handle user_field change event\n      this.appEvents.trigger(\"sidebar_user_fields_updated\", res.user);\n    }).catch(popupAjaxError);\n    // Use `api.onAppEvent(\"sidebar_user_fields_toggled\", (e) => { ... });`\n    // to handle button toggle event\n    this.appEvents.trigger(\"sidebar_user_fields_toggled\", {user_fields});\n  },\n});\n\n\nexport default createWidget(\"sidebar-sfw-nsfw-toggle\", {\n  tagName: \"span\",\n\n  html(attrs) {\n    if (!user_fields) {\n      user_fields = {};\n      ajax(userPath(`${attrs.currentUser.username_lower}.json`)).then((res) => {\n        user_fields = res.user.user_fields;\n        // By definition it is automatic toggle\n        // Use `api.onAppEvent(\"sidebar_user_fields_toggled\", (e) => { ... });`\n        this.appEvents.trigger(\"sidebar_user_fields_toggled\", {user_fields});\n        this.sendWidgetAction(\"update\");\n      });\n    }\n\n    const fieldSet = JSON.parse(settings.user_field_settings);\n    const buttonlist = [];\n    const mp = {};\n    \n    for (const uf of this.site.user_fields) {\n      mp[String(uf.id)] = uf.id;\n      mp[String(uf.name)] = uf.id;\n    }\n    \n    if (!I18n.translations[I18n.currentLocale()].js.sidebar_toggle) {\n      I18n.translations[I18n.currentLocale()].js.sidebar_toggle = {};\n    }\n\n    for (const {name_or_id, label, title, svg_enabled, svg_disabled, emphasize} of fieldSet) {\n      const fid = mp[name_or_id];\n      if (!fid) continue;\n      I18n.translations[I18n.currentLocale()].js.sidebar_toggle[`label_${fid}`] = label;\n      I18n.translations[I18n.currentLocale()].js.sidebar_toggle[`title_${fid}`] = title;\n      buttonlist.push(this.attach(\"sidebar-sfw-nsfw-toggle-button\", {\n        fid,\n        enable: user_fields[fid],\n        label: label == '' ? undefined : `sidebar_toggle.label_${fid}`,\n        title: title == '' ? undefined : `sidebar_toggle.title_${fid}`,\n        svg_enabled,\n        svg_disabled,\n        emphasize,\n      }));\n    }\n    return buttonlist;\n  },\n\n  update() {\n    return this;\n  },\n\n});\n\n\n\n","import \"virtual:init-settings\";\n\nconst themeCompatModules = {};\nimport * as Mod1 from \"./discourse/connectors/sidebar-footer-actions/sfw-nsfw-toggle\";\nthemeCompatModules[\"discourse/templates/connectors/sidebar-footer-actions/sfw-nsfw-toggle\"] = Mod1;\n\nimport * as Mod2 from \"./discourse/widgets/sidebar-sfw-nsfw-toggle\";\nthemeCompatModules[\"discourse/widgets/sidebar-sfw-nsfw-toggle\"] = Mod2;\n\nexport default themeCompatModules;\n"],"names":["registerSettings","user_field_settings","svg_icons","settings","getObjectForTheme","sfwNsfwToggle","createTemplateFactory","id","block","moduleName","isStrictMode","user_fields","createWidget","tagName","html","attrs","className","this","fid","emphasize","enable","attach","action","icon","svg_enabled","svg_disabled","label","title","updateStatus","uf_id","ajax","userPath","currentUser","username_lower","data","type","then","res","appEvents","trigger","user","catch","popupAjaxError","sidebarSfwNsfwToggle","sendWidgetAction","fieldSet","JSON","parse","buttonlist","mp","uf","site","String","name","I18n","translations","currentLocale","js","sidebar_toggle","name_or_id","push","undefined","update","themeCompatModules","Mod1","Mod2"],"mappings":";AAEAA,EAAiB,GAAI,CACnBC,oBAAuB,sKACvBC,UAAa;ACFR,MAAMC,EAAWC,EAAkB;ACA5B,IAAAC,EAAAC,EAAA,CAAAC,GAAA,KAAAC,MAAA,6LAAAC,WAAA,2EAAAC,cAAA;ACId,IAAIC;AAOJC,EAAa,iCAAkC,CAC7CC,QAAS,+BAETC,IAAAA,CAAKC,GACH,IAAIC,EAAY,kDAAkDC,KAAKF,MAAMG;AAG7E,MAFwB,YAApBH,EAAMI,WAA4C,SAAjBJ,EAAMK,SAAmBJ,GAAa,eACnD,aAApBD,EAAMI,WAA+C,SAAjBJ,EAAMK,SAAoBJ,GAAa,eACxEC,KAAKI,OAAO,SAAU,CAC3BL,YACAM,OAAQ,eACRC,KAAuB,SAAjBR,EAAMK,OAAoBL,EAAMS,YAAcT,EAAMU,aAC1DC,MAAOX,EAAMW,MACbC,MAAOZ,EAAMY,OAEjB,EAEAC,YAAAA,GArBF,IAAyBC;AAAAA,EAsBLZ,KAAKF,MAAMG,IArB7BP,EAAYkB,GAAgC,SAAvBlB,EAAYkB,GAAoB,QAAU,OAsB7DC,EAAKC,EAAS,GAAGd,KAAKe,YAAYC,uBAAwB,CACxDC,KAAM,CACJvB,eAEFwB,KAAM,QACLC,KAAMC,IAKPpB,KAAKqB,UAAUC,QAAQ,8BAA+BF,EAAIG,QACzDC,MAAMC,GAGTzB,KAAKqB,UAAUC,QAAQ,8BAA+B,CAAC5B,eACzD;AAIF,IAAAgC,EAAe/B,EAAa,0BAA2B,CACrDC,QAAS,OAETC,IAAAA,CAAKC,GACEJ,IACHA,EAAc,CAAA,EACdmB,EAAKC,EAAS,GAAGhB,EAAMiB,YAAYC,wBAAwBG,KAAMC,IAC/D1B,EAAc0B,EAAIG,KAAK7B,YAGvBM,KAAKqB,UAAUC,QAAQ,8BAA+B,CAAC5B,gBACvDM,KAAK2B,iBAAiB;AAI1B,MAAMC,EAAWC,KAAKC,MAAM5C,EAASF,qBAC/B+C,EAAa,GACbC,EAAK,CAAA;AAEX,IAAK,MAAMC,KAAMjC,KAAKkC,KAAKxC,YACzBsC,EAAGG,OAAOF,EAAG3C,KAAO2C,EAAG3C,GACvB0C,EAAGG,OAAOF,EAAGG,OAASH,EAAG3C;AAGtB+C,EAAKC,aAAaD,EAAKE,iBAAiBC,GAAGC,iBAC9CJ,EAAKC,aAAaD,EAAKE,iBAAiBC,GAAGC,eAAiB,CAAA;AAG9D,IAAK,MAAMC,WAACA,EAAUjC,MAAEA,EAAKC,MAAEA,EAAKH,YAAEA,EAAWC,aAAEA,EAAYN,UAAEA,KAAc0B,EAAU,CACvF,MAAM3B,EAAM+B,EAAGU;AACVzC,IACLoC,EAAKC,aAAaD,EAAKE,iBAAiBC,GAAGC,eAAe,SAASxC,KAASQ,EAC5E4B,EAAKC,aAAaD,EAAKE,iBAAiBC,GAAGC,eAAe,SAASxC,KAASS,EAC5EqB,EAAWY,KAAK3C,KAAKI,OAAO,iCAAkC,CAC5DH,MACAE,OAAQT,EAAYO,GACpBQ,MAAgB,IAATA,OAAcmC,EAAY,wBAAwB3C,IACzDS,MAAgB,IAATA,OAAckC,EAAY,wBAAwB3C,IACzDM,cACAC,eACAN,eAEJ,CACA,OAAO6B,CACT,EAEAc,MAAAA,GACE,OAAO7C,IACT;AChGG,MAAC8C,EAAqB,CAAA;AAE3BA,EAAmB,yEAA2EC,EAG9FD,EAAmB,6CAA+CE;"}