diff --git a/js/.eslintrc b/js/.eslintrc index 1e6865f1..8a3b043d 100644 --- a/js/.eslintrc +++ b/js/.eslintrc @@ -1,194 +1,196 @@ { "root": true, "parser": "babel-eslint", + "extends": "eslint:recommended", "env": { "browser": true, "jquery": true - }, - "rules": { - // Possible Errors - "comma-dangle": [ - 2, - "never" - ], - "handle-callback-err": 2, - "no-bitwise": 0, - "no-cond-assign": 2, - "no-console": 2, - "no-constant-condition": 2, - "no-control-regex": 2, - "no-debugger": 2, - "no-dupe-args": 2, - "no-dupe-keys": 2, - "no-duplicate-case": 2, - "no-empty": 2, - "no-empty-character-class": 2, - "no-ex-assign": 2, - "no-extra-boolean-cast": 2, - "no-extra-parens": 0, - "no-extra-semi": 2, - "no-func-assign": 2, - "no-inner-declarations": 2, - "no-invalid-regexp": 2, - "no-irregular-whitespace": 2, - "no-negated-in-lhs": 2, - "no-obj-calls": 2, - "no-regex-spaces": 2, - "no-sparse-arrays": 2, - "no-unexpected-multiline": 2, - "no-unreachable": 2, - "use-isnan": 2, - "valid-jsdoc": 0, - "valid-typeof": 2, - //Best Practices - "accessor-pairs": 2, - "block-scoped-var": 2, - "consistent-return": 2, - "curly": 2, - "default-case": 2, - "dot-location": 0, - "dot-notation": 0, - "eqeqeq": 2, - // "guard-for-in": 2, - "no-alert": 2, - "no-caller": 2, - "no-div-regex": 2, - "no-else-return": 2, - "no-empty-label": 2, - "no-eq-null": 2, - "no-eval": 2, - "no-extend-native": 2, - "no-extra-bind": 2, - "no-fallthrough": 2, - "no-floating-decimal": 2, - "no-implicit-coercion": 2, - "no-implied-eval": 2, - "no-invalid-this": 0, - "no-iterator": 2, - "no-labels": 2, - "no-lone-blocks": 2, - "no-loop-func": 2, - "no-multi-spaces": 0, - "no-multi-str": 2, - "no-native-reassign": 2, - "no-new": 2, - "no-new-func": 0, - "no-new-wrappers": 2, - "no-octal": 2, - "no-octal-escape": 2, - "no-param-reassign": 0, - "no-process-env": 2, - "no-proto": 2, - "no-redeclare": 2, - "no-return-assign": 2, - "no-script-url": 2, - "no-self-compare": 2, - "no-sequences": 2, - "no-throw-literal": 2, - "no-unused-expressions": 2, - "no-useless-call": 2, - "no-useless-concat": 2, - "no-void": 2, - "no-warning-comments": 0, - "no-with": 2, - "radix": 2, - "vars-on-top": 0, - "wrap-iife": 2, - "yoda": 2, - // Variables - "init-declarations": 0, - "no-catch-shadow": 2, - "no-delete-var": 2, - "no-label-var": 2, - "no-shadow": 0, - "no-shadow-restricted-names": 2, - "no-undef": 2, - "no-undefined": 0, - "no-undef-init": 2, - "no-unused-vars": [ - 2, - { - "argsIgnorePattern": "$" - } - ], - "no-use-before-define": 0, - // Stylistic - "array-bracket-spacing": 2, - "block-spacing": 2, - "brace-style": 2, - "camelcase": 2, - "comma-spacing": 2, - "comma-style": 2, - "computed-property-spacing": 2, - "consistent-this": 2, - "eol-last": 2, - "func-names": 0, - "func-style": 0, -// "indent": [2, 2], //[2, 2, {"SwitchCase": 1}], - "key-spacing": 0, - "linebreak-style": 2, - "lines-around-comment": 0, - "new-cap": 0, - "newline-after-var": 0, - "new-parens": 2, - "no-array-constructor": 2, - "no-continue": 0, - "no-inline-comments": 0, - "no-lonely-if": 2, - "no-mixed-spaces-and-tabs": 2, - "no-multiple-empty-lines": 2, - "no-nested-ternary": 0, - "no-new-object": 2, - "no-spaced-func": 2, - "no-ternary": 0, - "no-trailing-spaces": 2, - "no-underscore-dangle": 0, - "no-unneeded-ternary": 2, -// "object-curly-spacing": [ -// 1, -// "always" -// ], - "one-var": 0, - "operator-assignment": 2, - "operator-linebreak": 0, - "padded-blocks": 0, - "quote-props": [2, "as-needed"], - "quotes": [2, "single"], - "semi": [ - 2, - "never" - ], - "semi-spacing": 2, - "sort-vars": 2, - "space-after-keywords": 2, - "space-before-blocks": 2, - "space-before-function-paren": 0, - // "spaced-comment": 2, - "space-infix-ops": 2, - "space-in-parens": 2, - "space-return-throw-case": 2, - "space-unary-ops": 2, - "quotes": [ - 2, - "single", - "avoid-escape" - ], - // es6 - "arrow-parens": 2, - "arrow-spacing": 2, - "constructor-super": 2, - "generator-star-spacing": 2, - "no-class-assign": 2, - "no-const-assign": 2, - "no-dupe-class-members": 2, - "no-this-before-super": 2, - "no-var": 2, - "object-shorthand": 2, - "prefer-arrow-callback": 2, - "prefer-const": 0, - "prefer-reflect": 0, - "prefer-spread": 2, - "prefer-template": 2, - "require-yield": 2 } +//, +// "rules": { +// // Possible Errors +// "comma-dangle": [ +// 2, +// "never" +// ], +// "handle-callback-err": 2, +// "no-bitwise": 0, +// "no-cond-assign": 2, +// "no-console": 2, +// "no-constant-condition": 2, +// "no-control-regex": 2, +// "no-debugger": 2, +// "no-dupe-args": 2, +// "no-dupe-keys": 2, +// "no-duplicate-case": 2, +// "no-empty": 2, +// "no-empty-character-class": 2, +// "no-ex-assign": 2, +// "no-extra-boolean-cast": 2, +// "no-extra-parens": 0, +// "no-extra-semi": 2, +// "no-func-assign": 2, +// "no-inner-declarations": 2, +// "no-invalid-regexp": 2, +// "no-irregular-whitespace": 2, +// "no-negated-in-lhs": 2, +// "no-obj-calls": 2, +// "no-regex-spaces": 2, +// "no-sparse-arrays": 2, +// "no-unexpected-multiline": 2, +// "no-unreachable": 2, +// "use-isnan": 2, +// "valid-jsdoc": 0, +// "valid-typeof": 2, +// //Best Practices +// "accessor-pairs": 2, +// "block-scoped-var": 2, +// "consistent-return": 2, +// "curly": 2, +// "default-case": 2, +// "dot-location": 0, +// "dot-notation": 0, +// "eqeqeq": 2, +// // "guard-for-in": 2, +// "no-alert": 2, +// "no-caller": 2, +// "no-div-regex": 2, +// "no-else-return": 2, +// "no-empty-label": 2, +// "no-eq-null": 2, +// "no-eval": 2, +// "no-extend-native": 2, +// "no-extra-bind": 2, +// "no-fallthrough": 2, +// "no-floating-decimal": 2, +// "no-implicit-coercion": 2, +// "no-implied-eval": 2, +// "no-invalid-this": 0, +// "no-iterator": 2, +// "no-labels": 2, +// "no-lone-blocks": 2, +// "no-loop-func": 2, +// "no-multi-spaces": 0, +// "no-multi-str": 2, +// "no-native-reassign": 2, +// "no-new": 2, +// "no-new-func": 0, +// "no-new-wrappers": 2, +// "no-octal": 2, +// "no-octal-escape": 2, +// "no-param-reassign": 0, +// "no-process-env": 2, +// "no-proto": 2, +// "no-redeclare": 2, +// "no-return-assign": 2, +// "no-script-url": 2, +// "no-self-compare": 2, +// "no-sequences": 2, +// "no-throw-literal": 2, +// "no-unused-expressions": 2, +// "no-useless-call": 2, +// "no-useless-concat": 2, +// "no-void": 2, +// "no-warning-comments": 0, +// "no-with": 2, +// "radix": 2, +// "vars-on-top": 0, +// "wrap-iife": 2, +// "yoda": 2, +// // Variables +// "init-declarations": 0, +// "no-catch-shadow": 2, +// "no-delete-var": 2, +// "no-label-var": 2, +// "no-shadow": 0, +// "no-shadow-restricted-names": 2, +// "no-undef": 2, +// "no-undefined": 0, +// "no-undef-init": 2, +// "no-unused-vars": [ +// 2, +// { +// "argsIgnorePattern": "$" +// } +// ], +// "no-use-before-define": 0, +// // Stylistic +// "array-bracket-spacing": 2, +// "block-spacing": 2, +// "brace-style": 2, +// "camelcase": 2, +// "comma-spacing": 2, +// "comma-style": 2, +// "computed-property-spacing": 2, +// "consistent-this": 2, +// "eol-last": 2, +// "func-names": 0, +// "func-style": 0, +//// "indent": [2, 2], //[2, 2, {"SwitchCase": 1}], +// "key-spacing": 0, +// "linebreak-style": 2, +// "lines-around-comment": 0, +// "new-cap": 0, +// "newline-after-var": 0, +// "new-parens": 2, +// "no-array-constructor": 2, +// "no-continue": 0, +// "no-inline-comments": 0, +// "no-lonely-if": 2, +// "no-mixed-spaces-and-tabs": 2, +// "no-multiple-empty-lines": 2, +// "no-nested-ternary": 0, +// "no-new-object": 2, +// "no-spaced-func": 2, +// "no-ternary": 0, +// "no-trailing-spaces": 2, +// "no-underscore-dangle": 0, +// "no-unneeded-ternary": 2, +//// "object-curly-spacing": [ +//// 1, +//// "always" +//// ], +// "one-var": 0, +// "operator-assignment": 2, +// "operator-linebreak": 0, +// "padded-blocks": 0, +// "quote-props": [2, "as-needed"], +// "quotes": [2, "single"], +// "semi": [ +// 2, +// "never" +// ], +// "semi-spacing": 2, +// "sort-vars": 2, +// "space-after-keywords": 2, +// "space-before-blocks": 2, +// "space-before-function-paren": 0, +// // "spaced-comment": 2, +// "space-infix-ops": 2, +// "space-in-parens": 2, +// "space-return-throw-case": 2, +// "space-unary-ops": 2, +// "quotes": [ +// 2, +// "single", +// "avoid-escape" +// ], +// // es6 +// "arrow-parens": 2, +// "arrow-spacing": 2, +// "constructor-super": 2, +// "generator-star-spacing": 2, +// "no-class-assign": 2, +// "no-const-assign": 2, +// "no-dupe-class-members": 2, +// "no-this-before-super": 2, +// "no-var": 2, +// "object-shorthand": 2, +// "prefer-arrow-callback": 2, +// "prefer-const": 0, +// "prefer-reflect": 0, +// "prefer-spread": 2, +// "prefer-template": 2, +// "require-yield": 2 +// } } diff --git a/js/src/autofill.js b/js/src/autofill.js index 8aede971..317834de 100644 --- a/js/src/autofill.js +++ b/js/src/autofill.js @@ -47,7 +47,7 @@ const Autofill = (($) => { _onLoading() { setInterval(() => { $('input[type!=checkbox]').each((index, element) => { - let $element = $($element) + let $element = $(element) if ($element.val() && $element.val() !== $element.attr('value')) { $element.triggerStart('change') } @@ -64,7 +64,7 @@ const Autofill = (($) => { let $inputs = $(event.currentTarget).closest('form').find('input').not('[type=file]') focused = setInterval(() => { $inputs.each((index, element) => { - let $element = $($element) + let $element = $(element) if ($element.val() !== $element.attr('value')) { $element.triggerStart('change') } diff --git a/js/src/baseInput.js b/js/src/baseInput.js index 082a4f1c..028a07d9 100644 --- a/js/src/baseInput.js +++ b/js/src/baseInput.js @@ -136,7 +136,7 @@ const BaseInput = (($) => { this.addIsFilled() } }) - .on('keyup change', (event) => { + .on('keyup change', () => { // make sure empty is added back when there is a programmatic value change. // NOTE: programmatic changing of value using $.val() must trigger the change event i.e. $.val('x').trigger('change') diff --git a/js/src/bootstrapMaterialDesign.js b/js/src/bootstrapMaterialDesign.js index 8c547d23..eb89b1c9 100644 --- a/js/src/bootstrapMaterialDesign.js +++ b/js/src/bootstrapMaterialDesign.js @@ -124,7 +124,8 @@ const BootstrapMaterialDesign = (($) => { componentConfig = $.extend(true, {}, this.config.global, componentConfig) // create the jquery fn name e.g. 'mdbText' for 'text' - let jqueryFn = `mdb${component.charAt(0).toUpperCase() + component.slice(1)}` + let componentName = `${component.charAt(0).toUpperCase() + component.slice(1)}` + let jqueryFn = `mdb${componentName}` try { // safely instantiate component on selector elements with config, report errors and move on. diff --git a/js/src/index.js b/js/src/index.js new file mode 100644 index 00000000..ecbc8612 --- /dev/null +++ b/js/src/index.js @@ -0,0 +1,19 @@ +// main entry point + +/* eslint-disable no-unused-vars */ +import BaseInput from './baseInput' +import BaseSelection from './baseSelection' +import Util from './util' +import Ripples from './ripples' +import Autofill from './autofill' +import Text from './text' +import Textarea from './textarea' +import Select from './select' +import Checkbox from './checkbox' +import CheckboxInline from './checkboxInline' +import Switch from './switch' +import Radio from './radio' +import RadioInline from './radioInline' +import File from './file' +import BootstrapMaterialDesign from './bootstrapMaterialDesign' +/* eslint-enable no-unused-vars */ diff --git a/js/src/old/es6Template.js b/js/src/old/es6Template.js deleted file mode 100644 index 06ace1ca..00000000 --- a/js/src/old/es6Template.js +++ /dev/null @@ -1,75 +0,0 @@ -import Util from './util' - -const Foo = (($) => { - - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - const NAME = 'foo' - const DATA_KEY = `mdb.${NAME}` - const JQUERY_NO_CONFLICT = $.fn[JQUERY_NAME] - - const Default = { - template: `` - } - - /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */ - class Foo { - - constructor($element, config) { - this.$element = $element - this.config = $.extend(true, {}, Default, config) - } - - dispose() { - $.removeData(this.$element, DATA_KEY) - this.$element = null - this.config = null - } - - // ------------------------------------------------------------------------ - // private - - _bar(element) { - let x = 1 - return x - } - - // ------------------------------------------------------------------------ - // static - static _jQueryInterface(config) { - return this.each(function () { - let $element = $(this) - let data = $element.data(DATA_KEY) - - if (!data) { - data = new Foo($element, config) - $element.data(DATA_KEY, data) - } - }) - } - } - - /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ - $.fn[JQUERY_NAME] = Foo._jQueryInterface - $.fn[JQUERY_NAME].Constructor = Foo - $.fn[JQUERY_NAME].noConflict = () => { - $.fn[JQUERY_NAME] = JQUERY_NO_CONFLICT - return Foo._jQueryInterface - } - - return Foo - -})(jQuery) - -export default Foo diff --git a/js/src/util.js b/js/src/util.js index 016d3377..f540f80e 100644 --- a/js/src/util.js +++ b/js/src/util.js @@ -1,4 +1,4 @@ -const Util = (($) => { +const Util = (() => { /** * ------------------------------------------------------------------------