{"version":3,"file":"wishlist.header.bundle.js","mappings":";;;;;;;;;;;;;;AAA+D;AAO/D;AACA;AACA;AACA;AACA,6BAAe,oCAAUC,OAAwB,EAAE;EAC/C;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,MAAMC,iBAAiB,SAASD,OAAO,CAAC;IACpC;AACR;AACA;AACA;IACQE,qBAAqBA,CAACC,kBAAiC,EAAE;MACrD,OAAO,KAAK,CAACD,qBAAqB,CAACC,kBAAkB,CAAC,CACjDC,IAAI,CAAEC,SAAS,IAAK;QACjB,MAAMC,QAAQ,GAA4BD,SAAS,CAAC,CAAC,CAAC;QAEtD,IAAIC,QAAQ,CAACC,KAAK,IAAI,CAACD,QAAQ,CAACE,iBAAiB,EAAE;UAC/C,OAAOH,SAAS;QACpB;QAEA,MAAMI,gBAAgB,GAAGV,uEAAgB,CAACW,WAAW,CAAC,CAAC;QAEvDD,gBAAgB,CAACE,mBAAmB,CAACL,QAAQ,CAACM,aAAa,CAAC;QAC5D,IAAI,CAACC,QAAQ,CAAC,CAAC,CAACC,IAAI,CAAC,yBAAyB,EAAER,QAAQ,CAACM,aAAa,CAACG,MAAM,GAAG,CAAC,CAAC;QAElF,OAAOV,SAAS;MACpB,CAAC,CAAC;IACV;EACJ;EAEA,OAAOJ,iBAAiB;AAC5B;;;;;;;;;;;;;;;AC7C+D;;AAE/D;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAUe,MAAe,EAAE;EACtC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACI,MAAMC,YAAY,SAASD,MAAM,CAAC;IAC9BE,KAAKA,CAAA,EAAG;MACJ,OAAO;QACHC,YAAY,EAAE,cAAc;QAC5BC,mBAAmB,EAAE,EAAE;QACvB,GAAG,KAAK,CAACF,KAAK,CAAC;MACnB,CAAC;IACL;;IAEA;AACR;AACA;AACA;IACQG,IAAIA,CAAA,EAAG;MACH,KAAK,CAACA,IAAI,CAAC,CAAC;MACZ,MAAMZ,gBAAgB,GAAGV,uEAAgB,CAACW,WAAW,CAAC,CAAC;MAEvDD,gBAAgB,CAACa,iBAAiB,CAAC,CAAC,CAC/BlB,IAAI,CAACmB,KAAK,IAAI,IAAI,CAACC,uBAAuB,CAACD,KAAK,CAAC;MAClD;MAAA,CACCE,KAAK,CAAClB,KAAK,IAAImB,OAAO,CAACC,GAAG,CAACpB,KAAK,CAAC,CAAC;MACvC,IAAI,CAACM,QAAQ,CAAC,CAAC,CAACe,EAAE,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;MACxE,IAAI,CAACf,QAAQ,CAAC,CAAC,CAACe,EAAE,CAAC,6BAA6B,EAAE,yBAAyB,CAAC;IAChF;;IAEA;AACR;AACA;AACA;AACA;IACQJ,uBAAuBA,CAACD,KAAK,EAAE;MAC3B,IAAI,CAACM,GAAG,CAAC,MAAM,CAAC,CAACC,WAAW,CAAC,UAAU,EAAEC,OAAO,CAACR,KAAK,CAAC,CAAC;IAC5D;EACJ;EAEA,OAAON,YAAY;AACvB","sources":["webpack://sfra-boilerplate/./cartridges/plugin_wishlists_w/cartridge/client/default/js/widgets/cart/WishlistCartMixin.ts","webpack://sfra-boilerplate/./cartridges/plugin_wishlists_w/cartridge/client/default/js/widgets/header/WishlistIcon.ts"],"sourcesContent":["import { WishlistItemsMgr } from '../toolbox/wishlistItemsMgr';\n\ntype confirmDialog = InstanceType<ReturnType<typeof import('widgets/global/ConfirmDialog').default>>;\ntype CartMgrInstance = ReturnType<typeof import('widgets/cart/CartMgr').default>;\n\ntype TMoveToWishlistResponse = { error: boolean; itemAlreadyExists: boolean; wishlistItems: unknown[]; };\n\n/**\n * @param CartMgr Base widget for extending\n * @returns Add to Wishlist Mixin class\n */\nexport default function (CartMgr: CartMgrInstance) {\n    /**\n     * @category widgets\n     * @subcategory cart\n     * @class WishlistCartMixin\n     * @augments CartMgr\n     * @classdesc wish list cart mixin with next features:\n     * 1. Update Wish List state while the product was added to the Wish List from the Cart/Mini Cart\n     * This class is not intended to have a separate DOM representation.\n     */\n    class WishlistCartMixin extends CartMgr {\n        /**\n         * @description Update Wish List state when product was added to the WLS from the Cart/Mini Cart\n         * @param confirmationDialog Target popup\n         */\n        moveProductToWishlist(confirmationDialog: confirmDialog) {\n            return super.moveProductToWishlist(confirmationDialog)\n                .then((responses) => {\n                    const response = <TMoveToWishlistResponse>responses[0];\n\n                    if (response.error && !response.itemAlreadyExists) {\n                        return responses;\n                    }\n\n                    const wishlistItemsMgr = WishlistItemsMgr.getInstance();\n\n                    wishlistItemsMgr.updateWishlistItems(response.wishlistItems);\n                    this.eventBus().emit('product.addedToWishlist', response.wishlistItems.length > 0);\n\n                    return responses;\n                });\n        }\n    }\n\n    return WishlistCartMixin;\n}\n","import { TWidget } from 'widgets/Widget';\nimport { WishlistItemsMgr } from '../toolbox/wishlistItemsMgr';\n\n/**\n * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} refElement\n */\n\n/**\n * @param Widget Base widget for extending\n * @returns Wishlist icon class\n */\n\nexport default function (Widget: TWidget) {\n    /**\n     * @category widgets\n     * @subcategory header\n     * @class WishlistIcon\n     * @augments Widget\n     * @classdesc Wish list icon component with next features:\n     * 1. Change state of wishlist icon in the header\n     */\n    class WishlistIcon extends Widget {\n        prefs() {\n            return {\n                wishlistIcon: 'wishlistIcon',\n                getWishlistItemsUrl: '',\n                ...super.prefs()\n            };\n        }\n\n        /**\n         * @description Add global event handlers\n         * @returns {void}\n         */\n        init() {\n            super.init();\n            const wishlistItemsMgr = WishlistItemsMgr.getInstance();\n\n            wishlistItemsMgr.isItemsInWishList()\n                .then(state => this.changeStateWishListIcon(state))\n                // eslint-disable-next-line no-console\n                .catch(error => console.log(error));\n            this.eventBus().on('product.addedToWishlist', 'changeStateWishListIcon');\n            this.eventBus().on('product.removedFromWishlist', 'changeStateWishListIcon');\n        }\n\n        /**\n         * @description Change state of wishlist icon in the header\n         * @param {boolean} state Indicates is button active or not\n         * @returns {void}\n         */\n        changeStateWishListIcon(state) {\n            this.ref('self').toggleClass('m-active', Boolean(state));\n        }\n    }\n\n    return WishlistIcon;\n}\n"],"names":["WishlistItemsMgr","CartMgr","WishlistCartMixin","moveProductToWishlist","confirmationDialog","then","responses","response","error","itemAlreadyExists","wishlistItemsMgr","getInstance","updateWishlistItems","wishlistItems","eventBus","emit","length","Widget","WishlistIcon","prefs","wishlistIcon","getWishlistItemsUrl","init","isItemsInWishList","state","changeStateWishListIcon","catch","console","log","on","ref","toggleClass","Boolean"],"sourceRoot":""}