Code Duplication    Length = 20-20 lines in 2 locations

resources/bootstrap/js/dropdown.js 1 location

@@ 401-420 (lines=20) @@
398
    } // Static
399
    ;
400
401
    Dropdown._jQueryInterface = function _jQueryInterface(config) {
402
      return this.each(function () {
403
        var data = $(this).data(DATA_KEY);
404
405
        var _config = typeof config === 'object' ? config : null;
406
407
        if (!data) {
408
          data = new Dropdown(this, _config);
409
          $(this).data(DATA_KEY, data);
410
        }
411
412
        if (typeof config === 'string') {
413
          if (typeof data[config] === 'undefined') {
414
            throw new TypeError("No method named \"" + config + "\"");
415
          }
416
417
          data[config]();
418
        }
419
      });
420
    };
421
422
    Dropdown._clearMenus = function _clearMenus(event) {
423
      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {

resources/bootstrap/js/scrollspy.js 1 location

@@ 306-325 (lines=20) @@
303
    } // Static
304
    ;
305
306
    ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
307
      return this.each(function () {
308
        var data = $(this).data(DATA_KEY);
309
310
        var _config = typeof config === 'object' && config;
311
312
        if (!data) {
313
          data = new ScrollSpy(this, _config);
314
          $(this).data(DATA_KEY, data);
315
        }
316
317
        if (typeof config === 'string') {
318
          if (typeof data[config] === 'undefined') {
319
            throw new TypeError("No method named \"" + config + "\"");
320
          }
321
322
          data[config]();
323
        }
324
      });
325
    };
326
327
    _createClass(ScrollSpy, null, [{
328
      key: "VERSION",