/** * Copyright since 2007 PrestaShop SA and Contributors * PrestaShop is an International Registered Trademark & Property of PrestaShop SA * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.md. * It is also available through the world-wide-web at this URL: * https://opensource.org/licenses/OSL-3.0 * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@prestashop.com so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to https://devdocs.prestashop.com/ for more information. * * @author PrestaShop SA and Contributors * @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ import {ShowcaseCard} from '@js/types/showcase'; const {$} = window; /** * Class ShowcaseCardCloseExtension is responsible for providing helper block closing behavior */ export default class ShowcaseCardCloseExtension { /** * Extend helper block. * * @param {ShowcaseCard} helperBlock */ extend(helperBlock: ShowcaseCard): void { const container = helperBlock.getContainer(); container.on('click', '.js-remove-helper-block', (evt) => { container.remove(); const $btn = $(evt.target); const url = $btn.data('closeUrl'); const cardName = $btn.data('cardName'); if (url) { // notify the card was closed $.post(url, { close: 1, name: cardName, }); } }); } }