summaryrefslogtreecommitdiffstats
path: root/settings/js/vue-1.js.map
blob: 842ab3e065202a0efa1cc0fbce09d2d4b8e8d00d (plain)
1
{"version":3,"file":"vue-1.js","sources":["webpack:///./settings/src/components/appDetails.vue?b288","webpack:///./settings/src/components/appList.vue?da0c","webpack:///./settings/src/components/appList/appItem.vue?a9b9","webpack:///./settings/src/components/appList/appScore.vue?c3d6","webpack:///./settings/src/components/appManagement.vue?d664","webpack:///./settings/src/components/prefixMixin.vue?787b","webpack:///./settings/src/components/svgFilterMixin.vue?2b11","webpack:///./settings/src/views/Apps.vue?8b77","webpack:///./settings/src/components/appDetails.vue?c5db","webpack:///./settings/src/components/appList.vue?96c0","webpack:///./settings/src/components/appList/appItem.vue?3268","webpack:///./settings/src/components/appList/appScore.vue?322c","webpack:///./settings/src/views/Apps.vue?eaa3","webpack:///./settings/src/components/appDetails.vue","webpack:///./settings/src/components/appDetails.vue?c695","webpack:///./settings/src/components/appDetails.vue?9657","webpack:///./settings/src/components/appList.vue","webpack:///./settings/src/components/appList.vue?42a6","webpack:///./settings/src/components/appList.vue?ecc2","webpack:///./settings/src/components/appList/appItem.vue","webpack:///./settings/src/components/appList/appItem.vue?9674","webpack:///./settings/src/components/appList/appItem.vue?f19a","webpack:///./settings/src/components/appList/appScore.vue","webpack:///./settings/src/components/appList/appScore.vue?02ae","webpack:///./settings/src/components/appList/appScore.vue?e776","webpack:///./settings/src/components/appManagement.vue","webpack:///./settings/src/components/appManagement.vue?f8d8","webpack:///./settings/src/components/prefixMixin.vue","webpack:///./settings/src/components/prefixMixin.vue?4873","webpack:///./settings/src/components/svgFilterMixin.vue","webpack:///./settings/src/components/svgFilterMixin.vue?e63f","webpack:///./settings/src/views/Apps.vue","webpack:///./settings/src/views/Apps.vue?b69d","webpack:///./settings/src/views/Apps.vue?8013"],"sourcesContent":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport Multiselect from 'vue-multiselect';\nimport marked from 'marked';\nimport dompurify from 'dompurify';\nimport AppScore from './appList/appScore';\nimport AppManagement from './appManagement';\nimport prefix from './prefixMixin';\nimport SvgFilterMixin from './svgFilterMixin';\nexport default {\n  mixins: [AppManagement, prefix, SvgFilterMixin],\n  name: 'appDetails',\n  props: ['category', 'app'],\n  components: {\n    Multiselect: Multiselect,\n    AppScore: AppScore\n  },\n  data: function data() {\n    return {\n      groupCheckedAppsData: false\n    };\n  },\n  mounted: function mounted() {\n    if (this.app.groups.length > 0) {\n      this.groupCheckedAppsData = true;\n    }\n  },\n  methods: {\n    hideAppDetails: function hideAppDetails() {\n      this.$router.push({\n        name: 'apps-category',\n        params: {\n          category: this.category\n        }\n      });\n    }\n  },\n  computed: {\n    appstoreUrl: function appstoreUrl() {\n      return \"https://apps.nextcloud.com/apps/\".concat(this.app.id);\n    },\n    licence: function licence() {\n      if (this.app.licence) {\n        return t('settings', '{license}-licensed', {\n          license: ('' + this.app.licence).toUpperCase()\n        });\n      }\n\n      return null;\n    },\n    hasRating: function hasRating() {\n      return this.app.appstoreData && this.app.appstoreData.ratingNumOverall > 5;\n    },\n    author: function author() {\n      if (typeof this.app.author === 'string') {\n        return [{\n          '@value': this.app.author\n        }];\n      }\n\n      if (this.app.author['@value']) {\n        return [this.app.author];\n      }\n\n      return this.app.author;\n    },\n    appGroups: function appGroups() {\n      return this.app.groups.map(function (group) {\n        return {\n          id: group,\n          name: group\n        };\n      });\n    },\n    groups: function groups() {\n      return this.$store.getters.getGroups.filter(function (group) {\n        return group.id !== 'disabled';\n      }).sort(function (a, b) {\n        return a.name.localeCompare(b.name);\n      });\n    },\n    renderMarkdown: function renderMarkdown() {\n      var renderer = new marked.Renderer();\n\n      renderer.link = function (href, title, text) {\n        try {\n          var prot = decodeURIComponent(unescape(href)).replace(/[^\\w:]/g, '').toLowerCase();\n        } catch (e) {\n          return '';\n        }\n\n        if (prot.indexOf('http:') !== 0 && prot.indexOf('https:') !== 0) {\n          return '';\n        }\n\n        var out = '<a href=\"' + href + '\" rel=\"noreferrer noopener\"';\n\n        if (title) {\n          out += ' title=\"' + title + '\"';\n        }\n\n        out += '>' + text + '</a>';\n        return out;\n      };\n\n      renderer.image = function (href, title, text) {\n        if (text) {\n          return text;\n        }\n\n        return title;\n      };\n\n      renderer.blockquote = function (quote) {\n        return quote;\n      };\n\n      return dompurify.sanitize(marked(this.app.description.trim(), {\n        renderer: renderer,\n        gfm: false,\n        highlight: false,\n        tables: false,\n        breaks: false,\n        pedantic: false,\n        sanitize: true,\n        smartLists: true,\n        smartypants: false\n      }), {\n        SAFE_FOR_JQUERY: true,\n        ALLOWED_TAGS: ['strong', 'p', 'a', 'ul', 'ol', 'li', 'em', 'del', 'blockquote']\n      });\n    }\n  }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport appItem from './appList/appItem';\nimport Multiselect from 'vue-multiselect';\nimport prefix from './prefixMixin';\nexport default {\n  name: 'appList',\n  mixins: [prefix],\n  props: ['category', 'app', 'search'],\n  components: {\n    Multiselect: Multiselect,\n    appItem: appItem\n  },\n  computed: {\n    loading: function loading() {\n      return this.$store.getters.loading('list');\n    },\n    apps: function apps() {\n      var _this = this;\n\n      var apps = this.$store.getters.getAllApps.filter(function (app) {\n        return app.name.toLowerCase().search(_this.search.toLowerCase()) !== -1;\n      }).sort(function (a, b) {\n        var sortStringA = '' + (a.active ? 0 : 1) + (a.update ? 0 : 1) + a.name;\n        var sortStringB = '' + (b.active ? 0 : 1) + (b.update ? 0 : 1) + b.name;\n        return OC.Util.naturalSortCompare(sortStringA, sortStringB);\n      });\n\n      if (this.category === 'installed') {\n        return apps.filter(function (app) {\n          return app.installed;\n        });\n      }\n\n      if (this.category === 'enabled') {\n        return apps.filter(function (app) {\n          return app.active && app.installed;\n        });\n      }\n\n      if (this.category === 'disabled') {\n        return apps.filter(function (app) {\n          return !app.active && app.installed;\n        });\n      }\n\n      if (this.category === 'app-bundles') {\n        return apps.filter(function (app) {\n          return app.bundles;\n        });\n      }\n\n      if (this.category === 'updates') {\n        return apps.filter(function (app) {\n          return app.update;\n        });\n      } // filter app store categories\n\n\n      return apps.filter(function (app) {\n        return app.appstore && app.category !== undefined && (app.category === _this.category || app.category.indexOf(_this.category) > -1);\n      });\n    },\n    bundles: function bundles() {\n      return this.$store.getters.getServerData.bundles;\n    },\n    bundleApps: function bundleApps() {\n      return function (bundle) {\n        return this.$store.getters.getAllApps.filter(function (app) {\n          return app.bundleId === bundle;\n        });\n      };\n    },\n    searchApps: function searchApps() {\n      var _this2 = this;\n\n      if (this.search === '') {\n        return [];\n      }\n\n      return this.$store.getters.getAllApps.filter(function (app) {\n        if (app.name.toLowerCase().search(_this2.search.toLowerCase()) !== -1) {\n          return !_this2.apps.find(function (_app) {\n            return _app.id === app.id;\n          });\n        }\n\n        return false;\n      });\n    },\n    useAppStoreView: function useAppStoreView() {\n      return !this.useListView && !this.useBundleView;\n    },\n    useListView: function useListView() {\n      return this.category === 'installed' || this.category === 'enabled' || this.category === 'disabled' || this.category === 'updates';\n    },\n    useBundleView: function useBundleView() {\n      return this.category === 'app-bundles';\n    },\n    allBundlesEnabled: function allBundlesEnabled() {\n      var self = this;\n      return function (id) {\n        return self.bundleApps(id).filter(function (app) {\n          return !app.active;\n        }).length === 0;\n      };\n    },\n    bundleToggleText: function bundleToggleText() {\n      var self = this;\n      return function (id) {\n        if (self.allBundlesEnabled(id)) {\n          return t('settings', 'Disable all');\n        }\n\n        return t('settings', 'Enable all');\n      };\n    }\n  },\n  methods: {\n    toggleBundle: function toggleBundle(id) {\n      if (this.allBundlesEnabled(id)) {\n        return this.disableBundle(id);\n      }\n\n      return this.enableBundle(id);\n    },\n    enableBundle: function enableBundle(id) {\n      var apps = this.bundleApps(id).map(function (app) {\n        return app.id;\n      });\n      this.$store.dispatch('enableApp', {\n        appId: apps,\n        groups: []\n      }).catch(function (error) {\n        console.log(error);\n        OC.Notification.show(error);\n      });\n    },\n    disableBundle: function disableBundle(id) {\n      var apps = this.bundleApps(id).map(function (app) {\n        return app.id;\n      });\n      this.$store.dispatch('disableApp', {\n        appId: apps,\n        groups: []\n      }).catch(function (error) {\n        OC.Notification.show(error);\n      });\n    }\n  }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport Multiselect from 'vue-multiselect';\nimport AppScore from './appScore';\nimport AppManagement from '../appManagement';\nimport SvgFilterMixin from '../svgFilterMixin';\nexport default {\n  name: 'appItem',\n  mixins: [AppManagement, SvgFilterMixin],\n  props: {\n    app: {},\n    category: {},\n    listView: {\n      type: Boolean,\n      default: true\n    }\n  },\n  watch: {\n    '$route.params.id': function $routeParamsId(id) {\n      this.isSelected = this.app.id === id;\n    }\n  },\n  components: {\n    Multiselect: Multiselect,\n    AppScore: AppScore\n  },\n  data: function data() {\n    return {\n      isSelected: false,\n      scrolled: false\n    };\n  },\n  mounted: function mounted() {\n    this.isSelected = this.app.id === this.$route.params.id;\n  },\n  computed: {},\n  watchers: {},\n  methods: {\n    showAppDetails: function showAppDetails(event) {\n      if (event.currentTarget.tagName === 'INPUT' || event.currentTarget.tagName === 'A') {\n        return;\n      }\n\n      this.$router.push({\n        name: 'apps-details',\n        params: {\n          category: this.category,\n          id: this.app.id\n        }\n      });\n    },\n    prefix: function prefix(_prefix, content) {\n      return _prefix + '_' + content;\n    }\n  }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nexport default {\n  name: 'appScore',\n  props: ['score'],\n  computed: {\n    scoreImage: function scoreImage() {\n      var score = Math.round(this.score * 10);\n      var imageName = 'rating/s' + score + '.svg';\n      return OC.imagePath('core', imageName);\n    }\n  }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nexport default {\n  mounted: function mounted() {\n    if (this.app.groups.length > 0) {\n      this.groupCheckedAppsData = true;\n    }\n  },\n  computed: {\n    appGroups: function appGroups() {\n      return this.app.groups.map(function (group) {\n        return {\n          id: group,\n          name: group\n        };\n      });\n    },\n    loading: function loading() {\n      var self = this;\n      return function (id) {\n        return self.$store.getters.loading(id);\n      };\n    },\n    installing: function installing() {\n      return this.$store.getters.loading('install');\n    },\n    enableButtonText: function enableButtonText() {\n      if (this.app.needsDownload) {\n        return t('settings', 'Download and enable');\n      }\n\n      return t('settings', 'Enable');\n    },\n    enableButtonTooltip: function enableButtonTooltip() {\n      if (this.app.needsDownload) {\n        return t('settings', 'The app will be downloaded from the app store');\n      }\n\n      return false;\n    }\n  },\n  methods: {\n    asyncFindGroup: function asyncFindGroup(query) {\n      return this.$store.dispatch('getGroups', {\n        search: query,\n        limit: 5,\n        offset: 0\n      });\n    },\n    isLimitedToGroups: function isLimitedToGroups(app) {\n      if (this.app.groups.length || this.groupCheckedAppsData) {\n        return true;\n      }\n\n      return false;\n    },\n    setGroupLimit: function setGroupLimit() {\n      if (!this.groupCheckedAppsData) {\n        this.$store.dispatch('enableApp', {\n          appId: this.app.id,\n          groups: []\n        });\n      }\n    },\n    canLimitToGroups: function canLimitToGroups(app) {\n      if (app.types && app.types.includes('filesystem') || app.types.includes('prelogin') || app.types.includes('authentication') || app.types.includes('logging') || app.types.includes('prevent_group_restriction')) {\n        return false;\n      }\n\n      return true;\n    },\n    addGroupLimitation: function addGroupLimitation(group) {\n      var groups = this.app.groups.concat([]).concat([group.id]);\n      this.$store.dispatch('enableApp', {\n        appId: this.app.id,\n        groups: groups\n      });\n    },\n    removeGroupLimitation: function removeGroupLimitation(group) {\n      var currentGroups = this.app.groups.concat([]);\n      var index = currentGroups.indexOf(group.id);\n\n      if (index > -1) {\n        currentGroups.splice(index, 1);\n      }\n\n      this.$store.dispatch('enableApp', {\n        appId: this.app.id,\n        groups: currentGroups\n      });\n    },\n    enable: function enable(appId) {\n      this.$store.dispatch('enableApp', {\n        appId: appId,\n        groups: []\n      }).then(function (response) {\n        OC.Settings.Apps.rebuildNavigation();\n      }).catch(function (error) {\n        OC.Notification.show(error);\n      });\n    },\n    disable: function disable(appId) {\n      this.$store.dispatch('disableApp', {\n        appId: appId\n      }).then(function (response) {\n        OC.Settings.Apps.rebuildNavigation();\n      }).catch(function (error) {\n        OC.Notification.show(error);\n      });\n    },\n    remove: function remove(appId) {\n      this.$store.dispatch('uninstallApp', {\n        appId: appId\n      }).then(function (response) {\n        OC.Settings.Apps.rebuildNavigation();\n      }).catch(function (error) {\n        OC.Notification.show(error);\n      });\n    },\n    install: function install(appId) {\n      this.$store.dispatch('enableApp', {\n        appId: appId\n      }).then(function (response) {\n        OC.Settings.Apps.rebuildNavigation();\n      }).catch(function (error) {\n        OC.Notification.show(error);\n      });\n    },\n    update: function update(appId) {\n      this.$store.dispatch('updateApp', {\n        appId: appId\n      }).then(function (response) {\n        OC.Settings.Apps.rebuildNavigation();\n      }).catch(function (error) {\n        OC.Notification.show(error);\n      });\n    }\n  }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nexport default {\n  name: 'prefixMixin',\n  methods: {\n    prefix: function prefix(_prefix, content) {\n      return _prefix + '_' + content;\n    }\n  }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nexport default {\n  name: 'svgFilterMixin',\n  mounted: function mounted() {\n    this.filterId = 'invertIconApps' + Math.floor(Math.random() * 100) + new Date().getSeconds() + new Date().getMilliseconds();\n  },\n  computed: {\n    filterUrl: function filterUrl() {\n      return \"url(#\".concat(this.filterId, \")\");\n    }\n  },\n  data: function data() {\n    return {\n      filterId: ''\n    };\n  }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport { AppContent, AppNavigationItem } from 'nextcloud-vue';\nimport appList from '../components/appList';\nimport Vue from 'vue';\nimport VueLocalStorage from 'vue-localstorage';\nimport AppDetails from '../components/appDetails';\nVue.use(VueLocalStorage);\nexport default {\n  name: 'Apps',\n  props: {\n    category: {\n      type: String,\n      default: 'installed'\n    },\n    id: {\n      type: String,\n      default: ''\n    }\n  },\n  components: {\n    AppContent: AppContent,\n    AppDetails: AppDetails,\n    appList: appList,\n    AppNavigationItem: AppNavigationItem\n  },\n  methods: {\n    setSearch: function setSearch(query) {\n      this.searchQuery = query;\n    },\n    resetSearch: function resetSearch() {\n      this.setSearch('');\n    }\n  },\n  beforeMount: function beforeMount() {\n    this.$store.dispatch('getCategories');\n    this.$store.dispatch('getAllApps');\n    this.$store.dispatch('getGroups', {\n      offset: 0,\n      limit: 5\n    });\n    this.$store.commit('setUpdateCount', this.$store.getters.getServerData.updateCount);\n  },\n  mounted: function mounted() {\n    /** \n     * Register search\n     */\n    this.appSearch = new OCA.Search(this.setSearch, this.resetSearch);\n  },\n  data: function data() {\n    return {\n      searchQuery: ''\n    };\n  },\n  watch: {\n    category: function category(val, old) {\n      this.setSearch('');\n    }\n  },\n  computed: {\n    loading: function loading() {\n      return this.$store.getters.loading('categories');\n    },\n    loadingList: function loadingList() {\n      return this.$store.getters.loading('list');\n    },\n    currentApp: function currentApp() {\n      var _this = this;\n\n      return this.apps.find(function (app) {\n        return app.id === _this.id;\n      });\n    },\n    categories: function categories() {\n      return this.$store.getters.getCategories;\n    },\n    apps: function apps() {\n      return this.$store.getters.getAllApps;\n    },\n    updateCount: function updateCount() {\n      return this.$store.getters.getUpdateCount;\n    },\n    settings: function settings() {\n      return this.$store.getters.getServerData;\n    },\n    // BUILD APP NAVIGATION MENU OBJECT\n    menu: function menu() {\n      var _this2 = this;\n\n      // Data provided php side\n      var categories = this.$store.getters.getCategories;\n      categories = Array.isArray(categories) ? categories : []; // Map groups\n\n      categories = categories.map(function (category) {\n        var item = {};\n        item.id = 'app-category-' + category.ident;\n        item.icon = 'icon-category-' + category.ident;\n        item.classes = []; // empty classes, active will be set later\n\n        item.router = {\n          // router link to\n          name: 'apps-category',\n          params: {\n            category: category.ident\n          }\n        };\n        item.text = category.displayName;\n        return item;\n      }); // Add everyone group\n\n      var defaultCategories = [{\n        id: 'app-category-your-apps',\n        classes: [],\n        router: {\n          name: 'apps'\n        },\n        icon: 'icon-category-installed',\n        text: t('settings', 'Your apps')\n      }, {\n        id: 'app-category-enabled',\n        classes: [],\n        icon: 'icon-category-enabled',\n        router: {\n          name: 'apps-category',\n          params: {\n            category: 'enabled'\n          }\n        },\n        text: t('settings', 'Active apps')\n      }, {\n        id: 'app-category-disabled',\n        classes: [],\n        icon: 'icon-category-disabled',\n        router: {\n          name: 'apps-category',\n          params: {\n            category: 'disabled'\n          }\n        },\n        text: t('settings', 'Disabled apps')\n      }];\n\n      if (!this.settings.appstoreEnabled) {\n        return defaultCategories;\n      }\n\n      if (this.$store.getters.getUpdateCount > 0) {\n        defaultCategories.push({\n          id: 'app-category-updates',\n          classes: [],\n          icon: 'icon-download',\n          router: {\n            name: 'apps-category',\n            params: {\n              category: 'updates'\n            }\n          },\n          text: t('settings', 'Updates'),\n          utils: {\n            counter: this.$store.getters.getUpdateCount\n          }\n        });\n      }\n\n      defaultCategories.push({\n        id: 'app-category-app-bundles',\n        classes: [],\n        icon: 'icon-category-app-bundles',\n        router: {\n          name: 'apps-category',\n          params: {\n            category: 'app-bundles'\n          }\n        },\n        text: t('settings', 'App bundles')\n      });\n      categories = defaultCategories.concat(categories); // Set current group as active\n\n      var activeGroup = categories.findIndex(function (group) {\n        return group.id === 'app-category-' + _this2.category;\n      });\n\n      if (activeGroup >= 0) {\n        categories[activeGroup].classes.push('active');\n      } else {\n        categories[0].classes.push('active');\n      }\n\n      categories.push({\n        id: 'app-developer-docs',\n        classes: [],\n        href: this.settings.developerDocumentation,\n        text: t('settings', 'Developer documentation') + ' ↗'\n      }); // Return\n\n      return categories;\n    }\n  }\n};","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\n    \"div\",\n    { staticStyle: { padding: \"20px\" }, attrs: { id: \"app-details-view\" } },\n    [\n      _c(\n        \"a\",\n        {\n          staticClass: \"close icon-close\",\n          attrs: { href: \"#\" },\n          on: { click: _vm.hideAppDetails }\n        },\n        [_c(\"span\", { staticClass: \"hidden-visually\" }, [_vm._v(\"Close\")])]\n      ),\n      _vm._v(\" \"),\n      _c(\"h2\", [\n        !_vm.app.preview\n          ? _c(\"div\", { staticClass: \"icon-settings-dark\" })\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.previewAsIcon && _vm.app.preview\n          ? _c(\n              \"svg\",\n              { attrs: { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\" } },\n              [\n                _c(\"defs\", [\n                  _c(\n                    \"filter\",\n                    { attrs: { id: _vm.filterId } },\n                    [\n                      _c(\"feColorMatrix\", {\n                        attrs: {\n                          in: \"SourceGraphic\",\n                          type: \"matrix\",\n                          values: \"-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0\"\n                        }\n                      })\n                    ],\n                    1\n                  )\n                ]),\n                _vm._v(\" \"),\n                _c(\"image\", {\n                  staticClass: \"app-icon\",\n                  attrs: {\n                    x: \"0\",\n                    y: \"0\",\n                    width: \"32\",\n                    height: \"32\",\n                    preserveAspectRatio: \"xMinYMin meet\",\n                    filter: _vm.filterUrl,\n                    \"xlink:href\": _vm.app.preview\n                  }\n                })\n              ]\n            )\n          : _vm._e(),\n        _vm._v(\"\\n\\t\\t\" + _vm._s(_vm.app.name))\n      ]),\n      _vm._v(\" \"),\n      _vm.app.screenshot\n        ? _c(\"img\", { attrs: { src: _vm.app.screenshot, width: \"100%\" } })\n        : _vm._e(),\n      _vm._v(\" \"),\n      _vm.app.level === 200 || _vm.hasRating\n        ? _c(\n            \"div\",\n            { staticClass: \"app-level\" },\n            [\n              _vm.app.level === 200\n                ? _c(\n                    \"span\",\n                    {\n                      directives: [\n                        {\n                          name: \"tooltip\",\n                          rawName: \"v-tooltip.auto\",\n                          value: _vm.t(\n                            \"settings\",\n                            \"Official apps are developed by and within the community. They offer central functionality and are ready for production use.\"\n                          ),\n                          expression:\n                            \"t('settings', 'Official apps are developed by and within the community. They offer central functionality and are ready for production use.')\",\n                          modifiers: { auto: true }\n                        }\n                      ],\n                      staticClass: \"official icon-checkmark\"\n                    },\n                    [_vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.t(\"settings\", \"Official\")))]\n                  )\n                : _vm._e(),\n              _vm._v(\" \"),\n              _vm.hasRating\n                ? _c(\"app-score\", {\n                    attrs: { score: _vm.app.appstoreData.ratingOverall }\n                  })\n                : _vm._e()\n            ],\n            1\n          )\n        : _vm._e(),\n      _vm._v(\" \"),\n      _vm.author\n        ? _c(\n            \"div\",\n            { staticClass: \"app-author\" },\n            [\n              _vm._v(\"\\n\\t\\t\" + _vm._s(_vm.t(\"settings\", \"by\")) + \"\\n\\t\\t\"),\n              _vm._l(_vm.author, function(a, index) {\n                return _c(\"span\", [\n                  a[\"@attributes\"] && a[\"@attributes\"][\"homepage\"]\n                    ? _c(\n                        \"a\",\n                        { attrs: { href: a[\"@attributes\"][\"homepage\"] } },\n                        [_vm._v(_vm._s(a[\"@value\"]))]\n                      )\n                    : a[\"@value\"]\n                    ? _c(\"span\", [_vm._v(_vm._s(a[\"@value\"]))])\n                    : _c(\"span\", [_vm._v(_vm._s(a))]),\n                  index + 1 < _vm.author.length\n                    ? _c(\"span\", [_vm._v(\", \")])\n                    : _vm._e()\n                ])\n              })\n            ],\n            2\n          )\n        : _vm._e(),\n      _vm._v(\" \"),\n      _vm.licence\n        ? _c(\"div\", { staticClass: \"app-licence\" }, [\n            _vm._v(_vm._s(_vm.licence))\n          ])\n        : _vm._e(),\n      _vm._v(\" \"),\n      _c(\"div\", { staticClass: \"actions\" }, [\n        _c(\"div\", { staticClass: \"actions-buttons\" }, [\n          _vm.app.update\n            ? _c(\"input\", {\n                staticClass: \"update primary\",\n                attrs: {\n                  type: \"button\",\n                  value: _vm.t(\"settings\", \"Update to {version}\", {\n                    version: _vm.app.update\n                  }),\n                  disabled: _vm.installing || _vm.loading(_vm.app.id)\n                },\n                on: {\n                  click: function($event) {\n                    return _vm.update(_vm.app.id)\n                  }\n                }\n              })\n            : _vm._e(),\n          _vm._v(\" \"),\n          _vm.app.canUnInstall\n            ? _c(\"input\", {\n                staticClass: \"uninstall\",\n                attrs: {\n                  type: \"button\",\n                  value: _vm.t(\"settings\", \"Remove\"),\n                  disabled: _vm.installing || _vm.loading(_vm.app.id)\n                },\n                on: {\n                  click: function($event) {\n                    return _vm.remove(_vm.app.id)\n                  }\n                }\n              })\n            : _vm._e(),\n          _vm._v(\" \"),\n          _vm.app.active\n            ? _c(\"input\", {\n                staticClass: \"enable\",\n                attrs: {\n                  type: \"button\",\n                  value: _vm.t(\"settings\", \"Disable\"),\n                  disabled: _vm.installing || _vm.loading(_vm.app.id)\n                },\n                on: {\n                  click: function($event) {\n                    return _vm.disable(_vm.app.id)\n                  }\n                }\n              })\n            : _vm._e(),\n          _vm._v(\" \"),\n          !_vm.app.active\n            ? _c(\"input\", {\n                directives: [\n                  {\n                    name: \"tooltip\",\n                    rawName: \"v-tooltip.auto\",\n                    value: _vm.enableButtonTooltip,\n                    expression: \"enableButtonTooltip\",\n                    modifiers: { auto: true }\n                  }\n                ],\n                staticClass: \"enable primary\",\n                attrs: {\n                  type: \"button\",\n                  value: _vm.enableButtonText,\n                  disabled:\n                    !_vm.app.canInstall ||\n                    _vm.installing ||\n                    _vm.loading(_vm.app.id)\n                },\n                on: {\n                  click: function($event) {\n                    return _vm.enable(_vm.app.id)\n                  }\n                }\n              })\n            : _vm._e()\n        ]),\n        _vm._v(\" \"),\n        _c(\"div\", { staticClass: \"app-groups\" }, [\n          _vm.app.active && _vm.canLimitToGroups(_vm.app)\n            ? _c(\n                \"div\",\n                { staticClass: \"groups-enable\" },\n                [\n                  _c(\"input\", {\n                    directives: [\n                      {\n                        name: \"model\",\n                        rawName: \"v-model\",\n                        value: _vm.groupCheckedAppsData,\n                        expression: \"groupCheckedAppsData\"\n                      }\n                    ],\n                    staticClass: \"groups-enable__checkbox checkbox\",\n                    attrs: {\n                      type: \"checkbox\",\n                      id: _vm.prefix(\"groups_enable\", _vm.app.id)\n                    },\n                    domProps: {\n                      value: _vm.app.id,\n                      checked: Array.isArray(_vm.groupCheckedAppsData)\n                        ? _vm._i(_vm.groupCheckedAppsData, _vm.app.id) > -1\n                        : _vm.groupCheckedAppsData\n                    },\n                    on: {\n                      change: [\n                        function($event) {\n                          var $$a = _vm.groupCheckedAppsData,\n                            $$el = $event.target,\n                            $$c = $$el.checked ? true : false\n                          if (Array.isArray($$a)) {\n                            var $$v = _vm.app.id,\n                              $$i = _vm._i($$a, $$v)\n                            if ($$el.checked) {\n                              $$i < 0 &&\n                                (_vm.groupCheckedAppsData = $$a.concat([$$v]))\n                            } else {\n                              $$i > -1 &&\n                                (_vm.groupCheckedAppsData = $$a\n                                  .slice(0, $$i)\n                                  .concat($$a.slice($$i + 1)))\n                            }\n                          } else {\n                            _vm.groupCheckedAppsData = $$c\n                          }\n                        },\n                        _vm.setGroupLimit\n                      ]\n                    }\n                  }),\n                  _vm._v(\" \"),\n                  _c(\n                    \"label\",\n                    { attrs: { for: _vm.prefix(\"groups_enable\", _vm.app.id) } },\n                    [_vm._v(_vm._s(_vm.t(\"settings\", \"Limit to groups\")))]\n                  ),\n                  _vm._v(\" \"),\n                  _c(\"input\", {\n                    staticClass: \"group_select\",\n                    attrs: {\n                      type: \"hidden\",\n                      title: _vm.t(\"settings\", \"All\"),\n                      value: \"\"\n                    }\n                  }),\n                  _vm._v(\" \"),\n                  _vm.isLimitedToGroups(_vm.app)\n                    ? _c(\n                        \"multiselect\",\n                        {\n                          staticClass: \"multiselect-vue\",\n                          attrs: {\n                            options: _vm.groups,\n                            value: _vm.appGroups,\n                            \"options-limit\": 5,\n                            placeholder: _vm.t(\n                              \"settings\",\n                              \"Limit app usage to groups\"\n                            ),\n                            label: \"name\",\n                            \"track-by\": \"id\",\n                            multiple: true,\n                            \"close-on-select\": false\n                          },\n                          on: {\n                            select: _vm.addGroupLimitation,\n                            remove: _vm.removeGroupLimitation,\n                            \"search-change\": _vm.asyncFindGroup\n                          }\n                        },\n                        [\n                          _c(\n                            \"span\",\n                            { attrs: { slot: \"noResult\" }, slot: \"noResult\" },\n                            [_vm._v(_vm._s(_vm.t(\"settings\", \"No results\")))]\n                          )\n                        ]\n                      )\n                    : _vm._e()\n                ],\n                1\n              )\n            : _vm._e()\n        ])\n      ]),\n      _vm._v(\" \"),\n      _c(\"p\", { staticClass: \"documentation\" }, [\n        !_vm.app.internal\n          ? _c(\n              \"a\",\n              {\n                staticClass: \"appslink\",\n                attrs: {\n                  href: _vm.appstoreUrl,\n                  target: \"_blank\",\n                  rel: \"noreferrer noopener\"\n                }\n              },\n              [_vm._v(_vm._s(_vm.t(\"settings\", \"View in store\")) + \" ↗\")]\n            )\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.website\n          ? _c(\n              \"a\",\n              {\n                staticClass: \"appslink\",\n                attrs: {\n                  href: _vm.app.website,\n                  target: \"_blank\",\n                  rel: \"noreferrer noopener\"\n                }\n              },\n              [_vm._v(_vm._s(_vm.t(\"settings\", \"Visit website\")) + \" ↗\")]\n            )\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.bugs\n          ? _c(\n              \"a\",\n              {\n                staticClass: \"appslink\",\n                attrs: {\n                  href: _vm.app.bugs,\n                  target: \"_blank\",\n                  rel: \"noreferrer noopener\"\n                }\n              },\n              [_vm._v(_vm._s(_vm.t(\"settings\", \"Report a bug\")) + \" ↗\")]\n            )\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.documentation && _vm.app.documentation.user\n          ? _c(\n              \"a\",\n              {\n                staticClass: \"appslink\",\n                attrs: {\n                  href: _vm.app.documentation.user,\n                  target: \"_blank\",\n                  rel: \"noreferrer noopener\"\n                }\n              },\n              [_vm._v(_vm._s(_vm.t(\"settings\", \"User documentation\")) + \" ↗\")]\n            )\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.documentation && _vm.app.documentation.admin\n          ? _c(\n              \"a\",\n              {\n                staticClass: \"appslink\",\n                attrs: {\n                  href: _vm.app.documentation.admin,\n                  target: \"_blank\",\n                  rel: \"noreferrer noopener\"\n                }\n              },\n              [_vm._v(_vm._s(_vm.t(\"settings\", \"Admin documentation\")) + \" ↗\")]\n            )\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.documentation && _vm.app.documentation.developer\n          ? _c(\n              \"a\",\n              {\n                staticClass: \"appslink\",\n                attrs: {\n                  href: _vm.app.documentation.developer,\n                  target: \"_blank\",\n                  rel: \"noreferrer noopener\"\n                }\n              },\n              [\n                _vm._v(\n                  _vm._s(_vm.t(\"settings\", \"Developer documentation\")) + \" ↗\"\n                )\n              ]\n            )\n          : _vm._e()\n      ]),\n      _vm._v(\" \"),\n      _c(\"ul\", { staticClass: \"app-dependencies\" }, [\n        _vm.app.missingMinOwnCloudVersion\n          ? _c(\"li\", [\n              _vm._v(\n                _vm._s(\n                  _vm.t(\n                    \"settings\",\n                    \"This app has no minimum Nextcloud version assigned. This will be an error in the future.\"\n                  )\n                )\n              )\n            ])\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.missingMaxOwnCloudVersion\n          ? _c(\"li\", [\n              _vm._v(\n                _vm._s(\n                  _vm.t(\n                    \"settings\",\n                    \"This app has no maximum Nextcloud version assigned. This will be an error in the future.\"\n                  )\n                )\n              )\n            ])\n          : _vm._e(),\n        _vm._v(\" \"),\n        !_vm.app.canInstall\n          ? _c(\"li\", [\n              _vm._v(\n                \"\\n\\t\\t\\t\" +\n                  _vm._s(\n                    _vm.t(\n                      \"settings\",\n                      \"This app cannot be installed because the following dependencies are not fulfilled:\"\n                    )\n                  ) +\n                  \"\\n\\t\\t\\t\"\n              ),\n              _c(\n                \"ul\",\n                { staticClass: \"missing-dependencies\" },\n                _vm._l(_vm.app.missingDependencies, function(dep) {\n                  return _c(\"li\", [_vm._v(_vm._s(dep))])\n                }),\n                0\n              )\n            ])\n          : _vm._e()\n      ]),\n      _vm._v(\" \"),\n      _c(\"div\", {\n        staticClass: \"app-description\",\n        domProps: { innerHTML: _vm._s(_vm.renderMarkdown) }\n      })\n    ]\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"div\", { attrs: { id: \"app-content-inner\" } }, [\n    _c(\n      \"div\",\n      {\n        staticClass: \"apps-list\",\n        class: {\n          installed: _vm.useBundleView || _vm.useListView,\n          store: _vm.useAppStoreView\n        },\n        attrs: { id: \"apps-list\" }\n      },\n      [\n        _vm.useListView\n          ? [\n              _c(\n                \"transition-group\",\n                {\n                  staticClass: \"apps-list-container\",\n                  attrs: { name: \"app-list\", tag: \"div\" }\n                },\n                _vm._l(_vm.apps, function(app) {\n                  return _c(\"app-item\", {\n                    key: app.id,\n                    attrs: { app: app, category: _vm.category }\n                  })\n                }),\n                1\n              )\n            ]\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm._l(_vm.bundles, function(bundle) {\n          return _vm.useBundleView && _vm.bundleApps(bundle.id).length > 0\n            ? [\n                _c(\n                  \"transition-group\",\n                  {\n                    staticClass: \"apps-list-container\",\n                    attrs: { name: \"app-list\", tag: \"div\" }\n                  },\n                  [\n                    _c(\"div\", { key: bundle.id, staticClass: \"apps-header\" }, [\n                      _c(\"div\", { staticClass: \"app-image\" }),\n                      _vm._v(\" \"),\n                      _c(\"h2\", [\n                        _vm._v(_vm._s(bundle.name) + \" \"),\n                        _c(\"input\", {\n                          attrs: {\n                            type: \"button\",\n                            value: _vm.bundleToggleText(bundle.id)\n                          },\n                          on: {\n                            click: function($event) {\n                              return _vm.toggleBundle(bundle.id)\n                            }\n                          }\n                        })\n                      ]),\n                      _vm._v(\" \"),\n                      _c(\"div\", { staticClass: \"app-version\" }),\n                      _vm._v(\" \"),\n                      _c(\"div\", { staticClass: \"app-level\" }),\n                      _vm._v(\" \"),\n                      _c(\"div\", { staticClass: \"app-groups\" }),\n                      _vm._v(\" \"),\n                      _c(\"div\", { staticClass: \"actions\" }, [_vm._v(\" \")])\n                    ]),\n                    _vm._v(\" \"),\n                    _vm._l(_vm.bundleApps(bundle.id), function(app) {\n                      return _c(\"app-item\", {\n                        key: bundle.id + app.id,\n                        attrs: { app: app, category: _vm.category }\n                      })\n                    })\n                  ],\n                  2\n                )\n              ]\n            : _vm._e()\n        }),\n        _vm._v(\" \"),\n        _vm.useAppStoreView\n          ? _vm._l(_vm.apps, function(app) {\n              return _c(\"app-item\", {\n                key: app.id,\n                attrs: { app: app, category: _vm.category, \"list-view\": false }\n              })\n            })\n          : _vm._e()\n      ],\n      2\n    ),\n    _vm._v(\" \"),\n    _c(\n      \"div\",\n      { staticClass: \"apps-list installed\", attrs: { id: \"apps-list-search\" } },\n      [\n        _c(\n          \"div\",\n          { staticClass: \"apps-list-container\" },\n          [\n            _vm.search !== \"\" && _vm.searchApps.length > 0\n              ? [\n                  _c(\"div\", { staticClass: \"section\" }, [\n                    _c(\"div\"),\n                    _vm._v(\" \"),\n                    _c(\"td\", { attrs: { colspan: \"5\" } }, [\n                      _c(\"h2\", [\n                        _vm._v(\n                          _vm._s(\n                            _vm.t(\"settings\", \"Results from other categories\")\n                          )\n                        )\n                      ])\n                    ])\n                  ]),\n                  _vm._v(\" \"),\n                  _vm._l(_vm.searchApps, function(app) {\n                    return _c(\"app-item\", {\n                      key: app.id,\n                      attrs: {\n                        app: app,\n                        category: _vm.category,\n                        \"list-view\": true\n                      }\n                    })\n                  })\n                ]\n              : _vm._e()\n          ],\n          2\n        )\n      ]\n    ),\n    _vm._v(\" \"),\n    !_vm.loading && _vm.searchApps.length === 0 && _vm.apps.length === 0\n      ? _c(\n          \"div\",\n          {\n            staticClass: \"emptycontent emptycontent-search\",\n            attrs: { id: \"apps-list-empty\" }\n          },\n          [\n            _c(\"div\", {\n              staticClass: \"icon-settings-dark\",\n              attrs: { id: \"app-list-empty-icon\" }\n            }),\n            _vm._v(\" \"),\n            _c(\"h2\", [\n              _vm._v(\n                _vm._s(_vm.t(\"settings\", \"No apps found for your version\"))\n              )\n            ])\n          ]\n        )\n      : _vm._e(),\n    _vm._v(\" \"),\n    _c(\"div\", { attrs: { id: \"searchresults\" } })\n  ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\n    \"div\",\n    {\n      staticClass: \"section\",\n      class: { selected: _vm.isSelected },\n      on: { click: _vm.showAppDetails }\n    },\n    [\n      _c(\n        \"div\",\n        {\n          staticClass: \"app-image app-image-icon\",\n          on: { click: _vm.showAppDetails }\n        },\n        [\n          (_vm.listView && !_vm.app.preview) ||\n          (!_vm.listView && !_vm.app.screenshot)\n            ? _c(\"div\", { staticClass: \"icon-settings-dark\" })\n            : _vm._e(),\n          _vm._v(\" \"),\n          _vm.listView && _vm.app.preview\n            ? _c(\n                \"svg\",\n                { attrs: { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\" } },\n                [\n                  _c(\"defs\", [\n                    _c(\n                      \"filter\",\n                      { attrs: { id: _vm.filterId } },\n                      [\n                        _c(\"feColorMatrix\", {\n                          attrs: {\n                            in: \"SourceGraphic\",\n                            type: \"matrix\",\n                            values: \"-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0\"\n                          }\n                        })\n                      ],\n                      1\n                    )\n                  ]),\n                  _vm._v(\" \"),\n                  _c(\"image\", {\n                    staticClass: \"app-icon\",\n                    attrs: {\n                      x: \"0\",\n                      y: \"0\",\n                      width: \"32\",\n                      height: \"32\",\n                      preserveAspectRatio: \"xMinYMin meet\",\n                      filter: _vm.filterUrl,\n                      \"xlink:href\": _vm.app.preview\n                    }\n                  })\n                ]\n              )\n            : _vm._e(),\n          _vm._v(\" \"),\n          !_vm.listView && _vm.app.screenshot\n            ? _c(\"img\", { attrs: { src: _vm.app.screenshot, width: \"100%\" } })\n            : _vm._e()\n        ]\n      ),\n      _vm._v(\" \"),\n      _c(\n        \"div\",\n        { staticClass: \"app-name\", on: { click: _vm.showAppDetails } },\n        [_vm._v(\"\\n\\t\\t\" + _vm._s(_vm.app.name) + \"\\n\\t\")]\n      ),\n      _vm._v(\" \"),\n      !_vm.listView\n        ? _c(\"div\", { staticClass: \"app-summary\" }, [\n            _vm._v(_vm._s(_vm.app.summary))\n          ])\n        : _vm._e(),\n      _vm._v(\" \"),\n      _vm.listView\n        ? _c(\"div\", { staticClass: \"app-version\" }, [\n            _vm.app.version\n              ? _c(\"span\", [_vm._v(_vm._s(_vm.app.version))])\n              : _vm.app.appstoreData.releases[0].version\n              ? _c(\"span\", [\n                  _vm._v(_vm._s(_vm.app.appstoreData.releases[0].version))\n                ])\n              : _vm._e()\n          ])\n        : _vm._e(),\n      _vm._v(\" \"),\n      _c(\n        \"div\",\n        { staticClass: \"app-level\" },\n        [\n          _vm.app.level === 200\n            ? _c(\n                \"span\",\n                {\n                  directives: [\n                    {\n                      name: \"tooltip\",\n                      rawName: \"v-tooltip.auto\",\n                      value: _vm.t(\n                        \"settings\",\n                        \"Official apps are developed by and within the community. They offer central functionality and are ready for production use.\"\n                      ),\n                      expression:\n                        \"t('settings', 'Official apps are developed by and within the community. They offer central functionality and are ready for production use.')\",\n                      modifiers: { auto: true }\n                    }\n                  ],\n                  staticClass: \"official icon-checkmark\"\n                },\n                [_vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.t(\"settings\", \"Official\")))]\n              )\n            : _vm._e(),\n          _vm._v(\" \"),\n          !_vm.listView\n            ? _c(\"app-score\", { attrs: { score: _vm.app.score } })\n            : _vm._e()\n        ],\n        1\n      ),\n      _vm._v(\" \"),\n      _c(\"div\", { staticClass: \"actions\" }, [\n        _vm.app.error\n          ? _c(\"div\", { staticClass: \"warning\" }, [\n              _vm._v(_vm._s(_vm.app.error))\n            ])\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.loading(_vm.app.id)\n          ? _c(\"div\", { staticClass: \"icon icon-loading-small\" })\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.update\n          ? _c(\"input\", {\n              staticClass: \"update primary\",\n              attrs: {\n                type: \"button\",\n                value: _vm.t(\"settings\", \"Update to {update}\", {\n                  update: _vm.app.update\n                }),\n                disabled: _vm.installing || _vm.loading(_vm.app.id)\n              },\n              on: {\n                click: function($event) {\n                  $event.stopPropagation()\n                  return _vm.update(_vm.app.id)\n                }\n              }\n            })\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.canUnInstall\n          ? _c(\"input\", {\n              staticClass: \"uninstall\",\n              attrs: {\n                type: \"button\",\n                value: _vm.t(\"settings\", \"Remove\"),\n                disabled: _vm.installing || _vm.loading(_vm.app.id)\n              },\n              on: {\n                click: function($event) {\n                  $event.stopPropagation()\n                  return _vm.remove(_vm.app.id)\n                }\n              }\n            })\n          : _vm._e(),\n        _vm._v(\" \"),\n        _vm.app.active\n          ? _c(\"input\", {\n              staticClass: \"enable\",\n              attrs: {\n                type: \"button\",\n                value: _vm.t(\"settings\", \"Disable\"),\n                disabled: _vm.installing || _vm.loading(_vm.app.id)\n              },\n              on: {\n                click: function($event) {\n                  $event.stopPropagation()\n                  return _vm.disable(_vm.app.id)\n                }\n              }\n            })\n          : _vm._e(),\n        _vm._v(\" \"),\n        !_vm.app.active\n          ? _c(\"input\", {\n              directives: [\n                {\n                  name: \"tooltip\",\n                  rawName: \"v-tooltip.auto\",\n                  value: _vm.enableButtonTooltip,\n                  expression: \"enableButtonTooltip\",\n                  modifiers: { auto: true }\n                }\n              ],\n              staticClass: \"enable\",\n              attrs: {\n                type: \"button\",\n                value: _vm.enableButtonText,\n                disabled:\n                  !_vm.app.canInstall ||\n                  _vm.installing ||\n                  _vm.loading(_vm.app.id)\n              },\n              on: {\n                click: function($event) {\n                  $event.stopPropagation()\n                  return _vm.enable(_vm.app.id)\n                }\n              }\n            })\n          : _vm._e()\n      ])\n    ]\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"img\", {\n    staticClass: \"app-score-image\",\n    attrs: { src: _vm.scoreImage }\n  })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n  return _c(\"AppContent\", {\n    class: { \"with-app-sidebar\": _vm.currentApp },\n    attrs: {\n      \"app-name\": \"settings\",\n      \"content-class\": { \"icon-loading\": _vm.loadingList },\n      \"navigation-class\": { \"icon-loading\": _vm.loading }\n    },\n    scopedSlots: _vm._u(\n      [\n        {\n          key: \"navigation\",\n          fn: function() {\n            return [\n              _c(\n                \"ul\",\n                { attrs: { id: \"appscategories\" } },\n                _vm._l(_vm.menu, function(item) {\n                  return _c(\"AppNavigationItem\", {\n                    key: item.key,\n                    attrs: { item: item }\n                  })\n                }),\n                1\n              )\n            ]\n          },\n          proxy: true\n        },\n        {\n          key: \"content\",\n          fn: function() {\n            return [\n              _c(\"app-list\", {\n                attrs: {\n                  category: _vm.category,\n                  app: _vm.currentApp,\n                  search: _vm.searchQuery\n                }\n              })\n            ]\n          },\n          proxy: true\n        },\n        _vm.id && _vm.currentApp\n          ? {\n              key: \"sidebar\",\n              fn: function() {\n                return [\n                  _c(\"app-details\", {\n                    attrs: { category: _vm.category, app: _vm.currentApp }\n                  })\n                ]\n              },\n              proxy: true\n            }\n          : null\n      ],\n      null,\n      true\n    )\n  })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./appDetails.vue?vue&type=template&id=02f2d131&\"\nimport script from \"./appDetails.vue?vue&type=script&lang=js&\"\nexport * from \"./appDetails.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/home/christoph/workspace/nextcloud/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!module.hot.data) {\n      api.createRecord('02f2d131', component.options)\n    } else {\n      api.reload('02f2d131', component.options)\n    }\n    module.hot.accept(\"./appDetails.vue?vue&type=template&id=02f2d131&\", function () {\n      api.rerender('02f2d131', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"settings/src/components/appDetails.vue\"\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./appDetails.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./appDetails.vue?vue&type=script&lang=js&\"","export * from \"-!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./appDetails.vue?vue&type=template&id=02f2d131&\"","import { render, staticRenderFns } from \"./appList.vue?vue&type=template&id=11a8c382&\"\nimport script from \"./appList.vue?vue&type=script&lang=js&\"\nexport * from \"./appList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/home/christoph/workspace/nextcloud/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!module.hot.data) {\n      api.createRecord('11a8c382', component.options)\n    } else {\n      api.reload('11a8c382', component.options)\n    }\n    module.hot.accept(\"./appList.vue?vue&type=template&id=11a8c382&\", function () {\n      api.rerender('11a8c382', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"settings/src/components/appList.vue\"\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./appList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./appList.vue?vue&type=script&lang=js&\"","export * from \"-!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./appList.vue?vue&type=template&id=11a8c382&\"","import { render, staticRenderFns } from \"./appItem.vue?vue&type=template&id=09ee4a84&\"\nimport script from \"./appItem.vue?vue&type=script&lang=js&\"\nexport * from \"./appItem.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/home/christoph/workspace/nextcloud/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!module.hot.data) {\n      api.createRecord('09ee4a84', component.options)\n    } else {\n      api.reload('09ee4a84', component.options)\n    }\n    module.hot.accept(\"./appItem.vue?vue&type=template&id=09ee4a84&\", function () {\n      api.rerender('09ee4a84', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"settings/src/components/appList/appItem.vue\"\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./appItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./appItem.vue?vue&type=script&lang=js&\"","export * from \"-!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./appItem.vue?vue&type=template&id=09ee4a84&\"","import { render, staticRenderFns } from \"./appScore.vue?vue&type=template&id=350044f1&\"\nimport script from \"./appScore.vue?vue&type=script&lang=js&\"\nexport * from \"./appScore.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/home/christoph/workspace/nextcloud/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!module.hot.data) {\n      api.createRecord('350044f1', component.options)\n    } else {\n      api.reload('350044f1', component.options)\n    }\n    module.hot.accept(\"./appScore.vue?vue&type=template&id=350044f1&\", function () {\n      api.rerender('350044f1', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"settings/src/components/appList/appScore.vue\"\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./appScore.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./appScore.vue?vue&type=script&lang=js&\"","export * from \"-!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./appScore.vue?vue&type=template&id=350044f1&\"","var render, staticRenderFns\nimport script from \"./appManagement.vue?vue&type=script&lang=js&\"\nexport * from \"./appManagement.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/home/christoph/workspace/nextcloud/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!module.hot.data) {\n      api.createRecord('116da0a4', component.options)\n    } else {\n      api.reload('116da0a4', component.options)\n    }\n    \n  }\n}\ncomponent.options.__file = \"settings/src/components/appManagement.vue\"\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./appManagement.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./appManagement.vue?vue&type=script&lang=js&\"","var render, staticRenderFns\nimport script from \"./prefixMixin.vue?vue&type=script&lang=js&\"\nexport * from \"./prefixMixin.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/home/christoph/workspace/nextcloud/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!module.hot.data) {\n      api.createRecord('257430ef', component.options)\n    } else {\n      api.reload('257430ef', component.options)\n    }\n    \n  }\n}\ncomponent.options.__file = \"settings/src/components/prefixMixin.vue\"\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./prefixMixin.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./prefixMixin.vue?vue&type=script&lang=js&\"","var render, staticRenderFns\nimport script from \"./svgFilterMixin.vue?vue&type=script&lang=js&\"\nexport * from \"./svgFilterMixin.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/home/christoph/workspace/nextcloud/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!module.hot.data) {\n      api.createRecord('ebfe8d96', component.options)\n    } else {\n      api.reload('ebfe8d96', component.options)\n    }\n    \n  }\n}\ncomponent.options.__file = \"settings/src/components/svgFilterMixin.vue\"\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./svgFilterMixin.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./svgFilterMixin.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Apps.vue?vue&type=template&id=25c6e9ec&\"\nimport script from \"./Apps.vue?vue&type=script&lang=js&\"\nexport * from \"./Apps.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/home/christoph/workspace/nextcloud/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!module.hot.data) {\n      api.createRecord('25c6e9ec', component.options)\n    } else {\n      api.reload('25c6e9ec', component.options)\n    }\n    module.hot.accept(\"./Apps.vue?vue&type=template&id=25c6e9ec&\", function () {\n      api.rerender('25c6e9ec', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"settings/src/views/Apps.vue\"\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Apps.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Apps.vue?vue&type=script&lang=js&\"","export * from \"-!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Apps.vue?vue&type=template&id=25c6e9ec&\""],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnOA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7NA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClHA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC9JA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7BA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACrCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC3OA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACneA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtKA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChOA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACXA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpEA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;;;;;;;;;;;ACtCA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;;;;;;;;;;;ACtCA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;;;;;;;;;;;ACtCA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;;;;;;;;;;;ACtCA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAYA;AACA;AACA;;;;;;;;;;;;ACjCA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAYA;AACA;AACA;;;;;;;;;;;;ACjCA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAYA;AACA;AACA;;;;;;;;;;;;ACjCA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;;;;;;;;;;;ACtCA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;A","sourceRoot":""}