'use strict'; var _ = require('../lib/helper'); var cls = require('../lib/class'); var instances = require('./instances'); var updateGeometry = require('./update-geometry'); // Handlers var handlers = { 'click-rail': require('./handler/click-rail'), 'drag-scrollbar': require('./handler/drag-scrollbar'), 'keyboard': require('./handler/keyboard'), 'wheel': require('./handler/mouse-wheel'), 'touch': require('./handler/touch'), 'selection': require('./handler/selection') }; var nativeScrollHandler = require('./handler/native-scroll'); module.exports = function (element, userSettings) { userSettings = typeof userSettings === 'object' ? userSettings : {}; cls.add(element, 'ps-container'); // Create a plugin instance. var i = instances.add(element); i.settings = _.extend(i.settings, userSettings); cls.add(element, 'ps-theme-' + i.settings.theme); i.settings.handlers.forEach(function (handlerName) { handlers[handlerName](element); }); nativeScrollHandler(element); updateGeometry(element); };