﻿// (c) 2023 W2 Co.,Ltd.
/**
 * ミニカートセクション
 */
class SectionCommonDirMiniCart {
  constructor() {
  }
  /**
   * 実行
   * @param {any} liquidParam liquidからのパラメーター
   */
  run(liquidParam) {
    this.addComponent(liquidParam);
  }
  /**
   * コンポーネント追加
   */
  addComponent(liquidParam) {
    const component = {
      // text/x-template要素のid
      template: '#mini-cart',
      data() {
        return lib.vue.common.MiniCartModel.create();
      },
      methods: {
        /**
         * 描画
         */
        draw() {
          lib.vue.common.MiniCartService.draw(liquidParam, this);
        },
        /**
         * ミニカートを隠す
         * @param {...any} args 引数
         */
        hideMiniCart: function (...args) {
          lib.vue.common.MiniCartService.hideMiniCart(liquidParam, this, args);
        },
        /**
         * 商品削除
         * @param {...any} args 引数
         */
        deleteProduct(...args) {
          lib.vue.common.MiniCartService.deleteProduct(liquidParam, this, args);
        }
      },
      // コンポーネントの引数
      props: {
      },
      watch: {
      },
      computed: {
      },
      created() {
      },
      mounted() {
        this.draw();
        g_vueManager.emitter.on('hide-mini-cart', this.hideMiniCart);
        g_vueManager.emitter.on('update-mini-cart', this.draw);
      },
    };
    g_vueManager.setComponent('mini-cart', component);
  }
}
