summaryrefslogtreecommitdiff
path: root/minionlivesmatter/templates/assets/bootstrap-material-design/js/autofill.js
diff options
context:
space:
mode:
Diffstat (limited to 'minionlivesmatter/templates/assets/bootstrap-material-design/js/autofill.js')
-rw-r--r--minionlivesmatter/templates/assets/bootstrap-material-design/js/autofill.js109
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