const shop_data = {

  currentItemHovered: null,
  currentMode: 'rack',

  crateModeSlots: {
    rack: 21,
    desktop: 10,
  },

  crateRules: {
    maxSlot: {
      type: 'crate',
      icon: '/shop/icon-reminder.svg',
      name: 'Crate',
      message: 'You have reach the maximum number of slots allowed for this crate. Consider removing cards.',
    },
  },

  crateModeItems: [{
    id: 'rack',
    name: 'Rack mountable crate',
    price: 1000,
    currency: 'USD',
  }, {
    id: 'desktop',
    name: 'Desktop crate',
    price: 2000,
    currency: 'USD',
  }],

  items: {
    /* keys are also ids, avoid changing them */
    'kasli': {
      id: 'kasli',
      name: 'Kasli',
      price: 1000,
      currency: 'USD',
      image: '/shop/graphic-02_kasli.svg',
      specs: [
        'Artix 7 100T FPGA',
        '4GB DDR3 SDRAM',
        '128MB SPI Flash',
        '3 SFP 6GB/s slots',
        '1 SATA 6GB/s connector',
        'Clock recovery and distribution',
        '4 MMCX clock outputs',
        '4 channel USB connectivity',
        'I2C tree to EEMs via USB and FPGA',
        '8 EEM connectors on board',
        '4 EEM on backplane extension',
      ],
      size: 'big',
      type: 'kasli',
      hp: 8,
      nbrSlotMin: 0,
      nbrSlotMax: 8,
      nbrCurrentSlot: 0,
      nbrClockMax: 4,
      nbrCurrentClock: 0,
      slotOccupied: 1,
      clockOccupied: 0,
      rules: {
        maxSlot: {
          type: 'kasli-max-slot',
          icon: '/shop/icon-reminder.svg',
          name: 'Kasli',
          message: 'Add a backplane adapter to extend EEM connectors to 12 at an extra charge.',
        },
        maxSlotWarning: {
          type: 'kasli-max-slot-warning',
          icon: '/shop/icon-warning.svg',
          name: 'Kasli',
          message: 'Insufficient EEM connectors.',
        },
        maxClock: {
          type: 'kasli-max-clock',
          icon: '/shop/icon-reminder.svg',
          name: 'Kasli',
          message: 'Insufficient clock connectors. Kasli has at most 4 clock connections.',
        },
        maxClockWarning: {
          type: 'kasli-max-clock-warning',
          icon: '/shop/icon-warning.svg',
          name: 'Kasli',
          message: 'Insufficient clock connectors.',
        },
        follow: {
          type: 'kasli-follow',
          icon: '/shop/icon-reminder.svg',
          name: 'Kasli',
          message: 'Due to wiring constraints, a Kasli can only connect to EEM cards immediately at its right, without crossing another Kasli.',
        },
      },
    },
    'kasli-backplane': {
      id: 'kasli-backplane',
      name: 'Kasli',
      price: 1000,
      currency: 'USD',
      image: '/shop/graphic-02_kasli-with-backplane.svg',
      specs: [
        'Artix 7 100T FPGA',
        '4GB DDR3 SDRAM',
        '128MB SPI Flash',
        '3 SFP 6GB/s slots',
        '1 SATA 6GB/s connector',
        'Clock recovery and distribution',
        '4 MMCX clock outputs',
        '4 channel USB connectivity',
        'I2C tree to EEMs via USB and FPGA',
        '8 EEM connectors on board',
        '4 EEM on backplane extension',
      ],
      size: 'big',
      type: 'kasli-backplane',
      hp: 8,
      nbrSlotMin: 0,
      nbrSlotMax: 12,
      nbrCurrentSlot: 0,
      nbrClockMax: 4,
      nbrCurrentClock: 0,
      slotOccupied: 1,
      clockOccupied: 0,
      rules: {
        maxSlot: {
          type: 'kasli-wb-max-slot',
          icon: '/shop/icon-reminder.svg',
          name: 'Kasli w/backplane',
          message: 'Insufficient EEM connectors.',
        },
        maxSlotWarning: {
          type: 'kasli-wb-max-slot-warning',
          icon: '/shop/icon-warning.svg',
          name: 'Kasli',
          message: 'Insufficient EEM connectors',
        },
        maxClock: {
          type: 'kasli-wb-max-clock',
          icon: '/shop/icon-reminder.svg',
          name: 'Kasli w/backplane',
          message: 'Insufficient clock connectors. Kasli has at most 4 clock connections.',
        },
        maxClockWarning: {
          type: 'kasli-wb-max-clock-warning',
          icon: '/shop/icon-warning.svg',
          name: 'Kasli',
          message: 'Insufficient clock connectors.',
        },
        follow: {
          type: 'kasli-wb-follow',
          icon: '/shop/icon-reminder.svg',
          name: 'Kasli w/backplane',
          message: 'Due to wiring constraints, a Kasli can only connect to EEM cards immediately at its right, without crossing another Kasli.',
        },
      },
    },
    'bnc-dio': {
      id: 'bnc-dio',
      name: 'BNC-DIO',
      price: 1000,
      currency: 'USD',
      image: '/shop/graphic-02_BNC-DIO.svg',
      specs: [
        'Artix 7 100T FPGA',
        '4GB DDR3 SDRAM',
        '128MB SPI Flash',
        '3 SFP 6GB/s slots',
        '1 SATA 6GB/s connector',
        'Clock recovery and distribution',
        '4 MMCX clock outputs',
        '4 channel USB connectivity',
        'I2C tree to EEMs via USB and FPGA',
        '8 EEM connectors on board',
        '4 EEM on backplane extension',
      ],
      size: 'big',
      type: null,
      hp: 8,
      nbrSlotMin: 0,
      nbrSlotMax: 0,
      nbrClockMax: 0,
      slotOccupied: 1,
      clockOccupied: 0,
      rules: {
        resources: {
          type: 'bnc-dio',
          icon: '/shop/icon-warning.svg',
          name: 'BNC-DIO',
          message: 'This card needs a card that provides XXX connector (e.g. Kasli) at its left.',
        },
      },
    },
    'eem-octal': {
      id: 'eem-octal',
      name: 'SMA-DIO',
      price: 1000,
      currency: 'USD',
      image: '/shop/graphic-02_EEM-Octal.svg',
      specs: [
        'Artix 7 100T FPGA',
        '4GB DDR3 SDRAM',
        '128MB SPI Flash',
        '3 SFP 6GB/s slots',
        '1 SATA 6GB/s connector',
        'Clock recovery and distribution',
        '4 MMCX clock outputs',
        '4 channel USB connectivity',
        'I2C tree to EEMs via USB and FPGA',
        '8 EEM connectors on board',
        '4 EEM on backplane extension',
      ],
      size: 'small',
      type: null,
      hp: 4,
      nbrSlotMin: 0,
      nbrSlotMax: 0,
      nbrClockMax: 0,
      slotOccupied: 1,
      clockOccupied: 0,
      rules: {
        resources: {
          type: 'eem-octal',
          icon: '/shop/icon-warning.svg',
          name: 'SMA-DIO',
          message: 'This card needs a card that provides XXX connector (e.g. Kasli) at its left.',
        },
      },
    },
    'eem-16x': {
      id: 'eem-16x',
      name: 'RJ45-DIO',
      price: 1000,
      currency: 'USD',
      image: '/shop/graphic-02_EEM-16x.svg',
      specs: [
        'Artix 7 100T FPGA',
        '4GB DDR3 SDRAM',
        '128MB SPI Flash',
        '3 SFP 6GB/s slots',
        '1 SATA 6GB/s connector',
        'Clock recovery and distribution',
        '4 MMCX clock outputs',
        '4 channel USB connectivity',
        'I2C tree to EEMs via USB and FPGA',
        '8 EEM connectors on board',
        '4 EEM on backplane extension',
      ],
      size: 'small',
      type: null,
      hp: 4,
      nbrSlotMin: 0,
      nbrSlotMax: 0,
      nbrClockMax: 0,
      slotOccupied: 2,
      clockOccupied: 0,
      rules: {
        resources: {
          type: 'eem-16x',
          icon: '/shop/icon-warning.svg',
          name: 'RJ45-DIO',
          message: 'This card needs a card that provides XXX connector (e.g. Kasli) at its left.',
        },
      },
    },
    'urukul': {
      id: 'urukul',
      name: 'Urukul',
      price: 1000,
      currency: 'USD',
      image: '/shop/graphic-02_Urukul.svg',
      specs: [
        'Artix 7 100T FPGA',
        '4GB DDR3 SDRAM',
        '128MB SPI Flash',
        '3 SFP 6GB/s slots',
        '1 SATA 6GB/s connector',
        'Clock recovery and distribution',
        '4 MMCX clock outputs',
        '4 channel USB connectivity',
        'I2C tree to EEMs via USB and FPGA',
        '8 EEM connectors on board',
        '4 EEM on backplane extension',
      ],
      size: 'small',
      type: 'urukul',
      hp: 4,
      nbrSlotMin: 0,
      nbrSlotMax: 0,
      nbrClockMax: 0,
      slotOccupied: 2,
      clockOccupied: 1,
      rules: {
        connectors: {
          type: 'urukul',
          icon: '/shop/icon-reminder.svg',
          name: 'Urukul',
          message: 'This configuration uses 2 EEM connectors as it is recommended. If you prefer to use 1 EEM connector, please inform us by leaving an additional note.',
        },
        resources: {
          type: 'urukul',
          icon: '/shop/icon-warning.svg',
          name: 'Urukul',
          message: 'This card needs a card that provides XXX connector (e.g. Kasli) at its left.',
        },
      },
    },
    'zotino': {
      id: 'zotino',
      name: 'Zotino',
      price: 1000,
      currency: 'USD',
      image: '/shop/graphic-02_zotino.svg',
      specs: [
        'Artix 7 100T FPGA',
        '4GB DDR3 SDRAM',
        '128MB SPI Flash',
        '3 SFP 6GB/s slots',
        '1 SATA 6GB/s connector',
        'Clock recovery and distribution',
        '4 MMCX clock outputs',
        '4 channel USB connectivity',
        'I2C tree to EEMs via USB and FPGA',
        '8 EEM connectors on board',
        '4 EEM on backplane extension',
        '4 EEM on backplane extension',
        '4 EEM on backplane extension',
        '4 EEM on backplane extension',
        '4 EEM on backplane extension',
        '4 EEM on backplane extension',
        '4 EEM on backplane extension',
        '4 EEM on backplane extension',
      ],
      size: 'small',
      type: 'zotino',
      hp: 4,
      nbrSlotMin: 0,
      nbrSlotMax: 4,
      nbrCurrentSlot: 0,
      nbrClockMax: 0,
      slotOccupied: 1,
      clockOccupied: 0,
      rules: {
        maxSlot: {
          type: 'zotino',
          icon: '/shop/icon-reminder.svg',
          name: 'Zotino',
          message: 'Zotino has at most 4 IDC-BNC adapters.',
        },
        maxSlotWarning: {
          type: 'zotino-max-slot-warning',
          icon: '/shop/icon-warning.svg',
          name: 'Zotino',
          message: 'Insufficient connectors.',
        },
        resources: {
          type: 'zotino',
          icon: '/shop/icon-warning.svg',
          name: 'Zotino',
          message: 'This card needs a card that provides XXX connector (e.g. Kasli) at its left.',
        },
      },
    },
    'idc-bnc-adapter': {
      id: 'idc-bnc-adapter',
      name: 'IDC-BNC',
      price: 1000,
      currency: 'USD',
      image: '/shop/graphic-02_IDC-BNC-adapter.svg',
      specs: [
        'Artix 7 100T FPGA',
        '4GB DDR3 SDRAM',
        '128MB SPI Flash',
        '3 SFP 6GB/s slots',
      ],
      size: 'big',
      type: 'idc-bnc',
      hp: 8,
      nbrSlotMin: 0,
      nbrSlotMax: 0,
      nbrClockMax: 0,
      slotOccupied: 1,
      clockOccupied: 0,
      rules: {
        wrong: {
          type: 'idc-bnc',
          icon: '/shop/icon-warning.svg',
          name: 'IDC-BNC',
          message: 'Should be after a Zotino or a HD68-IDC or with another IDC-BNC.',
        }
      },
    },
    'hd68-idc-adapter': {
      id:'hd68-idc-adapter',
      name: 'HD68-IDC',
      price: 1000,
      currency: 'USD',
      image: '/shop/graphic-02_HD68.svg',
      specs: [
        'Artix 7 100T FPGA',
        '4GB DDR3 SDRAM',
        '128MB SPI Flash',
        '3 SFP 6GB/s slots',
        '1 SATA 6GB/s connector',
        'Clock recovery and distribution',
        '4 MMCX clock outputs',
        '4 channel USB connectivity',
        'I2C tree to EEMs via USB and FPGA',
        '8 EEM connectors on board',
        '4 EEM on backplane extension',
      ],
      size: 'small',
      type: 'hd68',
      hp: 4,
      nbrSlotMin: 1,
      nbrSlotMax: 4,
      nbrCurrentSlot: 0,
      nbrClockMax: 0,
      slotOccupied: 1,
      clockOccupied: 0,
      rules: {
        minAdapter: {
          type: 'hd68-min-adapter',
          icon: '/shop/icon-warning.svg',
          name: 'HD68-IDC',
          message: 'Need at least one IDC-BNC Adapter at its right.',
        },
        maxSlot: {
          type: 'hd68-max-slot',
          icon: '/shop/icon-reminder.svg',
          name: 'HD68-IDC',
          message: 'HD68-IDC has at most 4 IDC-BNC adapters.',
        },
        maxSlotWarning: {
          type: 'hd68-max-slot-warning',
          icon: '/shop/icon-warning.svg',
          name: 'HD68-IDC',
          message: 'Insufficient connectors.',
        },
      },
    },
    'novo': {
      id: 'novo',
      name: 'Novo',
      price: 1000,
      currency: 'USD',
      image: '/shop/graphic-02_Novo.svg',
      specs: [
        'Artix 7 100T FPGA',
        '4GB DDR3 SDRAM',
        '128MB SPI Flash',
        '3 SFP 6GB/s slots',
        '1 SATA 6GB/s connector',
        'Clock recovery and distribution',
        '4 MMCX clock outputs',
        '4 channel USB connectivity',
        'I2C tree to EEMs via USB and FPGA',
        '8 EEM connectors on board',
        '4 EEM on backplane extension',
      ],
      size: 'big',
      type: 'novo',
      hp: 8,
      nbrSlotMin: 0,
      nbrSlotMax: 0,
      nbrClockMax: 0,
      slotOccupied: 2,
      clockOccupied: 0,
      rules: {
        connectors: {
          type: 'novo',
          icon: '/shop/icon-reminder.svg',
          name: 'Novo',
          message: 'This configuration uses 2 EEM connectors as it is recommended. If you prefer to use 1 EEM connector, please inform us by leaving an additional note.',
        },
        resources: {
          type: 'novo',
          icon: '/shop/icon-warning.svg',
          name: 'Novo',
          message: 'This card needs a card that provides XXX connector (e.g. Kasli) at its left.',
        },
      }
    },
    'koster': {
      id: 'koster',
      name: 'Koster',
      price: 1000,
      currency: 'USD',
      image: '/shop/graphic-02_Koster.svg',
      specs: [
        'Artix 7 100T FPGA',
        '4GB DDR3 SDRAM',
        '128MB SPI Flash',
        '3 SFP 6GB/s slots',
        '1 SATA 6GB/s connector',
        'Clock recovery and distribution',
        '4 MMCX clock outputs',
        '4 channel USB connectivity',
        'I2C tree to EEMs via USB and FPGA',
        '8 EEM connectors on board',
        '4 EEM on backplane extension',
      ],
      size: 'small',
      type: 'koster',
      hp: 4,
      nbrSlotMin: 0,
      nbrSlotMax: 0,
      nbrClockMax: 0,
      slotOccupied: 3,
      clockOccupied: 0,
      rules: {
        connectors: {
          type: 'koster',
          icon: '/shop/icon-reminder.svg',
          name: 'Koster',
          message: 'This configuration uses 3 EEM connectors. If you prefer to use 1 or 2 EEM connectors, please inform us by leaving an additional note.',
        },
        resources: {
          type: 'koster',
          icon: '/shop/icon-warning.svg',
          name: 'Koster',
          message: 'This card needs a card that provides XXX connector (e.g. Kasli) at its left.',
        },
      }
    },
    'clocker': {
      id: 'clocker',
      name: 'Clocker',
      price: 1000,
      currency: 'USD',
      image: '/shop/graphic-02_Clocker.svg',
      specs: [
        'Artix 7 100T FPGA',
        '4GB DDR3 SDRAM',
        '128MB SPI Flash',
        '3 SFP 6GB/s slots',
        '1 SATA 6GB/s connector',
        'Clock recovery and distribution',
        '4 MMCX clock outputs',
        '4 channel USB connectivity',
        'I2C tree to EEMs via USB and FPGA',
        '8 EEM connectors on board',
        '4 EEM on backplane extension',
      ],
      size: 'small',
      type: 'clocker',
      hp: 4,
      nbrSlotMin: 0,
      nbrSlotMax: 0,
      nbrClockMax: 6,
      slotOccupied: 1,
      clockOccupied: 1,
      rules: {
        maxClock: {
          type: 'clocker-max-clock',
          icon: '/shop/icon-reminder.svg',
          name: 'Clocker',
          message: 'Clocker has at most 6 clock connections.',
        },
        maxClockWarning: {
          type: 'clocker-max-clock-warning',
          icon: '/shop/icon-warning.svg',
          name: 'Clocker',
          message: 'Insufficient clock connectors.',
        },
      },
    },
    'stabiliser': {
      id: 'stabiliser',
      name: 'Stabilizer',
      price: 1000,
      currency: 'USD',
      image: '/shop/graphic-02_Stabiliser.svg',
      specs: [
        'Artix 7 100T FPGA',
        '4GB DDR3 SDRAM',
        '128MB SPI Flash',
        '3 SFP 6GB/s slots',
        '1 SATA 6GB/s connector',
        'Clock recovery and distribution',
        '4 MMCX clock outputs',
        '4 channel USB connectivity',
        'I2C tree to EEMs via USB and FPGA',
        '8 EEM connectors on board',
        '4 EEM on backplane extension',
      ],
      size: 'small',
      type: null,
      hp: 4,
      nbrSlotMin: 0,
      nbrSlotMax: 0,
      nbrClockMax: 0,
      slotOccupied: 1,
      clockOccupied: 0,
    },
    'mirny': {
      id: 'mirny',
      name: 'Mirny',
      price: 1000,
      currency: 'USD',
      image: '/shop/graphic-02_Mirny.svg',
      specs: [
        'Artix 7 100T FPGA',
        '4GB DDR3 SDRAM',
        '128MB SPI Flash',
        '3 SFP 6GB/s slots',
        '1 SATA 6GB/s connector',
        'Clock recovery and distribution',
        '4 MMCX clock outputs',
        '4 channel USB connectivity',
        'I2C tree to EEMs via USB and FPGA',
        '8 EEM connectors on board',
        '4 EEM on backplane extension',
      ],
      size: 'small',
      type: null,
      hp: 4,
      nbrSlotMin: 0,
      nbrSlotMax: 0,
      nbrClockMax: 0,
      slotOccupied: 1,
      clockOccupied: 1,
      rules: {
        resources: {
          type: 'mirny',
          icon: '/shop/icon-warning.svg',
          name: 'Mirny',
          message: 'This card needs a card that provides XXX connector (e.g. Kasli) at its left.',
        },
      },
    },
  },

  columns: {
    /***
     * backlog is the column containing all items on left aside,
     * name should not change
     */
    'backlog': {
      id: 'backlog',
      title: 'Backlog',
      /* itemIds define items order - change order to suit your need */
      itemIds: [
        'kasli',
        'kasli-backplane',
        'bnc-dio',
        'eem-octal',
        'eem-16x',
        'urukul',
        'zotino',
        'idc-bnc-adapter',
        'hd68-idc-adapter',
        'novo',
        'koster',
        'clocker',
        'stabiliser',
        'mirny'
      ],
    },

    'cart': {
      id: 'cart',
      title: 'Cart',
      items: [],
      itemsData: {},
    },

  },

  rules: {},

};


window.shop_data = shop_data;
