Browse code

new build from home

Louis Jonget authored on18/03/2023 14:55:56
Showing1 changed files
... ...
@@ -1,101 +1,101 @@
1
-'use strict';
2
-
3
-var $ = require('../vendor/minified').$;
4
-var _ = require('../vendor/minified')._;
5
-
6
-/**
7
- * Attaches event methods to the context.
8
- * Call with ClayEvents.call(yourObject, $eventTarget)
9
- * @param {EventEmitter|M} $eventTarget - An object that will be used as the event
10
- * target. Must implement EventEmitter
11
- * @constructor
12
- */
13
-function ClayEvents($eventTarget) {
14
-  var self = this;
15
-  var _eventProxies = [];
16
-
17
-  /**
18
-   * prefixes events with "|"
19
-   * @param {string} events
20
-   * @returns {string}
21
-   * @private
22
-   */
23
-  function _transformEventNames(events) {
24
-    return events.split(' ').map(function(event) {
25
-      return '|' + event.replace(/^\|/, '');
26
-    }).join(' ');
27
-  }
28
-
29
-  /**
30
-   * @param {function} handler
31
-   * @param {function} proxy
32
-   * @returns {function}
33
-   * @private
34
-   */
35
-  function _registerEventProxy(handler, proxy) {
36
-    var eventProxy = _.find(_eventProxies, function(item) {
37
-      return item.handler === handler ? item : null;
38
-    });
39
-
40
-    if (!eventProxy) {
41
-      eventProxy = { handler: handler, proxy: proxy };
42
-      _eventProxies.push(eventProxy);
43
-    }
44
-    return eventProxy.proxy;
45
-  }
46
-
47
-  /**
48
-   * @param {function} handler
49
-   * @returns {function}
50
-   * @private
51
-   */
52
-  function _getEventProxy(handler) {
53
-    return _.find(_eventProxies, function(item) {
54
-      return item.handler === handler ? item.proxy : null;
55
-    });
56
-  }
57
-
58
-  /**
59
-   * Attach an event listener to the item.
60
-   * @param {string} events - a space separated list of events
61
-   * @param {function} handler
62
-   * @returns {ClayEvents}
63
-   */
64
-  self.on = function(events, handler) {
65
-    var _events = _transformEventNames(events);
66
-    var self = this;
67
-    var _proxy = _registerEventProxy(handler, function() {
68
-      handler.apply(self, arguments);
69
-    });
70
-    $eventTarget.on(_events, _proxy);
71
-    return self;
72
-  };
73
-
74
-  /**
75
-   * Remove the given event handler. NOTE: This will remove the handler from all
76
-   * registered events
77
-   * @param {function} handler
78
-   * @returns {ClayEvents}
79
-   */
80
-  self.off = function(handler) {
81
-    var _proxy = _getEventProxy(handler);
82
-    if (_proxy) {
83
-      $.off(_proxy);
84
-    }
85
-    return self;
86
-  };
87
-
88
-  /**
89
-   * Trigger an event.
90
-   * @param {string} name - a single event name to trigger
91
-   * @param {Object} [eventObj] - an object to pass to the event handler,
92
-   * provided the handler does not have custom arguments.
93
-   * @returns {ClayEvents}
94
-   */
95
-  self.trigger = function(name, eventObj) {
96
-    $eventTarget.trigger(name, eventObj);
97
-    return self;
98
-  };
99
-}
100
-
101
-module.exports = ClayEvents;
1
+'use strict';
2
+
3
+var $ = require('../vendor/minified').$;
4
+var _ = require('../vendor/minified')._;
5
+
6
+/**
7
+ * Attaches event methods to the context.
8
+ * Call with ClayEvents.call(yourObject, $eventTarget)
9
+ * @param {EventEmitter|M} $eventTarget - An object that will be used as the event
10
+ * target. Must implement EventEmitter
11
+ * @constructor
12
+ */
13
+function ClayEvents($eventTarget) {
14
+  var self = this;
15
+  var _eventProxies = [];
16
+
17
+  /**
18
+   * prefixes events with "|"
19
+   * @param {string} events
20
+   * @returns {string}
21
+   * @private
22
+   */
23
+  function _transformEventNames(events) {
24
+    return events.split(' ').map(function(event) {
25
+      return '|' + event.replace(/^\|/, '');
26
+    }).join(' ');
27
+  }
28
+
29
+  /**
30
+   * @param {function} handler
31
+   * @param {function} proxy
32
+   * @returns {function}
33
+   * @private
34
+   */
35
+  function _registerEventProxy(handler, proxy) {
36
+    var eventProxy = _.find(_eventProxies, function(item) {
37
+      return item.handler === handler ? item : null;
38
+    });
39
+
40
+    if (!eventProxy) {
41
+      eventProxy = { handler: handler, proxy: proxy };
42
+      _eventProxies.push(eventProxy);
43
+    }
44
+    return eventProxy.proxy;
45
+  }
46
+
47
+  /**
48
+   * @param {function} handler
49
+   * @returns {function}
50
+   * @private
51
+   */
52
+  function _getEventProxy(handler) {
53
+    return _.find(_eventProxies, function(item) {
54
+      return item.handler === handler ? item.proxy : null;
55
+    });
56
+  }
57
+
58
+  /**
59
+   * Attach an event listener to the item.
60
+   * @param {string} events - a space separated list of events
61
+   * @param {function} handler
62
+   * @returns {ClayEvents}
63
+   */
64
+  self.on = function(events, handler) {
65
+    var _events = _transformEventNames(events);
66
+    var self = this;
67
+    var _proxy = _registerEventProxy(handler, function() {
68
+      handler.apply(self, arguments);
69
+    });
70
+    $eventTarget.on(_events, _proxy);
71
+    return self;
72
+  };
73
+
74
+  /**
75
+   * Remove the given event handler. NOTE: This will remove the handler from all
76
+   * registered events
77
+   * @param {function} handler
78
+   * @returns {ClayEvents}
79
+   */
80
+  self.off = function(handler) {
81
+    var _proxy = _getEventProxy(handler);
82
+    if (_proxy) {
83
+      $.off(_proxy);
84
+    }
85
+    return self;
86
+  };
87
+
88
+  /**
89
+   * Trigger an event.
90
+   * @param {string} name - a single event name to trigger
91
+   * @param {Object} [eventObj] - an object to pass to the event handler,
92
+   * provided the handler does not have custom arguments.
93
+   * @returns {ClayEvents}
94
+   */
95
+  self.trigger = function(name, eventObj) {
96
+    $eventTarget.trigger(name, eventObj);
97
+    return self;
98
+  };
99
+}
100
+
101
+module.exports = ClayEvents;
Browse code

init commit

louis.jonget authored on30/09/2022 18:58:18
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,101 @@
1
+'use strict';
2
+
3
+var $ = require('../vendor/minified').$;
4
+var _ = require('../vendor/minified')._;
5
+
6
+/**
7
+ * Attaches event methods to the context.
8
+ * Call with ClayEvents.call(yourObject, $eventTarget)
9
+ * @param {EventEmitter|M} $eventTarget - An object that will be used as the event
10
+ * target. Must implement EventEmitter
11
+ * @constructor
12
+ */
13
+function ClayEvents($eventTarget) {
14
+  var self = this;
15
+  var _eventProxies = [];
16
+
17
+  /**
18
+   * prefixes events with "|"
19
+   * @param {string} events
20
+   * @returns {string}
21
+   * @private
22
+   */
23
+  function _transformEventNames(events) {
24
+    return events.split(' ').map(function(event) {
25
+      return '|' + event.replace(/^\|/, '');
26
+    }).join(' ');
27
+  }
28
+
29
+  /**
30
+   * @param {function} handler
31
+   * @param {function} proxy
32
+   * @returns {function}
33
+   * @private
34
+   */
35
+  function _registerEventProxy(handler, proxy) {
36
+    var eventProxy = _.find(_eventProxies, function(item) {
37
+      return item.handler === handler ? item : null;
38
+    });
39
+
40
+    if (!eventProxy) {
41
+      eventProxy = { handler: handler, proxy: proxy };
42
+      _eventProxies.push(eventProxy);
43
+    }
44
+    return eventProxy.proxy;
45
+  }
46
+
47
+  /**
48
+   * @param {function} handler
49
+   * @returns {function}
50
+   * @private
51
+   */
52
+  function _getEventProxy(handler) {
53
+    return _.find(_eventProxies, function(item) {
54
+      return item.handler === handler ? item.proxy : null;
55
+    });
56
+  }
57
+
58
+  /**
59
+   * Attach an event listener to the item.
60
+   * @param {string} events - a space separated list of events
61
+   * @param {function} handler
62
+   * @returns {ClayEvents}
63
+   */
64
+  self.on = function(events, handler) {
65
+    var _events = _transformEventNames(events);
66
+    var self = this;
67
+    var _proxy = _registerEventProxy(handler, function() {
68
+      handler.apply(self, arguments);
69
+    });
70
+    $eventTarget.on(_events, _proxy);
71
+    return self;
72
+  };
73
+
74
+  /**
75
+   * Remove the given event handler. NOTE: This will remove the handler from all
76
+   * registered events
77
+   * @param {function} handler
78
+   * @returns {ClayEvents}
79
+   */
80
+  self.off = function(handler) {
81
+    var _proxy = _getEventProxy(handler);
82
+    if (_proxy) {
83
+      $.off(_proxy);
84
+    }
85
+    return self;
86
+  };
87
+
88
+  /**
89
+   * Trigger an event.
90
+   * @param {string} name - a single event name to trigger
91
+   * @param {Object} [eventObj] - an object to pass to the event handler,
92
+   * provided the handler does not have custom arguments.
93
+   * @returns {ClayEvents}
94
+   */
95
+  self.trigger = function(name, eventObj) {
96
+    $eventTarget.trigger(name, eventObj);
97
+    return self;
98
+  };
99
+}
100
+
101
+module.exports = ClayEvents;