{"version":3,"file":"content.widgets.bundle.js","mappings":";;;;;;;;;;;;;;AACgD;AAChD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAAe,oCAAUC,MAAe,EAAE;EACtC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,MAAMC,SAAS,SAASD,MAAM,CAAC;IAC3B;AACR;AACA;AACA;AACA;AACA;IACQE,eAAeA,CAACC,IAAI,EAAEC,IAAI,EAAE;MACxB,IAAI,CAACA,IAAI,CAACC,OAAO,EAAE;QACf,OAAOC,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;MAChC;MAEA,MAAMC,SAAS,GAAG,IAAI,CAACC,GAAG,CAAC,sBAAsB,CAAC,CAACL,IAAI,CAAC,WAAW,CAAC;MAEpE,OAAO,IAAI,CAACM,MAAM,CAACC,SAAS,EAAEA,SAAS,EAAEA,SAAS,EAAEP,IAAI,CAACQ,GAAG,CAAC,CAACC,IAAI,CAAC,MAAK;QACpE,IAAI,CAACL,SAAS,EAAE;UACZT,4DAAW,CAAC,CAAC;QACjB;MACJ,CAAC,CAAC;IACN;EACJ;EAEA,OAAOE,SAAS;AACpB","sources":["webpack://sfra-boilerplate/./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/content/ContactUs.ts"],"sourcesContent":["import { TWidget } from 'widgets/Widget';\nimport { scrollToTop } from '../toolbox/scroll';\n/**\n * @typedef {InstanceType<ReturnType<typeof import('widgets/forms/AjaxForm').default>>} ajaxForm\n */\n\n/**\n * @param Widget Base widget for extending\n * @returns ContactUs widget\n */\nexport default function (Widget: TWidget) {\n    /**\n     * @category widgets\n     * @subcategory content\n     * @class ContactUs\n     * @augments Widget\n     * @classdesc Contact Us component with next features:\n     * 1. Render success result content\n     * 2. After rendering scroll to top if not in modal\n     *\n     * Contact Us component should contain `data-ref=\"contactUsFormWrapper\"` with `data-is-in-modal=\"${pdict.isAjax}\"` to indicate Is `concact us` component located in modal window\n     * @example <caption>Contact us component</caption>\n     * <div class=\"b-contact\" data-widget=\"contactUs\">\n     *   <div data-ref=\"contactUsFormWrapper\" data-is-in-modal=\"${pdict.isAjax}\">\n     *       <form\n     *           action=\"${pdict.actionUrl}\"\n     *           class=\"b-form m-contact-us\"\n     *           method=\"POST\"\n     *           name=\"contact-us\"\n     *           data-widget=\"ajaxform\"\n     *           data-widget-event-submit=\"onSuccessSubmit\"\n     *           data-event-submit.prevent=\"handleSubmit\"\n     *       >\n     *       ...\n     *           form fields\n     *       ...\n     *       </form>\n     *   </div>\n     * </div>\n     */\n    class ContactUs extends Widget {\n        /**\n         * @description Render success message and scroll to top if content not in modal window\n         * @param {ajaxForm} form - Ajax form widget instance\n         * @param {object} data - Contact us form submission response\n        * @returns {Promise<void|null>} Promise object represents success message rendering result\n         */\n        onSuccessSubmit(form, data) {\n            if (!data.success) {\n                return Promise.resolve(null);\n            }\n\n            const isInModal = this.ref('contactUsFormWrapper').data('isInModal');\n\n            return this.render(undefined, undefined, undefined, data.msg).then(()=> {\n                if (!isInModal) {\n                    scrollToTop();\n                }\n            });\n        }\n    }\n\n    return ContactUs;\n}\n"],"names":["scrollToTop","Widget","ContactUs","onSuccessSubmit","form","data","success","Promise","resolve","isInModal","ref","render","undefined","msg","then"],"sourceRoot":""}