%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/projetos/stb.ind.br/wp-content/plugins/woo-variation-swatches/assets/js/
Upload File :
Create Path :
Current File : /var/www/projetos/stb.ind.br/wp-content/plugins/woo-variation-swatches/assets/js/frontend.js

/*!
 * Variation Swatches for WooCommerce v1.1.19 
 * 
 * Author: Emran Ahmed ( emran.bd.08@gmail.com ) 
 * Date: 07/09/2021
 * Released under the GPLv3 license.
 */
/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, {
/******/ 				configurable: false,
/******/ 				enumerable: true,
/******/ 				get: getter
/******/ 			});
/******/ 		}
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = 9);
/******/ })
/************************************************************************/
/******/ ({

/***/ 10:
/***/ (function(module, exports, __webpack_require__) {

jQuery(function ($) {

  Promise.resolve().then(function () {
    return __webpack_require__(11);
  }).then(function () {

    // Init on Ajax Popup :)
    $(document).on('wc_variation_form.wvs', '.variations_form:not(.wvs-loaded)', function (event) {
      $(this).WooVariationSwatches();
    });

    // Try to cover all ajax data complete
    $(document).ajaxComplete(function (event, request, settings) {
      _.delay(function () {
        $('.variations_form:not(.wvs-loaded)').each(function () {
          $(this).wc_variation_form();
        });
      }, 100);
    });

    // Support for Jetpack's Infinite Scroll,
    $(document.body).on('post-load.wvs', function () {
      $('.variations_form:not(.wvs-loaded)').each(function () {
        $(this).wc_variation_form();
      });
    });

    // Composite product load
    // JS API: https://docs.woocommerce.com/document/composite-products/composite-products-js-api-reference/
    $(document.body).on('wc-composite-initializing', '.composite_data', function (event, composite) {
      composite.actions.add_action('component_options_state_changed', function (self) {
        $(self.$component_content).find('.variations_form').removeClass('wvs-loaded wvs-pro-loaded');
      });

      /* composite.actions.add_action('active_scenarios_updated', (self) => {
         console.log('active_scenarios_updated')
         $(self.$component_content).find('.variations_form').removeClass('wvs-loaded wvs-pro-loaded')
       })*/
    });

    // Support for Yith Infinite Scroll
    $(document).on('yith_infs_added_elem.wvs', function () {
      $('.variations_form:not(.wvs-loaded)').each(function () {
        $(this).wc_variation_form();
      });
    });

    // Support for Yith Ajax Filter
    $(document).on('yith-wcan-ajax-filtered.wvs', function () {
      $('.variations_form:not(.wvs-loaded)').each(function () {
        $(this).wc_variation_form();
      });
    });

    // Support for Woodmart theme
    $(document).on('wood-images-loaded.wvs', function () {
      $('.variations_form:not(.wvs-loaded)').each(function () {
        $(this).wc_variation_form();
      });
    });

    // Support for berocket ajax filters
    $(document).on('berocket_ajax_products_loaded.wvs berocket_ajax_products_infinite_loaded.wvs', function () {
      $('.variations_form:not(.wvs-loaded)').each(function () {
        $(this).wc_variation_form();
      });
    });

    // Flatsome Infinite Scroll Support
    $('.shop-container .products, .infinite-scroll-wrap').on('append.infiniteScroll', function (event, response, path) {
      $('.variations_form:not(.wvs-loaded)').each(function () {
        $(this).wc_variation_form();
      });
    });

    // FacetWP Load More
    $(document).on('facetwp-loaded.wvs', function () {
      $('.variations_form:not(.wvs-loaded)').each(function () {
        $(this).wc_variation_form();
      });
    });

    // Savoy Load More
    $(document).on('nm_infload_after.wvs nm_ajax_shop_update_content.wvs', function () {
      $('.variations_form:not(.wvs-loaded)').each(function () {
        $(this).wc_variation_form();
      });
    });

    // WooCommerce Filter Nav
    $('body').on('aln_reloaded.wvs', function () {
      _.delay(function () {
        $('.variations_form:not(.wvs-loaded)').each(function () {
          $(this).wc_variation_form();
        });
      }, 100);
    });
  });
}); // end of jquery main wrapper

/***/ }),

/***/ 11:
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

// ================================================================
// WooCommerce Variation Swatches
/*global _, wc_add_to_cart_variation_params, woo_variation_swatches_options */
// ================================================================

var WooVariationSwatches = function ($) {

  var Default = {};

  var WooVariationSwatches = function () {
    function WooVariationSwatches(element, config) {
      _classCallCheck(this, WooVariationSwatches);

      // Assign
      this._element = element;
      this.$element = $(element);
      this._config = $.extend({}, Default, config);
      this._generated = {};
      this._out_of_stock = {};
      this._disabled = {};
      this.product_variations = this.$element.data('product_variations') || [];
      this.is_ajax_variation = this.product_variations.length < 1;
      this.product_id = this.$element.data('product_id');
      this.reset_variations = this.$element.find('.reset_variations');
      /*this.hidden_behaviour       = $('body').hasClass('woo-variation-swatches-attribute-behavior-hide');*/
      this.is_mobile = $('body').hasClass('woo-variation-swatches-on-mobile');
      this.selected_item_template = '<span class="woo-selected-variation-item-name" data-default=""></span>';

      this.$element.addClass('wvs-loaded');

      // Call
      this.init();
      this.update();

      // Trigger
      $(document).trigger('woo_variation_swatches', [this.$element]);
    }

    _createClass(WooVariationSwatches, [{
      key: 'init',
      value: function init() {
        var _this2 = this;

        var _this = this;

        this._generated = this.product_variations.reduce(function (obj, variation) {

          Object.keys(variation.attributes).map(function (attribute_name) {
            if (!obj[attribute_name]) {
              obj[attribute_name] = [];
            }

            if (variation.attributes[attribute_name]) {
              obj[attribute_name].push(variation.attributes[attribute_name]);
            }
          });

          return obj;
        }, {});

        this._out_of_stock = this.product_variations.reduce(function (obj, variation) {

          Object.keys(variation.attributes).map(function (attribute_name) {
            if (!obj[attribute_name]) {
              obj[attribute_name] = [];
            }

            if (variation.attributes[attribute_name] && !variation.is_in_stock) {
              obj[attribute_name].push(variation.attributes[attribute_name]);
            }
          });

          return obj;
        }, {});

        // Append Selected Item Template
        if (woo_variation_swatches_options.show_variation_label) {
          this.$element.find('.variations .label').each(function (index, el) {
            $(el).append(_this2.selected_item_template);
          });
        }

        this.$element.find('ul.variable-items-wrapper').each(function (i, el) {

          $(this).parent().addClass('woo-variation-items-wrapper');

          var select = $(this).siblings('select.woo-variation-raw-select');
          var selected = '';
          var options = select.find('option');
          var disabled = select.find('option:disabled');
          var out_of_stock = select.find('option.enabled.out-of-stock');
          var current = select.find('option:selected');
          var eq = select.find('option').eq(1);

          var li = $(this).find('li:not(.woo-variation-swatches-variable-item-more)');
          var reselect_clear = $(this).hasClass('reselect-clear');

          var mouse_event_name = 'click.wvs'; // 'touchstart click';

          var attribute = $(this).data('attribute_name');
          // let attribute_values = ((_this.is_ajax_variation) ? [] : _this._generated[attribute])
          // let out_of_stocks = ((_this.is_ajax_variation) ? [] : _this._out_of_stock[attribute])
          var selects = [];
          var disabled_selects = [];
          var out_of_stock_selects = [];
          var $selected_variation_item = $(this).parent().prev().find('.woo-selected-variation-item-name');

          // For Avada FIX
          if (options.length < 1) {
            select = $(this).parent().find('select.woo-variation-raw-select');
            options = select.find('option');
            disabled = select.find('option:disabled');
            out_of_stock = select.find('option.enabled.out-of-stock');
            current = select.find('option:selected');
            eq = select.find('option').eq(1);
          }

          options.each(function () {
            if ($(this).val() !== '') {
              selects.push($(this).val());
              selected = current.length === 0 ? eq.val() : current.val();
            }
          });

          disabled.each(function () {
            if ($(this).val() !== '') {
              disabled_selects.push($(this).val());
            }
          });

          // Out Of Stocks
          out_of_stock.each(function () {
            if ($(this).val() !== '') {
              out_of_stock_selects.push($(this).val());
            }
          });

          var in_stocks = _.difference(selects, disabled_selects);

          // console.log('out of stock', out_of_stock_selects)
          // console.log('in stock', in_stocks)

          var available = _.difference(in_stocks, out_of_stock_selects);

          // Mark Selected
          li.each(function (index, li) {

            var attribute_value = $(this).attr('data-value');
            var attribute_title = $(this).attr('data-title');

            // Resetting LI
            $(this).removeClass('selected disabled out-of-stock').addClass('disabled');
            $(this).attr('aria-checked', 'false');
            $(this).attr('tabindex', '-1');

            if ($(this).hasClass('radio-variable-item')) {
              $(this).find('input.wvs-radio-variable-item:radio').prop('disabled', true).prop('checked', false);
            }

            // Default Selected
            // We can't use es6 includes for IE11
            // in_stocks.includes(attribute_value)
            // _.contains(in_stocks, attribute_value)
            // _.includes(in_stocks, attribute_value)

            if (_.includes(in_stocks, attribute_value)) {

              $(this).removeClass('selected disabled');
              $(this).removeAttr('aria-hidden');
              $(this).attr('tabindex', '0');

              $(this).find('input.wvs-radio-variable-item:radio').prop('disabled', false);

              if (attribute_value === selected) {

                $(this).addClass('selected');
                $(this).attr('aria-checked', 'true');

                if (woo_variation_swatches_options.show_variation_label) {
                  $selected_variation_item.text(woo_variation_swatches_options.variation_label_separator + ' ' + attribute_title);
                }

                if ($(this).hasClass('radio-variable-item')) {
                  $(this).find('input.wvs-radio-variable-item:radio').prop('checked', true);
                }
              }
            }

            // Out of Stock

            if (available.length > 0 && _.includes(out_of_stock_selects, attribute_value) && woo_variation_swatches_options.clickable_out_of_stock) {
              $(this).removeClass('disabled').addClass('out-of-stock');
            }
          });

          // Trigger Select event based on list

          if (reselect_clear) {
            // Non Selected Item Should Select
            $(this).on(mouse_event_name, 'li:not(.selected):not(.radio-variable-item):not(.woo-variation-swatches-variable-item-more)', function (e) {
              e.preventDefault();
              e.stopPropagation();
              var value = $(this).data('value');
              select.val(value).trigger('change');
              select.trigger('click');

              select.trigger('focusin');

              if (_this.is_mobile) {
                select.trigger('touchstart');
              }

              $(this).trigger('focus'); // Mobile tooltip
              $(this).trigger('wvs-selected-item', [value, select, _this.$element]); // Custom Event for li
            });

            // Selected Item Should Non Select
            $(this).on(mouse_event_name, 'li.selected:not(.radio-variable-item):not(.woo-variation-swatches-variable-item-more)', function (e) {
              e.preventDefault();
              e.stopPropagation();

              var value = $(this).val();

              select.val('').trigger('change');
              select.trigger('click');

              select.trigger('focusin');

              if (_this.is_mobile) {
                select.trigger('touchstart');
              }

              $(this).trigger('focus'); // Mobile tooltip

              $(this).trigger('wvs-unselected-item', [value, select, _this.$element]); // Custom Event for li
            });

            // RADIO

            // On Click trigger change event on Radio button
            $(this).on(mouse_event_name, 'input.wvs-radio-variable-item:radio', function (e) {

              e.stopPropagation();

              $(this).trigger('change.wvs', { radioChange: true });
            });

            $(this).on('change.wvs', 'input.wvs-radio-variable-item:radio', function (e, params) {

              e.preventDefault();
              e.stopPropagation();

              if (params && params.radioChange) {

                var value = $(this).val();
                var is_selected = $(this).parent('li.radio-variable-item').hasClass('selected');

                if (is_selected) {
                  select.val('').trigger('change');
                  $(this).parent('li.radio-variable-item').trigger('wvs-unselected-item', [value, select, _this.$element]); // Custom Event for li
                } else {
                  select.val(value).trigger('change');
                  $(this).parent('li.radio-variable-item').trigger('wvs-selected-item', [value, select, _this.$element]); // Custom Event for li
                }

                select.trigger('click');
                select.trigger('focusin');
                if (_this.is_mobile) {
                  select.trigger('touchstart');
                }
              }
            });
          } else {

            $(this).on(mouse_event_name, 'li:not(.radio-variable-item):not(.woo-variation-swatches-variable-item-more)', function (event) {

              event.preventDefault();
              event.stopPropagation();

              var value = $(this).data('value');
              select.val(value).trigger('change');
              select.trigger('click');
              select.trigger('focusin');
              if (_this.is_mobile) {
                select.trigger('touchstart');
              }

              $(this).trigger('focus'); // Mobile tooltip

              $(this).trigger('wvs-selected-item', [value, select, _this._element]); // Custom Event for li
            });

            // Radio
            $(this).on('change.wvs', 'input.wvs-radio-variable-item:radio', function (event) {
              event.preventDefault();
              event.stopPropagation();

              var value = $(this).val();

              select.val(value).trigger('change');
              select.trigger('click');
              select.trigger('focusin');

              if (_this.is_mobile) {
                select.trigger('touchstart');
              }

              // Radio
              $(this).parent('li.radio-variable-item').removeClass('selected disabled').addClass('selected');
              $(this).parent('li.radio-variable-item').trigger('wvs-selected-item', [value, select, _this.$element]); // Custom Event for li
            });
          }

          // Keyboard Access
          $(this).on('keydown.wvs', 'li:not(.disabled):not(.woo-variation-swatches-variable-item-more)', function (event) {
            if (event.keyCode && 32 === event.keyCode || event.key && ' ' === event.key || event.keyCode && 13 === event.keyCode || event.key && 'enter' === event.key.toLowerCase()) {
              event.preventDefault();
              $(this).trigger(mouse_event_name);
            }
          });
        });

        this.$element.trigger('woo_variation_swatches_init', [this, this.product_variations]);

        $(document).trigger('woo_variation_swatches_loaded', [this.$element, this.product_variations]);
      }
    }, {
      key: 'update',
      value: function update() {

        var _this = this;
        this.$element.off('woocommerce_variation_has_changed.wvs');
        this.$element.on('woocommerce_variation_has_changed.wvs', function (event) {

          // Don't use any propagation. It will disable composit product functionality
          // event.stopPropagation();

          $(this).find('ul.variable-items-wrapper').each(function (index, el) {

            var select = $(this).siblings('select.woo-variation-raw-select');
            var selected = '';
            var options = select.find('option');
            var disabled = select.find('option:disabled');
            var out_of_stock = select.find('option.enabled.out-of-stock');
            var current = select.find('option:selected');
            var eq = select.find('option').eq(1);
            var li = $(this).find('li:not(.woo-variation-swatches-variable-item-more)');

            //let reselect_clear   = $(this).hasClass('reselect-clear');
            //let is_mobile        = $('body').hasClass('woo-variation-swatches-on-mobile');
            //let mouse_event_name = 'click.wvs'; // 'touchstart click';

            var attribute = $(this).data('attribute_name');
            // let attribute_values = ((_this.is_ajax_variation) ? [] : _this._generated[attribute])
            // let out_of_stocks = ((_this.is_ajax_variation) ? [] : _this._out_of_stock[attribute])

            var selects = [];
            var disabled_selects = [];
            var out_of_stock_selects = [];
            var $selected_variation_item = $(this).parent().prev().find('.woo-selected-variation-item-name');

            // For Avada FIX
            if (options.length < 1) {
              select = $(this).parent().find('select.woo-variation-raw-select');
              options = select.find('option');
              disabled = select.find('option:disabled');
              out_of_stock = select.find('option.enabled.out-of-stock');
              current = select.find('option:selected');
              eq = select.find('option').eq(1);
            }

            options.each(function () {
              if ($(this).val() !== '') {
                selects.push($(this).val());
                // selected = current ? current.val() : eq.val()
                selected = current.length === 0 ? eq.val() : current.val();
              }
            });

            disabled.each(function () {
              if ($(this).val() !== '') {
                disabled_selects.push($(this).val());
              }
            });

            // Out Of Stocks
            out_of_stock.each(function () {
              if ($(this).val() !== '') {
                out_of_stock_selects.push($(this).val());
              }
            });

            var in_stocks = _.difference(selects, disabled_selects);

            var available = _.difference(in_stocks, out_of_stock_selects);

            if (_this.is_ajax_variation) {

              li.each(function (index, el) {

                var attribute_value = $(this).attr('data-value');
                var attribute_title = $(this).attr('data-title');

                $(this).removeClass('selected disabled');
                $(this).attr('aria-checked', 'false');

                // To Prevent blink
                if (selected.length < 1 && woo_variation_swatches_options.show_variation_label) {
                  $selected_variation_item.text('');
                }

                if (attribute_value === selected) {
                  $(this).addClass('selected');
                  $(this).attr('aria-checked', 'true');

                  if (woo_variation_swatches_options.show_variation_label) {
                    $selected_variation_item.text(woo_variation_swatches_options.variation_label_separator + ' ' + attribute_title);
                  }

                  if ($(this).hasClass('radio-variable-item')) {
                    $(this).find('input.wvs-radio-variable-item:radio').prop('disabled', false).prop('checked', true);
                  }
                }

                $(this).trigger('wvs-item-updated', [selected, attribute_value, _this]);
              });
            } else {

              li.each(function (index, el) {

                var attribute_value = $(this).attr('data-value');
                var attribute_title = $(this).attr('data-title');

                $(this).removeClass('selected disabled out-of-stock').addClass('disabled');
                $(this).attr('aria-checked', 'false');
                $(this).attr('tabindex', '-1');

                if ($(this).hasClass('radio-variable-item')) {
                  $(this).find('input.wvs-radio-variable-item:radio').prop('disabled', true).prop('checked', false);
                }

                // if (_.contains(selects, value))
                // if (_.indexOf(selects, value) !== -1)
                // if (selects.includes(value))

                // We can't use es6 includes for IE11
                // in_stocks.includes(attribute_value)
                // _.contains(in_stocks, attribute_value)
                // _.includes(in_stocks, attribute_value)

                // Make Selected // selects.includes(attribute_value) // in_stocks
                if (_.includes(in_stocks, attribute_value)) {

                  $(this).removeClass('selected disabled');
                  $(this).removeAttr('aria-hidden');
                  $(this).attr('tabindex', '0');

                  $(this).find('input.wvs-radio-variable-item:radio').prop('disabled', false);

                  // To Prevent blink
                  if (selected.length < 1 && woo_variation_swatches_options.show_variation_label) {
                    $selected_variation_item.text('');
                  }

                  if (attribute_value === selected) {

                    $(this).addClass('selected');
                    $(this).attr('aria-checked', 'true');

                    if (woo_variation_swatches_options.show_variation_label) {
                      $selected_variation_item.text(woo_variation_swatches_options.variation_label_separator + ' ' + attribute_title);
                    }

                    if ($(this).hasClass('radio-variable-item')) {
                      $(this).find('input.wvs-radio-variable-item:radio').prop('checked', true);
                    }
                  }
                }

                // Out of Stock
                if (available.length > 0 && _.includes(out_of_stock_selects, attribute_value) && woo_variation_swatches_options.clickable_out_of_stock) {
                  $(this).removeClass('disabled').addClass('out-of-stock');
                }

                $(this).trigger('wvs-item-updated', [selected, attribute_value, _this]);
              });
            }

            // Items Updated
            $(this).trigger('wvs-items-updated');
          });
        });
      }
    }], [{
      key: '_jQueryInterface',
      value: function _jQueryInterface(config) {
        return this.each(function () {
          new WooVariationSwatches(this, config);
        });
      }
    }]);

    return WooVariationSwatches;
  }();

  /**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
   */

  $.fn['WooVariationSwatches'] = WooVariationSwatches._jQueryInterface;
  $.fn['WooVariationSwatches'].Constructor = WooVariationSwatches;
  $.fn['WooVariationSwatches'].noConflict = function () {
    $.fn['WooVariationSwatches'] = $.fn['WooVariationSwatches'];
    return WooVariationSwatches._jQueryInterface;
  };

  return WooVariationSwatches;
}(jQuery);

/* harmony default export */ __webpack_exports__["default"] = (WooVariationSwatches);

/***/ }),

/***/ 9:
/***/ (function(module, exports, __webpack_require__) {

module.exports = __webpack_require__(10);


/***/ })

/******/ });

Zerion Mini Shell 1.0