exports.ids = [23];
exports.modules = {

/***/ 101:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/pug-plain-loader??ref--1-oneOf-0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/Editor.vue?vue&type=template&id=d9da8166&lang=pug&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"editor",class:_vm.focused},[_vm._ssrNode("<div class=\"label\">"+_vm._ssrEscape(_vm._s(_vm.label))+"</div>"),_c('editor-menu-bar',{staticClass:"menubar is-hidden",attrs:{"editor":_vm.editor,"keep-in-bounds":true},scopedSlots:_vm._u([{key:"default",fn:function(ref){
var commands = ref.commands;
var isActive = ref.isActive;
var getMarkAttrs = ref.getMarkAttrs;
var focused = ref.focused;
return [_c('v-btn-toggle',{attrs:{"dense":""}},[_c('v-btn',{class:{ primary: isActive.bold() },attrs:{"icon":"","text":"","tabindex":"-1"},on:{"click":commands.bold}},[_c('v-icon',[_vm._v("mdi-format-bold")])],1),_c('v-btn',{class:{ primary: isActive.underline() },attrs:{"icon":"","text":"","tabindex":"-1"},on:{"click":commands.underline}},[_c('v-icon',[_vm._v("mdi-format-underline")])],1),_c('v-btn',{class:{ primary: isActive.strike() },attrs:{"icon":"","text":"","tabindex":"-1"},on:{"click":commands.strike}},[_c('v-icon',[_vm._v("mdi-format-strikethrough-variant")])],1),_c('v-btn',{class:{ primary: isActive.italic() },attrs:{"icon":"","text":"","tabindex":"-1"},on:{"click":commands.italic}},[_c('v-icon',[_vm._v("mdi-format-italic")])],1),_c('v-btn',{class:{ primary: isActive.heading({level: 1}) },attrs:{"icon":"","text":"","tabindex":"-1"},on:{"click":function($event){return commands.heading({level: 1})}}},[_c('v-icon',[_vm._v("mdi-format-header-1")])],1),_c('v-btn',{class:{ primary: isActive.heading({level: 2}) },attrs:{"icon":"","text":"","tabindex":"-1"},on:{"click":function($event){return commands.heading({level: 2})}}},[_c('v-icon',[_vm._v("mdi-format-header-2")])],1),_c('v-btn',{class:{ primary: isActive.heading({level: 3}) },attrs:{"icon":"","text":"","tabindex":"-1"},on:{"click":function($event){return commands.heading({level: 3})}}},[_c('v-icon',[_vm._v("mdi-format-header-3")])],1),_c('v-btn',{class:{ primary: isActive.code() },attrs:{"icon":"","text":"","tabindex":"-1"},on:{"click":commands.code}},[_c('v-icon',[_vm._v("mdi-code-tags")])],1),_c('v-btn',{class:{ primary: isActive.blockquote() },attrs:{"icon":"","text":"","tabindex":"-1"},on:{"click":commands.blockquote}},[_c('v-icon',[_vm._v("mdi-format-quote-open")])],1),_c('v-btn',{class:{ primary: isActive.bullet_list() },attrs:{"icon":"","text":"","tabindex":"-1"},on:{"click":commands.bullet_list}},[_c('v-icon',[_vm._v("mdi-format-list-bulleted")])],1),_c('v-btn',{class:{ primary: isActive.link() },attrs:{"icon":"","text":"","tabindex":"-1"},on:{"click":function($event){commands.link({href: getMarkAttrs("link") && getMarkAttrs("link").href ? "" : "https://"}); _vm.$refs.link.focus();}}},[_c('v-icon',[_vm._v("mdi-link")])],1),_c('v-text-field',{directives:[{name:"show",rawName:"v-show",value:(isActive.link()),expression:"isActive.link()"}],ref:"link",staticClass:"pt-0 ml-1",attrs:{"hide-details":"","value":isActive.link() && getMarkAttrs("link") && getMarkAttrs("link").href || ""},on:{"focus":_vm.focus,"blur":_vm.blur,"keypress":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }commands.link({ href: $event.target.value}); _vm.editor.focus()}}})],1)]}}])}),_c('editor-content',{staticClass:"content",style:({ 'max-height': _vm.maxHeight }),attrs:{"editor":_vm.editor,"spellcheck":"false"}})],2)}
var staticRenderFns = []


// CONCATENATED MODULE: ./components/Editor.vue?vue&type=template&id=d9da8166&lang=pug&

// EXTERNAL MODULE: external "lodash/debounce"
var debounce_ = __webpack_require__(15);
var debounce_default = /*#__PURE__*/__webpack_require__.n(debounce_);

// EXTERNAL MODULE: external "tiptap"
var external_tiptap_ = __webpack_require__(60);

// EXTERNAL MODULE: external "tiptap-extensions"
var external_tiptap_extensions_ = __webpack_require__(61);

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--2-0!./node_modules/babel-loader/lib??ref--2-1!./node_modules/vue-loader/lib??vue-loader-options!./components/Editor.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//



/* harmony default export */ var Editorvue_type_script_lang_js_ = ({
  name: 'Editor',
  components: {
    EditorContent: external_tiptap_["EditorContent"],
    EditorMenuBar: external_tiptap_["EditorMenuBar"],
    EditorMenuBubble: external_tiptap_["EditorMenuBubble"]
  },
  props: {
    label: {
      type: String,
      default: 'Editor'
    },
    value: {
      type: String,
      default: ''
    },
    border: {
      type: Boolean,
      default: false
    },
    noSave: {
      type: Boolean,
      default: false
    },
    maxHeight: {
      type: String,
      Number,
      default: ''
    },
    placeholder: {
      type: String,
      default: ''
    }
  },

  data() {
    return {
      options: [],
      linkActive: false,
      editor: null,
      blurring: false,
      update: false,
      focused: ''
    };
  },

  watch: {
    value() {
      if (this.update) {
        this.update = false;
        return;
      }

      this.editor.setContent(this.value);
    }

  },

  mounted() {
    this.editor = new external_tiptap_["Editor"]({
      onFocus: () => this.focus(),
      onBlur: () => this.blur(),
      onUpdate: debounce_default()(({
        getHTML
      }) => {
        this.update = true;
        this.$emit('input', getHTML());
      }, 1000),
      content: this.value,
      extensions: [new external_tiptap_extensions_["Blockquote"](), new external_tiptap_extensions_["BulletList"](), new external_tiptap_extensions_["CodeBlock"](), new external_tiptap_extensions_["HardBreak"](), new external_tiptap_extensions_["Heading"]({
        levels: [1, 2, 3, 4, 5, 6]
      }), new external_tiptap_extensions_["OrderedList"](), new external_tiptap_extensions_["ListItem"](), new external_tiptap_extensions_["Code"](), new external_tiptap_extensions_["History"](), new external_tiptap_extensions_["Link"]({
        openOnClick: false,
        target: '_blank'
      }), new external_tiptap_extensions_["Bold"](), new external_tiptap_extensions_["Italic"](), new external_tiptap_extensions_["Strike"](), new external_tiptap_extensions_["Underline"](), new external_tiptap_extensions_["Placeholder"]({
        emptyEditorClass: 'is-editor-empty',
        emptyNodeClass: 'is-empty',
        emptyNodeText: this.placeholder,
        showOnlyWhenEditable: true,
        showOnlyCurrent: true
      })]
    });
  },

  beforeDestroy() {
    if (this.editor) {
      this.editor.destroy();
    }
  },

  methods: {
    blur() {
      this.blurring = true;
      window.setTimeout(() => {
        if (this.blurring) {
          this.focused = '';
          this.blurring = false;
        }
      }, 200);
    },

    focus() {
      this.focused = 'editor--focused';
      this.$nextTick(() => {
        this.blurring = false;
      });
    }

  }
});
// CONCATENATED MODULE: ./components/Editor.vue?vue&type=script&lang=js&
 /* harmony default export */ var components_Editorvue_type_script_lang_js_ = (Editorvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(1);

// CONCATENATED MODULE: ./components/Editor.vue



function injectStyles (context) {
  
  var style0 = __webpack_require__(96)
if (style0.__inject__) style0.__inject__(context)

}

/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  components_Editorvue_type_script_lang_js_,
  render,
  staticRenderFns,
  false,
  injectStyles,
  null,
  "ff99c806"
  
)

/* harmony default export */ var Editor = __webpack_exports__["a"] = (component.exports);

/***/ }),

/***/ 102:
/***/ (function(module) {

module.exports = JSON.parse("[\"Africa/Abidjan\",\"Africa/Accra\",\"Africa/Addis_Ababa\",\"Africa/Algiers\",\"Africa/Asmara\",\"Africa/Asmera\",\"Africa/Bamako\",\"Africa/Bangui\",\"Africa/Banjul\",\"Africa/Bissau\",\"Africa/Blantyre\",\"Africa/Brazzaville\",\"Africa/Bujumbura\",\"Africa/Cairo\",\"Africa/Casablanca\",\"Africa/Ceuta\",\"Africa/Conakry\",\"Africa/Dakar\",\"Africa/Dar_es_Salaam\",\"Africa/Djibouti\",\"Africa/Douala\",\"Africa/El_Aaiun\",\"Africa/Freetown\",\"Africa/Gaborone\",\"Africa/Harare\",\"Africa/Johannesburg\",\"Africa/Juba\",\"Africa/Kampala\",\"Africa/Khartoum\",\"Africa/Kigali\",\"Africa/Kinshasa\",\"Africa/Lagos\",\"Africa/Libreville\",\"Africa/Lome\",\"Africa/Luanda\",\"Africa/Lubumbashi\",\"Africa/Lusaka\",\"Africa/Malabo\",\"Africa/Maputo\",\"Africa/Maseru\",\"Africa/Mbabane\",\"Africa/Mogadishu\",\"Africa/Monrovia\",\"Africa/Nairobi\",\"Africa/Ndjamena\",\"Africa/Niamey\",\"Africa/Nouakchott\",\"Africa/Ouagadougou\",\"Africa/Porto-Novo\",\"Africa/Sao_Tome\",\"Africa/Timbuktu\",\"Africa/Tripoli\",\"Africa/Tunis\",\"Africa/Windhoek\",\"America/Adak\",\"America/Anchorage\",\"America/Anguilla\",\"America/Antigua\",\"America/Araguaina\",\"America/Argentina/Buenos_Aires\",\"America/Argentina/Catamarca\",\"America/Argentina/ComodRivadavia\",\"America/Argentina/Cordoba\",\"America/Argentina/Jujuy\",\"America/Argentina/La_Rioja\",\"America/Argentina/Mendoza\",\"America/Argentina/Rio_Gallegos\",\"America/Argentina/Salta\",\"America/Argentina/San_Juan\",\"America/Argentina/San_Luis\",\"America/Argentina/Tucuman\",\"America/Argentina/Ushuaia\",\"America/Aruba\",\"America/Asuncion\",\"America/Atikokan\",\"America/Atka\",\"America/Bahia\",\"America/Bahia_Banderas\",\"America/Barbados\",\"America/Belem\",\"America/Belize\",\"America/Blanc-Sablon\",\"America/Boa_Vista\",\"America/Bogota\",\"America/Boise\",\"America/Buenos_Aires\",\"America/Cambridge_Bay\",\"America/Campo_Grande\",\"America/Cancun\",\"America/Caracas\",\"America/Catamarca\",\"America/Cayenne\",\"America/Cayman\",\"America/Chicago\",\"America/Chihuahua\",\"America/Coral_Harbour\",\"America/Cordoba\",\"America/Costa_Rica\",\"America/Creston\",\"America/Cuiaba\",\"America/Curacao\",\"America/Danmarkshavn\",\"America/Dawson\",\"America/Dawson_Creek\",\"America/Denver\",\"America/Detroit\",\"America/Dominica\",\"America/Edmonton\",\"America/Eirunepe\",\"America/El_Salvador\",\"America/Ensenada\",\"America/Fort_Nelson\",\"America/Fort_Wayne\",\"America/Fortaleza\",\"America/Glace_Bay\",\"America/Godthab\",\"America/Goose_Bay\",\"America/Grand_Turk\",\"America/Grenada\",\"America/Guadeloupe\",\"America/Guatemala\",\"America/Guayaquil\",\"America/Guyana\",\"America/Halifax\",\"America/Havana\",\"America/Hermosillo\",\"America/Indiana/Indianapolis\",\"America/Indiana/Knox\",\"America/Indiana/Marengo\",\"America/Indiana/Petersburg\",\"America/Indiana/Tell_City\",\"America/Indiana/Vevay\",\"America/Indiana/Vincennes\",\"America/Indiana/Winamac\",\"America/Indianapolis\",\"America/Inuvik\",\"America/Iqaluit\",\"America/Jamaica\",\"America/Jujuy\",\"America/Juneau\",\"America/Kentucky/Louisville\",\"America/Kentucky/Monticello\",\"America/Knox_IN\",\"America/Kralendijk\",\"America/La_Paz\",\"America/Lima\",\"America/Los_Angeles\",\"America/Louisville\",\"America/Lower_Princes\",\"America/Maceio\",\"America/Managua\",\"America/Manaus\",\"America/Marigot\",\"America/Martinique\",\"America/Matamoros\",\"America/Mazatlan\",\"America/Mendoza\",\"America/Menominee\",\"America/Merida\",\"America/Metlakatla\",\"America/Mexico_City\",\"America/Miquelon\",\"America/Moncton\",\"America/Monterrey\",\"America/Montevideo\",\"America/Montreal\",\"America/Montserrat\",\"America/Nassau\",\"America/New_York\",\"America/Nipigon\",\"America/Nome\",\"America/Noronha\",\"America/North_Dakota/Beulah\",\"America/North_Dakota/Center\",\"America/North_Dakota/New_Salem\",\"America/Nuuk\",\"America/Ojinaga\",\"America/Panama\",\"America/Pangnirtung\",\"America/Paramaribo\",\"America/Phoenix\",\"America/Port-au-Prince\",\"America/Port_of_Spain\",\"America/Porto_Acre\",\"America/Porto_Velho\",\"America/Puerto_Rico\",\"America/Punta_Arenas\",\"America/Rainy_River\",\"America/Rankin_Inlet\",\"America/Recife\",\"America/Regina\",\"America/Resolute\",\"America/Rio_Branco\",\"America/Rosario\",\"America/Santa_Isabel\",\"America/Santarem\",\"America/Santiago\",\"America/Santo_Domingo\",\"America/Sao_Paulo\",\"America/Scoresbysund\",\"America/Shiprock\",\"America/Sitka\",\"America/St_Barthelemy\",\"America/St_Johns\",\"America/St_Kitts\",\"America/St_Lucia\",\"America/St_Thomas\",\"America/St_Vincent\",\"America/Swift_Current\",\"America/Tegucigalpa\",\"America/Thule\",\"America/Thunder_Bay\",\"America/Tijuana\",\"America/Toronto\",\"America/Tortola\",\"America/Vancouver\",\"America/Virgin\",\"America/Whitehorse\",\"America/Winnipeg\",\"America/Yakutat\",\"America/Yellowknife\",\"Antarctica/Casey\",\"Antarctica/Davis\",\"Antarctica/DumontDUrville\",\"Antarctica/Macquarie\",\"Antarctica/Mawson\",\"Antarctica/McMurdo\",\"Antarctica/Palmer\",\"Antarctica/Rothera\",\"Antarctica/South_Pole\",\"Antarctica/Syowa\",\"Antarctica/Troll\",\"Antarctica/Vostok\",\"Arctic/Longyearbyen\",\"Asia/Aden\",\"Asia/Almaty\",\"Asia/Amman\",\"Asia/Anadyr\",\"Asia/Aqtau\",\"Asia/Aqtobe\",\"Asia/Ashgabat\",\"Asia/Ashkhabad\",\"Asia/Atyrau\",\"Asia/Baghdad\",\"Asia/Bahrain\",\"Asia/Baku\",\"Asia/Bangkok\",\"Asia/Barnaul\",\"Asia/Beirut\",\"Asia/Bishkek\",\"Asia/Brunei\",\"Asia/Calcutta\",\"Asia/Chita\",\"Asia/Choibalsan\",\"Asia/Chongqing\",\"Asia/Chungking\",\"Asia/Colombo\",\"Asia/Dacca\",\"Asia/Damascus\",\"Asia/Dhaka\",\"Asia/Dili\",\"Asia/Dubai\",\"Asia/Dushanbe\",\"Asia/Famagusta\",\"Asia/Gaza\",\"Asia/Harbin\",\"Asia/Hebron\",\"Asia/Ho_Chi_Minh\",\"Asia/Hong_Kong\",\"Asia/Hovd\",\"Asia/Irkutsk\",\"Asia/Istanbul\",\"Asia/Jakarta\",\"Asia/Jayapura\",\"Asia/Jerusalem\",\"Asia/Kabul\",\"Asia/Kamchatka\",\"Asia/Karachi\",\"Asia/Kashgar\",\"Asia/Kathmandu\",\"Asia/Katmandu\",\"Asia/Khandyga\",\"Asia/Kolkata\",\"Asia/Krasnoyarsk\",\"Asia/Kuala_Lumpur\",\"Asia/Kuching\",\"Asia/Kuwait\",\"Asia/Macao\",\"Asia/Macau\",\"Asia/Magadan\",\"Asia/Makassar\",\"Asia/Manila\",\"Asia/Muscat\",\"Asia/Nicosia\",\"Asia/Novokuznetsk\",\"Asia/Novosibirsk\",\"Asia/Omsk\",\"Asia/Oral\",\"Asia/Phnom_Penh\",\"Asia/Pontianak\",\"Asia/Pyongyang\",\"Asia/Qatar\",\"Asia/Qostanay\",\"Asia/Qyzylorda\",\"Asia/Rangoon\",\"Asia/Riyadh\",\"Asia/Saigon\",\"Asia/Sakhalin\",\"Asia/Samarkand\",\"Asia/Seoul\",\"Asia/Shanghai\",\"Asia/Singapore\",\"Asia/Srednekolymsk\",\"Asia/Taipei\",\"Asia/Tashkent\",\"Asia/Tbilisi\",\"Asia/Tehran\",\"Asia/Tel_Aviv\",\"Asia/Thimbu\",\"Asia/Thimphu\",\"Asia/Tokyo\",\"Asia/Tomsk\",\"Asia/Ujung_Pandang\",\"Asia/Ulaanbaatar\",\"Asia/Ulan_Bator\",\"Asia/Urumqi\",\"Asia/Ust-Nera\",\"Asia/Vientiane\",\"Asia/Vladivostok\",\"Asia/Yakutsk\",\"Asia/Yangon\",\"Asia/Yekaterinburg\",\"Asia/Yerevan\",\"Atlantic/Azores\",\"Atlantic/Bermuda\",\"Atlantic/Canary\",\"Atlantic/Cape_Verde\",\"Atlantic/Faeroe\",\"Atlantic/Faroe\",\"Atlantic/Jan_Mayen\",\"Atlantic/Madeira\",\"Atlantic/Reykjavik\",\"Atlantic/South_Georgia\",\"Atlantic/St_Helena\",\"Atlantic/Stanley\",\"Australia/ACT\",\"Australia/Adelaide\",\"Australia/Brisbane\",\"Australia/Broken_Hill\",\"Australia/Canberra\",\"Australia/Currie\",\"Australia/Darwin\",\"Australia/Eucla\",\"Australia/Hobart\",\"Australia/LHI\",\"Australia/Lindeman\",\"Australia/Lord_Howe\",\"Australia/Melbourne\",\"Australia/NSW\",\"Australia/North\",\"Australia/Perth\",\"Australia/Queensland\",\"Australia/South\",\"Australia/Sydney\",\"Australia/Tasmania\",\"Australia/Victoria\",\"Australia/West\",\"Australia/Yancowinna\",\"Brazil/Acre\",\"Brazil/DeNoronha\",\"Brazil/East\",\"Brazil/West\",\"CET\",\"CST6CDT\",\"Canada/Atlantic\",\"Canada/Central\",\"Canada/Eastern\",\"Canada/Mountain\",\"Canada/Newfoundland\",\"Canada/Pacific\",\"Canada/Saskatchewan\",\"Canada/Yukon\",\"Chile/Continental\",\"Chile/EasterIsland\",\"Cuba\",\"EET\",\"EST\",\"EST5EDT\",\"Egypt\",\"Eire\",\"Etc/GMT\",\"Etc/GMT+0\",\"Etc/GMT+1\",\"Etc/GMT+10\",\"Etc/GMT+11\",\"Etc/GMT+12\",\"Etc/GMT+2\",\"Etc/GMT+3\",\"Etc/GMT+4\",\"Etc/GMT+5\",\"Etc/GMT+6\",\"Etc/GMT+7\",\"Etc/GMT+8\",\"Etc/GMT+9\",\"Etc/GMT-0\",\"Etc/GMT-1\",\"Etc/GMT-10\",\"Etc/GMT-11\",\"Etc/GMT-12\",\"Etc/GMT-13\",\"Etc/GMT-14\",\"Etc/GMT-2\",\"Etc/GMT-3\",\"Etc/GMT-4\",\"Etc/GMT-5\",\"Etc/GMT-6\",\"Etc/GMT-7\",\"Etc/GMT-8\",\"Etc/GMT-9\",\"Etc/GMT0\",\"Etc/Greenwich\",\"Etc/UCT\",\"Etc/UTC\",\"Etc/Universal\",\"Etc/Zulu\",\"Europe/Amsterdam\",\"Europe/Andorra\",\"Europe/Astrakhan\",\"Europe/Athens\",\"Europe/Belfast\",\"Europe/Belgrade\",\"Europe/Berlin\",\"Europe/Bratislava\",\"Europe/Brussels\",\"Europe/Bucharest\",\"Europe/Budapest\",\"Europe/Busingen\",\"Europe/Chisinau\",\"Europe/Copenhagen\",\"Europe/Dublin\",\"Europe/Gibraltar\",\"Europe/Guernsey\",\"Europe/Helsinki\",\"Europe/Isle_of_Man\",\"Europe/Istanbul\",\"Europe/Jersey\",\"Europe/Kaliningrad\",\"Europe/Kiev\",\"Europe/Kirov\",\"Europe/Lisbon\",\"Europe/Ljubljana\",\"Europe/London\",\"Europe/Luxembourg\",\"Europe/Madrid\",\"Europe/Malta\",\"Europe/Mariehamn\",\"Europe/Minsk\",\"Europe/Monaco\",\"Europe/Moscow\",\"Europe/Nicosia\",\"Europe/Oslo\",\"Europe/Paris\",\"Europe/Podgorica\",\"Europe/Prague\",\"Europe/Riga\",\"Europe/Rome\",\"Europe/Samara\",\"Europe/San_Marino\",\"Europe/Sarajevo\",\"Europe/Saratov\",\"Europe/Simferopol\",\"Europe/Skopje\",\"Europe/Sofia\",\"Europe/Stockholm\",\"Europe/Tallinn\",\"Europe/Tirane\",\"Europe/Tiraspol\",\"Europe/Ulyanovsk\",\"Europe/Uzhgorod\",\"Europe/Vaduz\",\"Europe/Vatican\",\"Europe/Vienna\",\"Europe/Vilnius\",\"Europe/Volgograd\",\"Europe/Warsaw\",\"Europe/Zagreb\",\"Europe/Zaporozhye\",\"Europe/Zurich\",\"GB\",\"GB-Eire\",\"GMT\",\"GMT+0\",\"GMT-0\",\"GMT0\",\"Greenwich\",\"HST\",\"Hongkong\",\"Iceland\",\"Indian/Antananarivo\",\"Indian/Chagos\",\"Indian/Christmas\",\"Indian/Cocos\",\"Indian/Comoro\",\"Indian/Kerguelen\",\"Indian/Mahe\",\"Indian/Maldives\",\"Indian/Mauritius\",\"Indian/Mayotte\",\"Indian/Reunion\",\"Iran\",\"Israel\",\"Jamaica\",\"Japan\",\"Kwajalein\",\"Libya\",\"MET\",\"MST\",\"MST7MDT\",\"Mexico/BajaNorte\",\"Mexico/BajaSur\",\"Mexico/General\",\"NZ\",\"NZ-CHAT\",\"Navajo\",\"PRC\",\"PST8PDT\",\"Pacific/Apia\",\"Pacific/Auckland\",\"Pacific/Bougainville\",\"Pacific/Chatham\",\"Pacific/Chuuk\",\"Pacific/Easter\",\"Pacific/Efate\",\"Pacific/Enderbury\",\"Pacific/Fakaofo\",\"Pacific/Fiji\",\"Pacific/Funafuti\",\"Pacific/Galapagos\",\"Pacific/Gambier\",\"Pacific/Guadalcanal\",\"Pacific/Guam\",\"Pacific/Honolulu\",\"Pacific/Johnston\",\"Pacific/Kiritimati\",\"Pacific/Kosrae\",\"Pacific/Kwajalein\",\"Pacific/Majuro\",\"Pacific/Marquesas\",\"Pacific/Midway\",\"Pacific/Nauru\",\"Pacific/Niue\",\"Pacific/Norfolk\",\"Pacific/Noumea\",\"Pacific/Pago_Pago\",\"Pacific/Palau\",\"Pacific/Pitcairn\",\"Pacific/Pohnpei\",\"Pacific/Ponape\",\"Pacific/Port_Moresby\",\"Pacific/Rarotonga\",\"Pacific/Saipan\",\"Pacific/Samoa\",\"Pacific/Tahiti\",\"Pacific/Tarawa\",\"Pacific/Tongatapu\",\"Pacific/Truk\",\"Pacific/Wake\",\"Pacific/Wallis\",\"Pacific/Yap\",\"Poland\",\"Portugal\",\"ROC\",\"ROK\",\"Singapore\",\"Turkey\",\"UCT\",\"US/Alaska\",\"US/Aleutian\",\"US/Arizona\",\"US/Central\",\"US/East-Indiana\",\"US/Eastern\",\"US/Hawaii\",\"US/Indiana-Starke\",\"US/Michigan\",\"US/Mountain\",\"US/Pacific\",\"US/Samoa\",\"UTC\",\"Universal\",\"W-SU\",\"WET\",\"Zulu\"]");

/***/ }),

/***/ 108:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/pug-plain-loader??ref--1-oneOf-0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/admin/Settings.vue?vue&type=template&id=2287ded6&lang=pug&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('common.settings')))]),_c('v-card-text',[_c('v-text-field',{attrs:{"label":_vm.$t('common.title'),"hint":_vm.$t('admin.title_description'),"persistent-hint":""},on:{"blur":function($event){return _vm.save("title", _vm.title)}},model:{value:(_vm.title),callback:function ($$v) {_vm.title=$$v},expression:"title"}}),_c('v-text-field',{staticClass:"mt-5",attrs:{"label":_vm.$t('common.description'),"hint":_vm.$t('admin.description_description'),"persistent-hint":""},on:{"blur":function($event){return _vm.save("description", _vm.description)}},model:{value:(_vm.description),callback:function ($$v) {_vm.description=$$v},expression:"description"}}),_c('v-autocomplete',{staticClass:"mt-5",attrs:{"label":_vm.$t('admin.select_instance_timezone'),"hint":_vm.$t('admin.instance_timezone_description'),"items":_vm.filteredTimezones,"persistent-hint":"","placeholder":"Timezone, type to search"},model:{value:(_vm.instance_timezone),callback:function ($$v) {_vm.instance_timezone=$$v},expression:"instance_timezone"}}),_c('v-select',{staticClass:"mt-5",attrs:{"label":_vm.$t('admin.instance_locale'),"hint":_vm.$t('admin.instance_locale_description'),"persistent-hint":"","items":_vm.locales},model:{value:(_vm.instance_locale),callback:function ($$v) {_vm.instance_locale=$$v},expression:"instance_locale"}}),_c('v-switch',{staticClass:"mt-4",attrs:{"inset":"","label":_vm.$t('admin.allow_registration_description')},model:{value:(_vm.allow_registration),callback:function ($$v) {_vm.allow_registration=$$v},expression:"allow_registration"}}),_c('v-switch',{staticClass:"mt-1",attrs:{"inset":"","label":_vm.$t('admin.allow_anon_event')},model:{value:(_vm.allow_anon_event),callback:function ($$v) {_vm.allow_anon_event=$$v},expression:"allow_anon_event"}}),_c('v-switch',{staticClass:"mt-1",attrs:{"inset":"","label":_vm.$t('admin.allow_recurrent_event')},model:{value:(_vm.allow_recurrent_event),callback:function ($$v) {_vm.allow_recurrent_event=$$v},expression:"allow_recurrent_event"}}),(_vm.allow_recurrent_event)?_c('v-switch',{staticClass:"mt-1",attrs:{"inset":"","label":_vm.$t('admin.recurrent_event_visible')},model:{value:(_vm.recurrent_event_visible),callback:function ($$v) {_vm.recurrent_event_visible=$$v},expression:"recurrent_event_visible"}}):_vm._e()],1),_c('v-dialog',{attrs:{"destroy-on-close":"","max-width":"700px","fullscreen":_vm.$vuetify.breakpoint.xsOnly},model:{value:(_vm.showSMTP),callback:function ($$v) {_vm.showSMTP=$$v},expression:"showSMTP"}},[_c('SMTP',{on:{"close":function($event){_vm.showSMTP = false}}})],1),_c('v-card-actions',[_c('v-btn',{attrs:{"text":""},on:{"click":function($event){_vm.showSMTP=true}}},[(_vm.showSMTPAlert)?_c('v-icon',{attrs:{"color":"error"}},[_vm._v("mdi-alert")]):_vm._e(),_vm._v(" "+_vm._s(_vm.$t('admin.show_smtp_setup')))],1),(_vm.setup)?_c('v-btn',{attrs:{"text":"","color":"primary"},on:{"click":function($event){return _vm.$emit("complete")}}},[_vm._v(_vm._s(_vm.$t('common.next'))),_c('v-icon',[_vm._v("mdi-arrow-right")])],1):_vm._e()],1)],1)}
var staticRenderFns = []


// CONCATENATED MODULE: ./components/admin/Settings.vue?vue&type=template&id=2287ded6&lang=pug&

// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/pug-plain-loader??ref--1-oneOf-0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/admin/SMTP.vue?vue&type=template&id=9ec9354c&lang=pug&
var SMTPvue_type_template_id_9ec9354c_lang_pug_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',[_c('v-card-title',[_vm._v("SMTP Email configuration")]),_c('v-card-text',[_c('p',{domProps:{"innerHTML":_vm._s(_vm.$t('admin.smtp_description'))}}),_c('v-form',{model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:"isValid"}},[_c('v-text-field',{attrs:{"label":_vm.$t('admin.admin_email'),"rules":_vm.$validators.email},on:{"blur":function($event){return _vm.save('admin_email', _vm.admin_email )}},model:{value:(_vm.admin_email),callback:function ($$v) {_vm.admin_email=$$v},expression:"admin_email"}}),_c('v-text-field',{attrs:{"label":_vm.$t('admin.smtp_hostname'),"rules":[_vm.$validators.required('admin.smtp_hostname')]},model:{value:(_vm.smtp.host),callback:function ($$v) {_vm.$set(_vm.smtp, "host", $$v)},expression:"smtp.host"}}),_c('v-text-field',{attrs:{"label":_vm.$t('common.user'),"rules":[_vm.$validators.required('common.user')]},model:{value:(_vm.smtp.auth.user),callback:function ($$v) {_vm.$set(_vm.smtp.auth, "user", $$v)},expression:"smtp.auth.user"}}),_c('v-text-field',{attrs:{"label":_vm.$t('common.password'),"rules":[_vm.$validators.required('common.password')],"type":"password"},model:{value:(_vm.smtp.auth.pass),callback:function ($$v) {_vm.$set(_vm.smtp.auth, "pass", $$v)},expression:"smtp.auth.pass"}})],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{"color":"primary","loading":_vm.loading,"disabled":_vm.loading || !_vm.isValid},on:{"click":_vm.testSMTP}},[_vm._v(_vm._s(_vm.$t('admin.smtp_test_button')))]),_c('v-btn',{attrs:{"color":"warning"},on:{"click":_vm.done}},[_vm._v(_vm._s(_vm.$t("common.ok")))])],1)],1)}
var SMTPvue_type_template_id_9ec9354c_lang_pug_staticRenderFns = []


// CONCATENATED MODULE: ./components/admin/SMTP.vue?vue&type=template&id=9ec9354c&lang=pug&

// EXTERNAL MODULE: external "vuex"
var external_vuex_ = __webpack_require__(3);

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--2-0!./node_modules/babel-loader/lib??ref--2-1!./node_modules/vue-loader/lib??vue-loader-options!./components/admin/SMTP.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//

/* harmony default export */ var SMTPvue_type_script_lang_js_ = ({
  data({
    $store
  }) {
    const smtp = {
      host: '',
      auth: {
        user: '',
        pass: ''
      }
    };

    if ($store.state.settings.smtp) {
      smtp.host = $store.state.settings.smtp.host;

      if ($store.state.settings.smtp.auth) {
        smtp.auth.user = $store.state.settings.smtp.auth.user;
        smtp.auth.pass = $store.state.settings.smtp.auth.pass;
      }
    }

    return {
      isValid: false,
      loading: false,
      smtp,
      admin_email: $store.state.settings.admin_email || ''
    };
  },

  computed: Object(external_vuex_["mapState"])(['settings']),
  methods: { ...Object(external_vuex_["mapActions"])(['setSetting']),

    async testSMTP() {
      this.loading = true;

      try {
        this.setSetting({
          key: 'smtp',
          value: this.smtp
        });
        await this.$axios.$post('/settings/smtp', {
          smtp: this.smtp
        });
        this.$root.$message(this.$t('admin.smtp_test_success', {
          admin_email: this.admin_email
        }), {
          color: 'success'
        });
      } catch (e) {
        console.error(e);
        this.$root.$message(e.response && e.response.data, {
          color: 'error'
        });
      }

      this.loading = false;
    },

    save(key, value) {
      if (this.settings[key] !== value) {
        this.setSetting({
          key,
          value
        });
      }
    },

    done() {
      this.setSetting({
        key: 'smtp',
        value: JSON.parse(JSON.stringify(this.smtp))
      });
      this.$emit('close');
    }

  }
});
// CONCATENATED MODULE: ./components/admin/SMTP.vue?vue&type=script&lang=js&
 /* harmony default export */ var admin_SMTPvue_type_script_lang_js_ = (SMTPvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(1);

// CONCATENATED MODULE: ./components/admin/SMTP.vue





/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  admin_SMTPvue_type_script_lang_js_,
  SMTPvue_type_template_id_9ec9354c_lang_pug_render,
  SMTPvue_type_template_id_9ec9354c_lang_pug_staticRenderFns,
  false,
  null,
  null,
  "952fb9f4"
  
)

/* harmony default export */ var SMTP = (component.exports);
// EXTERNAL MODULE: external "dayjs"
var external_dayjs_ = __webpack_require__(2);
var external_dayjs_default = /*#__PURE__*/__webpack_require__.n(external_dayjs_);

// EXTERNAL MODULE: ./components/admin/tz.json
var tz = __webpack_require__(102);

// CONCATENATED MODULE: ./locales/esm.js
/* harmony default export */ var esm = ({
  it: 'Italiano',
  en: 'English',
  es: 'Español',
  ca: 'Català',
  pl: 'Polski',
  eu: 'Euskara',
  nb: 'Norwegian Bokmål',
  fr: 'Francais',
  de: 'Deutsch'
});
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--2-0!./node_modules/babel-loader/lib??ref--2-1!./node_modules/vue-loader/lib??vue-loader-options!./components/admin/Settings.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//





/* harmony default export */ var Settingsvue_type_script_lang_js_ = ({
  props: {
    setup: {
      type: Boolean,
      default: false
    }
  },
  components: {
    SMTP: SMTP
  },
  name: 'Settings',

  data({
    $store
  }) {
    return {
      title: $store.state.settings.title,
      description: $store.state.settings.description,
      locales: Object.keys(esm).map(locale => ({
        value: locale,
        text: esm[locale]
      })),
      showSMTP: false
    };
  },

  computed: { ...Object(external_vuex_["mapState"])(['settings']),

    showSMTPAlert() {
      return !this.setup && (!this.settings.admin_email || !this.settings.smtp || !this.settings.smtp.host || !this.settings.smtp.user);
    },

    instance_locale: {
      get() {
        return this.settings.instance_locale;
      },

      set(value) {
        this.setSetting({
          key: 'instance_locale',
          value
        });
      }

    },
    instance_timezone: {
      get() {
        return this.settings.instance_timezone;
      },

      set(value) {
        this.setSetting({
          key: 'instance_timezone',
          value
        });
      }

    },
    allow_registration: {
      get() {
        return this.settings.allow_registration;
      },

      set(value) {
        this.setSetting({
          key: 'allow_registration',
          value
        });
      }

    },
    allow_anon_event: {
      get() {
        return this.settings.allow_anon_event;
      },

      set(value) {
        this.setSetting({
          key: 'allow_anon_event',
          value
        });
      }

    },
    allow_recurrent_event: {
      get() {
        return this.settings.allow_recurrent_event;
      },

      set(value) {
        this.setSetting({
          key: 'allow_recurrent_event',
          value
        });
      }

    },
    recurrent_event_visible: {
      get() {
        return this.settings.recurrent_event_visible;
      },

      set(value) {
        this.setSetting({
          key: 'recurrent_event_visible',
          value
        });
      }

    },

    filteredTimezones() {
      const current_timezone = external_dayjs_default.a.tz.guess();
      tz.unshift(current_timezone);
      return tz;
    }

  },
  methods: { ...Object(external_vuex_["mapActions"])(['setSetting']),

    save(key, value) {
      if (this.settings[key] !== value) {
        this.setSetting({
          key,
          value
        });
      }
    }

  }
});
// CONCATENATED MODULE: ./components/admin/Settings.vue?vue&type=script&lang=js&
 /* harmony default export */ var admin_Settingsvue_type_script_lang_js_ = (Settingsvue_type_script_lang_js_); 
// CONCATENATED MODULE: ./components/admin/Settings.vue





/* normalize component */

var Settings_component = Object(componentNormalizer["a" /* default */])(
  admin_Settingsvue_type_script_lang_js_,
  render,
  staticRenderFns,
  false,
  null,
  null,
  "39dd5273"
  
)

/* harmony default export */ var Settings = __webpack_exports__["a"] = (Settings_component.exports);

/***/ }),

/***/ 109:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";

// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/pug-plain-loader??ref--1-oneOf-0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/Announcement.vue?vue&type=template&id=684cacca&lang=pug&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nuxt-link',{attrs:{"to":("/announcement/" + (_vm.announcement.id))}},[_c('v-alert',{staticClass:"mb-1",attrs:{"border":"left","type":"info","color":"primary","show-icon":""}},[_vm._v(_vm._s(_vm.announcement.title))])],1)}
var staticRenderFns = []


// CONCATENATED MODULE: ./components/Announcement.vue?vue&type=template&id=684cacca&lang=pug&

// EXTERNAL MODULE: external "vuex"
var external_vuex_ = __webpack_require__(3);

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--2-0!./node_modules/babel-loader/lib??ref--2-1!./node_modules/vue-loader/lib??vue-loader-options!./components/Announcement.vue?vue&type=script&lang=js&
//
//
//
//
//

/* harmony default export */ var Announcementvue_type_script_lang_js_ = ({
  props: {
    announcement: {
      type: Object,
      default: () => ({})
    }
  },
  computed: Object(external_vuex_["mapState"])(['announcements'])
});
// CONCATENATED MODULE: ./components/Announcement.vue?vue&type=script&lang=js&
 /* harmony default export */ var components_Announcementvue_type_script_lang_js_ = (Announcementvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(1);

// CONCATENATED MODULE: ./components/Announcement.vue





/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  components_Announcementvue_type_script_lang_js_,
  render,
  staticRenderFns,
  false,
  null,
  null,
  "999dde52"
  
)

/* harmony default export */ var Announcement = __webpack_exports__["a"] = (component.exports);

/***/ }),

/***/ 134:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/pug-plain-loader??ref--1-oneOf-0-0!./node_modules/vue-loader/lib??vue-loader-options!./pages/Admin.vue?vue&type=template&id=4d1106a6&lang=pug&
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card',[_c('v-tabs',{model:{value:(_vm.selectedTab),callback:function ($$v) {_vm.selectedTab=$$v},expression:"selectedTab"}},[_c('v-tab',[_vm._v(_vm._s(_vm.$t('common.settings')))]),_c('v-tab-item',[_c('Settings')],1),_c('v-tab',[_vm._v(_vm._s(_vm.$t('common.theme')))]),_c('v-tab-item',[_c('Theme')],1),_c('v-tab',[_c('v-badge',{attrs:{"value":!!_vm.unconfirmedUsers.length,"content":_vm.unconfirmedUsers.length}},[_vm._v(_vm._s(_vm.$t('common.users')))])],1),_c('v-tab-item',[_c('Users',{attrs:{"users":_vm.users},on:{"update":_vm.updateUsers}})],1),_c('v-tab',[_vm._v(_vm._s(_vm.$t('common.places')))]),_c('v-tab-item',[_c('Places')],1),_c('v-tab',[_c('v-badge',{attrs:{"value":!!_vm.unconfirmedEvents.length,"content":_vm.unconfirmedEvents.length}},[_vm._v(_vm._s(_vm.$t('common.events')))])],1),_c('v-tab-item',[_c('Events',{attrs:{"unconfirmedEvents":_vm.unconfirmedEvents},on:{"confirmed":function (id) { _vm.unconfirmedEvents = _vm.unconfirmedEvents.filter(function (e) { return e.id !== id; })}}})],1),_c('v-tab',[_vm._v(_vm._s(_vm.$t('common.announcements')))]),_c('v-tab-item',[_c('Announcement')],1),_c('v-tab',[_vm._v(_vm._s(_vm.$t('common.federation')))]),_c('v-tab-item',[_c('Federation')],1),(_vm.settings.enable_federation)?_c('v-tab',[_vm._v(_vm._s(_vm.$t('common.moderation')))]):_vm._e(),_c('v-tab-item',[_c('Moderation')],1)],1)],1)],1)}
var staticRenderFns = []


// CONCATENATED MODULE: ./pages/Admin.vue?vue&type=template&id=4d1106a6&lang=pug&

// EXTERNAL MODULE: external "vuex"
var external_vuex_ = __webpack_require__(3);

// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/pug-plain-loader??ref--1-oneOf-0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/admin/Users.vue?vue&type=template&id=0d73a330&lang=pug&
var Usersvue_type_template_id_0d73a330_lang_pug_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('common.users'))),_c('v-spacer'),_c('v-text-field',{attrs:{"append-icon":"mdi-magnify","outlined":"","rounded":"","label":"Search","single-line":"","hide-details":""},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:"search"}})],1),_c('v-btn',{attrs:{"color":"primary","text":""},on:{"click":function($event){_vm.newUserDialog = true}}},[_c('v-icon',[_vm._v("mdi-plus")]),_vm._v(" "+_vm._s(_vm.$t('common.new_user')))],1),_c('v-dialog',{attrs:{"fullscreen":_vm.$vuetify.breakpoint.xsOnly},model:{value:(_vm.newUserDialog),callback:function ($$v) {_vm.newUserDialog=$$v},expression:"newUserDialog"}},[_c('v-card',{attrs:{"color":"secondary"}},[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('common.new_user')))]),_c('v-card-text',[_c('v-form',{ref:"user_form",attrs:{"lazy-validation":""},on:{"submit":function($event){$event.preventDefault();return _vm.createUser.apply(null, arguments)}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:"valid"}},[_c('v-text-field',{attrs:{"label":_vm.$t('common.email'),"rules":_vm.$validators.email},model:{value:(_vm.new_user.email),callback:function ($$v) {_vm.$set(_vm.new_user, "email", $$v)},expression:"new_user.email"}}),_c('v-switch',{attrs:{"label":_vm.$t('common.admin'),"inset":""},model:{value:(_vm.new_user.is_admin),callback:function ($$v) {_vm.$set(_vm.new_user, "is_admin", $$v)},expression:"new_user.is_admin"}})],1),_c('v-alert',{attrs:{"type":"info","closable":false}},[_vm._v(_vm._s(_vm.$t('admin.user_add_help')))]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{"color":"error"},on:{"click":function($event){_vm.newUserDialog=false}}},[_vm._v(_vm._s(_vm.$t('common.cancel')))]),_c('v-btn',{attrs:{"disabled":!_vm.valid,"color":"primary"},on:{"click":_vm.createUser}},[_vm._v(_vm._s(_vm.$t('common.send')))])],1)],1)],1)],1),_c('v-card-text',[_c('v-data-table',{attrs:{"headers":_vm.headers,"items":_vm.users,"hide-default-footer":_vm.users.length<5,"search":_vm.search},scopedSlots:_vm._u([{key:"item.is_active",fn:function(ref){
var item = ref.item;
return [(item.is_active)?_c('v-icon',{attrs:{"color":"success"}},[_vm._v("mdi-check")]):_c('v-icon',{attrs:{"color":"warning"}},[_vm._v("mdi-close")])]}},{key:"item.actions",fn:function(ref){
var item = ref.item;
return [(item.recover_code)?_c('v-btn',{attrs:{"text":"","small":"","to":("/user_confirm/" + (item.recover_code))}},[_vm._v(_vm._s(_vm.$t('common.confirm')))]):_vm._e(),_c('v-btn',{attrs:{"text":"","small":"","color":item.is_active?"warning":"success"},on:{"click":function($event){return _vm.toggle(item)}}},[_vm._v(_vm._s(item.is_active?_vm.$t('common.disable'):_vm.$t('common.enable')))]),_c('v-btn',{attrs:{"text":"","small":"","color":item.is_admin?"warning":"error"},on:{"click":function($event){return _vm.toggleAdmin(item)}}},[_vm._v(_vm._s(item.is_admin?_vm.$t('common.remove_admin'):_vm.$t('common.admin')))]),_c('v-btn',{attrs:{"text":"","small":"","color":"error"},on:{"click":function($event){return _vm.deleteUser(item)}}},[_vm._v(_vm._s(_vm.$t('admin.delete_user')))])]}}])})],1)],1)}
var Usersvue_type_template_id_0d73a330_lang_pug_staticRenderFns = []


// CONCATENATED MODULE: ./components/admin/Users.vue?vue&type=template&id=0d73a330&lang=pug&

// EXTERNAL MODULE: external "lodash/get"
var get_ = __webpack_require__(59);
var get_default = /*#__PURE__*/__webpack_require__.n(get_);

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--2-0!./node_modules/babel-loader/lib??ref--2-1!./node_modules/vue-loader/lib??vue-loader-options!./components/admin/Users.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


/* harmony default export */ var Usersvue_type_script_lang_js_ = ({
  name: 'Users',
  props: {
    users: {
      type: Array,
      default: () => []
    }
  },

  data() {
    return {
      newUserDialog: false,
      valid: false,
      new_user: {
        email: '',
        is_admin: false
      },
      search: '',
      headers: [{
        value: 'email',
        text: 'Email'
      }, {
        value: 'description',
        text: 'Description'
      }, {
        value: 'is_active',
        text: 'Active'
      }, {
        value: 'actions',
        text: 'Actions',
        align: 'right'
      }]
    };
  },

  computed: Object(external_vuex_["mapState"])(['settings']),
  methods: {
    async deleteUser(user) {
      const ret = await this.$root.$confirm('admin.delete_user_confirm', {
        user: user.email
      });

      if (!ret) {
        return;
      }

      try {
        this.loading = true;
        await this.$axios.$delete(`/user/${user.id}`);
        this.$root.$message('admin.user_remove_ok');
        this.$emit('update');
      } catch (e) {
        const err = get_default()(e, 'response.data.errors[0].message', e);
        this.$root.$message(this.$t(err), {
          color: 'error'
        });
        this.loading = false;
      }
    },

    async toggle(user) {
      if (user.is_active) {
        const ret = await this.$root.$confirm('admin.disable_user_confirm', {
          user: user.email
        });

        if (!ret) {
          return;
        }
      }

      user.is_active = !user.is_active;
      this.$axios.$put('/user', user);
    },

    async toggleAdmin(user) {
      try {
        user.is_admin = !user.is_admin;
        await this.$axios.$put('/user', user);
      } catch (e) {}
    },

    async createUser() {
      if (!this.$refs.user_form.validate()) {
        return;
      }

      try {
        this.loading = true;
        await this.$axios.$post('/user', this.new_user);
        this.new_user = {
          email: '',
          is_admin: false
        };
        this.$root.$message('admin.user_create_ok', {
          color: 'success'
        });
        this.$emit('update');
        this.loading = false;
        this.newUserDialog = false;
      } catch (e) {
        const err = get_default()(e, 'response.data.errors[0].message', e);
        this.$root.$message(this.$t(err), {
          color: 'error'
        });
        this.loading = false;
      }
    }

  }
});
// CONCATENATED MODULE: ./components/admin/Users.vue?vue&type=script&lang=js&
 /* harmony default export */ var admin_Usersvue_type_script_lang_js_ = (Usersvue_type_script_lang_js_); 
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
var componentNormalizer = __webpack_require__(1);

// CONCATENATED MODULE: ./components/admin/Users.vue





/* normalize component */

var component = Object(componentNormalizer["a" /* default */])(
  admin_Usersvue_type_script_lang_js_,
  Usersvue_type_template_id_0d73a330_lang_pug_render,
  Usersvue_type_template_id_0d73a330_lang_pug_staticRenderFns,
  false,
  null,
  null,
  "4c8c1a68"
  
)

/* harmony default export */ var Users = (component.exports);
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/pug-plain-loader??ref--1-oneOf-0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/admin/Events.vue?vue&type=template&id=2b767e8e&lang=pug&
var Eventsvue_type_template_id_2b767e8e_lang_pug_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('common.events')))]),_c('v-card-subtitle',[_vm._v(_vm._s(_vm.$t('admin.event_confirm_description')))]),_c('v-card-text',[_c('v-data-table',{attrs:{"hide-default-footer":_vm.unconfirmedEvents.length<10,"items":_vm.unconfirmedEvents,"headers":_vm.headers},scopedSlots:_vm._u([{key:"item.actions",fn:function(ref){
var item = ref.item;
return [_c('v-btn',{attrs:{"text":"","small":"","color":"success"},on:{"click":function($event){return _vm.confirm(item)}}},[_vm._v(_vm._s(_vm.$t('common.confirm')))]),_c('v-btn',{attrs:{"text":"","small":"","to":("/event/" + (item.slug || item.id)),"color":"success"}},[_vm._v(_vm._s(_vm.$t('common.preview')))]),_c('v-btn',{attrs:{"text":"","small":"","to":("/add/" + (item.id)),"color":"warning"}},[_vm._v(_vm._s(_vm.$t('common.edit')))]),_c('v-btn',{attrs:{"text":"","small":"","color":"error"},on:{"click":function($event){return _vm.remove(item)}}},[_vm._v(_vm._s(_vm.$t('common.delete')))])]}}])})],1)],1)}
var Eventsvue_type_template_id_2b767e8e_lang_pug_staticRenderFns = []


// CONCATENATED MODULE: ./components/admin/Events.vue?vue&type=template&id=2b767e8e&lang=pug&

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--2-0!./node_modules/babel-loader/lib??ref--2-1!./node_modules/vue-loader/lib??vue-loader-options!./components/admin/Events.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
/* harmony default export */ var Eventsvue_type_script_lang_js_ = ({
  props: {
    unconfirmedEvents: {
      type: Array,
      default: () => []
    }
  },

  data() {
    return {
      valid: false,
      dialog: false,
      editing: false,
      headers: [{
        value: 'title',
        text: 'Title'
      }, {
        value: 'actions',
        text: 'Actions',
        align: 'right'
      }]
    };
  },

  methods: {
    edit(event) {
      this.$router.push(`/add/${event.id}`);
    },

    async confirm(event) {
      try {
        await this.$axios.$put(`/event/confirm/${event.id}`);
        this.$emit('confirmed', event.id);
        this.$root.$message('event.confirmed');
      } catch (e) {}
    },

    async remove(event) {
      const ret = await this.$root.$confirm('event.remove_confirmation');

      if (!ret) {
        return;
      }

      await this.$axios.delete(`/event/${event.id}`);
      this.$root.$message('admin.event_remove_ok');
    }

  }
});
// CONCATENATED MODULE: ./components/admin/Events.vue?vue&type=script&lang=js&
 /* harmony default export */ var admin_Eventsvue_type_script_lang_js_ = (Eventsvue_type_script_lang_js_); 
// CONCATENATED MODULE: ./components/admin/Events.vue





/* normalize component */

var Events_component = Object(componentNormalizer["a" /* default */])(
  admin_Eventsvue_type_script_lang_js_,
  Eventsvue_type_template_id_2b767e8e_lang_pug_render,
  Eventsvue_type_template_id_2b767e8e_lang_pug_staticRenderFns,
  false,
  null,
  null,
  "22160b2e"
  
)

/* harmony default export */ var Events = (Events_component.exports);
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/pug-plain-loader??ref--1-oneOf-0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/admin/Places.vue?vue&type=template&id=c239e530&lang=pug&
var Placesvue_type_template_id_c239e530_lang_pug_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('common.places')))]),_c('v-card-subtitle',{domProps:{"innerHTML":_vm._s(_vm.$t('admin.place_description'))}}),_c('v-dialog',{attrs:{"width":"600","fullscreen":_vm.$vuetify.breakpoint.xsOnly},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:"dialog"}},[_c('v-card',{attrs:{"color":"secondary"}},[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('admin.edit_place')))]),_c('v-card-text',[_c('v-form',{ref:"form",attrs:{"lazy-validation":""},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:"valid"}},[_c('v-text-field',{attrs:{"rules":[_vm.$validators.required('common.name')],"label":_vm.$t('common.name'),"placeholder":_vm.$t("common.name")},model:{value:(_vm.place.name),callback:function ($$v) {_vm.$set(_vm.place, "name", $$v)},expression:"place.name"}}),_c('v-text-field',{attrs:{"rules":[_vm.$validators.required('common.address')],"label":_vm.$t('common.address'),"placeholder":_vm.$t("common.address")},model:{value:(_vm.place.address),callback:function ($$v) {_vm.$set(_vm.place, "address", $$v)},expression:"place.address"}})],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{"color":"warning"},on:{"click":function($event){_vm.dialog=false}}},[_vm._v(_vm._s(_vm.$t('common.cancel')))]),_c('v-btn',{attrs:{"color":"primary","loading":_vm.loading,"disable":!_vm.valid || _vm.loading},on:{"click":_vm.savePlace}},[_vm._v(_vm._s(_vm.$t('common.save')))])],1)],1)],1),_c('v-card-text',[_c('v-data-table',{attrs:{"headers":_vm.headers,"items":_vm.places},scopedSlots:_vm._u([{key:"item.actions",fn:function(ref){
var item = ref.item;
return [_c('v-btn',{attrs:{"color":"primary","icon":""},on:{"click":function($event){return _vm.editPlace(item)}}},[_c('v-icon',[_vm._v("mdi-pencil")])],1)]}}])})],1)],1)}
var Placesvue_type_template_id_c239e530_lang_pug_staticRenderFns = []


// CONCATENATED MODULE: ./components/admin/Places.vue?vue&type=template&id=c239e530&lang=pug&

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--2-0!./node_modules/babel-loader/lib??ref--2-1!./node_modules/vue-loader/lib??vue-loader-options!./components/admin/Places.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//

/* harmony default export */ var Placesvue_type_script_lang_js_ = ({
  data() {
    return {
      loading: false,
      dialog: false,
      valid: false,
      place: {
        name: '',
        address: '',
        id: null
      },
      headers: [{
        value: 'name',
        text: 'Name'
      }, {
        value: 'address',
        text: 'Address'
      }, {
        value: 'actions',
        text: 'Actions',
        align: 'right'
      }]
    };
  },

  computed: Object(external_vuex_["mapState"])(['places']),
  methods: { ...Object(external_vuex_["mapActions"])(['updateMeta']),

    editPlace(item) {
      this.place.name = item.name;
      this.place.address = item.address;
      this.place.id = item.id;
      this.dialog = true;
    },

    async savePlace() {
      if (!this.$refs.form.validate()) return;
      this.loading = true;
      await this.$axios.$put('/place', this.place);
      this.updateMeta();
      this.loading = false;
      this.dialog = false;
    }

  }
});
// CONCATENATED MODULE: ./components/admin/Places.vue?vue&type=script&lang=js&
 /* harmony default export */ var admin_Placesvue_type_script_lang_js_ = (Placesvue_type_script_lang_js_); 
// CONCATENATED MODULE: ./components/admin/Places.vue





/* normalize component */

var Places_component = Object(componentNormalizer["a" /* default */])(
  admin_Placesvue_type_script_lang_js_,
  Placesvue_type_template_id_c239e530_lang_pug_render,
  Placesvue_type_template_id_c239e530_lang_pug_staticRenderFns,
  false,
  null,
  null,
  "b722dfc8"
  
)

/* harmony default export */ var Places = (Places_component.exports);
// EXTERNAL MODULE: ./components/admin/Settings.vue + 10 modules
var Settings = __webpack_require__(108);

// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/pug-plain-loader??ref--1-oneOf-0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/admin/Federation.vue?vue&type=template&id=7f40a145&lang=pug&
var Federationvue_type_template_id_7f40a145_lang_pug_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('common.federation')))]),_c('v-card-text',[_c('v-switch',{attrs:{"label":_vm.$t('admin.enable_federation'),"persistent-hint":"","inset":"","hint":_vm.$t('admin.enable_federation_help')},model:{value:(_vm.enable_federation),callback:function ($$v) {_vm.enable_federation=$$v},expression:"enable_federation"}}),(_vm.enable_federation)?[_c('v-switch',{staticClass:"mt-4",attrs:{"label":_vm.$t('admin.enable_resources'),"hint":_vm.$t('admin.enable_resources_help'),"persistent-hint":"","inset":""},model:{value:(_vm.enable_resources),callback:function ($$v) {_vm.enable_resources=$$v},expression:"enable_resources"}}),_c('v-switch',{staticClass:"mt-4",attrs:{"label":_vm.$t('admin.hide_boost_bookmark'),"hint":_vm.$t('admin.hide_boost_bookmark_help'),"persistent-hint":"","inset":""},model:{value:(_vm.hide_boosts),callback:function ($$v) {_vm.hide_boosts=$$v},expression:"hide_boosts"}}),_c('v-text-field',{staticClass:"mt-5",attrs:{"label":_vm.$t('admin.instance_name'),"hint":((_vm.$t('admin.instance_name_help')) + " " + _vm.instance_ap_url),"placeholder":"Instance name","persistent-hint":""},on:{"blur":function($event){return _vm.save("instance_name", _vm.instance_name)}},model:{value:(_vm.instance_name),callback:function ($$v) {_vm.instance_name=$$v},expression:"instance_name"}})]:_vm._e(),_c('v-switch',{staticClass:"mt-4",attrs:{"label":_vm.$t('admin.enable_trusted_instances'),"persistent-hint":"","inset":"","hint":_vm.$t('admin.trusted_instances_help')},model:{value:(_vm.enable_trusted_instances),callback:function ($$v) {_vm.enable_trusted_instances=$$v},expression:"enable_trusted_instances"}}),(_vm.enable_trusted_instances)?[_c('v-text-field',{staticClass:"mt-4",attrs:{"label":_vm.$t('admin.instance_place'),"persistent-hint":"","hint":_vm.$t('admin.instance_place_help')},on:{"blur":function($event){return _vm.save("instance_place", _vm.instance_place)}},model:{value:(_vm.instance_place),callback:function ($$v) {_vm.instance_place=$$v},expression:"instance_place"}}),_c('v-dialog',{attrs:{"width":"500px","fullscreen":_vm.$vuetify.breakpoint.xsOnly},model:{value:(_vm.dialogAddInstance),callback:function ($$v) {_vm.dialogAddInstance=$$v},expression:"dialogAddInstance"}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('admin.add_trusted_instance')))]),_c('v-card-text',[_c('v-form',{ref:"form",attrs:{"lazy-validation":""},on:{"submit":function($event){$event.preventDefault();return _vm.createTrustedInstance.apply(null, arguments)}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:"valid"}},[_c('v-text-field',{staticClass:"mt-4",attrs:{"persistent-hint":"","rules":[_vm.$validators.required('common.url')],"loading":_vm.loading,"hint":_vm.$t('admin.add_trusted_instance'),"label":_vm.$t('common.url')},model:{value:(_vm.instance_url),callback:function ($$v) {_vm.instance_url=$$v},expression:"instance_url"}})],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{"color":"error"},on:{"click":function($event){_vm.dialogAddInstance=false}}},[_vm._v(_vm._s(_vm.$t('common.cancel')))]),_c('v-btn',{attrs:{"color":"primary","disabled":!_vm.valid || _vm.loading,"loading":_vm.loading},on:{"click":_vm.createTrustedInstance}},[_vm._v(_vm._s(_vm.$t('common.ok')))])],1)],1)],1),_c('v-btn',{staticClass:"mt-4",attrs:{"color":"primary","text":""},on:{"click":function($event){_vm.dialogAddInstance = true}}},[_c('v-icon',[_vm._v("mdi-plus")]),_vm._v(" "+_vm._s(_vm.$t('admin.add_instance')))],1),(_vm.settings.trusted_instances.length)?_c('v-data-table',{attrs:{"hide-default-footer":_vm.settings.trusted_instances.length<10,"headers":_vm.headers,"items":_vm.settings.trusted_instances},scopedSlots:_vm._u([{key:"item.actions",fn:function(ref){
var item = ref.item;
return [_c('v-btn',{attrs:{"icon":"","color":"error"},on:{"click":function($event){return _vm.deleteInstance(item)}}},[_c('v-icon',[_vm._v("mdi-delete-forever")])],1)]}}],null,false,893960782)}):_vm._e()]:_vm._e()],2)],1)}
var Federationvue_type_template_id_7f40a145_lang_pug_staticRenderFns = []


// CONCATENATED MODULE: ./components/admin/Federation.vue?vue&type=template&id=7f40a145&lang=pug&

// EXTERNAL MODULE: external "axios"
var external_axios_ = __webpack_require__(7);
var external_axios_default = /*#__PURE__*/__webpack_require__.n(external_axios_);

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--2-0!./node_modules/babel-loader/lib??ref--2-1!./node_modules/vue-loader/lib??vue-loader-options!./components/admin/Federation.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


/* harmony default export */ var Federationvue_type_script_lang_js_ = ({
  name: 'Federation',

  data({
    $store,
    $options
  }) {
    return {
      instance_url: '',
      instance_name: $store.state.settings.instance_name,
      instance_place: $store.state.settings.instance_place,
      url2host: $options.filters.url2host,
      dialogAddInstance: false,
      loading: false,
      valid: false,
      headers: [{
        value: 'name',
        text: 'Name'
      }, {
        value: 'url',
        text: 'URL'
      }, {
        value: 'label',
        text: 'Place'
      }, {
        value: 'actions',
        text: 'Actions',
        align: 'right'
      }]
    };
  },

  computed: { ...Object(external_vuex_["mapState"])(['settings']),
    enable_federation: {
      get() {
        return this.settings.enable_federation;
      },

      set(value) {
        this.setSetting({
          key: 'enable_federation',
          value
        });
      }

    },
    enable_resources: {
      get() {
        return this.settings.enable_resources;
      },

      set(value) {
        this.setSetting({
          key: 'enable_resources',
          value
        });
      }

    },
    hide_boosts: {
      get() {
        return this.settings.hide_boosts;
      },

      set(value) {
        this.setSetting({
          key: 'hide_boosts',
          value
        });
      }

    },
    enable_trusted_instances: {
      get() {
        return this.settings.enable_trusted_instances;
      },

      set(value) {
        this.setSetting({
          key: 'enable_trusted_instances',
          value
        });
      }

    },

    instance_ap_url() {
      const instance_url = this.settings.baseurl.match(/^https?:\/\/(.[^/:]+)/i)[1];
      return `(@${this.instance_name}@${instance_url})`;
    }

  },
  methods: { ...Object(external_vuex_["mapActions"])(['setSetting']),

    async createTrustedInstance() {
      if (!this.$refs.form.validate()) {
        return;
      }

      this.loading = true;

      try {
        if (!this.instance_url.startsWith('http')) {
          this.instance_url = `https://${this.instance_url}`;
        }

        const instance = await external_axios_default.a.get(`${this.instance_url}/.well-known/nodeinfo/2.1`);
        this.setSetting({
          key: 'trusted_instances',
          value: this.settings.trusted_instances.concat({
            url: this.instance_url,
            name: instance.data.metadata.nodeName,
            label: instance.data.metadata.nodeLabel
          })
        });
        this.$refs.form.reset();
        this.dialogAddInstance = false;
      } catch (e) {
        this.$root.$message(e, {
          color: 'error'
        });
      }

      this.loading = false;
    },

    async deleteInstance(instance) {
      const ret = await this.$root.$confirm('admin.delete_trusted_instance_confirm');

      if (!ret) {
        return;
      }

      this.setSetting({
        key: 'trusted_instances',
        value: this.settings.trusted_instances.filter(i => i.url !== instance.url)
      });
    },

    save(key, value) {
      if (this.settings[key] !== value) {
        this.setSetting({
          key,
          value
        });
      }
    }

  }
});
// CONCATENATED MODULE: ./components/admin/Federation.vue?vue&type=script&lang=js&
 /* harmony default export */ var admin_Federationvue_type_script_lang_js_ = (Federationvue_type_script_lang_js_); 
// CONCATENATED MODULE: ./components/admin/Federation.vue





/* normalize component */

var Federation_component = Object(componentNormalizer["a" /* default */])(
  admin_Federationvue_type_script_lang_js_,
  Federationvue_type_template_id_7f40a145_lang_pug_render,
  Federationvue_type_template_id_7f40a145_lang_pug_staticRenderFns,
  false,
  null,
  null,
  "3df50f93"
  
)

/* harmony default export */ var Federation = (Federation_component.exports);
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/pug-plain-loader??ref--1-oneOf-0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/admin/Moderation.vue?vue&type=template&id=506ef820&lang=pug&
var Moderationvue_type_template_id_506ef820_lang_pug_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('common.moderation')))]),_c('v-card-text',[_c('v-row',[_c('v-col',{attrs:{"span":12}},[_c('span',[_vm._v(_vm._s(_vm.$t('common.instances')))]),_c('v-text-field',{attrs:{"placeholder":_vm.$t('admin.filter_instances')},model:{value:(_vm.instancesFilter),callback:function ($$v) {_vm.instancesFilter=$$v},expression:"instancesFilter"}}),_c('v-data-table',{attrs:{"items":_vm.instances,"items-per-page":5,"search":_vm.instancesFilter,"hide-default-footer":_vm.instances.length<5,"dense":"","headers":_vm.instancesHeader},on:{"click:row":_vm.instanceSelected},scopedSlots:_vm._u([{key:"item.blocked",fn:function(ref){
var item = ref.item;
return [_c('v-icon',{on:{"click":function($event){return _vm.toggleBlock(item)}}},[_vm._v(_vm._s(item.blocked ? 'mdi-checkbox-intermediate' : 'mdi-checkbox-blank-outline'))])]}}])})],1),_c('v-col',{attrs:{"span":11}},[_c('span',[_vm._v(_vm._s(_vm.$t('common.users')))]),_c('v-text-field',{attrs:{"placeholder":_vm.$t('admin.filter_users')},model:{value:(_vm.usersFilter),callback:function ($$v) {_vm.usersFilter=$$v},expression:"usersFilter"}}),_c('v-data-table',{attrs:{"items":_vm.users,"items-per-page":5,"search":_vm.usersFilter,"hide-default-footer":_vm.users.length<5,"dense":"","headers":_vm.usersHeader},scopedSlots:_vm._u([{key:"item.blocked",fn:function(ref){
var item = ref.item;
return [_c('v-icon',{on:{"click":function($event){return _vm.toggleUserBlock(item)}}},[_vm._v(_vm._s(item.blocked?'mdi-checkbox-intermediate':'mdi-checkbox-blank-outline'))])]}}])})],1)],1),_c('div',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('common.resources')))]),_c('v-data-table',{attrs:{"items":_vm.resources,"dense":"","headers":_vm.resourcesHeader,"hide-default-footer":_vm.resources.length<10,"items-per-page":10},scopedSlots:_vm._u([{key:"item.content",fn:function(ref){
var item = ref.item;
return [_c('span',{domProps:{"innerHTML":_vm._s(item.data.content)}})]}},{key:"item.user",fn:function(ref){
var item = ref.item;
return [_c('span',[_vm._v(_vm._s(item.ap_user.preferredUsername))])]}},{key:"item.event",fn:function(ref){
var item = ref.item;
return [_c('span',[_vm._v(_vm._s(item.event.title))])]}},{key:"item.actions",fn:function(ref){
var item = ref.item;
return [_c('v-menu',{attrs:{"offset-y":""},scopedSlots:_vm._u([{key:"activator",fn:function(ref){
var on = ref.on;
return [_c('v-btn',_vm._g({staticClass:"mr-2",attrs:{"color":"primary","small":"","icon":""}},on),[_c('v-icon',[_vm._v("mdi-dots-vertical")])],1)]}}],null,true)},[_c('v-list',[(!item.hidden)?_c('v-list-item',{on:{"click":function($event){return _vm.hideResource(item, true)}}},[_c('v-list-item-title',[_c('v-icon',{attrs:{"left":""}},[_vm._v("mdi-eye-off")]),_vm._v(" "+_vm._s(_vm.$t('admin.hide_resource')))],1)],1):_c('v-list-item',{on:{"click":function($event){return _vm.hideResource(item, false)}}},[_c('v-list-item-title',[_c('v-icon',{attrs:{"left":""}},[_vm._v("mdi-eye")]),_vm._v(" "+_vm._s(_vm.$t('admin.show_resource')))],1)],1),_c('v-list-item',{on:{"click":function($event){return _vm.deleteResource(item)}}},[_c('v-list-item-title',[_c('v-icon',{attrs:{"left":""}},[_vm._v("mdi-delete")]),_vm._v(" "+_vm._s(_vm.$t('admin.delete_resource')))],1)],1)],1)],1)]}}])})],1)],1)],1)}
var Moderationvue_type_template_id_506ef820_lang_pug_staticRenderFns = []


// CONCATENATED MODULE: ./components/admin/Moderation.vue?vue&type=template&id=506ef820&lang=pug&

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--2-0!./node_modules/babel-loader/lib??ref--2-1!./node_modules/vue-loader/lib??vue-loader-options!./components/admin/Moderation.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


/* harmony default export */ var Moderationvue_type_script_lang_js_ = ({
  name: 'Moderation',

  data() {
    return {
      instances: [],
      resources: [],
      users: [],
      usersHeader: [{
        value: 'object.preferredUsername',
        text: 'Name'
      }, {
        value: 'blocked',
        text: 'Blocked'
      }],
      instancesHeader: [{
        value: 'domain',
        text: 'Domain'
      }, {
        value: 'name',
        text: 'Name'
      }, {
        value: 'blocked',
        text: 'Blocked'
      }, {
        value: 'users',
        text: 'known users'
      }],
      resourcesHeader: [{
        value: 'created',
        text: 'Created'
      }, {
        value: 'event',
        text: 'Event'
      }, {
        value: 'user',
        text: 'user'
      }, {
        value: 'content',
        text: 'Content'
      }, {
        value: 'actions',
        text: 'Actions'
      }],
      usersFilter: '',
      instancesFilter: ''
    };
  },

  computed: Object(external_vuex_["mapState"])(['settings']),

  async mounted() {
    this.instances = await this.$axios.$get('/instances');

    if (!this.instances.length) {
      return;
    }

    this.users = await this.$axios.$get(`/instances/${this.instances[0].domain}`);
    this.resources = await this.$axios.$get('/resources');
  },

  methods: { ...Object(external_vuex_["mapActions"])(['setSetting']),

    resourceStyle({
      row
    }) {
      if (row.hidden) {
        return {
          opacity: 0.5
        };
      }
    },

    async instanceSelected(instance) {
      this.users = await this.$axios.$get(`/instances/${instance.domain}`);
      this.resources = await this.$axios.$get('/resources', {
        filters: {
          instance: instance.domain
        }
      });
    },

    async hideResource(resource, hidden) {
      await this.$axios.$put(`/resources/${resource.id}`, {
        hidden
      });
      resource.hidden = hidden;
    },

    async toggleUserBlock(ap_user) {
      if (!ap_user.blocked) {
        const ret = await this.$root.$confirm('admin.user_block_confirm', {
          user: get_default()(ap_user, 'object.preferredUsername', ap_user.preferredUsername)
        });

        if (!ret) {
          return;
        }
      }

      await this.$axios.post('/instances/toggle_user_block', {
        ap_id: ap_user.ap_id
      });
      ap_user.blocked = !ap_user.blocked;
    },

    async deleteResource(resource) {
      const ret = await this.$root.$confirm('admin.delete_resource_confirm');

      if (!ret) {
        return;
      }

      await this.$axios.delete(`/resources/${resource.id}`);
      this.resources = this.resources.filter(r => r.id !== resource.id);
    },

    async toggleBlock(instance) {
      if (!instance.blocked) {
        const ret = await this.$root.$confirm('admin.instance_block_confirm', {
          instance: instance.domain
        });

        if (!ret) {
          return;
        }
      }

      await this.$axios.post('/instances/toggle_block', {
        instance: instance.domain,
        blocked: !instance.blocked
      });
      instance.blocked = !instance.blocked;
    }

  }
});
// CONCATENATED MODULE: ./components/admin/Moderation.vue?vue&type=script&lang=js&
 /* harmony default export */ var admin_Moderationvue_type_script_lang_js_ = (Moderationvue_type_script_lang_js_); 
// CONCATENATED MODULE: ./components/admin/Moderation.vue





/* normalize component */

var Moderation_component = Object(componentNormalizer["a" /* default */])(
  admin_Moderationvue_type_script_lang_js_,
  Moderationvue_type_template_id_506ef820_lang_pug_render,
  Moderationvue_type_template_id_506ef820_lang_pug_staticRenderFns,
  false,
  null,
  null,
  "87b85814"
  
)

/* harmony default export */ var Moderation = (Moderation_component.exports);
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/pug-plain-loader??ref--1-oneOf-0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/admin/Announcement.vue?vue&type=template&id=8c28dfb8&lang=pug&
var Announcementvue_type_template_id_8c28dfb8_lang_pug_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('common.announcements')))]),_c('v-card-subtitle',{domProps:{"innerHTML":_vm._s(_vm.$t('admin.announcement_description'))}}),_c('v-dialog',{attrs:{"width":"800px","fullscreen":_vm.$vuetify.breakpoint.xsOnly},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:"dialog"}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('admin.new_announcement')))]),_c('v-card-text',{staticClass:"px-0"},[_c('v-form',{ref:"announcement",attrs:{"lazy-validation":""},on:{"submit":function($event){$event.preventDefault();return _vm.save.apply(null, arguments)}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:"valid"}},[_c('v-text-field',{staticClass:"col-12",attrs:{"rules":[_vm.$validators.required('common.title')],"label":_vm.$t("common.title")},model:{value:(_vm.announcement.title),callback:function ($$v) {_vm.$set(_vm.announcement, "title", $$v)},expression:"announcement.title"}}),_c('Editor',{staticClass:"col-12",attrs:{"border":"","no-save":"","max-height":"400px","placeholder":_vm.$t('common.description')},model:{value:(_vm.announcement.announcement),callback:function ($$v) {_vm.$set(_vm.announcement, "announcement", $$v)},expression:"announcement.announcement"}})],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{"color":"error"},on:{"click":function($event){_vm.dialog=false}}},[_vm._v(_vm._s(_vm.$t('common.cancel')))]),_c('v-btn',{attrs:{"color":"primary","disabled":!_vm.valid || _vm.loading,"loading":_vm.loading},on:{"click":_vm.save}},[_vm._v(_vm._s(_vm.$t(("common." + (_vm.editing?'save':'send')))))])],1)],1)],1),_c('v-btn',{attrs:{"text":"","color":"primary"},on:{"click":_vm.openDialog}},[_c('v-icon',[_vm._v("mdi-plus")]),_vm._v(" "+_vm._s(_vm.$t('common.add')))],1),_c('v-card-text',[(_vm.announcements.length)?_c('v-data-table',{attrs:{"hide-default-footer":_vm.announcements.length<10,"headers":_vm.headers,"items":_vm.announcements},scopedSlots:_vm._u([{key:"item.actions",fn:function(ref){
var item = ref.item;
return [_c('v-btn',{attrs:{"text":"","small":"","color":item.visible?"warning":"success"},on:{"click":function($event){$event.stopPropagation();return _vm.toggle(item)}}},[_vm._v(_vm._s(item.visible?_vm.$t('common.disable'):_vm.$t('common.enable')))]),_c('v-btn',{attrs:{"text":"","small":"","color":"primary"},on:{"click":function($event){return _vm.edit(item)}}},[_vm._v(_vm._s(_vm.$t('common.edit')))]),_c('v-btn',{attrs:{"text":"","small":"","color":"error"},on:{"click":function($event){return _vm.remove(item)}}},[_vm._v(_vm._s(_vm.$t('common.delete')))])]}}],null,false,206107503)}):_vm._e()],1)],1)}
var Announcementvue_type_template_id_8c28dfb8_lang_pug_staticRenderFns = []


// CONCATENATED MODULE: ./components/admin/Announcement.vue?vue&type=template&id=8c28dfb8&lang=pug&

// EXTERNAL MODULE: external "lodash/cloneDeep"
var cloneDeep_ = __webpack_require__(65);
var cloneDeep_default = /*#__PURE__*/__webpack_require__.n(cloneDeep_);

// EXTERNAL MODULE: ./components/Editor.vue + 4 modules
var Editor = __webpack_require__(101);

// EXTERNAL MODULE: ./components/Announcement.vue + 4 modules
var Announcement = __webpack_require__(109);

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--2-0!./node_modules/babel-loader/lib??ref--2-1!./node_modules/vue-loader/lib??vue-loader-options!./components/admin/Announcement.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//




/* harmony default export */ var Announcementvue_type_script_lang_js_ = ({
  components: {
    Editor: Editor["a" /* default */],
    Announcement: Announcement["a" /* default */]
  },

  data() {
    return {
      valid: false,
      dialog: false,
      editing: false,
      announcements: [],
      loading: false,
      headers: [{
        value: 'title',
        text: 'Title'
      }, {
        value: 'actions',
        text: 'Actions',
        align: 'right'
      }],
      announcement: {
        title: '',
        announcement: ''
      }
    };
  },

  async mounted() {
    this.announcements = await this.$axios.$get('/announcements');
  },

  methods: { ...Object(external_vuex_["mapActions"])(['setAnnouncements']),

    edit(announcement) {
      this.announcement.title = announcement.title;
      this.announcement.announcement = announcement.announcement;
      this.announcement.id = announcement.id;
      this.editing = true;
      this.dialog = true;
    },

    openDialog() {
      this.announcement = {
        title: '',
        announcement: ''
      };
      this.dialog = true;
      this.$nextTick(() => this.$refs.announcement.reset());
    },

    async toggle(announcement) {
      try {
        announcement.visible = !announcement.visible;
        await this.$axios.$put(`/announcements/${announcement.id}`, announcement);
        this.announcements = this.announcements.map(a => a.id === announcement.id ? announcement : a);
        this.setAnnouncements(cloneDeep_default()(this.announcements.filter(a => a.visible)));
      } catch (e) {}
    },

    async remove(announcement) {
      const ret = await this.$root.$confirm('admin.delete_announcement_confirm');

      if (!ret) {
        return;
      }

      this.$axios.delete(`/announcements/${announcement.id}`).then(() => {
        this.$root.$message('admin.announcement_remove_ok');
        this.announcements = this.announcements.filter(a => a.id !== announcement.id);
      });
    },

    async save() {
      if (!this.$refs.announcement.validate()) {
        return;
      }

      this.loading = true;

      try {
        let announcement = null;

        if (this.editing) {
          announcement = await this.$axios.$put(`/announcements/${this.announcement.id}`, this.announcement);
          this.announcements = this.announcements.map(a => a.id === announcement.id ? announcement : a);
        } else {
          announcement = await this.$axios.$post('/announcements', this.announcement);
          this.announcements = this.announcements.concat(announcement);
        }

        this.setAnnouncements(cloneDeep_default()(this.announcements));
        this.announcement = {
          title: '',
          announcement: ''
        };
        this.$refs.announcement.reset();
        this.editing = false;
        this.dialog = false;
      } catch (e) {
        console.error(e);
      }

      this.loading = false;
    }

  }
});
// CONCATENATED MODULE: ./components/admin/Announcement.vue?vue&type=script&lang=js&
 /* harmony default export */ var admin_Announcementvue_type_script_lang_js_ = (Announcementvue_type_script_lang_js_); 
// CONCATENATED MODULE: ./components/admin/Announcement.vue





/* normalize component */

var Announcement_component = Object(componentNormalizer["a" /* default */])(
  admin_Announcementvue_type_script_lang_js_,
  Announcementvue_type_template_id_8c28dfb8_lang_pug_render,
  Announcementvue_type_template_id_8c28dfb8_lang_pug_staticRenderFns,
  false,
  null,
  null,
  "57745597"
  
)

/* harmony default export */ var admin_Announcement = (Announcement_component.exports);
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/pug-plain-loader??ref--1-oneOf-0-0!./node_modules/vue-loader/lib??vue-loader-options!./components/admin/Theme.vue?vue&type=template&id=e2e2c2ea&lang=pug&
var Themevue_type_template_id_e2e2c2ea_lang_pug_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('common.theme')))]),_c('v-card-text',[_c('v-file-input',{ref:"upload",staticClass:"mt-5",attrs:{"label":_vm.$t('admin.favicon'),"accept":"image/*"},on:{"change":_vm.uploadLogo}},[_c('template',{slot:"append-outer"},[_c('v-btn',{attrs:{"color":"warning","text":""},on:{"click":_vm.resetLogo}},[_c('v-icon',[_vm._v("mdi-restore")]),_vm._v(" "+_vm._s(_vm.$t('common.reset')))],1),_c('v-img',{attrs:{"src":((_vm.settings.baseurl) + "/logo.png?" + _vm.logoKey),"max-width":"60px","max-height":"60px","contain":""}})],1)],2),_c('v-switch',{staticClass:"mt-5",attrs:{"inset":"","label":_vm.$t('admin.is_dark')},model:{value:(_vm.is_dark),callback:function ($$v) {_vm.is_dark=$$v},expression:"is_dark"}}),_c('v-dialog',{attrs:{"width":"500","fullscreen":_vm.$vuetify.breakpoint.xsOnly},model:{value:(_vm.linkModal),callback:function ($$v) {_vm.linkModal=$$v},expression:"linkModal"}},[_c('v-card',[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('admin.footer_links')))]),_c('v-card-text',[_c('v-form',{ref:"linkModalForm",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:"valid"}},[_c('v-text-field',{attrs:{"rules":[_vm.$validators.required('common.label')],"label":"Label"},model:{value:(_vm.link.label),callback:function ($$v) {_vm.$set(_vm.link, "label", $$v)},expression:"link.label"}}),_c('v-text-field',{attrs:{"rules":[_vm.$validators.required('common.url')],"label":_vm.$t('common.url')},model:{value:(_vm.link.href),callback:function ($$v) {_vm.$set(_vm.link, "href", $$v)},expression:"link.href"}})],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{"link":"","color":"error"},on:{"click":function($event){_vm.linkModal=false}}},[_vm._v(_vm._s(_vm.$t('common.cancel')))]),_c('v-btn',{attrs:{"link":"","color":"primary","disabled":!_vm.valid},on:{"click":_vm.addFooterLink}},[_vm._v(_vm._s(_vm.$t('common.add')))])],1)],1)],1)],1),_c('v-card-title',[_vm._v(_vm._s(_vm.$t('admin.footer_links')))]),_c('v-card-text',[_c('v-btn',{attrs:{"color":"primary","text":""},on:{"click":_vm.openLinkModal}},[_c('v-icon',[_vm._v("mdi-plus")]),_vm._v(" "+_vm._s(_vm.$t('admin.add_link')))],1),_c('v-btn',{attrs:{"color":"warning","text":""},on:{"click":_vm.reset}},[_c('v-icon',[_vm._v("mdi-restore")]),_vm._v(" "+_vm._s(_vm.$t('common.reset')))],1),_c('v-card',[_c('v-list',{staticClass:"mt-1",attrs:{"two-line":"","subheader":""}},_vm._l((_vm.settings.footerLinks),function(link){return _c('v-list-item',{key:("" + (link.label)),on:{"click":function($event){return _vm.editFooterLink(link)}}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(link.label))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(link.href))])],1),_c('v-list-item-action',[_c('v-btn',{attrs:{"icon":"","color":"error"},on:{"click":function($event){$event.stopPropagation();return _vm.removeFooterLink(link)}}},[_c('v-icon',[_vm._v("mdi-delete-forever")])],1)],1)],1)}),1)],1)],1)],1)}
var Themevue_type_template_id_e2e2c2ea_lang_pug_staticRenderFns = []


// CONCATENATED MODULE: ./components/admin/Theme.vue?vue&type=template&id=e2e2c2ea&lang=pug&

// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--2-0!./node_modules/babel-loader/lib??ref--2-1!./node_modules/vue-loader/lib??vue-loader-options!./components/admin/Theme.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//

/* harmony default export */ var Themevue_type_script_lang_js_ = ({
  name: 'Theme',

  data() {
    return {
      valid: false,
      logoKey: 0,
      link: {
        href: '',
        label: ''
      },
      linkModal: false // menu: [false, false, false, false]
      // colors: { primary: '', secondary: '', accent: '', error: '', info: '', success: '', warning: '' }
      //   primary: {},
      //   secondary: {}
      // }

    };
  },

  computed: { ...Object(external_vuex_["mapState"])(['settings']),
    // 'colors.primary': this.color('primary'),
    // 'colors.secondary': this.color('primary'),
    // 'colors.tertiary': this.color('primary'),
    is_dark: {
      get() {
        return this.settings['theme.is_dark'];
      },

      set(value) {
        this.$vuetify.theme.dark = value;
        this.setSetting({
          key: 'theme.is_dark',
          value
        });
      }

    } //   'colors[0]': {
    //     get () {
    //       return this.settings['theme.colors'] || [0, 0]
    //     },
    //     set (value) {
    //       console.error(value)
    //       if (!value) { return }
    //       this.setSetting({ key: 'theme.primary', value })
    //       if (this.settings['theme.is_dark']) {
    //         this.$vuetify.theme.themes.dark.primary = value
    //       } else {
    //         this.$vuetify.theme.themes.light.primary = value
    //       }
    //     }
    //   }

  },
  methods: { ...Object(external_vuex_["mapActions"])(['setSetting']),

    reset() {
      this.setSetting({
        key: 'footerLinks',
        value: [{
          href: '/about',
          label: 'about'
        }, {
          href: '/',
          label: 'home'
        }]
      });
    },

    forceLogoReload() {
      this.logoKey++;
    },

    resetLogo(e) {
      this.setSetting({
        key: 'logo',
        value: null
      }).then(this.forceLogoReload);
      e.stopPropagation();
    },

    updateColor(i, v) {
      this.colors[i] = v.hex;
      this.$vuetify.theme.themes.dark[i] = v.hex;
    },

    openLinkModal() {
      // this.link = { href: '', label: '' }
      this.linkModal = true;
      this.$nextTick(() => this.$refs.linkModalForm.reset());
    },

    addFooterLink() {
      const link = Object.assign({}, this.link);
      this.setSetting({
        key: 'footerLinks',
        value: this.settings.footerLinks.concat(link)
      }); // this.link = { href: '', label: '' }

      this.$refs.linkModalForm.reset();
      this.linkModal = false;
    },

    async removeFooterLink(item) {
      const ret = await this.$root.$confirm('admin.delete_footer_link_confirm');

      if (!ret) {
        return;
      }

      const footerLinks = this.settings.footerLinks.filter(l => l.label !== item.label);
      this.setSetting({
        key: 'footerLinks',
        value: footerLinks
      });
    },

    editFooterLink(item) {
      this.link = {
        href: item.href,
        label: item.label
      };
      this.linkModal = true;
    },

    async uploadLogo(file) {
      const formData = new FormData();
      formData.append('logo', file);

      try {
        await this.$axios.$post('/settings/logo', formData);
        this.$root.$emit('message', {
          message: 'Logo updated'
        });
        this.forceLogoReload();
      } catch (e) {}
    },

    save(key, value) {
      if (this.settings[key] !== value) {
        this.setSetting({
          key,
          value
        });
      }
    }

  }
});
// CONCATENATED MODULE: ./components/admin/Theme.vue?vue&type=script&lang=js&
 /* harmony default export */ var admin_Themevue_type_script_lang_js_ = (Themevue_type_script_lang_js_); 
// CONCATENATED MODULE: ./components/admin/Theme.vue





/* normalize component */

var Theme_component = Object(componentNormalizer["a" /* default */])(
  admin_Themevue_type_script_lang_js_,
  Themevue_type_template_id_e2e2c2ea_lang_pug_render,
  Themevue_type_template_id_e2e2c2ea_lang_pug_staticRenderFns,
  false,
  null,
  null,
  "384d39a9"
  
)

/* harmony default export */ var Theme = (Theme_component.exports);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--2-0!./node_modules/babel-loader/lib??ref--2-1!./node_modules/vue-loader/lib??vue-loader-options!./pages/Admin.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//









/* harmony default export */ var Adminvue_type_script_lang_js_ = ({
  name: 'Admin',
  components: {
    Users: Users,
    Events: Events,
    Places: Places,
    Settings: Settings["a" /* default */],
    Federation: Federation,
    Moderation: Moderation,
    Announcement: admin_Announcement,
    Theme: Theme
  },
  middleware: ['auth'],

  async asyncData({
    $axios,
    params,
    store
  }) {
    try {
      const users = await $axios.$get('/users');
      const unconfirmedEvents = await $axios.$get('/event/unconfirmed');
      return {
        users,
        unconfirmedEvents,
        selectedTab: 0
      };
    } catch (e) {
      console.error(e);
      return {
        users: [],
        unconfirmedEvents: [],
        selectedTab: 0
      };
    }
  },

  data() {
    return {
      description: '',
      unconfirmedEvents: [],
      selectedTab: 0
    };
  },

  head() {
    return {
      title: `${this.settings.title} - ${this.$t('common.admin')}`
    };
  },

  computed: { ...Object(external_vuex_["mapState"])(['settings']),

    unconfirmedUsers() {
      return this.users.filter(u => !u.is_active);
    }

  },
  methods: {
    async updateUsers() {
      this.users = await this.$axios.$get('/users');
    },

    preview(id) {
      this.$router.push(`/event/${id}`);
    },

    async confirm(id) {
      this.loading = true;
      await this.$axios.$get(`/event/confirm/${id}`);
      this.loading = false;
      this.$root.$message('event.confirmed', {
        color: 'succes'
      });
      this.unconfirmedEvents = this.unconfirmedEvents.filter(e => e.id !== id);
    }

  }
});
// CONCATENATED MODULE: ./pages/Admin.vue?vue&type=script&lang=js&
 /* harmony default export */ var pages_Adminvue_type_script_lang_js_ = (Adminvue_type_script_lang_js_); 
// CONCATENATED MODULE: ./pages/Admin.vue





/* normalize component */

var Admin_component = Object(componentNormalizer["a" /* default */])(
  pages_Adminvue_type_script_lang_js_,
  render,
  staticRenderFns,
  false,
  null,
  null,
  "fafcb28a"
  
)

/* harmony default export */ var Admin = __webpack_exports__["default"] = (Admin_component.exports);

/***/ }),

/***/ 91:
/***/ (function(module, exports, __webpack_require__) {

// style-loader: Adds some css to the DOM by adding a <style> tag

// load the styles
var content = __webpack_require__(97);
if(content.__esModule) content = content.default;
if(typeof content === 'string') content = [[module.i, content, '']];
if(content.locals) module.exports = content.locals;
// add CSS to SSR context
var add = __webpack_require__(6).default
module.exports.__inject__ = function (context) {
  add("7e7f3321", content, true, context)
};

/***/ }),

/***/ 96:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_5_oneOf_1_0_node_modules_vue_style_loader_index_js_ref_5_oneOf_1_1_node_modules_css_loader_dist_cjs_js_ref_5_oneOf_1_2_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_5_oneOf_1_3_node_modules_less_loader_dist_cjs_js_ref_5_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_lang_less___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(91);
/* harmony import */ var _node_modules_cache_loader_dist_cjs_js_ref_5_oneOf_1_0_node_modules_vue_style_loader_index_js_ref_5_oneOf_1_1_node_modules_css_loader_dist_cjs_js_ref_5_oneOf_1_2_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_5_oneOf_1_3_node_modules_less_loader_dist_cjs_js_ref_5_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_lang_less___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_cache_loader_dist_cjs_js_ref_5_oneOf_1_0_node_modules_vue_style_loader_index_js_ref_5_oneOf_1_1_node_modules_css_loader_dist_cjs_js_ref_5_oneOf_1_2_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_5_oneOf_1_3_node_modules_less_loader_dist_cjs_js_ref_5_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_lang_less___WEBPACK_IMPORTED_MODULE_0__);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_cache_loader_dist_cjs_js_ref_5_oneOf_1_0_node_modules_vue_style_loader_index_js_ref_5_oneOf_1_1_node_modules_css_loader_dist_cjs_js_ref_5_oneOf_1_2_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_5_oneOf_1_3_node_modules_less_loader_dist_cjs_js_ref_5_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_lang_less___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_cache_loader_dist_cjs_js_ref_5_oneOf_1_0_node_modules_vue_style_loader_index_js_ref_5_oneOf_1_1_node_modules_css_loader_dist_cjs_js_ref_5_oneOf_1_2_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_5_oneOf_1_3_node_modules_less_loader_dist_cjs_js_ref_5_oneOf_1_4_node_modules_vue_loader_lib_index_js_vue_loader_options_Editor_vue_vue_type_style_index_0_lang_less___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));


/***/ }),

/***/ 97:
/***/ (function(module, exports, __webpack_require__) {

// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(5);
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
// Module
___CSS_LOADER_EXPORT___.push([module.i, ".editor{margin-top:4px;padding-top:12px;padding-bottom:22px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#ff4500 transparent;scroll-behavior:smooth;font-family:sans-serif;font-size:1.1em}.editor .editor p.is-editor-empty:first-child:before{content:attr(data-empty-text);float:left;color:#aaa;pointer-events:none;height:0;font-style:italic}.editor .label{left:0;position:relative;transform-origin:top left;transition:transform .3s,scale .3s,color .3s;transform:translateY(20px)}.editor.editor--focused .label{color:#ff4500;transform:translateY(0) scale(.75)}.editor.editor--focused .menubar{visibility:visible;opacity:1!important}.editor.editor--focused .ProseMirror:after{width:100%!important;transform:scaleX(1)!important}.editor .menubar{transition:opacity .5s;opacity:0;visibility:hidden}.editor .focused .ProseMirror:after{width:100%}.editor .ProseMirror{padding:15px;outline:0}.editor .ProseMirror:before{border:solid hsla(0,0%,100%,.7);border-width:thin 0 0}.editor .ProseMirror:after,.editor .ProseMirror:before{bottom:0;content:\"\";left:0;position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%;height:0}.editor .ProseMirror:after{border:solid #ff4500;border-width:2px 0 0;transform:scaleX(0)}", ""]);
// Exports
module.exports = ___CSS_LOADER_EXPORT___;


/***/ })

};;
//# sourceMappingURL=Admin.js.map