text: ﻿'use strict';
  
  Object.defineProperty(exports, '__esModule', {
    value: true
  });
  
  var _isIE8 = require('./utils');
  
  var _getModal$getInput$setFocusStyle = require('./handle-swal-dom');
  
  var _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide = require('./handle-dom');
  
  var alertTypes = ['error', 'warning', 'info', 'success', 'input', 'prompt'];
  
  /*
   * Set type, text and actions on modal
   */
  var setParameters = function setParameters(params) {
    var modal = _getModal$getInput$setFocusStyle.getModal();
  
    var $title = modal.querySelector('h2');
    var $text = modal.querySelector('p');
    var $cancelBtn = modal.querySelector('button.cancel');
    var $confirmBtn = modal.querySelector('button.confirm');
  
    /*
     * Title
     */
    $title.innerHTML = params.html ? params.title : _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.escapeHtml(params.title).split('\n').join('<br>');
  
    /*
     * Text
     */
    $text.innerHTML = params.html ? params.text : _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.escapeHtml(params.text || '').split('\n').join('<br>');
    if (params.text) _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.show($text);
  
    /*
     * Custom class
     */
    if (params.customClass) {
      _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass(modal, params.customClass);
      modal.setAttribute('data-custom-class', params.customClass);
    } else {
      // Find previously set classes and remove them
      var customClass = modal.getAttribute('data-custom-class');
      _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.removeClass(modal, customClass);
      modal.setAttribute('data-custom-class', '');
    }
  
    /*
     * Icon
     */
    _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.hide(modal.querySelectorAll('.sa-icon'));
  
    if (params.type && !_isIE8.isIE8()) {
      var _ret = (function () {
  
        var validType = false;
  
        for (var i = 0; i < alertTypes.length; i++) {
          if (params.type === alertTypes[i]) {
            validType = true;
            break;
          }
        }
  
        if (!validType) {
          logStr('Unknown alert type: ' + params.type);
          return {
            v: false
          };
        }
  
        var typesWithIcons = ['success', 'error', 'warning', 'info'];
        var $icon = undefined;
  
        if (typesWithIcons.indexOf(params.type) !== -1) {
          $icon = modal.querySelector('.sa-icon.' + 'sa-' + params.type);
          _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.show($icon);
        }
  
        var $input = _getModal$getInput$setFocusStyle.getInput();
  
        // Animate icon
        switch (params.type) {
  
          case 'success':
            _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon, 'animate');
            _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon.querySelector('.sa-tip'), 'animateSuccessTip');
            _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon.querySelector('.sa-long'), 'animateSuccessLong');
            break;
  
          case 'error':
            _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon, 'animateErrorIcon');
            _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon.querySelector('.sa-x-mark'), 'animateXMark');
            break;
  
          case 'warning':
            _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon, 'pulseWarning');
            _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon.querySelector('.sa-body'), 'pulseWarningIns');
            _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass($icon.querySelector('.sa-dot'), 'pulseWarningIns');
            break;
  
          case 'input':
          case 'prompt':
            $input.setAttribute('type', params.inputType);
            $input.value = params.inputValue;
            $input.setAttribute('placeholder', params.inputPlaceholder);
            _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.addClass(modal, 'show-input');
            setTimeout(function () {
              $input.focus();
              $input.addEventListener('keyup', swal.resetInputError);
            }, 400);
            break;
        }
      })();
  
      if (typeof _ret === 'object') {
        return _ret.v;
      }
    }
  
    /*
     * Custom image
     */
    if (params.imageUrl) {
      var $customIcon = modal.querySelector('.sa-icon.sa-custom');
  
      $customIcon.style.backgroundImage = 'url(' + params.imageUrl + ')';
      _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.show($customIcon);
  
      var _imgWidth = 80;
      var _imgHeight = 80;
  
      if (params.imageSize) {
        var dimensions = params.imageSize.toString().split('x');
        var imgWidth = dimensions[0];
        var imgHeight = dimensions[1];
  
        if (!imgWidth || !imgHeight) {
          logStr('Parameter imageSize expects value with format WIDTHxHEIGHT, got ' + params.imageSize);
        } else {
          _imgWidth = imgWidth;
          _imgHeight = imgHeight;
        }
      }
  
      $customIcon.setAttribute('style', $customIcon.getAttribute('style') + 'width:' + _imgWidth + 'px; height:' + _imgHeight + 'px');
    }
  
    /*
     * Show cancel button?
     */
    modal.setAttribute('data-has-cancel-button', params.showCancelButton);
    if (params.showCancelButton) {
      $cancelBtn.style.display = 'inline-block';
    } else {
      _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.hide($cancelBtn);
    }
  
    /*
     * Show confirm button?
     */
    modal.setAttribute('data-has-confirm-button', params.showConfirmButton);
    if (params.showConfirmButton) {
      $confirmBtn.style.display = 'inline-block';
    } else {
      _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.hide($confirmBtn);
    }
  
    /*
     * Custom text on cancel/confirm buttons
     */
    if (params.cancelButtonText) {
      $cancelBtn.innerHTML = _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.escapeHtml(params.cancelButtonText);
    }
    if (params.confirmButtonText) {
      $confirmBtn.innerHTML = _hasClass$addClass$removeClass$escapeHtml$_show$show$_hide$hide.escapeHtml(params.confirmButtonText);
    }
  
    /*
     * Custom color on confirm button
     */
    if (params.confirmButtonColor) {
      // Set confirm button to selected background color
      $confirmBtn.style.backgroundColor = params.confirmButtonColor;
  
      // Set the confirm button color to the loading ring
      $confirmBtn.style.borderLeftColor = params.confirmLoadingButtonColor;
      $confirmBtn.style.borderRightColor = params.confirmLoadingButtonColor;
  
      // Set box-shadow to default focused button
      _getModal$getInput$setFocusStyle.setFocusStyle($confirmBtn, params.confirmButtonColor);
    }
  
    /*
     * Allow outside click
     */
    modal.setAttribute('data-allow-outside-click', params.allowOutsideClick);
  
    /*
     * Callback function
     */
    var hasDoneFunction = params.doneFunction ? true : false;
    modal.setAttribute('data-has-done-function', hasDoneFunction);
  
    /*
     * Animation
     */
    if (!params.animation) {
      modal.setAttribute('data-animation', 'none');
    } else if (typeof params.animation === 'string') {
      modal.setAttribute('data-animation', params.animation); // Custom animation
    } else {
      modal.setAttribute('data-animation', 'pop');
    }
  
    /*
     * Timer
     */
    modal.setAttribute('data-timer', params.timer);
  };
  
  exports['default'] = setParameters;
  module.exports = exports['default'];