Skip to content

Commit 1380670

Browse files
committed
3.1.0
1 parent 790ede3 commit 1380670

File tree

3 files changed

+707
-0
lines changed

3 files changed

+707
-0
lines changed

dist/amd/can-jquery.js

Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
/*can-jquery@3.1.0-pre.1#can-jquery*/
2+
define(function (require, exports, module) {
3+
var $ = require('jquery');
4+
var ns = require('can-util/namespace');
5+
var buildFragment = require('can-util/dom/fragment');
6+
var domEvents = require('can-util/dom/events');
7+
var domDispatch = require('can-util/dom/dispatch');
8+
var each = require('can-util/js/each');
9+
var getChildNodes = require('can-util/dom/child-nodes');
10+
var isArrayLike = require('can-util/js/is-array-like');
11+
var makeArray = require('can-util/js/make-array');
12+
var mutate = require('can-util/dom/mutate');
13+
var setImmediate = require('can-util/js/set-immediate');
14+
var canViewModel = require('can-view-model');
15+
var MO = require('can-util/dom/mutation-observer');
16+
var CIDMap = require('can-util/js/cid-map');
17+
var assign = require('can-util/js/assign');
18+
module.exports = ns.$ = $;
19+
var specialEvents = {};
20+
var nativeDispatchEvents = { focus: true };
21+
var inSpecial = false;
22+
var slice = Array.prototype.slice;
23+
var removedEventHandlerMap = new CIDMap();
24+
if ($) {
25+
var domDispatch = domEvents.dispatch;
26+
domEvents.dispatch = function (event, args) {
27+
var eventObj;
28+
if (!specialEvents[event] && !nativeDispatchEvents[event]) {
29+
if (typeof event !== 'string' && !event.hasOwnProperty('type')) {
30+
eventObj = assign({}, event);
31+
}
32+
$(this).trigger(eventObj || event, args);
33+
} else {
34+
domDispatch.apply(this, arguments);
35+
}
36+
};
37+
var addEventListener = domEvents.addEventListener;
38+
domEvents.addEventListener = function (event, callback) {
39+
var handler;
40+
if (this.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
41+
return;
42+
}
43+
if (!inSpecial) {
44+
if (event === 'removed') {
45+
var element = this;
46+
handler = function (ev) {
47+
ev.eventArguments = slice.call(arguments, 1);
48+
domEvents.removeEventListener.call(element, event, handler);
49+
var self = this, args = arguments;
50+
if (MO()) {
51+
return callback.apply(self, args);
52+
} else {
53+
return setImmediate(function () {
54+
return callback.apply(self, args);
55+
});
56+
}
57+
};
58+
removedEventHandlerMap.set(callback, handler);
59+
}
60+
$(this).on(event, handler || callback);
61+
return;
62+
}
63+
return addEventListener.call(this, event, handler || callback);
64+
};
65+
var removeEventListener = domEvents.removeEventListener;
66+
domEvents.removeEventListener = function (event, callback) {
67+
if (this.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
68+
return;
69+
}
70+
if (!inSpecial) {
71+
var handler;
72+
if (event === 'removed') {
73+
handler = removedEventHandlerMap.get(callback);
74+
removedEventHandlerMap.delete(callback);
75+
}
76+
$(this).off(event, handler || callback);
77+
return;
78+
}
79+
return removeEventListener.apply(this, arguments);
80+
};
81+
var delegateEventType = function delegateEventType(type) {
82+
var typeMap = {
83+
focus: 'focusin',
84+
blur: 'focusout'
85+
};
86+
return typeMap[type] || type;
87+
};
88+
domEvents.addDelegateListener = function (type, selector, callback) {
89+
$(this).on(delegateEventType(type), selector, callback);
90+
};
91+
domEvents.removeDelegateListener = function (type, selector, callback) {
92+
$(this).off(delegateEventType(type), selector, callback);
93+
};
94+
var withSpecial = function withSpecial(callback) {
95+
return function () {
96+
inSpecial = true;
97+
callback.apply(this, arguments);
98+
inSpecial = false;
99+
};
100+
};
101+
var setupSpecialEvent = function setupSpecialEvent(eventName) {
102+
specialEvents[eventName] = true;
103+
var handler = function () {
104+
$(this).trigger(eventName);
105+
};
106+
$.event.special[eventName] = {
107+
noBubble: true,
108+
setup: withSpecial(function () {
109+
domEvents.addEventListener.call(this, eventName, handler);
110+
}),
111+
teardown: withSpecial(function () {
112+
domEvents.removeEventListener.call(this, eventName, handler);
113+
})
114+
};
115+
};
116+
[
117+
'inserted',
118+
'removed',
119+
'attributes',
120+
'beforeremove'
121+
].forEach(setupSpecialEvent);
122+
var oldDomManip = $.fn.domManip, cbIndex;
123+
$.fn.domManip = function () {
124+
for (var i = 1; i < arguments.length; i++) {
125+
if (typeof arguments[i] === 'function') {
126+
cbIndex = i;
127+
break;
128+
}
129+
}
130+
return oldDomManip.apply(this, arguments);
131+
};
132+
$(document.createElement('div')).append(document.createElement('div'));
133+
if (cbIndex === undefined) {
134+
$.fn.domManip = oldDomManip;
135+
each([
136+
'after',
137+
'prepend',
138+
'before',
139+
'append',
140+
'replaceWith'
141+
], function (name) {
142+
var original = $.fn[name];
143+
$.fn[name] = function () {
144+
var elems = [], args = makeArray(arguments);
145+
if (args[0] != null) {
146+
if (typeof args[0] === 'string') {
147+
args[0] = buildFragment(args[0]);
148+
}
149+
if (args[0].nodeType === 11) {
150+
elems = getChildNodes(args[0]);
151+
} else if (isArrayLike(args[0])) {
152+
elems = makeArray(args[0]);
153+
} else {
154+
elems = [args[0]];
155+
}
156+
}
157+
var ret = original.apply(this, args);
158+
mutate.inserted(elems);
159+
return ret;
160+
};
161+
});
162+
} else {
163+
$.fn.domManip = cbIndex === 2 ? function (args, table, callback) {
164+
return oldDomManip.call(this, args, table, function (elem) {
165+
var elems;
166+
if (elem.nodeType === 11) {
167+
elems = makeArray(getChildNodes(elem));
168+
}
169+
var ret = callback.apply(this, arguments);
170+
mutate.inserted(elems ? elems : [elem]);
171+
return ret;
172+
});
173+
} : function (args, callback) {
174+
return oldDomManip.call(this, args, function (elem) {
175+
var elems;
176+
if (elem.nodeType === 11) {
177+
elems = makeArray(getChildNodes(elem));
178+
}
179+
var ret = callback.apply(this, arguments);
180+
mutate.inserted(elems ? elems : [elem]);
181+
return ret;
182+
});
183+
};
184+
}
185+
var oldClean = $.cleanData;
186+
$.cleanData = function (elems) {
187+
$.each(elems, function (i, elem) {
188+
if (elem) {
189+
domDispatch.call(elem, 'removed', [], false);
190+
}
191+
});
192+
oldClean(elems);
193+
};
194+
$.fn.viewModel = function () {
195+
return canViewModel(this[0]);
196+
};
197+
}
198+
});

dist/cjs/can-jquery.js

Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
1+
/*can-jquery@3.1.0-pre.1#can-jquery*/
2+
var $ = require('jquery');
3+
var ns = require('can-util/namespace');
4+
var buildFragment = require('can-util/dom/fragment/fragment');
5+
var domEvents = require('can-util/dom/events/events');
6+
var domDispatch = require('can-util/dom/dispatch/dispatch');
7+
var each = require('can-util/js/each/each');
8+
var getChildNodes = require('can-util/dom/child-nodes/child-nodes');
9+
var isArrayLike = require('can-util/js/is-array-like/is-array-like');
10+
var makeArray = require('can-util/js/make-array/make-array');
11+
var mutate = require('can-util/dom/mutate/mutate');
12+
var setImmediate = require('can-util/js/set-immediate/set-immediate');
13+
var canViewModel = require('can-view-model');
14+
var MO = require('can-util/dom/mutation-observer/mutation-observer');
15+
var CIDMap = require('can-util/js/cid-map/cid-map');
16+
var assign = require('can-util/js/assign/assign');
17+
module.exports = ns.$ = $;
18+
var specialEvents = {};
19+
var nativeDispatchEvents = { focus: true };
20+
var inSpecial = false;
21+
var slice = Array.prototype.slice;
22+
var removedEventHandlerMap = new CIDMap();
23+
if ($) {
24+
var domDispatch = domEvents.dispatch;
25+
domEvents.dispatch = function (event, args) {
26+
var eventObj;
27+
if (!specialEvents[event] && !nativeDispatchEvents[event]) {
28+
if (typeof event !== 'string' && !event.hasOwnProperty('type')) {
29+
eventObj = assign({}, event);
30+
}
31+
$(this).trigger(eventObj || event, args);
32+
} else {
33+
domDispatch.apply(this, arguments);
34+
}
35+
};
36+
var addEventListener = domEvents.addEventListener;
37+
domEvents.addEventListener = function (event, callback) {
38+
var handler;
39+
if (this.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
40+
return;
41+
}
42+
if (!inSpecial) {
43+
if (event === 'removed') {
44+
var element = this;
45+
handler = function (ev) {
46+
ev.eventArguments = slice.call(arguments, 1);
47+
domEvents.removeEventListener.call(element, event, handler);
48+
var self = this, args = arguments;
49+
if (MO()) {
50+
return callback.apply(self, args);
51+
} else {
52+
return setImmediate(function () {
53+
return callback.apply(self, args);
54+
});
55+
}
56+
};
57+
removedEventHandlerMap.set(callback, handler);
58+
}
59+
$(this).on(event, handler || callback);
60+
return;
61+
}
62+
return addEventListener.call(this, event, handler || callback);
63+
};
64+
var removeEventListener = domEvents.removeEventListener;
65+
domEvents.removeEventListener = function (event, callback) {
66+
if (this.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
67+
return;
68+
}
69+
if (!inSpecial) {
70+
var handler;
71+
if (event === 'removed') {
72+
handler = removedEventHandlerMap.get(callback);
73+
removedEventHandlerMap.delete(callback);
74+
}
75+
$(this).off(event, handler || callback);
76+
return;
77+
}
78+
return removeEventListener.apply(this, arguments);
79+
};
80+
var delegateEventType = function delegateEventType(type) {
81+
var typeMap = {
82+
focus: 'focusin',
83+
blur: 'focusout'
84+
};
85+
return typeMap[type] || type;
86+
};
87+
domEvents.addDelegateListener = function (type, selector, callback) {
88+
$(this).on(delegateEventType(type), selector, callback);
89+
};
90+
domEvents.removeDelegateListener = function (type, selector, callback) {
91+
$(this).off(delegateEventType(type), selector, callback);
92+
};
93+
var withSpecial = function withSpecial(callback) {
94+
return function () {
95+
inSpecial = true;
96+
callback.apply(this, arguments);
97+
inSpecial = false;
98+
};
99+
};
100+
var setupSpecialEvent = function setupSpecialEvent(eventName) {
101+
specialEvents[eventName] = true;
102+
var handler = function () {
103+
$(this).trigger(eventName);
104+
};
105+
$.event.special[eventName] = {
106+
noBubble: true,
107+
setup: withSpecial(function () {
108+
domEvents.addEventListener.call(this, eventName, handler);
109+
}),
110+
teardown: withSpecial(function () {
111+
domEvents.removeEventListener.call(this, eventName, handler);
112+
})
113+
};
114+
};
115+
[
116+
'inserted',
117+
'removed',
118+
'attributes',
119+
'beforeremove'
120+
].forEach(setupSpecialEvent);
121+
var oldDomManip = $.fn.domManip, cbIndex;
122+
$.fn.domManip = function () {
123+
for (var i = 1; i < arguments.length; i++) {
124+
if (typeof arguments[i] === 'function') {
125+
cbIndex = i;
126+
break;
127+
}
128+
}
129+
return oldDomManip.apply(this, arguments);
130+
};
131+
$(document.createElement('div')).append(document.createElement('div'));
132+
if (cbIndex === undefined) {
133+
$.fn.domManip = oldDomManip;
134+
each([
135+
'after',
136+
'prepend',
137+
'before',
138+
'append',
139+
'replaceWith'
140+
], function (name) {
141+
var original = $.fn[name];
142+
$.fn[name] = function () {
143+
var elems = [], args = makeArray(arguments);
144+
if (args[0] != null) {
145+
if (typeof args[0] === 'string') {
146+
args[0] = buildFragment(args[0]);
147+
}
148+
if (args[0].nodeType === 11) {
149+
elems = getChildNodes(args[0]);
150+
} else if (isArrayLike(args[0])) {
151+
elems = makeArray(args[0]);
152+
} else {
153+
elems = [args[0]];
154+
}
155+
}
156+
var ret = original.apply(this, args);
157+
mutate.inserted(elems);
158+
return ret;
159+
};
160+
});
161+
} else {
162+
$.fn.domManip = cbIndex === 2 ? function (args, table, callback) {
163+
return oldDomManip.call(this, args, table, function (elem) {
164+
var elems;
165+
if (elem.nodeType === 11) {
166+
elems = makeArray(getChildNodes(elem));
167+
}
168+
var ret = callback.apply(this, arguments);
169+
mutate.inserted(elems ? elems : [elem]);
170+
return ret;
171+
});
172+
} : function (args, callback) {
173+
return oldDomManip.call(this, args, function (elem) {
174+
var elems;
175+
if (elem.nodeType === 11) {
176+
elems = makeArray(getChildNodes(elem));
177+
}
178+
var ret = callback.apply(this, arguments);
179+
mutate.inserted(elems ? elems : [elem]);
180+
return ret;
181+
});
182+
};
183+
}
184+
var oldClean = $.cleanData;
185+
$.cleanData = function (elems) {
186+
$.each(elems, function (i, elem) {
187+
if (elem) {
188+
domDispatch.call(elem, 'removed', [], false);
189+
}
190+
});
191+
oldClean(elems);
192+
};
193+
$.fn.viewModel = function () {
194+
return canViewModel(this[0]);
195+
};
196+
}

0 commit comments

Comments
 (0)