| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 | /*! * bsCustomFileInput v1.3.4 (https://github.com/Johann-S/bs-custom-file-input) * Copyright 2018 - 2020 Johann-S <johann.servoire@gmail.com> * Licensed under MIT (https://github.com/Johann-S/bs-custom-file-input/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.bsCustomFileInput = factory());}(this, (function () { 'use strict';  var Selector = {    CUSTOMFILE: '.custom-file input[type="file"]',    CUSTOMFILELABEL: '.custom-file-label',    FORM: 'form',    INPUT: 'input'  };  var textNodeType = 3;  var getDefaultText = function getDefaultText(input) {    var defaultText = '';    var label = input.parentNode.querySelector(Selector.CUSTOMFILELABEL);    if (label) {      defaultText = label.textContent;    }    return defaultText;  };  var findFirstChildNode = function findFirstChildNode(element) {    if (element.childNodes.length > 0) {      var childNodes = [].slice.call(element.childNodes);      for (var i = 0; i < childNodes.length; i++) {        var node = childNodes[i];        if (node.nodeType !== textNodeType) {          return node;        }      }    }    return element;  };  var restoreDefaultText = function restoreDefaultText(input) {    var defaultText = input.bsCustomFileInput.defaultText;    var label = input.parentNode.querySelector(Selector.CUSTOMFILELABEL);    if (label) {      var element = findFirstChildNode(label);      element.textContent = defaultText;    }  };  var fileApi = !!window.File;  var FAKE_PATH = 'fakepath';  var FAKE_PATH_SEPARATOR = '\\';  var getSelectedFiles = function getSelectedFiles(input) {    if (input.hasAttribute('multiple') && fileApi) {      return [].slice.call(input.files).map(function (file) {        return file.name;      }).join(', ');    }    if (input.value.indexOf(FAKE_PATH) !== -1) {      var splittedValue = input.value.split(FAKE_PATH_SEPARATOR);      return splittedValue[splittedValue.length - 1];    }    return input.value;  };  function handleInputChange() {    var label = this.parentNode.querySelector(Selector.CUSTOMFILELABEL);    if (label) {      var element = findFirstChildNode(label);      var inputValue = getSelectedFiles(this);      if (inputValue.length) {        element.textContent = inputValue;      } else {        restoreDefaultText(this);      }    }  }  function handleFormReset() {    var customFileList = [].slice.call(this.querySelectorAll(Selector.INPUT)).filter(function (input) {      return !!input.bsCustomFileInput;    });    for (var i = 0, len = customFileList.length; i < len; i++) {      restoreDefaultText(customFileList[i]);    }  }  var customProperty = 'bsCustomFileInput';  var Event = {    FORMRESET: 'reset',    INPUTCHANGE: 'change'  };  var bsCustomFileInput = {    init: function init(inputSelector, formSelector) {      if (inputSelector === void 0) {        inputSelector = Selector.CUSTOMFILE;      }      if (formSelector === void 0) {        formSelector = Selector.FORM;      }      var customFileInputList = [].slice.call(document.querySelectorAll(inputSelector));      var formList = [].slice.call(document.querySelectorAll(formSelector));      for (var i = 0, len = customFileInputList.length; i < len; i++) {        var input = customFileInputList[i];        Object.defineProperty(input, customProperty, {          value: {            defaultText: getDefaultText(input)          },          writable: true        });        handleInputChange.call(input);        input.addEventListener(Event.INPUTCHANGE, handleInputChange);      }      for (var _i = 0, _len = formList.length; _i < _len; _i++) {        formList[_i].addEventListener(Event.FORMRESET, handleFormReset);        Object.defineProperty(formList[_i], customProperty, {          value: true,          writable: true        });      }    },    destroy: function destroy() {      var formList = [].slice.call(document.querySelectorAll(Selector.FORM)).filter(function (form) {        return !!form.bsCustomFileInput;      });      var customFileInputList = [].slice.call(document.querySelectorAll(Selector.INPUT)).filter(function (input) {        return !!input.bsCustomFileInput;      });      for (var i = 0, len = customFileInputList.length; i < len; i++) {        var input = customFileInputList[i];        restoreDefaultText(input);        input[customProperty] = undefined;        input.removeEventListener(Event.INPUTCHANGE, handleInputChange);      }      for (var _i2 = 0, _len2 = formList.length; _i2 < _len2; _i2++) {        formList[_i2].removeEventListener(Event.FORMRESET, handleFormReset);        formList[_i2][customProperty] = undefined;      }    }  };  return bsCustomFileInput;})));//# sourceMappingURL=bs-custom-file-input.js.map
 |