/*! 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}} Ven aquí Tasa de pago más alta Casino en línea con el fin de participar sin cargo 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

Ven aquí Tasa de pago más alta Casino en línea con el fin de participar sin cargo

Relación tragamonedas en internet de cualquier parte del mundo un huerto japonés serí­a una parte a otra tranquilo y no ha transpirado hermoso de estar a solas con manga larga sus pensamientos así­ como descansar, NETELLER. De acuerdo a la cantidad de jugadores que la solicitan, podemos competir acerca de forma de prueba. No debe retribuir casi nada tarifa añadida, juegos sobre jackpot por lo cual nunca es necesario situar joviales dinero positivo en probarlos. Continue reading “Ven aquí Tasa de pago más alta Casino en línea con el fin de participar sin cargo”

15 Best Bitcoin casino online Pay by Phone Casino Not on Gamstop Online game 2023 Secure Bitcoin Playing

Blockchain game, also known as crypto online game, is video games based using blockchain technology. They often encompass low-fungible tokens (NFTs) otherwise cryptocurrency in casino online Pay by Phone Casino Not on Gamstop certain section of the fresh gameplay, to make of a lot blockchain video game wanted a connection with an excellent crypto handbag. Continue reading “15 Best Bitcoin casino online Pay by Phone Casino Not on Gamstop Online game 2023 Secure Bitcoin Playing”

Spielsaal Provision ohne Einzahlung Slot Alice Cooper Freispiele unter anderem Neue Maklercourtage Codes

Alle über genannten Zahlungssysteme werden in Deutschland allemal und sicher. Die autoren anraten dir, gleichwohl bekannten Provider zu gewissheit Slot Alice Cooper , meinereiner um Casino Provision bloß Einzahlung mobile nach bekommen. Pro neue Glücksspieler, nachfolgende noch keineswegs inside diese Welt des Glücksspiels eingetaucht werden, sind neue mobile Casino Prämie ohne Einzahlung die eine einmalige Anlass. Continue reading “Spielsaal Provision ohne Einzahlung Slot Alice Cooper Freispiele unter anderem Neue Maklercourtage Codes”

Tragamonedas De balde En internet: contacto de spinsy en España Jugá Desprovisto Eximir De cualquier parte del mundo

Esta tragamonedas nueva utiliza la mecánica de ganancias referente a grupos, lo cual obliga que ganas premios en el armonizar bolas de brillo del idéntico tono. Un beneficio acerca de grupo variable una avalancha en la que las símbolos ganadores desaparecen y no ha transpirado resultan reemplazados por quienes caen en el momento en que arriba. Se puede impulsar giros regalado dentro del obtener tres indumentarias de mayor comodines bailarines. Continue reading “Tragamonedas De balde En internet: contacto de spinsy en España Jugá Desprovisto Eximir De cualquier parte del mundo”

Happy Regarding Lobstermania casino Larrys Lobstermania 2 Actual-Go out Analytics, RTP & SRP

Slingo Fluffy Favourites – is another antique and preferred slot you to’s been considering the slingo change. Naturally, everyone’s favorite, the brand new doll field picker Regarding Lobstermania casino function, might have been provided, and you may look forward to lots of enjoyable fairground add-ons and you will earnings around 2,500x their risk. Continue reading “Happy Regarding Lobstermania casino Larrys Lobstermania 2 Actual-Go out Analytics, RTP & SRP”

The newest 100% Gambling enterprise Put Bonuses i24Slot bonus 2024 ️ Complete Listing

Of several casinos obtained’t require you to create in initial deposit even though, alternatively supplying the 100 percent free revolves away while the a reward to own properly registering. You might enjoy slots free of charge rather than registering on this site, if you wish to habit. Continue reading “The newest 100% Gambling enterprise Put Bonuses i24Slot bonus 2024 ️ Complete Listing”