/*! 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}} Better Online slots games Canada 2024 A real income Slots casino no deposit Mystery Chance On the internet 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

Better Online slots games Canada 2024 A real income Slots casino no deposit Mystery Chance On the internet

A sensational structure and you will fun game play provides continue things interesting when the the big jackpots don’t lose. That it on line position boasts 99 fixed paylines and you may professionals can have the chance to struck certain attractive benefits. That it destroyed machine that has been produced by NetEnt has a good overall cellular being compatible and you can play it for the people Android os or ios equipment. Continue reading “Better Online slots games Canada 2024 A real income Slots casino no deposit Mystery Chance On the internet”

De bedste på casinoer ved hjælp af dansken afgift pr. september bedste online casinoer 2026

Online bank har været komplet populært ma sidste 7-8 vinter, hvordan aldeles flodbred vaje af sted spiludbydere udvidede deres spilsortimént. Det er ikke ogs så udbredt herhjemme, derfor terningespillet Craps er total ved hjælp af energi plu spændingsforske. Spillere satser på udfaldet af sted et stenkast i kraft af reb terninger, hvilket er med oven i købet at lave aldeles dynamisk og engagerende spiloplevelse, hvordan alt kan indtræffe. Continue reading “De bedste på casinoer ved hjælp af dansken afgift pr. september bedste online casinoer 2026”

Greatest No deposit Slot Bonuses Us No-deposit Totally free Spin 1 rows slot online Harbors

Just be sure that the internet casino you select are safely registered. This will make 3-reel ports one another an easy task to play and you will fun to experience. Look at the RTPs, and you can see these types of ports more than measure up. But these days, there are 3-reel harbors with many different modern have and most just one payline. But you can find a myriad of using signs you to align appear to to own achievements. Continue reading “Greatest No deposit Slot Bonuses Us No-deposit Totally free Spin 1 rows slot online Harbors”

Better Ethereum Casinos for mr bet free spins 2024 Best ETH Casino Web sites

Well-known NetEnt games i’ve tried are Starburst, Narcos, Gonzo’s Journey, and you can Inactive otherwise Real mr bet free spins time amongst others. Extremely Ethereum gambling enterprises features an alive broker casino part in which participants is also try out various other games under the guidance from a professional specialist. Continue reading “Better Ethereum Casinos for mr bet free spins 2024 Best ETH Casino Web sites”

The new 20 Free Spins No-deposit 2024 ️ best Tetraplay casino games Complete Number

We like your free spins can be used for the a couple of of the coolest online game up to. Although not, there is a 70x wagering demands, and therefore we believe is fairly higher. You’ll along with just be able to victory  a maximum of C$twenty-five from this Successful.io offer. Continue reading “The new 20 Free Spins No-deposit 2024 ️ best Tetraplay casino games Complete Number”

Inoffizieller Mr Bet offiziell iOS App mitarbeiter Online-Spielsaal unter einsatz von ein Handyrechnung saldieren

Erreichbar Casinos über Handyrechnung bezahlen within Österreich vermag eine einfache Opportunität sein, Guthaben über diesseitigen Mobilfunkvertrag unter anderem folgende Prepaid-Aufladung nach finanzieren. In wie weit die Zahlungsart tatsächlich zugänglich sei, hängt zudem vom Kasino, einem Zahlungsdienst, dem Mobilfunkanbieter ferner unserem jeweiligen Satz erst als. Continue reading “Inoffizieller Mr Bet offiziell iOS App mitarbeiter Online-Spielsaal unter einsatz von ein Handyrechnung saldieren”