{"version":3,"file":"extended.page_designer.bundle.js","mappings":";;;;;;;;;;;;;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAAe,oCAAUA,SAAuE,EAAE;EAC9F;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,mBAAmB,SAASD,SAAS,CAAC;IACxCE,KAAKA,CAAA,EAAG;MACJ,OAAO;QACHC,mBAAmB,EAAE,WAAW;QAChC,GAAG,KAAK,CAACD,KAAK,CAAC;MACnB,CAAC;IACL;;IAEA;AACR;AACA;AACA;AACA;AACA;IACQE,YAAYA,CAACC,GAAG,EAAEC,KAAK,EAAE;MACrB,IAAI,CAAC,IAAI,CAACC,GAAG,CAAC,OAAO,CAAC,CAACC,GAAG,CAAC,CAAC,EAAE;QAC1BF,KAAK,CAACG,cAAc,CAAC,CAAC;MAC1B;IACJ;;IAEA;AACR;AACA;AACA;AACA;IACQC,WAAWA,CAAA,EAAG;MACV,IAAI,CAACC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAACJ,GAAG,CAAC,OAAO,CAAC,CAACC,GAAG,CAAC,CAAC,CAAC;IACrD;;IAEA;AACR;AACA;AACA;AACA;IACQG,iBAAiBA,CAACC,eAAe,EAAE;MAC/B,IAAI,CAACL,GAAG,CAAC,aAAa,CAAC,CAACM,WAAW,CAAC,IAAI,CAACX,KAAK,CAAC,CAAC,CAACC,mBAAmB,EAAES,eAAe,CAAC;IAC1F;;IAEA;AACR;AACA;AACA;IACQE,UAAUA,CAAA,EAAG;MACT,MAAMC,WAAW,GAAG,IAAI,CAACR,GAAG,CAAC,OAAO,CAAC;MAErCQ,WAAW,CAACP,GAAG,CAAC,EAAE,CAAC;MAEnB,MAAMQ,gBAAgB,GAAGD,WAAW,CAACE,GAAG,CAAC,CAAC;MAE1C,IAAID,gBAAgB,EAAE;QAClBA,gBAAgB,CAACE,KAAK,CAAC,CAAC;MAC5B;MAEA,IAAI,CAACP,iBAAiB,CAAC,KAAK,CAAC;IACjC;EACJ;EAEA,OAAOV,mBAAmB;AAC9B","sources":["webpack://sfra-boilerplate/./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/search/NoSearchResultsForm.ts"],"sourcesContent":["/**\n * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} refElement\n */\n\n/**\n * @param BasicForm Base widget for extending\n * @returns NoSearchResultsForm widget\n */\nexport default function (BasicForm: ReturnType<typeof import('widgets/forms/BasicForm').default>) {\n    /**\n     * @category widgets\n     * @subcategory search\n     * @class NoSearchResultsForm\n     * @augments BasicForm\n     * @classdesc NoSearchResultsForm widget component with next features:\n     * 1. This is simplified form with no validation rules applied\n     * 2. Has an ability to clear user input by pressing button\n     * @property {string} data-widget - Widget name \"noSearchResultsForm\"\n     * @property {string} data-classes-clear-enabled - class to toggle on clear input button\n     * @example <caption>Example of NoSearchResultsForm widget usage</caption>\n     * <form\n     *     action=\"${URLUtils.url('Search-Show')}\"\n     *     method=\"GET\"\n     *     data-widget=\"noSearchResultsForm\"\n     *     data-event-submit=\"handleSubmit\"\n     * >\n     *     ... form contents\n     *     <input data-ref=\"input\" role=\"combobox\" name=\"q\" value=\"\" data-event-input=\"handleInput\" />\n     *     <button data-ref=\"clearButton\" data-event-click=\"clearInput\"\n     *         type=\"reset\"\n     *         title=\"${Resource.msg('header.search.clear', 'search', null)}\"\n     *         tabindex=\"-1\"\n     *     >\n     *         <isinclude template=\"/common/svg/clear\" />\n     *     </button>\n     *     ... submit button\n     * </form>\n     */\n    class NoSearchResultsForm extends BasicForm {\n        prefs() {\n            return {\n                classesClearEnabled: 'm-visible',\n                ...super.prefs()\n            };\n        }\n\n        /**\n         * @description Submit form simplified handler\n         * @param {refElement} _el event source element\n         * @param {Event} event event instance\n         * @returns {void}\n         */\n        handleSubmit(_el, event) {\n            if (!this.ref('input').val()) {\n                event.preventDefault();\n            }\n        }\n\n        /**\n         * @description Handle input event into the form field\n         * @listens dom#input\n         * @returns {void}\n         */\n        handleInput() {\n            this.toggleClearButton(!!this.ref('input').val());\n        }\n\n        /**\n         * @description Toggle Clear Button based on input value\n         * @param {boolean} isInputHasValue - indicates if input has a value\n         * @returns {void}\n         */\n        toggleClearButton(isInputHasValue) {\n            this.ref('clearButton').toggleClass(this.prefs().classesClearEnabled, isInputHasValue);\n        }\n\n        /**\n         * @description Clear input field\n         * @returns {void}\n         */\n        clearInput() {\n            const searchInput = this.ref('input');\n\n            searchInput.val('');\n\n            const searchInputField = searchInput.get();\n\n            if (searchInputField) {\n                searchInputField.focus();\n            }\n\n            this.toggleClearButton(false);\n        }\n    }\n\n    return NoSearchResultsForm;\n}\n"],"names":["BasicForm","NoSearchResultsForm","prefs","classesClearEnabled","handleSubmit","_el","event","ref","val","preventDefault","handleInput","toggleClearButton","isInputHasValue","toggleClass","clearInput","searchInput","searchInputField","get","focus"],"sourceRoot":""}