Skip to content

Commit

Permalink
Upgrade knockback
Browse files Browse the repository at this point in the history
  • Loading branch information
Kevin Malakoff committed Apr 6, 2013
1 parent 3429ead commit fb3c1c1
Show file tree
Hide file tree
Showing 19 changed files with 288 additions and 168 deletions.
2 changes: 1 addition & 1 deletion examples/pnp-nt-i_xui_pth_kb.html
Expand Up @@ -39,7 +39,7 @@ <h1>Page2</h1>

<script src="vendor/xui-2.3.2.js"></script>
<script src="vendor/path-0.8.4.js"></script>
<script src="vendor/knockback-core-stack-0.17.0.js"></script>
<script src="vendor/knockback-core-stack-0.17.1.js"></script>
<script src="../knockback-page-navigator-panes.js"></script>

<script type='text/javascript'>
Expand Down
2 changes: 1 addition & 1 deletion examples/pnp-t-e_jq_kb.html
Expand Up @@ -31,7 +31,7 @@ <h1 data-bind="text: title"></h1>
</script>

<script src="vendor/jquery-1.9.1.js"></script>
<script src="vendor/knockback-core-stack-0.17.0.js"></script>
<script src="vendor/knockback-core-stack-0.17.1.js"></script>
<script src="../knockback-page-navigator-panes.js"></script>
<script src="..//knockback-transitions.js"></script>

Expand Down
2 changes: 1 addition & 1 deletion examples/pnp-t-i_jq_kb.html
Expand Up @@ -31,7 +31,7 @@ <h1 data-bind="text: title"></h1>
</script>

<script src="vendor/jquery-1.9.1.js"></script>
<script src="vendor/knockback-core-stack-0.17.0.js"></script>
<script src="vendor/knockback-core-stack-0.17.1.js"></script>
<script src="../knockback-page-navigator-panes.js"></script>
<script src="..//knockback-transitions.js"></script>

Expand Down
2 changes: 1 addition & 1 deletion examples/pnp-t_jq_kb.html
Expand Up @@ -31,7 +31,7 @@ <h1 data-bind="text: title"></h1>
</script>

<script src="vendor/jquery-1.9.1.js"></script>
<script src="vendor/knockback-core-stack-0.17.0.js"></script>
<script src="vendor/knockback-core-stack-0.17.1.js"></script>
<script src="../knockback-page-navigator-panes.js"></script>
<script src="..//knockback-transitions.js"></script>

Expand Down
2 changes: 1 addition & 1 deletion examples/pnp-t_zpt_kb.html
Expand Up @@ -31,7 +31,7 @@ <h1 data-bind="text: title"></h1>
</div>

<script src="vendor/zepto-1.0rc1.js"></script>
<script src="vendor/knockback-core-stack-0.17.0.js"></script>
<script src="vendor/knockback-core-stack-0.17.1.js"></script>
<script src="../knockback-page-navigator-panes.js"></script>
<script src="..//knockback-transitions.js"></script>

Expand Down
2 changes: 1 addition & 1 deletion examples/pns-e_jq_kb.html
Expand Up @@ -30,7 +30,7 @@ <h1 data-bind="text: title"></h1>
</script>

<script src="vendor/jquery-1.9.1.js"></script>
<script src="vendor/knockback-core-stack-0.17.0.js"></script>
<script src="vendor/knockback-core-stack-0.17.1.js"></script>
<script src="../knockback-page-navigator-simple.js"></script>

<script type='text/javascript'>
Expand Down
2 changes: 1 addition & 1 deletion examples/pns-i_zpt_kb.html
Expand Up @@ -30,7 +30,7 @@ <h1 data-bind="text: title"></h1>
</div>

<script src="vendor/zepto-1.0rc1.js"></script>
<script src="vendor/knockback-core-stack-0.17.0.js"></script>
<script src="vendor/knockback-core-stack-0.17.1.js"></script>
<script src="../knockback-page-navigator-simple.js"></script>

<script type='text/javascript'>
Expand Down
2 changes: 1 addition & 1 deletion examples/pns_jq_kb.html
Expand Up @@ -30,7 +30,7 @@ <h1 data-bind="text: title"></h1>
</script>

<script src="vendor/jquery-1.9.1.js"></script>
<script src="vendor/knockback-core-stack-0.17.0.js"></script>
<script src="vendor/knockback-core-stack-0.17.1.js"></script>
<script src="../knockback-page-navigator-simple.js"></script>

<script type='text/javascript'>
Expand Down
2 changes: 1 addition & 1 deletion examples/pns_zpt_kb.html
Expand Up @@ -30,7 +30,7 @@ <h1 data-bind="text: title"></h1>
</div>

<script src="vendor/zepto-1.0rc1.js"></script>
<script src="vendor/knockback-core-stack-0.17.0.js"></script>
<script src="vendor/knockback-core-stack-0.17.1.js"></script>
<script src="../knockback-page-navigator-simple.js"></script>

<script type='text/javascript'>
Expand Down
@@ -1,5 +1,5 @@
/*
knockback-core-stack.js 0.17.0
knockback-core-stack.js 0.17.1
(c) 2011-2013 Kevin Malakoff - http://kmalakoff.github.com/knockback/
License: MIT (http://www.opensource.org/licenses/mit-license.php)
Dependencies: Knockout.js, Backbone.js, and Underscore.js.
Expand Down Expand Up @@ -6424,7 +6424,7 @@ ko.exportSymbol('nativeTemplateEngine', ko.nativeTemplateEngine);
}());
})();
/*
knockback-core.js 0.17.0
knockback-core.js 0.17.1
(c) 2011-2013 Kevin Malakoff - http://kmalakoff.github.com/knockback/
License: MIT (http://www.opensource.org/licenses/mit-license.php)
Dependencies: Knockout.js, Backbone.js, and Underscore.js.
Expand All @@ -6441,21 +6441,21 @@ ko.exportSymbol('nativeTemplateEngine', ko.nativeTemplateEngine);
}
})(function() {// Generated by CoffeeScript 1.6.2
/*
knockback-core.js 0.17.0
knockback-core.js 0.17.1
(c) 2011-2013 Kevin Malakoff.
Knockback.js is freely distributable under the MIT license.
See the following for full license details:
https://github.com/kmalakoff/knockback/blob/master/LICENSE
Dependencies: Knockout.js, Backbone.js, and Underscore.js.
*/

var COMPARE_ASCENDING, COMPARE_DESCENDING, COMPARE_EQUAL, KB_TYPE_ARRAY, KB_TYPE_COLLECTION, KB_TYPE_MODEL, KB_TYPE_SIMPLE, KB_TYPE_UNKNOWN, addStatisticsEvent, collapseOptions, copyProps, e, kb, ko, onReady, _, _argumentsAddKey, _arraySplice, _legacyWarning, _throwMissing, _throwUnexpected, _unwrapModels, _unwrapObservable, _wrappedKey,
var COMPARE_ASCENDING, COMPARE_DESCENDING, COMPARE_EQUAL, KB_TYPE_ARRAY, KB_TYPE_COLLECTION, KB_TYPE_MODEL, KB_TYPE_SIMPLE, KB_TYPE_UNKNOWN, addStatisticsEvent, collapseOptions, copyProps, e, kb, ko, onReady, _, _argumentsAddKey, _arraySplice, _ko_applyBindings, _legacyWarning, _throwMissing, _throwUnexpected, _unwrapModels, _unwrapObservable, _wrappedKey,
__bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };

kb = (function() {
function kb() {}

kb.VERSION = '0.17.0';
kb.VERSION = '0.17.1';

kb.TYPE_UNKNOWN = 0;

Expand All @@ -6471,61 +6471,85 @@ kb = (function() {
return !obj || obj.__kb_released;
};

kb.release = function(obj, pre_release_fn) {
var array, item, view_model, view_models, _i, _j, _len, _len1;
kb.isReleaseable = function(obj, depth) {
var key, value;

if ((!obj || (obj !== Object(obj))) || ((typeof obj === 'function') && !ko.isObservable(obj)) || obj.__kb_released || ((obj instanceof kb.Model) || (obj instanceof kb.Collection))) {
return this;
if (depth == null) {
depth = 0;
}
if ((!obj || (obj !== Object(obj))) || obj.__kb_released) {
return false;
} else if (ko.isObservable(obj) || (obj instanceof kb.ViewModel)) {
return true;
} else if ((typeof obj === 'function') || (obj instanceof kb.Model) || (obj instanceof kb.Collection)) {
return false;
} else if ((typeof obj.dispose === 'function') || (typeof obj.destroy === 'function') || (typeof obj.release === 'function')) {
return true;
} else if (depth < 1) {
for (key in obj) {
value = obj[key];
if ((key !== '__kb') && kb.isReleaseable(value, depth + 1)) {
return true;
}
}
}
return false;
};

kb.release = function(obj) {
var array, index, value;

if (!kb.isReleaseable(obj)) {
return;
}
if (_.isArray(obj)) {
array = obj.splice(0, obj.length);
for (_i = 0, _len = array.length; _i < _len; _i++) {
item = array[_i];
kb.release(item);
for (index in obj) {
value = obj[index];
if (kb.isReleaseable(value)) {
obj[index] = null;
kb.release(value);
}
}
return this;
return;
}
obj.__kb_released = true;
!pre_release_fn || pre_release_fn();
if (ko.isObservable(obj) || (typeof obj.dispose === 'function') || (typeof obj.destroy === 'function') || (typeof obj.release === 'function')) {
if (ko.isObservable(obj) && _.isArray(array = obj())) {
if (obj.__kb_is_co || (obj.__kb_is_o && (obj.valueType() === KB_TYPE_COLLECTION))) {
if (obj.destroy) {
obj.destroy();
} else if (obj.dispose) {
obj.dispose();
}
} else if (array.length) {
view_models = array.slice(0);
array.splice(0, array.length);
for (_j = 0, _len1 = view_models.length; _j < _len1; _j++) {
view_model = view_models[_j];
kb.release(view_model);
if (ko.isObservable(obj) && _.isArray(array = obj())) {
if (obj.__kb_is_co || (obj.__kb_is_o && (obj.valueType() === KB_TYPE_COLLECTION))) {
if (obj.destroy) {
obj.destroy();
} else if (obj.dispose) {
obj.dispose();
}
} else if (array.length) {
for (index in array) {
value = array[index];
if (kb.isReleaseable(value)) {
array[index] = null;
kb.release(value);
}
}
} else if (obj.release) {
obj.release();
} else if (obj.destroy) {
obj.destroy();
} else if (obj.dispose) {
obj.dispose();
}
} else {
} else if (typeof obj.release === 'function') {
obj.release();
} else if (typeof obj.destroy === 'function') {
obj.destroy();
} else if (typeof obj.dispose === 'function') {
obj.dispose();
} else if (!ko.isObservable(obj)) {
this.releaseKeys(obj);
}
return this;
};

kb.releaseKeys = function(obj) {
var key, value;

for (key in obj) {
value = obj[key];
(key === '__kb') || kb.release(value, (function() {
return obj[key] = null;
}));
if ((key !== '__kb') && kb.isReleaseable(value)) {
obj[key] = null;
kb.release(value);
}
}
return this;
};

kb.releaseOnNodeRemove = function(view_model, node) {
Expand Down Expand Up @@ -7725,8 +7749,8 @@ kb.ViewModel = (function() {
this.__kb.vm_keys = {};
this.__kb.model_keys = {};
this.__kb.view_model = _.isUndefined(view_model) ? this : view_model;
!options.internals || (this.__kb.internals = options.internals);
!options.excludes || (this.__kb.excludes = options.excludes);
!options.internals || (this.__kb.internals = (_.isArray(options.internals) ? options.internals : [options.internals]));
!options.excludes || (this.__kb.excludes = (_.isArray(options.excludes) ? options.excludes : [options.excludes]));
kb.Store.useOptionsOrCreate(options, model, this);
this.__kb.path = options.path;
kb.Factory.useOptionsOrCreate(options, this, options.path);
Expand Down Expand Up @@ -7765,24 +7789,24 @@ kb.ViewModel = (function() {
event_watcher = kb.utils.wrappedEventWatcher(this, new kb.EventWatcher(model, this, {
emitter: this.model
}));
if (options.requires && _.isArray(options.requires)) {
keys = _.clone(options.requires);
if (options.requires) {
keys = _.isArray(options.requires) ? _.clone(options.requires) : [options.requires];
}
if (this.__kb.internals) {
keys = keys ? _.union(keys, this.__kb.internals) : _.clone(this.__kb.internals);
}
if (options.keys) {
if (_.isArray(options.keys)) {
this.__kb.keys = options.keys;
keys = keys ? _.union(keys, options.keys) : _.clone(options.keys);
} else {
if (_.isObject(options.keys) && !_.isArray(options.keys)) {
mapped_keys = {};
_ref = options.keys;
for (vm_key in _ref) {
mapping_info = _ref[vm_key];
mapped_keys[_.isString(mapping_info) ? mapping_info : (mapping_info.key ? mapping_info.key : vm_key)] = true;
}
this.__kb.keys = _.keys(mapped_keys);
} else {
this.__kb.keys = _.isArray(options.keys) ? options.keys : [options.keys];
keys = keys ? _.union(keys, this.__kb.keys) : _.clone(this.__kb.keys);
}
} else {
bb_model = event_watcher.emitter();
Expand Down Expand Up @@ -8038,12 +8062,15 @@ kb.CollectionObservable = (function() {
array = observable();
array.splice(0, array.length);
}
this.collection.dispose();
this._collection = observable.collection = this.collection = null;
this._mapper.dispose();
this._mapper = null;
kb.release(this._filters);
this._filters = null;
this._comparator(null);
this.collection.dispose();
observable.collection = this.collection = null;
this._comparator = null;
this.create_options = null;
observable.collection = null;
kb.utils.wrappedDestroy(this);
return !kb.statistics || kb.statistics.unregister('CollectionObservable', this);
Expand Down Expand Up @@ -8301,6 +8328,8 @@ kb.collectionObservable = function(collection, options) {
*/


kb.RECUSIVE_AUTO_INJECT = true;

ko.bindingHandlers['inject'] = {
'init': function(element, value_accessor, all_bindings_accessor, view_model) {
return kb.Inject.inject(_unwrapObservable(value_accessor()), view_model, element, value_accessor, all_bindings_accessor);
Expand Down Expand Up @@ -8405,6 +8434,17 @@ kb.Inject = (function() {

})();

_ko_applyBindings = ko.applyBindings;

ko.applyBindings = function(context, element) {
var results;

results = kb.RECUSIVE_AUTO_INJECT ? kb.injectViewModels(element) : [];
if (!results.length) {
return _ko_applyBindings.apply(this, arguments);
}
};

kb.injectViewModels = kb.Inject.injectViewModels;

if (this.$) {
Expand Down
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -27,7 +27,7 @@
"nib": ">=0.8.2"
},
"dependencies": {
"knockback": ">=0.17.0",
"knockback": ">=0.17.1",
"knockout": "2.2.1",
"backbone": ">=1.0.0",
"underscore": ">=1.4.4"
Expand Down
2 changes: 1 addition & 1 deletion test/knockback-page-navigator-panes/test-amd.coffee
Expand Up @@ -4,7 +4,7 @@ try
'underscore': "../../vendor/test/underscore-1.4.4"
'backbone': "../../vendor/test/backbone-1.0.0"
'knockout': "../../vendor/test/knockout-2.2.1"
'knockback': "../../vendor/test/knockback-core-0.17.0"
'knockback': "../../vendor/test/knockback-core-0.17.1"
'knockback-page-navigator-panes': "../../knockback-page-navigator-panes"
shim:
underscore:
Expand Down
2 changes: 1 addition & 1 deletion test/knockback-page-navigator-panes/test-latest.html
Expand Up @@ -5,7 +5,7 @@
<title>Knockback.PageNavigatorPanes Test Suite</title>
<!-- LIBRARY DEPENDENCIES -->
<script type="text/javascript" src="../../vendor/test/jquery-1.9.1.js"></script>
<script type="text/javascript" src="../../vendor/knockback-core-stack-0.17.0.js"></script>
<script type="text/javascript" src="../../vendor/knockback-core-stack-0.17.1.js"></script>

<!-- LIBRARY -->
<script type="text/javascript" src="../../knockback-page-navigator-panes.js"></script>
Expand Down
2 changes: 1 addition & 1 deletion test/knockback-page-navigator-simple/test-amd.coffee
Expand Up @@ -4,7 +4,7 @@ try
'underscore': "../../vendor/test/underscore-1.4.4"
'backbone': "../../vendor/test/backbone-1.0.0"
'knockout': "../../vendor/test/knockout-2.2.1"
'knockback': "../../vendor/test/knockback-core-0.17.0"
'knockback': "../../vendor/test/knockback-core-0.17.1"
'knockback-page-navigator-simple': "../../knockback-page-navigator-simple"
shim:
underscore:
Expand Down
2 changes: 1 addition & 1 deletion test/knockback-page-navigator-simple/test-latest.html
Expand Up @@ -5,7 +5,7 @@
<title>Knockback.PageNavigatorSimple Test Suite</title>
<!-- LIBRARY DEPENDENCIES -->
<script type="text/javascript" src="../../vendor/test/jquery-1.9.1.js"></script>
<script type="text/javascript" src="../../vendor/knockback-core-stack-0.17.0.js"></script>
<script type="text/javascript" src="../../vendor/knockback-core-stack-0.17.1.js"></script>

<!-- LIBRARY -->
<script type="text/javascript" src="../../knockback-page-navigator-simple.js"></script>
Expand Down
2 changes: 1 addition & 1 deletion test/knockback-pane-navigator/test-amd.coffee
Expand Up @@ -4,7 +4,7 @@ try
'underscore': "../../vendor/test/underscore-1.4.4"
'backbone': "../../vendor/test/backbone-1.0.0"
'knockout': "../../vendor/test/knockout-2.2.1"
'knockback': "../../vendor/test/knockback-core-0.17.0"
'knockback': "../../vendor/test/knockback-core-0.17.1"
'knockback-pane-navigator': "../../knockback-pane-navigator"
shim:
underscore:
Expand Down
2 changes: 1 addition & 1 deletion test/knockback-pane-navigator/test-latest.html
Expand Up @@ -4,7 +4,7 @@
<head>
<title>Knockback.PaneNavigator Test Suite</title>
<!-- LIBRARY DEPENDENCIES -->
<script type="text/javascript" src="../../vendor/knockback-core-stack-0.17.0.js"></script>
<script type="text/javascript" src="../../vendor/knockback-core-stack-0.17.1.js"></script>

<!-- LIBRARY -->
<script type="text/javascript" src="../../knockback-pane-navigator.js"></script>
Expand Down

0 comments on commit fb3c1c1

Please sign in to comment.