/*! 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}} Totally free Revolves No-deposit goldbet no deposit code Remain Everything you Earn! Uncategorized – Page Array – funnwurkz2

Extra 25% off with code SUMMER25.

Shop Your Favorite League

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

Totally free Revolves No-deposit goldbet no deposit code Remain Everything you Earn!

The favorable portion is the zero betting free revolves, but don’t dawdle as they expire once seven days. We have indexed no deposit totally free spins which might be offered proper after subscription. Continue reading “Totally free Revolves No-deposit goldbet no deposit code Remain Everything you Earn!”

Smash hit Reviews Is Here, And Experts 80 free spins casino Kitty Bingo Concur The brand new Inform you Isn’t really Value Accommodations Commission

On the February 29, 2012, Blockbuster For the Request eliminated help from put-greatest package news players, as well as Vudu, WDTV, and you can Roku. At the end of 2006, Smash hit Complete Availability had dos.dos million customers, surpassing their new aim of 2 million, considering their webpages. Subsequently there had been multiple change back and forth with regard compared to that coverage; inside the March 2010 consumers had been welcome a restricted quantity of inside-shop transfers. Continue reading “Smash hit Reviews Is Here, And Experts 80 free spins casino Kitty Bingo Concur The brand new Inform you Isn’t really Value Accommodations Commission”

Die gonzos quest Casinos besten Online Casino Zahlungsmethoden 2026 inoffizieller mitarbeiter Untersuchung

Etliche Erreichbar Casinos ermöglichen selber eigene Zahlungsarten via Taschentelefon, beispielsweise über unser Handyrechnung, Apple Pay unter anderem Google Pay. Sei dies existieren, können Die leser ohne Probleme Deren Einzahlung verwirklichen und konzentriert sogar Bonusangebote hören. Skizzenhaft sei unser Bedienung dank des Touch-Screens sogar angenehmer. Continue reading “Die gonzos quest Casinos besten Online Casino Zahlungsmethoden 2026 inoffizieller mitarbeiter Untersuchung”

Greatest Gambling enterprise Ports for real Currency 2026: Enjoy Position Games On casino Real Deal Bet casino the web

The majority of Practical Play’s video game element a great portrait setting choice, so it’s easy to explore one-hand when you are nonetheless seeing high-quality graphics and sound. A number of the offered languages are English, Foreign-language, French, German, and you can Chinese, making it simple for people from other nations to love the newest games within their native words. Continue reading “Greatest Gambling enterprise Ports for real Currency 2026: Enjoy Position Games On casino Real Deal Bet casino the web”

Rotiri gratuite santa surprise Jackpot slot ci plată 2026 Listă când Rotiri Gratuite pe cazino

Acum 2 ori 3 perioadă, mărturisesc dac nu tocmac știu exact, NetBet a rulat a promoție spre santa surprise Jackpot slot perioada sărbătorilor de iarnă printru ce oferea diverse cadouri clienților pe de termen. Spre duium dotă era vorba către oferte in casino fara vărsare ori jocuri pe pacanele fara vărsare. Continue reading “Rotiri gratuite santa surprise Jackpot slot ci plată 2026 Listă când Rotiri Gratuite pe cazino”

Eye of Horus kostenlos: Religious online vortragen über Fruit $ 5 Kaution Maklercourtage

Wichtige Veränderungen gibt dies nicht nur within angewandten Spielangeboten, zugunsten besonders within den Vorgaben für lokale Versorger. Die leser erwischen dementsprechend in das Registration zahlreiche Bonusmöglichkeiten zur Verfügung. Unsre Experten präsentieren dir, irgendwo respons die ultimativen Gewinnauszahlungen sinnvoll dahinter deinen Vorlieben nutzt. Welches passiert qua angewandten Bonusgewinnen – virtuelles Guthaben & Echtgeld-Auszahlung? Continue reading “Eye of Horus kostenlos: Religious online vortragen über Fruit $ 5 Kaution Maklercourtage”