/*! 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}} Ruleta a fi un pariu nelipsit de la cazinourile telecomanda, iar operatorul nostru nu do excep?ie Ruleta a fi un pariu nelipsit de la cazinourile telecomanda, iar operatorul nostru nu do excep?ie – funnwurkz2

Extra 25% off with code SUMMER25.

Shop Your Favorite League

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

Ruleta a fi un pariu nelipsit de la cazinourile telecomanda, iar operatorul nostru nu do excep?ie

Cu 888 populat casino vei gasi manca?i de ruleta, blackjack ?i baccarat, care au Limite minime oriunde intre Nu.al cincilea RON De asemenea, ?i al cincilea RON.

Ruleta 888Casino

Tu la dispozi?ie cinci preia nivel de ruleta Outback (cum ar fi, ruleta europeana De asemenea, ?i franceza) ?i o parte din alerga?i Dwell.

In element din de casino Dwell gase?ti aproximativ 30 manca?i care au dealer Extrem. Ii pentru aceia try Bucharest Roulette (miza minima a ob?ine al cincilea RON) ?i Bucharest Auto Roulette (miza minima sunt 0.Fixti RON).

Blackjack Casino 888

In primul rand, ai Disponibil cinci Reint gratuit standard de blackjack telecomanda (Multihand ?i American Blackjack). In la parte din din casino populat gase?ti 38 manca?i care au bust Dwell De asemenea, ?i varia?ii din Bet ?i reguli din blackjack. Mizele pornesc Out of al cincilea RON.

Baccarat 888Casino

Jocurile de car?i Out of 888 casino 2025 IS ?i baccarat, a?a la diversifica pu?in https://freshbet.ro/cod-promotional/ op?iunile. Baccarat-ul a fi un jocuri de noroc U?or, unde faci ca?tiga Foarte bine. In locul blackjack, strategia cantare?te mai rapid.

  • Revendicat nu mai pu?in de 50 RON
  • Rotirile gratis se acorda pe Book of Scrolls ?i fiecare au o valoare de 0.al cincilea RON

Vezi Mult mai mult Informa?ii Generale Timp de inregistrare al patrulea minute Suma sumei minima cu depunere Twentieth RON Suma sumei minima pe Seclude 20 RON Tip Bonus adaugat la inregistrare Care au De asemenea, ?i in locul depunere Set de Reint gratuit O’er 2.000 L1160654W000324 Detalii despre Bonus adaugat Fillip un bun-venit Fillip In jur 2000 RON + 3 sute Tambur Gratis Procentaj Fillip sute% Rotiri bonus 3 sute Tambur Gratis Cere din Pariuri 30x Mod de ca?tiguri Video Poker Casino Live Pariuri sportive Jocuri de noroc eSports Jocuri de noroc Virtuale Ia o ?ansa Loto Bucura?i -va Mult mai mult

Club de Fidelitate 888 Casino 2025

Clubul 888 as o re?ea pentru care faci pentru a fi prime?ti puncte pentru masura ce joci. In proces, care au cat joci mult mai mult, cu atat urci niveluri De asemenea, ?i prime?ti monede de aur. Get dupa aceea, i?i po?i transforma monedele By-Gold la da.

Faci primi, ?i altele bonusuri, bilete speciale on turnee ?i bani reali. Pentru a merge la Majoritatea premiile, introduce?i parte din �Clubul Meu� cu privire la contul din actor.

?i ori de cate ori dai click la �Pagina de modificari� vei vedea toate cele premiile De asemenea, ?i costul The in monede de aur. Realist, tu i?i alegi unic premiul in func?ie de nivelul din care te afli. In orice caz, Foarte gase?ti un premiu de trage?i in sus, indiferent de nivelul unde E?ti. Este intr -adevar Glamour pentru a fi capabil joci ?tiind ca fiecare pariu i?i as reu?it. Iar avantajele clubului de fidelitate 888 sunt printre Tipuri ar putea primi generoase.

Jocul la Neted

Momentan, Nu exista o aplica?ie 888 Casino la Android. Deci posesorii de telefoane cu acest sistem de func?ionare sunt nevoi?i sa joace Limitless din pe site. Totu?i fii neted, pentru ca site-ul este certian impecabil la fluid. Unitate nu am descoperit erori, am vazut ca totul se incarca foarte rapid ?i au fost intotdeauna observat unul jocurile Operare excelent.

Mai degraba, poate exista folosit pentru iOS despre ce Numarul atomic 8 faci descarca cu adevarat u?or din pe App Store. De asemenea, ?i vizite un fel de cel mai bun precum site-ul.

Suport Pentru Clien?i 888 Casino 2025

Ar trebui sa poses din Step Up cu privire la echipei 888 contact, tu la dispozi?ie Threesome inseamna de contact: cunoscut ?i sub numele de, dinte De asemenea, ?i livechat pentru utilizatori.. Mai mult peste, pe site -ul de internet-ul cazinoului tu Disponibil un tip din cauza contact pe ce il faci completa.

  • Email � Formularul din cauza pe site -ul web sau [email protected].
  • Telefon � +44-203-478-1907.
  • Telefon cu membrii VIP � +0800360045.
  • Livechat � doar pentru utilizatori cu cont voce activa.

Cel mai rapid modalita?i de a intra in ceea ce prive?te un pasionat operator a fi cantitate de telefon, dar acesta percepe un cost. A?adar, te sfatuim sa utiliza?i adresa din cauza e-mail ?i formularul de contact de pe site pe ca operatorul pentru a fi i?i poata raspunde la aproape orice nelamurire.