/******/ (function() { // webpackBootstrap
var __webpack_exports__ = {};
/*!*****************************************************!*\
  !*** ./assets/src/apps/js/admin/pages/statistic.js ***!
  \*****************************************************/
(function ($) {
  $.fn.LP_Chart_Line = function (data, config) {
    return $.each(this, function () {
      const $elem = $(this),
            $canvas = $('<canvas />');
      $elem.html('');
      $canvas.appendTo($elem);
      var lineChart = new Chart($canvas, {
        type: 'line',
        data: data,
        options: config
      });
    }); //
  };

  $.fn.LP_Statistic_Users = function () {
    if (parseInt($(this).length) === 0) {
      return;
    }

    return $.each(this, function () {
      const $buttons = $('.chart-buttons button').on('click', function () {
        const $button = $(this),
              type = $button.data('type');
        let from = '',
            to = '';
        $buttons.not(this).not('[data-type="user-custom-time"]').prop('disabled', false);

        if (type == 'user-custom-time') {
          from = $('#user-custom-time input[name="from"]').val();
          to = $('#user-custom-time input[name="to"]').val();

          if (from == '' || to == '') {
            return false;
          }
        } else {
          $button.prop('disabled', true);
        }

        const $container = $('#learn-press-chart');
        $container.addClass('loading');
        $.ajax({
          url: 'admin-ajax.php',
          data: {
            action: 'learnpress_load_chart',
            type,
            range: [from, to]
          },
          dataType: 'text',

          success(response) {
            response = LP.parseJSON(response);
            $container.LP_Chart_Line(response, LP_Chart_Config);
            $container.removeClass('loading');
          }

        });
        return false;
      }),
            $inputs = $('.chart-buttons #user-custom-time input[type="text"]').on('change', function () {
        const _valid_date = function () {
          if (new Date($inputs[0].value) < new Date($inputs[1].value)) {
            return true;
          }
        };

        $buttons.filter('[data-type="user-custom-time"]').prop('disabled', $inputs.filter(function () {
          return this.value == '';
        }).get().length || !_valid_date());
      });
    });
  };

  $.fn.LP_Statistic_Courses = function () {
    if (parseInt($(this).length) === 0) {
      return;
    }

    return $.each(this, function () {
      var $buttons = $('.chart-buttons button').on('click', function () {
        let $button = $(this),
            type = $button.data('type'),
            from = '',
            to = '',
            $container = $('#learn-press-chart');
        $buttons.not(this).not('[data-type="course-custom-time"]').prop('disabled', false);

        if (type == 'course-custom-time') {
          from = $('#course-custom-time input[name="from"]').val();
          to = $('#course-custom-time input[name="to"]').val();

          if (from == '' || to == '') {
            return false;
          }
        } else {
          $button.prop('disabled', true);
        }

        $container.addClass('loading');
        $.ajax({
          url: 'admin-ajax.php',
          data: {
            action: 'learnpress_load_chart',
            type,
            range: [from, to]
          },
          dataType: 'text',

          success(response) {
            response = LP.parseJSON(response);
            $container.LP_Chart_Line(response, LP_Chart_Config);
            $container.removeClass('loading');
          }

        });
        return false;
      }),
          $inputs = $('.chart-buttons #course-custom-time input[type="text"]').on('change', function () {
        const _valid_date = function () {
          if (new Date($inputs[0].value) < new Date($inputs[1].value)) {
            return true;
          }
        };

        $buttons.filter('[data-type="course-custom-time"]').prop('disabled', $inputs.filter(function () {
          return this.value == '';
        }).get().length || !_valid_date());
      });
    });
  };

  $.fn.LP_Statistic_Orders = function () {
    if (parseInt($(this).length) === 0) {
      return;
    }

    $('.panel_report_option').hide();
    $('#panel_report_sales_by_' + $('#report_sales_by').val()).show();
    $('#report_sales_by').on('change', function () {
      $('.panel_report_option').hide();
      $('#panel_report_sales_by_' + $(this).val()).show();

      if ('date' == $(this).val()) {
        LP_Statistic_Orders_Upgrade_Chart();
      }
    });
    /**
     * Upgrade Chart for Order Statistics
     *
     * @return {boolean}
     */

    var LP_Statistic_Orders_Upgrade_Chart = function () {
      let type = '',
          from = '',
          to = '',
          report_sales_by = 'date',
          cat_id = 0,
          course_id = 0;
      report_sales_by = $('#report_sales_by').val();
      $container = $('#learn-press-chart');
      $container.addClass('loading'); // get type

      const $buttons = $('.chart-buttons button:disabled').not('[data-type="order-custom-time"]');

      if (parseInt($buttons.length) > 0) {
        type = $($buttons[0]).data('type');
      } else {
        type = 'order-custom-time';
        from = $('#order-custom-time input[name="from"]').val();
        to = $('#order-custom-time input[name="to"]').val();

        if (from == '' || to == '') {
          return false;
        }
      }

      if ('course' === report_sales_by) {
        course_id = $('#report-by-course-id').val();
      } else if ('category' === report_sales_by) {
        cat_id = $('#report-by-course-category-id').val();
      }

      $.ajax({
        url: 'admin-ajax.php',
        data: {
          action: 'learnpress_load_chart',
          type,
          range: [from, to],
          report_sales_by,
          course_id,
          cat_id
        },
        dataType: 'text',

        success(response) {
          response = LP.parseJSON(response);
          $container.LP_Chart_Line(response, LP_Chart_Config);
          $container.removeClass('loading');
        }

      });
    };

    $('#report-by-course-id').select2({
      placeholder: 'Select a course',
      minimumInputLength: 1,
      ajax: {
        url: ajaxurl + '?action=learnpress_search_course',
        dataType: 'json',
        quietMillis: 250,

        data(term, page) {
          return {
            q: term // search term

          };
        },

        results(data, page) {
          return {
            results: data.items
          };
        },

        cache: true
      }
    });
    $('#report-by-course-id').on('change', function () {
      LP_Statistic_Orders_Upgrade_Chart();
    });
    $('#report-by-course-category-id').select2({
      placeholder: 'Select a course',
      minimumInputLength: 1,
      ajax: {
        url: ajaxurl + '?action=learnpress_search_course_category',
        dataType: 'json',
        quietMillis: 250,

        data(term, page) {
          return {
            q: term // search term

          };
        },

        results(data, page) {
          return {
            results: data.items
          };
        },

        cache: true
      }
    });
    $('#report-by-course-category-id').on('change', function () {
      LP_Statistic_Orders_Upgrade_Chart();
    });
    var $buttons = $('.chart-buttons button').on('click', function () {
      const $button = $(this),
            type = $button.data('type'),
            from = '',
            to = '',
            $container = $('#learn-press-chart');
      $buttons.not(this).not('[data-type="order-custom-time"]').prop('disabled', false);

      if (type !== 'order-custom-time') {
        $button.prop('disabled', true);
        $('#order-custom-time input[name="from"]').val('');
        $('#order-custom-time input[name="to"]').val('');
      }

      LP_Statistic_Orders_Upgrade_Chart();
      return false;
    });
    var $inputs = $('.chart-buttons #order-custom-time input[type="text"]').on('change', function () {
      const _valid_date = function () {
        if (new Date($inputs[0].value) < new Date($inputs[1].value)) {
          return true;
        }
      };

      $buttons.filter('[data-type="order-custom-time"]').prop('disabled', $inputs.filter(function () {
        return this.value == '';
      }).get().length || !_valid_date());
    });
  };

  $(function () {
    if (typeof $.fn.datepicker != 'undefined') {
      $('.date-picker').datepicker({
        dateFormat: 'yy/mm/dd'
      });
    }

    $('.learn-press-statistic-users').LP_Statistic_Users();
    $('.learn-press-statistic-courses').LP_Statistic_Courses();
    $('.learn-press-statistic-orders').LP_Statistic_Orders();
  });
  return;
})(jQuery);
/******/ })()
;
//# sourceMappingURL=statistic.js.map