/*! 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}} Gamble newest no deposit Lapalingo Free Slots On the internet within the Canada Zero Down load Ports 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

Gamble newest no deposit Lapalingo Free Slots On the internet within the Canada Zero Down load Ports

And, within the free internet games so you can winnings real cash you could gamble along with your no deposit bonus. As well as, the advantage applications of numerous workers tend to be normal games. Speaking of perpetual promotions one encourage normal productive participants. VegasSlotsOnline differs from all other web sites encouraging giving the finest no-deposit incentive codes. Continue reading “Gamble newest no deposit Lapalingo Free Slots On the internet within the Canada Zero Down load Ports”

Puzzle Every day 100 percent free Spins no no deposit Gratorama for existing players Deposit to own United kingdom Consumers Betfred

They are able to be also given included in a deposit bonus, for which you’ll discovered 100 percent free revolves once you include money for you personally. 100 percent free revolves may also really be given no deposit Gratorama for existing players when a different position comes out. There are numerous casinos on the internet in the Canada that offer zero put 100 percent free revolves. Continue reading “Puzzle Every day 100 percent free Spins no no deposit Gratorama for existing players Deposit to own United kingdom Consumers Betfred”

Top No-deposit Bonus Casinos online within the Sharky Slot Free slot machine 2024

Mention the primary issues less than to know what to search for within the a legit internet casino and ensure their sense is really as safer, fair and you may legitimate that you could. It is very important make certain real money casino games are legal where you are. I recommend checking regional regulations prior to signing up with people betting websites and deposit your hard-gained bucks. Continue reading “Top No-deposit Bonus Casinos online within the Sharky Slot Free slot machine 2024”

Angeschlossen Kein Einzahlungsbonus jewels of atlantis Casinos Echtgeld Nachfolgende Echtgeld Spielsaal Register 2026

Within diesseitigen Seitengassen des Kasino Squares abtauchen gegenseitig Hunderte von den besten Online Casinos. Planen Sie Die Fahrt folglich im Voraus unter anderem vernehmen Sie den Bewertungen, damit nachfolgende besten Tipps bei angewandten einheimischen Kasino-Communities dahinter erhalten. Bietet Ihnen ein Spielbank einen Provision aktiv, vermögen Die leser einen pauschal zurückweisen. Sie möchten den u.u. Continue reading “Angeschlossen Kein Einzahlungsbonus jewels of atlantis Casinos Echtgeld Nachfolgende Echtgeld Spielsaal Register 2026”

100 percent best online casino The War Of The Worlds free Revolves No-deposit SA Allege Free Revolves Bonuses in the 2024

By far the most desired-after low put now offers try accumulated within 1 deposit gambling establishment extra number, where all the offers is available which have the very least put away from £step 1. Our very own experts have come up with some guidance of harbors and this work such as better for the now offers stated. Continue reading “100 percent best online casino The War Of The Worlds free Revolves No-deposit SA Allege Free Revolves Bonuses in the 2024”

Top ten Online Roulette Sites the real Fortunejack 50 free spins no deposit deal Money Enjoy inside the 2024

That’s proper, that it pirate position goes far across the waters in which gifts wait for. While the cannons start capturing along the reels the big wins initiate future. You can also trigger the fresh Super Turbo option if you’d like to play fast and you may experience of many spins on the smallest you can time. Also it’s not a thing I would recommend carrying out unless of course you may have an excellent larger budget. Continue reading “Top ten Online Roulette Sites the real Fortunejack 50 free spins no deposit deal Money Enjoy inside the 2024”