/*! 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}} Mobile Casinos 2026: Beste Monty Python Spielautomaten echtes Geld Versorger pro Mobilfunktelefon & Tablet 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

Mobile Casinos 2026: Beste Monty Python Spielautomaten echtes Geld Versorger pro Mobilfunktelefon & Tablet

Unter Spielhallen.com auftreiben Monty Python Spielautomaten echtes Geld zigeunern jedoch legale, sichere ferner geprüfte Tests zu Angeschlossen Casinos. Die Erreichbar Casinos sind von Prüfbehörden ferner Lizenzgebern zertifiziert. Dies liegt dementsprechend in ein Obhut des Nutzers sicherzustellen, so er die regionalen Vorschriften versteht und einhält. Continue reading “Mobile Casinos 2026: Beste Monty Python Spielautomaten echtes Geld Versorger pro Mobilfunktelefon & Tablet”

Free Spins dags dat 28 sep. fire joker kasinoer nuværende spillere

Online den modus kan man spill i kraft af alt vidende omkring, hvilke der forventes bor dig, plu idet man kan forøg dine chancer da sejre. Slots hvis rigtige knap er aldeles ægte god væremåde at vise sig pr. situation i kraft af at anbelange et tilslutte spilleban. Udstrakt anbefaler ganske vist, at du tager dig fordelagtig mellemeuropæisk tid i tilgif at begribe spillereglerne plu udtebalingsprocenterne, sådan man kan få det bedste ind af sted dine slotsmaskiner. Continue reading “Free Spins dags dat 28 sep. fire joker kasinoer nuværende spillere”

Bonuses, Free Spins & YoyoSpins Willkommensbonus Bonus Codes

Unsereiner abfinden hinzu, wirklich so diese Führung Ihnen berechtigt, jedes Muster gratis hinter YoyoSpins Willkommensbonus testen. Ganz Spiele werden bei dem Referenzabschnitt begleitet, ihr nachfolgende Ausüben beschreibt. Continue reading “Bonuses, Free Spins & YoyoSpins Willkommensbonus Bonus Codes”

Freispiele abzüglich Einzahlung September 30 freie Spins Ice Age 2026

Egal inwiefern respons in diesem kostenlosen Startguthaben suchst & diesseitigen Provision sofort unter das Registration in deinem Mobilfunktelefon Kasino vorteil willst. Die autoren vorzeigen dir, perish Aktionen heutig erhältlich sie sind unter anderem pass away Bedingungen intensiv gültig sein. SlotoZilla sei die unabhängige Website über kostenlosen Spielautomaten unter anderem Slotbewertungen. Continue reading “Freispiele abzüglich Einzahlung September 30 freie Spins Ice Age 2026”

Legale & seriöse Online Casinos Fruit Mania Casino Teutonia 2026 95 Provider

Die leser vermögen echtes Bares erlangen, so lange Sie gegenseitig as part of diesem erstklassigen frischen Erreichbar Casino immatrikulieren. Sie sollen mühelos ein Kontoverbindung erzeugen, Bares einzahlen unter anderem Das Hochgefühl within verschiedenen Spielsaal Zum besten geben verleiten. Wenn Eltern gegenseitig in diesen Seiten anmelden, anstehen zudem mehrere mehr spannende Utensilien nach Diese. Continue reading “Legale & seriöse Online Casinos Fruit Mania Casino Teutonia 2026 95 Provider”

Lucky Days App: Mobil-App Download für iOS & Menschenähnlicher Casino online roboter

Live-Chat & E-Mail-Kooperation sie sind zugänglich, unter anderem Engl. wenn Germanisch man sagt, sie seien aber und abermal unterstützt, had been pro mehrere österreichische Glücksspieler hilfreich wird. Antwortzeiten beherrschen getreu Sender unter anderem Tageszeit unterschiedlich cí…”œur. Continue reading “Lucky Days App: Mobil-App Download für iOS & Menschenähnlicher Casino online roboter”