Source: stores/features.js

/*
 * Copyright © 2024-2025 The CTAN Team and individual authors
 *
 * This file is distributed under the 3-clause BSD license.
 * See file LICENSE for details.
 */
import { defineStore } from 'pinia'

/**
 * This is the features store.
 *
 * @author <a href="mailto:gene@ctan.org">Gerd Neugebauer</a>
 */
export const useFeaturesStore = defineStore('features', {
  state: () => ({
    /**
     * List of country codes.
     */
    countries: [
      'ad', 'ae', 'af', 'ag', 'al', 'am', 'ao', 'ar', 'at', 'au',
      'az', 'ba', 'bb', 'bd', 'be', 'bf', 'bg', 'bh', 'bi', 'bj',
      'bn', 'bo', 'br', 'bs', 'bt', 'bw', 'by', 'bz', 'ca', 'cd',
      'cf', 'cg', 'ch', 'ci', 'cl', 'cm', 'cn', 'co', 'cr', 'cu',
      'cy', 'cz', 'de', 'dj', 'dk', 'dm', 'do', 'dz', 'ec', 'ee',
      'eg', 'er', 'es', 'et', 'fr', 'fi', 'fj', 'fm', 'fo', 'ga',
      'gb', 'gd', 'ge', 'gh', 'gm', 'gn', 'gq', 'gr', 'gt', 'gw',
      'gy', 'hk', 'hn', 'hr', 'ht', 'hu', 'id', 'ie', 'il', 'in',
      'iq', 'ir', 'is', 'it', 'jm', 'jo', 'jp', 'ke', 'kg', 'kh',
      'ki', 'km', 'kn', 'kp', 'kr', 'kw', 'kz', 'la', 'lb', 'lc',
      'li', 'lk', 'lr', 'ls', 'lt', 'lu', 'lv', 'ly', 'ma', 'mc',
      'md', 'me', 'mg', 'mh', 'mk', 'ml', 'mm', 'mn', 'mr', 'mt',
      'mu', 'mv', 'mw', 'mx', 'my', 'mz', 'na', 'nc', 'ne', 'ng',
      'ni', 'nl', 'no', 'np', 'nr', 'nz', 'om', 'pa', 'pe', 'pg',
      'ph', 'pk', 'pl', 'pr', 'pt', 'pw', 'py', 'qa', 'ro', 'rs',
      'ru', 'rw', 'sa', 'sb', 'sc', 'sd', 'se', 'sg', 'si', 'sk',
      'sl', 'sm', 'sn', 'so', 'sr', 'ss', 'st', 'sv', 'sy', 'td',
      'tg', 'th', 'tj', 'tn', 'to', 'tr', 'tw', 'tz', 'ua', 'ug',
      'us', 'uy', 'uz', 'va', 'vc', 've', 'vn', 'vu', 'ws', 'ye',
      'za', 'zm', 'zw'
    ],

    /**
     * The admin features.
     */
    admin: {
      authors: true,
      packages: true,
      topics: true
    },
    /**
     * The feedback feature.
     */
    feedback: {
      form: true
    },
    /**
     * The guest book feature.
     */
    guestbook: {
      /**
       * The guest book page is shown.
       */
      page: true,
      /**
       * A guest book entry can be left by anyone.
       */
      public: true,
    },

    /**
     * The orphaned indicator is shown.
     */
    orphaned: {
      indicator: true
    },

    /**
     * The pkg feature.
     */
    pkg: {
      ratings: true,
      install: {
        mactex: false,
        miktex: false,
        texlive: false
      }
    },

    /**
     * The site map page is shown.
     */
    sitemap: true,

    /**
     * The test label is shown.
     */
    test: false,

    /**
     * Featues for the tiles.
     */
    tile: {
      /**
       * The DVD tile is shown.
       */
      dvd: false,
      /**
       * The wanted tile is shown.
       */
      wanted: true
    },

    /**
     * The visited indicator is shown.
     */
    visited: {
      indicator: true,
      page: true
    },

    /**
     * The ratings are shown for the user.
     */
    ratings: {
      my: true
    }
  })
})