Skip to content

Commit

Permalink
Bumped version to 3.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
fabiospampinato committed Apr 30, 2019
1 parent 43f8170 commit 3d82630
Show file tree
Hide file tree
Showing 8 changed files with 99 additions and 70 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
### Version 3.2.0
- Readme: updated sizes
- $.fn.off: added support for removing delegated handlers

### Version 3.1.0
- Improved support for running selectors inside documents
- Ensuring Cash collections are iterable
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@ If you're migrating from jQuery be sure to read our [migration guide](https://gi

## Usage

Get Cash from [CloudFlare](https://cdnjs.cloudflare.com/ajax/libs/cash/3.1.0/cash.min.js) or [jsDelivr](https://cdn.jsdelivr.net/npm/cash-dom@3.1.0/dist/cash.min.js) and use it like this:
Get Cash from [CloudFlare](https://cdnjs.cloudflare.com/ajax/libs/cash/3.2.0/cash.min.js) or [jsDelivr](https://cdn.jsdelivr.net/npm/cash-dom@3.2.0/dist/cash.min.js) and use it like this:

```html
<script src="https://cdnjs.cloudflare.com/ajax/libs/cash/3.1.0/cash.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/cash/3.2.0/cash.min.js"></script>
<script>
$(function () {
$('html').addClass ( 'dom-loaded' );
Expand Down
5 changes: 4 additions & 1 deletion dist/cash.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,10 @@ interface Cash {
show(): this;
}
interface Cash {
off(events?: string, callback?: Function): this;
off(): this;
off(events: string): this;
off(events: string, callback: Function): this;
off(events: string, selector: string, callback: Function): this;
}
interface Cash {
on(events: plainObject): this;
Expand Down
24 changes: 14 additions & 10 deletions dist/cash.esm.js
Original file line number Diff line number Diff line change
Expand Up @@ -511,11 +511,11 @@ function getEventsCache(ele) {
}
// @require core/guid.ts
// @require events/helpers/get_events_cache.ts
function addEvent(ele, name, namespaces, callback) {
function addEvent(ele, name, namespaces, selector, callback) {
callback['guid'] = (callback['guid'] || guid++);
const eventCache = getEventsCache(ele);
eventCache[name] = (eventCache[name] || []);
eventCache[name].push([namespaces, callback]);
eventCache[name].push([namespaces, selector, callback]);
ele.addEventListener(name, callback); //TSC
}
// @require ./variables.ts
Expand All @@ -526,30 +526,34 @@ function parseEventName(eventName) {
// @require ./get_events_cache.ts
// @require ./has_namespaces.ts
// @require ./parse_event_name.ts
function removeEvent(ele, name, namespaces, callback) {
function removeEvent(ele, name, namespaces, selector, callback) {
const cache = getEventsCache(ele);
if (!name) {
for (name in cache) {
removeEvent(ele, name, namespaces, callback);
removeEvent(ele, name, namespaces, selector, callback);
}
delete ele[eventsNamespace];
}
else if (cache[name]) {
cache[name] = cache[name].filter(([ns, cb]) => {
if ((callback && cb['guid'] !== callback['guid']) || !hasNamespaces(ns, namespaces))
cache[name] = cache[name].filter(([ns, sel, cb]) => {
if ((callback && cb['guid'] !== callback['guid']) || !hasNamespaces(ns, namespaces) || (selector && selector !== sel))
return true;
ele.removeEventListener(name, cb);
});
}
}
Cash.prototype.off = function (eventFullName, callback) {
Cash.prototype.off = function (eventFullName, selector, callback) {
if (eventFullName === undefined) {
this.each((i, ele) => removeEvent(ele));
}
else {
if (isFunction(selector)) {
callback = selector;
selector = '';
}
each(getSplitValues(eventFullName), (i, eventFullName) => {
const [name, namespaces] = parseEventName(getEventNameBubbling(eventFullName));
this.each((i, ele) => removeEvent(ele, name, namespaces, callback));
this.each((i, ele) => removeEvent(ele, name, namespaces, selector, callback)); //TSC
});
}
return this;
Expand Down Expand Up @@ -594,15 +598,15 @@ function on(eventFullName, selector, callback, _one) {
}
const returnValue = callback.call(thisArg, event, event.data); //TSC
if (_one) {
removeEvent(ele, name, namespaces, finalCallback);
removeEvent(ele, name, namespaces, selector, finalCallback); //TSC
}
if (returnValue === false) {
event.preventDefault();
event.stopPropagation();
}
};
finalCallback['guid'] = callback['guid'] = (callback['guid'] || guid++);
addEvent(ele, name, namespaces, finalCallback);
addEvent(ele, name, namespaces, selector, finalCallback); //TSC
});
});
return this;
Expand Down
29 changes: 18 additions & 11 deletions dist/cash.js
Original file line number Diff line number Diff line change
Expand Up @@ -649,11 +649,11 @@ function getEventsCache(ele) {
// @require events/helpers/get_events_cache.ts


function addEvent(ele, name, namespaces, callback) {
function addEvent(ele, name, namespaces, selector, callback) {
callback['guid'] = callback['guid'] || guid++;
var eventCache = getEventsCache(ele);
eventCache[name] = eventCache[name] || [];
eventCache[name].push([namespaces, callback]);
eventCache[name].push([namespaces, selector, callback]);
ele.addEventListener(name, callback); //TSC
} // @require ./variables.ts

Expand All @@ -666,41 +666,48 @@ function parseEventName(eventName) {
// @require ./parse_event_name.ts


function removeEvent(ele, name, namespaces, callback) {
function removeEvent(ele, name, namespaces, selector, callback) {
var cache = getEventsCache(ele);

if (!name) {
for (name in cache) {
removeEvent(ele, name, namespaces, callback);
removeEvent(ele, name, namespaces, selector, callback);
}

delete ele[eventsNamespace];
} else if (cache[name]) {
cache[name] = cache[name].filter(function (_a) {
var ns = _a[0],
cb = _a[1];
if (callback && cb['guid'] !== callback['guid'] || !hasNamespaces(ns, namespaces)) return true;
sel = _a[1],
cb = _a[2];
if (callback && cb['guid'] !== callback['guid'] || !hasNamespaces(ns, namespaces) || selector && selector !== sel) return true;
ele.removeEventListener(name, cb);
});
}
}

Cash.prototype.off = function (eventFullName, callback) {
Cash.prototype.off = function (eventFullName, selector, callback) {
var _this = this;

if (eventFullName === undefined) {
this.each(function (i, ele) {
return removeEvent(ele);
});
} else {
if (isFunction(selector)) {
callback = selector;
selector = '';
}

each(getSplitValues(eventFullName), function (i, eventFullName) {
var _a = parseEventName(getEventNameBubbling(eventFullName)),
name = _a[0],
namespaces = _a[1];

_this.each(function (i, ele) {
return removeEvent(ele, name, namespaces, callback);
});
return removeEvent(ele, name, namespaces, selector, callback);
}); //TSC

});
}

Expand Down Expand Up @@ -759,7 +766,7 @@ function on(eventFullName, selector, callback, _one) {
var returnValue = callback.call(thisArg, event, event.data); //TSC

if (_one) {
removeEvent(ele, name, namespaces, finalCallback);
removeEvent(ele, name, namespaces, selector, finalCallback); //TSC
}

if (returnValue === false) {
Expand All @@ -769,7 +776,7 @@ function on(eventFullName, selector, callback, _one) {
};

finalCallback['guid'] = callback['guid'] = callback['guid'] || guid++;
addEvent(ele, name, namespaces, finalCallback);
addEvent(ele, name, namespaces, selector, finalCallback); //TSC
});
});
return this;
Expand Down
Loading

0 comments on commit 3d82630

Please sign in to comment.