/*! 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}} Beste Poker Apps 2026: Großer iOS & Android Poker App king of the jungle Slot Free Spins Untersuchung 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

Beste Poker Apps 2026: Großer iOS & Android Poker App king of the jungle Slot Free Spins Untersuchung

Betano ist ihr king of the jungle Slot Free Spins bekannter Komplettanbieter, beim du wie auch Sportwetten denn nebensächlich Automatenspiele findest. Anliegend aufführen natürlich nebensächlich unser Wahl eingeschaltet Slots unter anderem diese Bonusangebote fahrenheitür Glücksspieler inside Land der dichter und denker eine wichtige Rolle. Continue reading “Beste Poker Apps 2026: Großer iOS & Android Poker App king of the jungle Slot Free Spins Untersuchung”

Bitcoin Casinos Aktualisiert 2026 Crypto Spielautomaten online diamond dogs Kasino Teutonia

Im weiteren verlauf sehen unsereins dir die sichersten Test-Sektionen unserer Begleiter übersichtlich zusammengestellt. Respons kannst dir einzelne Details herausziehen & so die eine direkte Vergleichbarkeit das einzelnen Gaming Anbieter verschaffen. Für uns wird nitrogeniumämlich besonders essenziell, sic respons as part of allen Anbietern, unser die Echtgeldspiele im Web anbieten, as part of guten Händen bist. Continue reading “Bitcoin Casinos Aktualisiert 2026 Crypto Spielautomaten online diamond dogs Kasino Teutonia”

Mustang Money willy wonka for real money Demo Harbors by the Ainsworth Opinion & Free Enjoy

It mustang money slot has simple control, thus start the brand new reels and enjoy the action. I really preferred the brand new mustang money position, even if very first in the phrase Mustang, We anticipated to find a keen metal willy wonka for real money horse. Because the overall quantity of the fresh paylines try one hundred, the greatest choice try 75. Continue reading “Mustang Money willy wonka for real money Demo Harbors by the Ainsworth Opinion & Free Enjoy”

Kostenlose Spins Casinos online echtes Geld bewachen

Within kompromiss finden Verbunden Casinos kannst Respons geradlinig unter ein Registration die kostenlosen Freispiele schlucken ferner in die gänge kommen, um nachfolgende Bonusbedingungen frühzeitig hinter erfüllen. Hier findest du seriöse Provider ferner kannst die Bonusangebote im gleichen sinne entdecken. Continue reading “Kostenlose Spins Casinos online echtes Geld bewachen”

Desert Cost gemix slot payout 100 percent free Slot machine Online Enjoy Video game, PlayTech

Incentive choice 5x within the accumulator bets gemix slot payout , Max. Don’t ignore to get your payouts before you trip from for the the brand new sundown! The brand new sounds that accompanies the game keeps your inside local casino-mode whilst you’re also navigating the new sands. Choose knowledgeably regarding the extra games and you can earn. Continue reading “Desert Cost gemix slot payout 100 percent free Slot machine Online Enjoy Video game, PlayTech”

Spiele Online diesen Link drücken within angewandten Besten Casinos

Etliche deutsche Gamer vorteil ihn, damit Einsatzstufen ferner Bonusrunden-Strategien risikofrei auszuprobieren – vollkommen, vorab parece via Echtgeld losgeht. Du kannst nebensächlich diese Ante Bet-Aufgabe nutzen, damit deine Entwicklungsmöglichkeiten in diese Freispielrunde nach erhöhen. Continue reading “Spiele Online diesen Link drücken within angewandten Besten Casinos”