define(["require","ControllerObjects","Utilities"],function(e){return function(t){function n(){d=void 0,g=[],b.length&&(b.forEach(function(e){e.uninit()}),b.length=0),m.$dom.empty()}function r(e,t){if(e){var n=p.get(),r="".concat(n,"_divItem"),a=l(e),o=$("
"),s=new f.ChildController({type:a.controller.type,namespace:n,register:{bubble:i,itemAdded:function(){h.call("itemAdded")}}});if(v.add(n,s),void 0!==t&&t0){var d=g[t];d&&(a.displayReverse?d.after(o):d.before(o),g.splice(t,0,o),b.splice(t,0,s))}}else a.displayReverse?m.$dom.prepend(o):m.$dom.append(o),g.push(o),b.push(s);c(e,function(t){var n=$(t({data:e,dom:{divItem:r}}));o.replaceWith(n),g.splice(g.indexOf(o),1,n);var i=$("#".concat(r));s.update({$dom:i,data:a.controller.dataFn(e)})})}}function a(e){if(void 0!==e){var t=g[e],n=b[e];t&&n&&(t.remove(),g.splice(e,1),n.uninit(),v.remove(n.namespace),b.splice(e,1),h.call("itemRemoved"))}}function i(e){h.call("bubble",e)}function o(){n(),d=m.get("settings");var e=m.get("items")||null;e&&(e.on("push shift pop unshift splice reverse concat",s),s("concat",e))}function l(e){return d&&"function"==typeof d?d(e):d}function c(e,t){var n=l(e);n.getter.template.html?u.handlebars.getHtml(n.getter.template.name,n.getter.template.html,t):u.handlebars.getTemplate(n.getter.template.name||n.getter.template.url,n.getter.template.url,t)}function s(){var e=Array.prototype.slice.call(arguments);switch(e[0]){case"push":e.slice(1).forEach(function(e){r(e)});break;case"shift":a(0);break;case"pop":a(g.length-1);break;case"unshift":e.shift(),e.reverse(),e.forEach(function(e){r(e,0)});break;case"splice":var t=e[1];t<0&&(t=g.length+t-1);var n=e[2]||g.length-t;n>g.length-t&&(n=g.length-t);for(var i=t;i