diff options
Diffstat (limited to 'minionlivesmatter/templates/assets/bootstrap-material-design/js/autofill.js')
| -rw-r--r-- | minionlivesmatter/templates/assets/bootstrap-material-design/js/autofill.js | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/minionlivesmatter/templates/assets/bootstrap-material-design/js/autofill.js b/minionlivesmatter/templates/assets/bootstrap-material-design/js/autofill.js deleted file mode 100644 index 2ada9ec..0000000 --- a/minionlivesmatter/templates/assets/bootstrap-material-design/js/autofill.js +++ /dev/null @@ -1,109 +0,0 @@ -import Base from './base' - -const Autofill = (($) => { - - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - const NAME = 'autofill' - const DATA_KEY = `bmd.${NAME}` - const JQUERY_NAME = `bmd${NAME.charAt(0).toUpperCase() + NAME.slice(1)}` - const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME] - - const Default = {} - - /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */ - class Autofill extends Base { - - constructor($element, config) { - super($element, $.extend(true, {}, Default, config)) - - this._watchLoading() - this._attachEventHandlers() - } - - dispose() { - super.dispose(DATA_KEY) - } - - // ------------------------------------------------------------------------ - // private - - _watchLoading() { - // After 10 seconds we are quite sure all the needed inputs are autofilled then we can stop checking them - setTimeout(() => { - clearInterval(this._onLoading) - }, 10000) - } - - // This part of code will detect autofill when the page is loading (username and password inputs for example) - _onLoading() { - setInterval(() => { - $('input[type!=checkbox]').each((index, element) => { - let $element = $(element) - if ($element.val() && $element.val() !== $element.attr('value')) { - $element.trigger('change') - } - }) - }, 100) - } - - _attachEventHandlers() { - // Listen on inputs of the focused form - // (because user can select from the autofill dropdown only when the input has focus) - let focused = null - $(document) - .on('focus', 'input', (event) => { - let $inputs = $(event.currentTarget).closest('form').find('input').not('[type=file]') - focused = setInterval(() => { - $inputs.each((index, element) => { - let $element = $(element) - if ($element.val() !== $element.attr('value')) { - $element.trigger('change') - } - }) - }, 100) - }) - .on('blur', '.form-group input', () => { - clearInterval(focused) - }) - } - - // ------------------------------------------------------------------------ - // static - static _jQueryInterface(config) { - return this.each(function () { - let $element = $(this) - let data = $element.data(DATA_KEY) - - if (!data) { - data = new Autofill($element, config) - $element.data(DATA_KEY, data) - } - }) - } - } - - /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ - $.fn[JQUERY_NAME] = Autofill._jQueryInterface - $.fn[JQUERY_NAME].Constructor = Autofill - $.fn[JQUERY_NAME].noConflict = () => { - $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT - return Autofill._jQueryInterface - } - - return Autofill - -})(jQuery) - -export default Autofill |
