listener module updates

This commit is contained in:
Murod Khaydarov 2018-01-05 20:14:47 +03:00
commit 87c94d7372
6 changed files with 95 additions and 41 deletions

View file

@ -855,7 +855,7 @@ module.exports = exports["default"];
* @property {String} placeholder - First Block placeholder
* @property {Object} sanitizer - @todo fill desc
* @property {Boolean} hideToolbar - @todo fill desc
* @property {Object} toolsConfig - tools configuration {@link Tools#ToolsConfig}
* @property {Object} toolsConfig - tools configuration {@link tools#ToolConfig}
*/
/**
@ -1487,7 +1487,7 @@ var BlockManager = function (_Module) {
switch (event.keyCode) {
case _.keyCodes.ENTER:
this.enterPressedOnPluginsContent(event);
// this.enterPressedOnPluginsContent(event);
break;
case _.keyCodes.DOWN:
case _.keyCodes.RIGHT:
@ -2667,10 +2667,9 @@ var Listeners = function (_Module) {
}
/**
* Search methods
*
* byElement, byType and byHandler returns array of suitable listeners
* one and all takes element, eventType, and handler and returns first (all) suitable listener
* Search method: looks for listener by passed element
* @param {Element} element - searching element
* @returns {Array} listeners that found on element
*/
}, {
@ -2691,6 +2690,13 @@ var Listeners = function (_Module) {
return listenersOnElement;
}
/**
* Search method: looks for listener by passed event type
* @param {String} eventType
* @return {Array} listeners that found on element
*/
}, {
key: "findByType",
value: function findByType(eventType) {
@ -2709,6 +2715,13 @@ var Listeners = function (_Module) {
return listenersWithType;
}
/**
* Search method: looks for listener by passed handler
* @param {Function} handler
* @return {Array} listeners that found on element
*/
}, {
key: "findByHandler",
value: function findByHandler(handler) {
@ -2727,34 +2740,54 @@ var Listeners = function (_Module) {
return listenersWithHandler;
}
/**
* @param {Element} element
* @param {String} eventType
* @param {Function} handler
* @return {Element|null}
*/
}, {
key: "findOne",
value: function findOne(element, eventType, handler) {
var foundListeners = [];
var foundListeners = this.findAll(element, eventType, handler);
if (element) foundListeners = this.byElement(element);
if (eventType) foundListeners = foundListeners.concat(this.byType(eventType));
if (handler) foundListeners = foundListeners.concat(this.byHandler(handler));
return foundListeners[0];
return foundListeners.length > 0 ? foundListeners[0] : null;
}
/**
* @param {Element} element
* @param {String} eventType
* @param {Function} handler
* @return {Array}
*/
}, {
key: "findAll",
value: function findAll(element, eventType, handler) {
var foundListeners = [];
var foundAllListeners = void 0,
foundByElements = [],
foundByEventType = [],
foundByHandler = [];
if (element) foundListeners = this.byElement(element);
if (element) foundByElements = this.findByElement(element);
if (eventType) foundListeners = foundListeners.concat(this.byType(eventType));
if (eventType) foundByEventType = this.findByType(eventType);
if (handler) foundListeners = foundListeners.concat(this.byHandler(handler));
if (handler) foundByHandler = this.findByHandler(handler);
return foundListeners;
foundAllListeners = foundByElements.concat(foundByEventType, foundByHandler);
return foundAllListeners;
}
/**
* Removes all listeners
*/
}, {
key: "removeAll",
value: function removeAll() {

File diff suppressed because one or more lines are too long

1
docs/listeners.md Normal file
View file

@ -0,0 +1 @@
# CodeX Editor Listeners

View file

@ -52,7 +52,7 @@
* @property {String} placeholder - First Block placeholder
* @property {Object} sanitizer - @todo fill desc
* @property {Boolean} hideToolbar - @todo fill desc
* @property {Object} toolsConfig - tools configuration {@link Tools#ToolsConfig}
* @property {Object} toolsConfig - tools configuration {@link tools#ToolConfig}
*/
/**

View file

@ -127,7 +127,7 @@ export default class BlockManager extends Module {
switch(event.keyCode) {
case _.keyCodes.ENTER:
this.enterPressedOnPluginsContent(event);
// this.enterPressedOnPluginsContent(event);
break;
case _.keyCodes.DOWN:
case _.keyCodes.RIGHT:

View file

@ -83,10 +83,9 @@ export default class Listeners extends Module {
}
/**
* Search methods
*
* byElement, byType and byHandler returns array of suitable listeners
* one and all takes element, eventType, and handler and returns first (all) suitable listener
* Search method: looks for listener by passed element
* @param {Element} element - searching element
* @returns {Array} listeners that found on element
*/
findByElement(element) {
@ -108,6 +107,11 @@ export default class Listeners extends Module {
}
/**
* Search method: looks for listener by passed event type
* @param {String} eventType
* @return {Array} listeners that found on element
*/
findByType(eventType) {
let listenersWithType = [];
@ -128,6 +132,11 @@ export default class Listeners extends Module {
}
/**
* Search method: looks for listener by passed handler
* @param {Function} handler
* @return {Array} listeners that found on element
*/
findByHandler(handler) {
let listenersWithHandler = [];
@ -148,40 +157,51 @@ export default class Listeners extends Module {
}
/**
* @param {Element} element
* @param {String} eventType
* @param {Function} handler
* @return {Element|null}
*/
findOne(element, eventType, handler) {
let foundListeners = [];
let foundListeners = this.findAll(element, eventType, handler);
if (element)
foundListeners = this.byElement(element);
if (eventType)
foundListeners = foundListeners.concat(this.byType(eventType));
if (handler)
foundListeners = foundListeners.concat(this.byHandler(handler));
return foundListeners[0];
return foundListeners.length > 0 ? foundListeners[0] : null;
}
/**
* @param {Element} element
* @param {String} eventType
* @param {Function} handler
* @return {Array}
*/
findAll(element, eventType, handler) {
let foundListeners = [];
let foundAllListeners,
foundByElements = [],
foundByEventType = [],
foundByHandler = [];
if (element)
foundListeners = this.byElement(element);
foundByElements = this.findByElement(element);
if (eventType)
foundListeners = foundListeners.concat(this.byType(eventType));
foundByEventType = this.findByType(eventType);
if (handler)
foundListeners = foundListeners.concat(this.byHandler(handler));
foundByHandler = this.findByHandler(handler);
return foundListeners;
foundAllListeners = foundByElements.concat(foundByEventType, foundByHandler);
return foundAllListeners;
}
/**
* Removes all listeners
*/
removeAll() {
this.allListeners.map( (current) => {