| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428 | /*! * bsStepper v1.7.0 (https://github.com/Johann-S/bs-stepper) * Copyright 2018 - 2019 Johann-S <johann.servoire@gmail.com> * Licensed under MIT (https://github.com/Johann-S/bs-stepper/blob/master/LICENSE) */(function (global, factory) {  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :  typeof define === 'function' && define.amd ? define(factory) :  (global = global || self, global.Stepper = factory());}(this, function () { 'use strict';  function _extends() {    _extends = Object.assign || function (target) {      for (var i = 1; i < arguments.length; i++) {        var source = arguments[i];        for (var key in source) {          if (Object.prototype.hasOwnProperty.call(source, key)) {            target[key] = source[key];          }        }      }      return target;    };    return _extends.apply(this, arguments);  }  var matches = window.Element.prototype.matches;  var closest = function closest(element, selector) {    return element.closest(selector);  };  var WinEvent = function WinEvent(inType, params) {    return new window.Event(inType, params);  };  var createCustomEvent = function createCustomEvent(eventName, params) {    var cEvent = new window.CustomEvent(eventName, params);    return cEvent;  };  /* istanbul ignore next */  function polyfill() {    if (!window.Element.prototype.matches) {      matches = window.Element.prototype.msMatchesSelector || window.Element.prototype.webkitMatchesSelector;    }    if (!window.Element.prototype.closest) {      closest = function closest(element, selector) {        if (!document.documentElement.contains(element)) {          return null;        }        do {          if (matches.call(element, selector)) {            return element;          }          element = element.parentElement || element.parentNode;        } while (element !== null && element.nodeType === 1);        return null;      };    }    if (!window.Event || typeof window.Event !== 'function') {      WinEvent = function WinEvent(inType, params) {        params = params || {};        var e = document.createEvent('Event');        e.initEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable));        return e;      };    }    if (typeof window.CustomEvent !== 'function') {      var originPreventDefault = window.Event.prototype.preventDefault;      createCustomEvent = function createCustomEvent(eventName, params) {        var evt = document.createEvent('CustomEvent');        params = params || {          bubbles: false,          cancelable: false,          detail: null        };        evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail);        evt.preventDefault = function () {          if (!this.cancelable) {            return;          }          originPreventDefault.call(this);          Object.defineProperty(this, 'defaultPrevented', {            get: function get() {              return true;            }          });        };        return evt;      };    }  }  polyfill();  var MILLISECONDS_MULTIPLIER = 1000;  var ClassName = {    ACTIVE: 'active',    LINEAR: 'linear',    BLOCK: 'dstepper-block',    NONE: 'dstepper-none',    FADE: 'fade',    VERTICAL: 'vertical'  };  var transitionEndEvent = 'transitionend';  var customProperty = 'bsStepper';  var show = function show(stepperNode, indexStep, options, done) {    var stepper = stepperNode[customProperty];    if (stepper._steps[indexStep].classList.contains(ClassName.ACTIVE) || stepper._stepsContents[indexStep].classList.contains(ClassName.ACTIVE)) {      return;    }    var showEvent = createCustomEvent('show.bs-stepper', {      cancelable: true,      detail: {        from: stepper._currentIndex,        to: indexStep,        indexStep: indexStep      }    });    stepperNode.dispatchEvent(showEvent);    var activeStep = stepper._steps.filter(function (step) {      return step.classList.contains(ClassName.ACTIVE);    });    var activeContent = stepper._stepsContents.filter(function (content) {      return content.classList.contains(ClassName.ACTIVE);    });    if (showEvent.defaultPrevented) {      return;    }    if (activeStep.length) {      activeStep[0].classList.remove(ClassName.ACTIVE);    }    if (activeContent.length) {      activeContent[0].classList.remove(ClassName.ACTIVE);      if (!stepperNode.classList.contains(ClassName.VERTICAL) && !stepper.options.animation) {        activeContent[0].classList.remove(ClassName.BLOCK);      }    }    showStep(stepperNode, stepper._steps[indexStep], stepper._steps, options);    showContent(stepperNode, stepper._stepsContents[indexStep], stepper._stepsContents, activeContent, done);  };  var showStep = function showStep(stepperNode, step, stepList, options) {    stepList.forEach(function (step) {      var trigger = step.querySelector(options.selectors.trigger);      trigger.setAttribute('aria-selected', 'false'); // if stepper is in linear mode, set disabled attribute on the trigger      if (stepperNode.classList.contains(ClassName.LINEAR)) {        trigger.setAttribute('disabled', 'disabled');      }    });    step.classList.add(ClassName.ACTIVE);    var currentTrigger = step.querySelector(options.selectors.trigger);    currentTrigger.setAttribute('aria-selected', 'true'); // if stepper is in linear mode, remove disabled attribute on current    if (stepperNode.classList.contains(ClassName.LINEAR)) {      currentTrigger.removeAttribute('disabled');    }  };  var showContent = function showContent(stepperNode, content, contentList, activeContent, done) {    var stepper = stepperNode[customProperty];    var toIndex = contentList.indexOf(content);    var shownEvent = createCustomEvent('shown.bs-stepper', {      cancelable: true,      detail: {        from: stepper._currentIndex,        to: toIndex,        indexStep: toIndex      }    });    function complete() {      content.classList.add(ClassName.BLOCK);      content.removeEventListener(transitionEndEvent, complete);      stepperNode.dispatchEvent(shownEvent);      done();    }    if (content.classList.contains(ClassName.FADE)) {      content.classList.remove(ClassName.NONE);      var duration = getTransitionDurationFromElement(content);      content.addEventListener(transitionEndEvent, complete);      if (activeContent.length) {        activeContent[0].classList.add(ClassName.NONE);      }      content.classList.add(ClassName.ACTIVE);      emulateTransitionEnd(content, duration);    } else {      content.classList.add(ClassName.ACTIVE);      content.classList.add(ClassName.BLOCK);      stepperNode.dispatchEvent(shownEvent);      done();    }  };  var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {    if (!element) {      return 0;    } // Get transition-duration of the element    var transitionDuration = window.getComputedStyle(element).transitionDuration;    var floatTransitionDuration = parseFloat(transitionDuration); // Return 0 if element or transition duration is not found    if (!floatTransitionDuration) {      return 0;    } // If multiple durations are defined, take the first    transitionDuration = transitionDuration.split(',')[0];    return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER;  };  var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {    var called = false;    var durationPadding = 5;    var emulatedDuration = duration + durationPadding;    function listener() {      called = true;      element.removeEventListener(transitionEndEvent, listener);    }    element.addEventListener(transitionEndEvent, listener);    window.setTimeout(function () {      if (!called) {        element.dispatchEvent(WinEvent(transitionEndEvent));      }      element.removeEventListener(transitionEndEvent, listener);    }, emulatedDuration);  };  var detectAnimation = function detectAnimation(contentList, options) {    if (options.animation) {      contentList.forEach(function (content) {        content.classList.add(ClassName.FADE);        content.classList.add(ClassName.NONE);      });    }  };  var buildClickStepLinearListener = function buildClickStepLinearListener() {    return function clickStepLinearListener(event) {      event.preventDefault();    };  };  var buildClickStepNonLinearListener = function buildClickStepNonLinearListener(options) {    return function clickStepNonLinearListener(event) {      event.preventDefault();      var step = closest(event.target, options.selectors.steps);      var stepperNode = closest(step, options.selectors.stepper);      var stepper = stepperNode[customProperty];      var stepIndex = stepper._steps.indexOf(step);      show(stepperNode, stepIndex, options, function () {        stepper._currentIndex = stepIndex;      });    };  };  var DEFAULT_OPTIONS = {    linear: true,    animation: false,    selectors: {      steps: '.step',      trigger: '.step-trigger',      stepper: '.bs-stepper'    }  };  var Stepper =  /*#__PURE__*/  function () {    function Stepper(element, _options) {      var _this = this;      if (_options === void 0) {        _options = {};      }      this._element = element;      this._currentIndex = 0;      this._stepsContents = [];      this.options = _extends({}, DEFAULT_OPTIONS, {}, _options);      this.options.selectors = _extends({}, DEFAULT_OPTIONS.selectors, {}, this.options.selectors);      if (this.options.linear) {        this._element.classList.add(ClassName.LINEAR);      }      this._steps = [].slice.call(this._element.querySelectorAll(this.options.selectors.steps));      this._steps.filter(function (step) {        return step.hasAttribute('data-target');      }).forEach(function (step) {        _this._stepsContents.push(_this._element.querySelector(step.getAttribute('data-target')));      });      detectAnimation(this._stepsContents, this.options);      this._setLinkListeners();      Object.defineProperty(this._element, customProperty, {        value: this,        writable: true      });      if (this._steps.length) {        show(this._element, this._currentIndex, this.options, function () {});      }    } // Private    var _proto = Stepper.prototype;    _proto._setLinkListeners = function _setLinkListeners() {      var _this2 = this;      this._steps.forEach(function (step) {        var trigger = step.querySelector(_this2.options.selectors.trigger);        if (_this2.options.linear) {          _this2._clickStepLinearListener = buildClickStepLinearListener(_this2.options);          trigger.addEventListener('click', _this2._clickStepLinearListener);        } else {          _this2._clickStepNonLinearListener = buildClickStepNonLinearListener(_this2.options);          trigger.addEventListener('click', _this2._clickStepNonLinearListener);        }      });    } // Public    ;    _proto.next = function next() {      var _this3 = this;      var nextStep = this._currentIndex + 1 <= this._steps.length - 1 ? this._currentIndex + 1 : this._steps.length - 1;      show(this._element, nextStep, this.options, function () {        _this3._currentIndex = nextStep;      });    };    _proto.previous = function previous() {      var _this4 = this;      var previousStep = this._currentIndex - 1 >= 0 ? this._currentIndex - 1 : 0;      show(this._element, previousStep, this.options, function () {        _this4._currentIndex = previousStep;      });    };    _proto.to = function to(stepNumber) {      var _this5 = this;      var tempIndex = stepNumber - 1;      var nextStep = tempIndex >= 0 && tempIndex < this._steps.length ? tempIndex : 0;      show(this._element, nextStep, this.options, function () {        _this5._currentIndex = nextStep;      });    };    _proto.reset = function reset() {      var _this6 = this;      show(this._element, 0, this.options, function () {        _this6._currentIndex = 0;      });    };    _proto.destroy = function destroy() {      var _this7 = this;      this._steps.forEach(function (step) {        var trigger = step.querySelector(_this7.options.selectors.trigger);        if (_this7.options.linear) {          trigger.removeEventListener('click', _this7._clickStepLinearListener);        } else {          trigger.removeEventListener('click', _this7._clickStepNonLinearListener);        }      });      this._element[customProperty] = undefined;      this._element = undefined;      this._currentIndex = undefined;      this._steps = undefined;      this._stepsContents = undefined;      this._clickStepLinearListener = undefined;      this._clickStepNonLinearListener = undefined;    };    return Stepper;  }();  return Stepper;}));//# sourceMappingURL=bs-stepper.js.map
 |