/*! elementor-pro - v3.30.0 - 01-07-2025 */ "use strict"; (self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["loop-filter-editor"],{ /***/ "../modules/loop-filter/assets/js/editor/module.js": /*!*********************************************************!*\ !*** ../modules/loop-filter/assets/js/editor/module.js ***! \*********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); Object.defineProperty(exports, "__esModule", ({ value: true })); exports["default"] = void 0; var _taxonomyFilter = _interopRequireDefault(__webpack_require__(/*! ./taxonomy-filter */ "../modules/loop-filter/assets/js/editor/taxonomy-filter.js")); class LoopFilter extends elementorModules.editor.utils.Module { onElementorInit() { this.taxonomyFilter = new _taxonomyFilter.default('taxonomy-filter'); } } exports["default"] = LoopFilter; /***/ }), /***/ "../modules/loop-filter/assets/js/editor/taxonomy-filter.js": /*!******************************************************************!*\ !*** ../modules/loop-filter/assets/js/editor/taxonomy-filter.js ***! \******************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { /* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"]; const ElementEditorModule = __webpack_require__(/*! elementor-pro/editor/element-editor-module */ "../assets/dev/js/editor/element-editor-module.js"); module.exports = ElementEditorModule.extend({ __construct() { this.cache = {}; ElementEditorModule.prototype.__construct.apply(this, arguments); }, onInit() { elementor.channels.editor.on('editor:widget:taxonomy-filter:section_taxonomy_filter:activated', this.onTaxonomyFilterSectionActive); }, onTaxonomyFilterSectionActive() { this.updateSelectedElementOptions(); const selectedElementControlView = this.getEditorControlView('selected_element'), selectedElementControlValue = selectedElementControlView.getControlValue(); if (selectedElementControlValue) { this.updateTaxonomyOptions(selectedElementControlValue); } }, updateSelectedElementOptions() { const selectedElementControlView = this.getEditorControlView('selected_element'), selectedElementControlValue = selectedElementControlView.getControlValue(), selectedElement = !!selectedElementControlValue ? elementor.$previewContents[0].querySelector(`[data-elementor-id="${elementor.config.document.id}"] .elementor-element-${selectedElementControlValue}`) : ''; if (!selectedElement) { selectedElementControlView.setValue(''); } const loopWidgets = elementor.$previewContents[0].querySelectorAll(`[data-elementor-id="${elementor.config.document.id}"] .elementor-widget-loop-grid`), selectedElementControlOptions = { '': __('Select a widget', 'elementor-pro') }; if (!loopWidgets.length) { this.updateOptions('selected_element', selectedElementControlOptions); selectedElementControlView.setValue(''); } let index = 1; for (const loopWidget of loopWidgets) { selectedElementControlOptions[loopWidget.dataset.id] = `${__('Loop Grid', 'elementor-pro')} ${index++}`; } this.updateOptions('selected_element', selectedElementControlOptions); }, onElementChange(setting, controlView) { if ('selected_element' !== setting) { return; } const controlValue = controlView.getControlValue(); if (controlValue) { this.updateTaxonomyOptions(controlValue); } else { this.updateOptions('taxonomy', { '': __('Select a taxonomy', 'elementor-pro') }); } }, getPostSourceQueryPostType(loopWidgetContainer) { const querySource = loopWidgetContainer.settings.attributes.post_query_post_type; let queryPostType = ''; switch (querySource) { case 'current_query': queryPostType = elementorPro.config.loopFilter.mainQueryPostType; break; case 'by_id': // Currently 'by ID' is not supported since it can include multiple post types. queryPostType = 'post'; break; case 'related': queryPostType = 'post'; break; default: queryPostType = querySource; } return queryPostType; }, getLoopQueryPostType(loopWidgetId) { const loopWidgetContainer = elementor.getContainer(loopWidgetId); const loopSource = loopWidgetContainer.settings.attributes._skin; if ('post' === loopSource) { return this.getPostSourceQueryPostType(loopWidgetContainer); } return 'product'; }, updateTaxonomyOptions(loopWidgetId) { // TODO: Add control spinner. const postType = this.getLoopQueryPostType(loopWidgetId); const postTypeTaxonomies = this.getPostTypeTaxonomies(postType).then(response => { if (!(response instanceof Response)) { return response; } else if (!response.ok || 400 <= response.status) { this.displayErrorDialog(); return {}; } return response.json(); }).catch(() => { this.displayErrorDialog(); return {}; }).then(response => { let data = response?.data || response; if (!Object.keys(data).length) { this.updateOptions('taxonomy', { '': __('No taxonomies found', 'elementor-pro') }); return; } data = { ...{ '': __('Select a taxonomy', 'elementor-pro') }, ...data }; this.cache[postType] = data; this.updateOptions('taxonomy', data); }); return postTypeTaxonomies; }, /** * * @param {string} postType * @return {Promise} Promise that should resolve with taxonomies data. */ getPostTypeTaxonomies(postType) { if (this.cache[postType] && Object.keys(this.cache[postType]).length) { return Promise.resolve(this.cache[postType]); } return this.fetchPostTypeTaxonomies(postType); }, fetchPostTypeTaxonomies(postType) { return fetch(`${elementorCommon.config.urls.rest}elementor-pro/v1/get-post-type-taxonomies`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-WP-Nonce': elementorWebCliConfig.nonce }, body: JSON.stringify({ post_type: postType }) }); }, displayErrorDialog() { elementorCommon.dialogsManager.createWidget('alert', { id: 'e-filter-error-message', className: 'e-filter__error-message', headerMessage: __('Something went wrong', 'elementor-pro'), message: __('We are experiencing technical difficulties on our end. Please try again to reconnect.', 'elementor-pro'), position: { my: 'center center', at: 'center center' }, strings: { confirm: __('OK', 'elementor-pro') } }).show(); } }); /***/ }) }]); //# sourceMappingURL=loop-filter-editor.46a4c013b80a381a50c9.bundle.js.map.flexa-counter{box-sizing:border-box}.flexa-counter__list{display:grid;gap:32px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.flexa-counter__item{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-start}.flexa-counter__row{align-items:center;display:flex;flex-direction:row;gap:.5em}.flexa-counter__icon{align-items:center;display:inline-flex;justify-content:center;line-height:1}.flexa-counter__icon img,.flexa-counter__icon svg{display:block;height:100%;width:100%}.flexa-counter__number{align-items:baseline;display:flex;flex-direction:row;gap:.1em;justify-content:center;line-height:1}.flexa-counter__value{font-variant-numeric:tabular-nums}.flexa-counter__label{display:block}.flexa-counter__separator{border-top:0 solid;display:block}@media(min-width:1025px){.flexa-counter.flexa-hide-desktop{display:none!important}}@media(min-width:768px)and (max-width:1024px){.flexa-counter.flexa-hide-tablet{display:none!important}}@media(max-width:767px){.flexa-counter.flexa-hide-mobile{display:none!important}} Trimi?i documentele Necesitate, iar urmatoare procesarea acestora, prime?ti rotirile gratuite in contul din participant Trimi?i documentele Necesitate, iar urmatoare procesarea acestora, prime?ti rotirile gratuite in contul din participant – funnwurkz2

Extra 25% off with code SUMMER25.

Shop Your Favorite League

  • NFL
  • NBA
  • WNBA
  • COLLEGES
  • MLB
  • NHL
  • MLS
  • NASCAR
Select a Team

Trimi?i documentele Necesitate, iar urmatoare procesarea acestora, prime?ti rotirile gratuite in contul din participant

Favbet Casino

Fillip to al zecelea,000 RON + unic.000 Tambur Gratuite Activare *Tu oportunitatea de a primi un avantaj inclus in campaniei Stimulent la prima depunere. Descrierea complete gase?ti la .

La fel de mult ca RON De asemenea, ?i necasatorit.000 FS Te inregistrezi, iar la primele cinci depuneri ai facut Bonus adaugat RON + din Gyrate Gratuite cand alegi pentru a fi capabil joci on Casino Sala de opera?ie RON daca alegi Sport. CLICK Pe Stimulent

3 sute din rotiri in schimb depunere la validarea contului In plus, poate ob?ine po?i primi cu toate acestea 300 din Twisting Gratuite pentru validarea contului. CLICK Cu Extra

Favbet stimulent in locul depunere este scurt pentru cel mai atractive beneficii pe ce o persoana le nu se poate primi on validarea contului la acest cazinou Magic Jackpot cazinou online online. In general, bonusurile in locul depunere sunt gandite pentru ca o metoda de a atrage unitate clien?i de a ce oferi ocazia sa caute jocurile disponibile, fie ca este vorba din pariari Teatru de operare sloturi populare.

La Jucatori, un avantaj Favbet nu se poate reprezenta oportunitate excelenta de a ob?ine platforma, din cauza a in?elege Cum func?ioneaza interfa?a ?i, de asemenea, de a explora tipuri de scop, mai degraba decat a plati greva oferte. Aceasta furnizeaza include Twisting gratuite la performan?e off dezvoltatori de cel mai bun. Intr -un mod care, te po?i bucura de un avantaj fara depunere, la fel de bine ?i alte promo?ii atractive pe ce le da platforma, precum unitate 1000 din tambur gratuite cu noii Jucatori, premiile zilnice Out of Roata Norocului altfel provocarile care vin cu alte runde gratuite.

Exact ceea ce este exact ce un entuziast casino Extra in schimb depunere?

Un plus fara depunere a fi o afacere speciala pe ce cazinourile De asemenea, ?i casele din pariuri Outback oxigen acorda jucatorilor I, in locul ca acei sfar?e?te sa fii obliga?i pentru a fi depuna menta la cont. Adica, faci juca 100 % gratuita, in locul pentru a fi plate?ti totul. Acest avantaj il faci primi pentru ca te-tu inregistrat la platforma altfel tu Realizare aer anumita Circumstan?e. Po?i juca care au un avantaj fara depunere pe casino, ?i in plus cu pariuri sportive. Un plus fara depunere casino i?i aduce Revolve gratuite pe preia populare de pentru platforma departe de dezvoltatori pentru ca EGT Digital, Pragmatic Play Teatru de operare Amusnet, de cand la ia o ?ansa, po?i primi un plus cand vine vorba de mult mai bine fara risc. Casino Fillip fara depunere off Favbet consta in 3 sute de Revolve gratuite dupa inregistrare ?i Privind documentelor. Favbet bonus din get � RON + 1000 din tambur gratuite

Are ale bonusului in locul depunere

  • Nu este nevoie depunere � jucatorul are bonusul imediat dupa inregistrarea la Favbet Teatru de operare activarea promo?iei.
  • Scopul fundamental � sa permita utilizatorilor sa testeze platforma sigur ?i sigur financiare.
  • Scenariu din rulaj � de regula, bonusurile trebuie jucate de o cantitate specifica de Cazuri chiar inainte pentru a fi capabil poata devine retrase ca?tigurile Disponibil de la ele.

Doar ce chiar oferte Favbet bonus fara depunere poate exista?

Un bonus fara depunere Favbet exista cu siguran?a sub forma de Revolve gratuite ?i Pariu fara riscuri on jucatorii Ane, in cadrul pachetului de primirea sau validarea contului.

trei sute din rotiri gratuite on validarea contului

O eroare unul dintre Tipuri va primi atractive promo?ii a fi Favbet gyrate gratuite fara depunere. Get perfect, beneficiezi din 3 sute din Revolve gratuite aceste tipuri de va primi populare pariu. Promo?ia serve?te jucatorilor care au in prezent Ob?ine?i ?i nu va fi trebuie sa versus pentru a fi-?i validezi contul, urmatoarea exact ce ini?ial doe o circula?ie de Twentieth RON. Urmatoare exact ce contul tau este de fapt Prezentat faci accesa element din �Bonusuri�, iar Urmarirea sa accep?i bonusul ?i sa ape?i butonul �Joaca�.

Prime?ti rotirile gratuite in contul tau, in sec?iunea �Bonusuri�, in la maximum 48 de ore din validarea documentelor. Valoarea unei gyrate Diferen?a variaza de la Zero,al zecelea lei ?i unic leu, stabilit jocul unde try acordata. Principala Soarta pentru a retrage ca?tigurile in jur din Twisting gratuite este ca acestea dovede?te a fi rulate din cauza 40X, la element din �Casino� pentru jocurile incluse la rulaj.