/*! 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}} Instrument a sous Gratuites sans avoir í téléchargement Slot Big Bad Wolf en ligne : 3000+ Jeu pour Salle de jeu Gratis 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

Instrument a sous Gratuites sans avoir í téléchargement Slot Big Bad Wolf en ligne : 3000+ Jeu pour Salle de jeu Gratis

Je me nous apprenons dans les faits votre grammaire en compagnie de type de centre au 4 lieux de la scène internationnale ou cette sortie nos inédites machines à avec potentielles. Me agissons comme les interrogation législatives et autres gros jackpots progressives obtenus quelque peu partout dans le chefs d’entreprise. Continue reading “Instrument a sous Gratuites sans avoir í téléchargement Slot Big Bad Wolf en ligne : 3000+ Jeu pour Salle de jeu Gratis”

No-deposit Added bonus Rules & Free Spins Upgraded Each casino gratorama sign up bonus day

These revolves have a tendency to carry dramatically reduced wagering requirements versus no-deposit incentives. Deposit-based 100 percent free spins will be the most typical construction of a no cost spins bonus. Real-money web based casinos have a tendency to render twenty five in order to fifty no deposit totally free revolves for just signing up, and you can people profits always come with a tiny betting requirements. Continue reading “No-deposit Added bonus Rules & Free Spins Upgraded Each casino gratorama sign up bonus day”

Gamble Free Position Game lobster mania big win No Down load, Only Enjoyable!

To have a feeling of game you could twist totally free cycles to your, are a review of titles for example Dragon & Phoenix Slots to see exactly how have and you will paylines connect to extra enjoy. Meanwhile, the lobster mania big win fresh wagering standards (30x–50x inside the examples) and you can discounts imply you need to read terms just before saying. Continue reading “Gamble Free Position Game lobster mania big win No Down load, Only Enjoyable!”

Cool Fruit Frenzy Slot Play On line sizzling hot deluxe slot the real deal Currency

The fresh soundtrack goes with the newest optimistic graphics which have productive music you to has the fresh momentum going throughout the each other ft online game spins and you may incentive rounds. Trendy Fruit Frenzy Ports provides colourful gameplay across 5 reels and you can twenty five paylines, in which traditional good fresh fruit icons rating a modern makeover having vibrant animated graphics and you may satisfying bonus provides. Continue reading “Cool Fruit Frenzy Slot Play On line sizzling hot deluxe slot the real deal Currency”

Slot RTP queen of the nile slot for money Database 2026 3,799 Harbors, 15 Team

The thing is that, it’s maybe not a random percentage that is only plucked from obscurity. Therefore, come with us in the Lets Gamble Harbors observe just what it’s all about as well as how it can be utilized to know more info on a slot. The fresh RTP speed is something that is computed so that you’lso are having the direct details about it. Continue reading “Slot RTP queen of the nile slot for money Database 2026 3,799 Harbors, 15 Team”

Caractère gratification connexion apk ice casino salle de jeu sans classe : produits Canada 2026 ️

Indéniablement, quand un bonus sans nul conserve de 25 $ a cet envie en compagnie de abritée en compagnie de 30x, nos joueurs sont obligés de miser 600 $ avant de exécutif abriter nos comptabilités. On voit nombreux types de bonus sans avoir í conserve dont chacun pourra achopper avec la un’découverte pour casinos un tantinet. Des types véritablement comparables ressemblent les périodes sans frais, l’monnaie fixe, , ! les jetons sans frais. Continue reading “Caractère gratification connexion apk ice casino salle de jeu sans classe : produits Canada 2026 ️”