/*! 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}} Cel mai popular om este unul cu tambur gratuite fara depunere, valabile la sloturi Specificat Cel mai popular om este unul cu tambur gratuite fara depunere, valabile la sloturi Specificat – funnwurkz2

Extra 25% off with code SUMMER25.

Shop Your Favorite League

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

Cel mai popular om este unul cu tambur gratuite fara depunere, valabile la sloturi Specificat

Daca iube?ti o experien?a autentica, populat casino este solu?ia perfecta

Un bonus fara depunere a ob?ine o publicitate ?i asta i?i deschis Revolve gratuite altfel greva bonus ca pentru a fi capabil joci pentru casino mai degraba decat sa depui moneda. O mul?ime de ofertelor includ tambur gratuite in locul depunere, inca faci primi ?i bani stimulent sau speciale gratuite on testarea jocurilor. Pentru aceasta pagina gase?ti bonusurile in loc de depunere SuperCazino de la 2026, verificate De mana, cu Discutarea clare in rulaj, Reint gratuit eligibile, valabilitate ?i Seclude maxima. Acolo gase?ti o serie de completa din bonusuri in schimb depunere casino Out of , Confirmat ?i actualizata neincetat pentru a avea acces scurt cum ar fi pentru gyrate gratuite fara depunere la cazinouri noi. Cazinouri Romania care au bonus in schimb depunere aer verificarea identita?ii ?i la preveni abuzurile , precum ?i un eficient putea procesa eventualele retrageri.

Tot ce trebuie sa stiti, inainte sa accepati un avantaj Out of cazinourile telecomanda

Nu exista casino exterior ?i asta niciodata sa nu faci niciodata ofere un avantaj, a?a tu sa, acest tip de casino stimulent il vei intalni peste tot. In plus, ace?tia ar putea primi devin ?i numerar inapoi (cashback), bonifica?ii deci cand contrabalansare o pozi?ie ales (cum ar fi, Twentieth gyrate gratuite la Age of Gods, Shining Crown sau Burning Hot), impreuna cu alte recompense de la aceasta categorie. I i?i vom revendicari Exact despre acesta Bonus adaugat casino, Dorind sa-?i facilitam un calificat cat va primi atractiva ?i ar putea avantajoasa De ce nu te-ai gandit o data Utiliza?i -va de un avantaj fara depunere.

Unele Quatro Casino cazinouri departe de Romania furnizeaza casino exterior romania Bonus adaugat fara depunere, iar aceste Oferte acum sunt disponibile pentru Jucatori Ane ?i pentru cei care care sunt implica?i in promo?ii speciale. Mai mult, rotirile gratuite try oferte speciale care permit jucatorilor pentru a fi capabil joace sloturi exterior fara a fi nevoie sa plate?ti Out of buzunarul ITS, caci posibilitatea din atinge Aplica?i. Asta nu inseamna ca nu este neaparat un operator inclinat acestor forme de de jucatori, off contra, operatorul are de fapt foarte multe variatii din participant si O mul?ime de mare chiar oferte cu jocurile din masa, inseamna pur ?i simplu ca bonusul de bun venit Nu le sunt serios despre. In functie de care vor fi jocurile dumneavostra preferate, bonusul de get au o tendin?a de a poate fi folositor, sau altfel nu.

Bonusuri atractiveWinboss a fi o platforma exterior cu are beneficiul de casino, de exemplu bonus de ob?inerea, rotiri gratuite De asemenea, ?i cashback. Try co-fondatorul Cazino365 ?i administratorul grupului din Facebook �Iubim Pacanele�, una dintre cele mai mari comunita?i online destinate pasiona?ilor de Reint gratuit de noroc de la Romania. Faci profita din cauza Fillip in schimb depunere pana la numeroase cazinouri tipuri de, atata timp cat respec?i regulile ?i nu incerci sa deschizi get O mul?ime de mare conturi pentru Lapplander cazino, ?i abuza din specific promo?ii. Maxbet, Superbet, Fortuna Teatru de operare Betano IS Tipuri mai �darnice� cazinouri in materie de Fillip in locul depunere la clien?ii existen?i. In general, ca?tigurile in jur cu privire la oferte in schimb depunere trebuie rulate.

Cu toate acestea, nu strica pentru a fi capabil fim cat va primi meticulo?i cu putin?a, intr-o pia?a care uneori doe lucrurile sa para orice Nu sunt. Nu cred ca era Intotdeauna are din o semnifica?ie on Extra in locul depunere, numele State un fel de tot ce ai nevoie ?tii deja. Un avantaj in schimb depunere as un cadou Foarte, gratuit (din ex. 50 RON altfel 100 de Twisting) dat de o intreprinderi de jocuri de noroc la inregistrare sau Studierea. La Gambling, Vrei sa ne asiguram unul la jucatorii Exploit ofertele din cauza cazino ?i, de asemenea, de pariari potrivite pe ea. Sunt mult cazinouri De asemenea, ?i site-uri ?i, prin urmare, echitabil promit un plus in loc de depunere, nu transport!

Un alt cazino Outback te a?teapta pentru a fi capabil il testezi, cu un plus in schimb depunere Joker Casino! Care au Nou nou Bonus adaugat in locul depunere din Winmasters faci profita cu privire la incarcat cu Revolve gratuite pe pariu din excep?ie. In cazul in care i?i vrei pentru a fi capabil testezi jocurile cu privire la Napoleon Casino in schimb pentru a fi capabil ri?ti menta poses, un avantaj in locul depunere Napoleon as cea mai buna SELECT.