diff --git a/demo/components/comp7.html b/demo/components/comp7.html index 047a99b..8e7112b 100644 --- a/demo/components/comp7.html +++ b/demo/components/comp7.html @@ -1,8 +1,9 @@ <uku-component> <template> <ul> - <li uku-repeat="num in cc.totalNumber" uku-class=" num === cc.currentNumber?'normal red':'normal'"> - <a uku-onclick="cc.change(num)">{{num}}</a> + <li uku-repeat="num in cc.totalNumber" uku-class=" num === cc.currentNumber?'normal red':'normal'"> + <a uku-onclick="cc.change(num)">{{ num }}</a> + <label>{{ num }}</label> </li> </ul> </template> diff --git a/dist/uku.js b/dist/uku.js index 86d62a2..e418a78 100644 --- a/dist/uku.js +++ b/dist/uku.js @@ -1,2 +1,2 @@ -!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=8)}([function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var Selector_1=__webpack_require__(2),ComponentConfiguration_1=__webpack_require__(14),ValueAndParent=function(){function e(e,t){this.value=e,this.parent=t}return e}(),UkuleleUtil=function(){function UkuleleUtil(){}return UkuleleUtil.searchHtmlTag=function(e,t){var n="^<"+t+"[\\s\\S]*>[\\s\\S]*</"+t+">$",r=new RegExp(n);return e.search(r)},UkuleleUtil.getInnerHtml=function(e,t){var n="<"+t+"[\\s\\S]*>[\\s\\S]*</"+t+">",r=new RegExp(n),o=e.match(r);if(o.index>-1){var i=o[0],a=i.search(">"),u=i.substr(a+1),l=u.lastIndexOf("</");return u=u.substring(0,l),u=u.replace(/(^\s*)|(\s*$)/g,"")}return null},UkuleleUtil.getComponentConfiguration=function(e){var t=document.createElement("div");t.innerHTML=e;for(var n=Selector_1.Selector.querySelectorAll(t,"template"),r=Selector_1.Selector.querySelectorAll(t,"script"),o=Selector_1.Selector.querySelectorAll(t,"style"),i=[],a=null,u=0;u<r.length;u++){var l=r[u];""!==l.src?i.push(l.src):a=l.innerHTML}return o&&o[0]?new ComponentConfiguration_1.ComponentConfiguration(n[0].innerHTML,i,a,o[0].innerHTML):new ComponentConfiguration_1.ComponentConfiguration(n[0].innerHTML,i,a)},UkuleleUtil.searchUkuAttrTag=function(e){var t=/^uku\-.*/;return e.search(t)},UkuleleUtil.getAttrFromUkuTag=function(e,t){if(void 0===t&&(t=!1),0===UkuleleUtil.searchUkuAttrTag(e)&&(e=e.replace("uku-","")),t){var n=e.split("-");e=n[0];for(var r=1;r<n.length;r++){e=e+n[r].charAt(0).toUpperCase()+n[r].substr(1)}}return e},UkuleleUtil.searchUkuExpTag=function(e){var t=/^\{\{.*\}\}$/;return e.search(t)},UkuleleUtil.searchUkuFuncArg=function(e){var t=/[\+\-\*\/\%\?\:\>\<]/,n=e.search(t);if(-1===n){var r=/\(.*\)$/;return n=e.search(r)}return-1},UkuleleUtil.isRepeat=function(e){return!!e.getAttribute("uku-repeat")},UkuleleUtil.isInRepeat=function(e){for(var t=Selector_1.Selector.parents(e),n=0;n<t.length;n++){var r=t[n];if(9!==r.nodeType){if(r.getAttribute("uku-repeat"))return!0}}return!1},UkuleleUtil.getBoundModelInstantName=function(e){var t=e.split(".")[0];if(t)return t},UkuleleUtil.getBoundModelInstantNames=function(e,t){var n=[];return e.forEach(function(e){var r=new RegExp("\\b"+e,"gm");console.count("getBoundModelInstantNames执行的次数"),t.search(r)>-1&&n.push(e)}),n},UkuleleUtil.getFinalValue=function(objects,attrName){return function(){var tempScope={};objects.forEach(function(e){tempScope[e._alias]=e;var t=e._alias,n=new RegExp("\\b"+t+"\\b","gm");attrName=attrName.replace(n,"tempScope."+t);var r=new RegExp("\\.tempScope\\."+t,"gm");attrName=attrName.replace(r,"."+t)});var result;try{result=eval(attrName)}catch(e){result=""}return tempScope=null,result}()},UkuleleUtil.setFinalValue=function(object,attrName,value){return function(){var tempScope={};tempScope[object._alias]=object;var valueString;valueString="string"==typeof value?'"'+value+'"':"object"==typeof value?"JSON.parse('"+JSON.stringify(value)+"')":value;var evalString="tempScope."+attrName+"="+valueString;eval(evalString)}()},UkuleleUtil.wrapScriptInComponent=function(e){return 0===e.replace(new RegExp("\\s","gm"),"").search(new RegExp("\\(function\\("))?e:"\t(function(){\n return function(uku){ \n Object.defineProperty(this, 'currentState', {\n set: function(value){\n if(value){\n this._currentState = value;\n uku.refresh(this._alias);\n }\n }\n });\n\n this.setState = function(state){\n this._currentState = state;\n uku.refresh(this._alias);\n };\n\n "+e+"\n };\n })();\n "},UkuleleUtil}();exports.UkuleleUtil=UkuleleUtil},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(3),i=n(0),a=function(e){function t(t,n,r,o){var i=e.call(this,t,r,o)||this;return i.ukuTag=n,i}return r(t,e),t.prototype.render=function(e){var t=this.attributeName,n=i.UkuleleUtil.getFinalValue(e,t);"boolean"==typeof n?!0===n?this.element.setAttribute(this.ukuTag,this.ukuTag):this.element.removeAttribute(this.ukuTag):this.element.setAttribute(this.ukuTag,n)},t}(o.BoundItemBase);t.BoundItemAttribute=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.querySelectorAll=function(e,t){return window.hasOwnProperty("jQuery")&&void 0!==window.jQuery?window.jQuery(e).find(t):e.querySelectorAll(t)},e.fuzzyFind=function(e,t){if(e&&e.attributes)for(var n=0;n<e.attributes.length;n++){var r=e.attributes[n];if(r.nodeName.search(t)>-1)return e}return null},e.directText=function(e,t){for(var n="",r=e.childNodes,o=0;o<=r.length-1;o++){var i=r[o];if(3===i.nodeType){if(t||""===t||0===t||!1===t)return void(i.nodeValue=t);n+=i.nodeValue}}return n.trim()},e.parents=function(e){for(var t=[];e.parentNode&&"BODY"!==e.parentNode.tagName;)t.push(e.parentNode),e=e.parentNode;return t},e}();t.Selector=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t,n){this.attributeName=e,this.element=t,this.uku=n}return e.prototype.render=function(e){},e}();t.BoundItemBase=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){this.eventType=e,this.element=t}return e}();t.Event=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this.eventsPool={}}return e.prototype.getEventsPool=function(){return this.eventsPool},e.prototype.addListener=function(e,t){this.eventsPool[e]||(this.eventsPool[e]=[]),this.eventsPool[e].push(t)},e.prototype.removeListener=function(e,t){if(this.eventsPool[e])for(var n=this.eventsPool[e].length-1;n>=0;n--)if(this.eventsPool[e][n]===t){this.eventsPool[e].splice(n,1);break}},e.prototype.hasListener=function(e){return!!(this.eventsPool[e]&&this.eventsPool[e].length>0)},e.prototype.dispatchEvent=function(e){if(e&&e.eventType){var t=this.eventsPool[e.eventType];if(t)for(var n=0;n<t.length;n++)t[n].call(this,e)}},e}();t.EventEmitter=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.INITIALIZED="initialized",e.REFRESH="refresh",e.HANDLE_ELEMENT_COMPLETED="handle_element_completed",e}();t.UkuEventType=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.addEventListener=function(e,t,n){return e.addEventListener(t,n)},e}();t.EventListener=r},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(5),i=n(9),a=n(15),u=n(17),l=n(2),s=n(6),c=n(4);t.Ukulele=(p=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.promiseArray=[],t._childrenUku={},t}return r(t,e),t.prototype.init=function(){var e=this;Promise.all(this.promiseArray).then(function(){e.manageApplication()})},t.prototype.setChildrenUku=function(e,t){for(var n=0,r=e;n<r.length;n++){var o=r[n],i=o._alias;this._childrenUku[i]||(this._childrenUku[i]=[]),this._childrenUku[i].push(t)}},t.prototype.handleElement=function(e,t){var n=this;this.analyizeElement(e,function(e){n.dispatchEvent(new c.Event(s.UkuEventType.HANDLE_ELEMENT_COMPLETED,e)),t&&"function"==typeof t&&t(e.element)})},t.prototype.registerController=function(e,t){window[e]=t,this._internal_getDefinitionManager().addControllerDefinition(e,t)},t.prototype.getController=function(e){return this._internal_getDefinitionManager().getControllerDefinition(e).controllerInstance},t.prototype.registerComponent=function(e,t,n){var r=this._internal_getDefinitionManager().addComponentDefinition(e,t,n);this.promiseArray.push(r)},t.prototype.getComponent=function(e){return this._internal_getDefinitionManager().getComponent(e)},t.prototype.getComponentController=function(e){return this._internal_getDefinitionManager().getControllerInstByDomId(e)},t.prototype.refresh=function(e,t){this.dirtyChecker||(this.dirtyChecker=new a.DirtyChecker(this)),this.dirtyChecker.runDirtyChecking(e,t)},t.prototype._internal_getDefinitionManager=function(){return this.defMgr||(this.defMgr=new i.DefinitionManager(this)),this.defMgr},t.prototype._internal_dealWithElement=function(e,t){this.analyizeElement(e,t)},t.prototype.manageApplication=function(){var e=this,t=l.Selector.querySelectorAll(document,"[uku-application]");if(1!==t.length)throw new Error("Only one 'uku-application' can be declared in a whole html.");this.analyizeElement(t[0],function(t){e.dispatchEvent(new c.Event(s.UkuEventType.INITIALIZED,t))})},t.prototype.analyizeElement=function(e,t){var n=new u.Analyzer(this);t&&function(e){n.addListener(u.Analyzer.ANALYIZE_COMPLETED,function(t){e(t.element)})}(t),n.analyizeElement(e)},t}(o.EventEmitter),p.INITIALIZED="initialized",p.REFRESH="refresh",p.HANDLE_ELEMENT_COMPLETED="handle_element_completed",p);var p},function(module,exports,__webpack_require__){"use strict";var __awaiter=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function u(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){e.done?o(e.value):new n(function(t){t(e.value)}).then(a,u)}l((r=r.apply(e,t||[])).next())})},__generator=this&&this.__generator||function(e,t){function n(e){return function(t){return r([e,t])}}function r(n){if(o)throw new TypeError("Generator is already executing.");for(;l;)try{if(o=1,i&&(a=i[2&n[0]?"return":n[0]?"throw":"next"])&&!(a=a.call(i,n[1])).done)return a;switch(i=0,a&&(n=[0,a.value]),n[0]){case 0:case 1:a=n;break;case 4:return l.label++,{value:n[1],done:!1};case 5:l.label++,i=n[1],n=[0];continue;case 7:n=l.ops.pop(),l.trys.pop();continue;default:if(a=l.trys,!(a=a.length>0&&a[a.length-1])&&(6===n[0]||2===n[0])){l=0;continue}if(3===n[0]&&(!a||n[1]>a[0]&&n[1]<a[3])){l.label=n[1];break}if(6===n[0]&&l.label<a[1]){l.label=a[1],a=n;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(n);break}a[2]&&l.ops.pop(),l.trys.pop();continue}n=t.call(e,l)}catch(e){n=[6,e],i=0}finally{o=a=0}if(5&n[0])throw n[1];return{value:n[0]?n[1]:void 0,done:!0}}var o,i,a,u,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return u={next:n(0),throw:n(1),return:n(2)},"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u};Object.defineProperty(exports,"__esModule",{value:!0});var Ajax_1=__webpack_require__(10),ControllerModel_1=__webpack_require__(11),ComponentModel_1=__webpack_require__(12),ComponentPoolItem_1=__webpack_require__(13),UkuleleUtil_1=__webpack_require__(0),DefinitionManager=function(){function DefinitionManager(e){this.controllersDefinition={},this.componentsDefinition={},this.componentsPool={},this.copyControllers={},this.dependentScriptsCache={},this.ajax=new Ajax_1.Ajax,this.uku=e}return DefinitionManager.prototype.getComponentsDefinition=function(){return this.componentsDefinition},DefinitionManager.prototype.getComponentsPool=function(){return this.componentsPool},DefinitionManager.prototype.setComponentsPool=function(e){this.componentsPool=e},DefinitionManager.prototype.setComponentsDefinition=function(e){this.componentsDefinition=e},DefinitionManager.prototype.getComponentDefinition=function(e){return this.componentsDefinition[e]},DefinitionManager.prototype.getControllerDefinition=function(e){return this.controllersDefinition[e]},DefinitionManager.prototype.getControllersDefinition=function(){return this.controllersDefinition},DefinitionManager.prototype.getComponent=function(e){return this.componentsPool[e]},DefinitionManager.prototype.getCopyControllers=function(){return this.copyControllers},DefinitionManager.prototype.addControllerDefinition=function(e,t){var n=new ControllerModel_1.ControllerModel(e,t);t._alias=e,this.controllersDefinition[e]=n},DefinitionManager.prototype.getControllerInstByDomId=function(e){for(var t in this.controllersDefinition){var n=this.controllersDefinition[t],r=n.controllerInstance;if(r._dom&&r._dom.id===e)return r}},DefinitionManager.prototype.addComponentDefinition=function(e,t,n){var r=this;return new Promise(function(o,i){if(n)return r.componentsPool[e]=new ComponentPoolItem_1.ComponentPoolItem(e,t,!1),r.ajax.get(t).then(function(t){var n=UkuleleUtil_1.UkuleleUtil.getComponentConfiguration(t);return r.analyizeComponent(e,n)});r.componentsPool[e]=new ComponentPoolItem_1.ComponentPoolItem(e,t,!0),o()})},DefinitionManager.prototype.addLazyComponentDefinition=function(e,t){var n=this;return new Promise(function(r,o){return n.ajax.get(t).then(function(o){var i=UkuleleUtil_1.UkuleleUtil.getComponentConfiguration(o);return n.analyizeComponent(e,i).then(function(){n.componentsPool[e]={tagName:e,templateUrl:t,lazy:!1},r()})})})},DefinitionManager.prototype.getBoundAttributeValue=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=this.getControllerModelByName(e),o=[];r.forEach(function(e){o.push(e.controllerInstance)});var i=[this.uku,o,e];return i=i.concat(t),UkuleleUtil_1.UkuleleUtil.getFinalValue.apply(null,i)},DefinitionManager.prototype.getControllerModelByName=function(e){var t=this,n=[],r=/\$\w+\./g,o=e.match(r);o&&o.forEach(function(e){e=e.substr(0,e.length-1);var r=t.controllersDefinition[e];n.push(r)});var i=/cc\_\w*\./g,a=e.match(i);a&&a.forEach(function(e){e=e.substr(0,e.length-1);var r=t.controllersDefinition[e];n.push(r)});var u=/repeatItem\_\w*\$/g,l=e.match(u);return l&&l.forEach(function(e){var r=t.controllersDefinition[e];n.push(r)}),n},DefinitionManager.prototype.getFinalValueByExpression=function(e){var t=this.getControllerModelByName(e),n=[];return t.forEach(function(e){n.push(e.controllerInstance)}),UkuleleUtil_1.UkuleleUtil.getFinalValue(n,e)},DefinitionManager.prototype.analyizeComponent=function(e,t){return __awaiter(this,void 0,void 0,function(){function n(e){return new Promise(function(t,n){if(o.dependentScriptsCache[e])t();else{var r=document.getElementsByTagName("HEAD")[0],i=document.createElement("script");i.type="text/javascript",i.charset="utf-8",i.async=!0,i.src=e,i.onload=function(e){o.dependentScriptsCache[e.target.src]=!0,t()},r.appendChild(i)}})}var r,o,i,a,u,l,s;return __generator(this,function(c){switch(c.label){case 0:return r=t.dependentScripts,(o=this,r&&r.length>0)?(i=void 0,"function"==typeof window.define&&window.define.amd&&(i=window.define,window.define=void 0),t.componentControllerScript?[3,2]:(a=r[r.length-1],u=t,[4,this.ajax.get(a)])):[3,7];case 1:u.componentControllerScript=c.sent(),r.pop(),c.label=2;case 2:l=0,c.label=3;case 3:return l<r.length?(s=r[l],[4,n(s)]):[3,6];case 4:c.sent(),c.label=5;case 5:return l++,[3,3];case 6:return i&&(window.define=i),this.buildeComponentModel(e,t.template,t.componentControllerScript,t.stylesheet),[2];case 7:return this.buildeComponentModel(e,t.template,t.componentControllerScript,t.stylesheet),[2];case 8:return[2]}})})},DefinitionManager.prototype.buildeComponentModel=function(tag,template,script,style){function dealWithShadowStyle(e,t){var n=document.getElementsByTagName("HEAD")[0],r=document.createElement("style");r.type="text/css";var o=t.split("}"),i=[];o.forEach(function(e,t){var n=e.replace(/^\s*/,"");n&&i.push(n)}),t=i.join("}\n."+e+" "),t="."+e+" "+t+"}",r.innerHTML=t,n.appendChild(r)}var debugComment="//# sourceURL="+tag+".js";try{var controllerClazz=void 0;script&&(script=UkuleleUtil_1.UkuleleUtil.wrapScriptInComponent(script),script+=debugComment,controllerClazz=eval(script));var newComp=new ComponentModel_1.ComponentModel(tag,template,controllerClazz);this.componentsDefinition[tag]=newComp,style&&dealWithShadowStyle(tag,style)}catch(e){console.error(e)}},DefinitionManager}();exports.DefinitionManager=DefinitionManager},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.prototype.get=function(e){return new Promise(function(t,n){var r=new XMLHttpRequest;r.onreadystatechange=function(){4===r.readyState&&(200===r.status?t(r.responseText):n())},r.open("GET",e,!0),r.send(null)})},e}();t.Ajax=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){this.alias=e,this.controllerInstance=t,this.boundItems=[]}return e.prototype.addBoundItem=function(e){this.boundItems.push(e)},e.prototype.getBoundItemsByName=function(e){for(var t=[],n=0;n<this.boundItems.length;n++){var r=this.boundItems[n];r.attributeName===e&&t.push(r)}return t},e}();t.ControllerModel=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t,n){this.tagName=e,this.template=t,this.controllerClazz=n}return e}();t.ComponentModel=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t,n){this.tagName=e,this.templateUrl=t,this.lazy=n}return e}();t.ComponentPoolItem=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t,n,r){void 0===r&&(r=void 0),this.template=e,this.dependentScripts=t,this.componentControllerScript=n,this.stylesheet=r}return e}();t.ComponentConfiguration=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),o=n(16),i=n(6),a=n(4),u=function(){function e(e){this.oldValueCache={},this.uku=e,this.defMgr=this.uku._internal_getDefinitionManager()}return e.prototype.runDirtyChecking=function(e,t){function n(e){var n=u.defMgr.getControllersDefinition()[e];if(n){var l=n.controllerInstance;u.oldValueCache[e]||(u.oldValueCache[e]={});for(var s=u.oldValueCache[e],c=0,p=0;p<n.boundItems.length;p++){var f=n.boundItems[p],h=f.attributeName;if(s){f.hasOwnProperty("ukuTag")&&"selected"===f.ukuTag&&(h=h.split("|")[0]);var d=r.UkuleleUtil.getFinalValue([l],h),_=s[h];if(!o.ObjectUtil.compare(_,d)){h=f.attributeName;for(var m=n.getBoundItemsByName(h),v=0;v<m.length;v++){var y=m[v];(y.element!==t||f.hasOwnProperty("ukuTag")&&"value"!==y.ukuTag)&&(c++,y.render([l]))}s[h]=o.ObjectUtil.deepClone(d)}}}c>0&&u.uku.hasListener(i.UkuEventType.REFRESH)&&u.uku.dispatchEvent(new a.Event(i.UkuEventType.REFRESH))}}var u=this;if(e){if("string"==typeof e)n(e);else if(o.ObjectUtil.isArray(e))for(var l=0;l<e.length;l++)n(e[l])}else for(var s in this.defMgr.getControllersDefinition())n(s)},e}();t.DirtyChecker=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},e.getType=function(t){var n=typeof t;return"object"===n&&e.isArray(t)?"array":n},e.deepClone=function(t){var n,r,o;if("object"!=typeof t||null===t)return t;if(t instanceof Array)for(n=[],r=0,o=t.length;r<o;r++)"object"==typeof t[r]&&null!==t[r]?n[r]=e.deepClone(t[r]):n[r]=t[r];else{n={};for(r in t)"object"==typeof t[r]&&null!==t[r]&&"_dom"!==r?n[r]=e.deepClone(t[r]):n[r]=t[r]}return n},e.compare=function(t,n){var r=e.getType(t),o=e.getType(n),i=!0;if(r!==o)return!1;switch(r){case"object":if(null===t&&null===n)i=!0;else if(null===t||null===n)i=!1;else{var a=Object.keys(t),u=Object.keys(n);if(a.length!=u.length)i=!1;else if(0===a.length&&0===u.length)i=!0;else for(var l in t){var s=t[l],c=n[l],p=e.compare(s,c);if(!p){i=!1;break}}}break;case"array":if(t.length===n.length)for(var f=0;f<t.length;f++){var h=t[f],d=n[f],_=e.compare(h,d);if(!_){i=!1;break}}else i=!1;break;case"function":i=t.toString()===n.toString();break;default:i=t===n}return i},e}();t.ObjectUtil=r},function(module,exports,__webpack_require__){"use strict";var __extends=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),__awaiter=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function u(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){e.done?o(e.value):new n(function(t){t(e.value)}).then(a,u)}l((r=r.apply(e,t||[])).next())})},__generator=this&&this.__generator||function(e,t){function n(e){return function(t){return r([e,t])}}function r(n){if(o)throw new TypeError("Generator is already executing.");for(;l;)try{if(o=1,i&&(a=i[2&n[0]?"return":n[0]?"throw":"next"])&&!(a=a.call(i,n[1])).done)return a;switch(i=0,a&&(n=[0,a.value]),n[0]){case 0:case 1:a=n;break;case 4:return l.label++,{value:n[1],done:!1};case 5:l.label++,i=n[1],n=[0];continue;case 7:n=l.ops.pop(),l.trys.pop();continue;default:if(a=l.trys,!(a=a.length>0&&a[a.length-1])&&(6===n[0]||2===n[0])){l=0;continue}if(3===n[0]&&(!a||n[1]>a[0]&&n[1]<a[3])){l.label=n[1];break}if(6===n[0]&&l.label<a[1]){l.label=a[1],a=n;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(n);break}a[2]&&l.ops.pop(),l.trys.pop();continue}n=t.call(e,l)}catch(e){n=[6,e],i=0}finally{o=a=0}if(5&n[0])throw n[1];return{value:n[0]?n[1]:void 0,done:!0}}var o,i,a,u,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return u={next:n(0),throw:n(1),return:n(2)},"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u};Object.defineProperty(exports,"__esModule",{value:!0});var EventEmitter_1=__webpack_require__(5),UkuleleUtil_1=__webpack_require__(0),BoundItemAttributeFactory_1=__webpack_require__(18),BoundItemExpression_1=__webpack_require__(27),BoundItemInnerText_1=__webpack_require__(28),BoundItemRepeat_1=__webpack_require__(29),BoundItemComponentAttribute_1=__webpack_require__(30),ElementActionBinder_1=__webpack_require__(31),EventListener_1=__webpack_require__(7),Selector_1=__webpack_require__(2),Event_1=__webpack_require__(4),Analyzer=function(_super){function Analyzer(e){var t=_super.call(this)||this;return t.dealWithAttribute=function(e,t){var n=this,r=e.getAttribute("uku-"+t),o=this.defMgr.getControllerModelByName(r);if(o&&o.length>0){var i=BoundItemAttributeFactory_1.BoundItemAttributeFactory.getInstance().generateInstance(r,t,e,this.uku),a=[];o.forEach(function(r){r.addBoundItem(i),ElementActionBinder_1.elementChangedBinder(e,t,r,n.uku.refresh,n.uku),a.push(r.controllerInstance)}),i.render(a)}},t.uku=e,t.defMgr=t.uku._internal_getDefinitionManager(),t}return __extends(Analyzer,_super),Analyzer.prototype.analyizeElement=function(e){var t=this;this.searchComponent(e).then(function(e){t.searchExpression(e),t.searchUkuAttribute(e),t.hasListener(Analyzer.ANALYIZE_COMPLETED)&&t.dispatchEvent(new Event_1.Event(Analyzer.ANALYIZE_COMPLETED,e))})},Analyzer.prototype.sortAttributes=function(e){for(var t=[],n=[],r=0;r<e.attributes.length;r++){var o=e.attributes[r];-1!==o.nodeName.search("uku-on")?n.push(o):t.push(o)}return t=t.concat(n)},Analyzer.prototype.searchUkuAttribute=function(e){var t=[],n=Selector_1.Selector.fuzzyFind(e,"uku-");n&&t.push(n);for(var r=Selector_1.Selector.querySelectorAll(e,"*"),o=0;o<r.length;o++){var i=r[o],a=Selector_1.Selector.fuzzyFind(i,"uku-");a&&!UkuleleUtil_1.UkuleleUtil.isInRepeat(a)&&t.push(a)}for(var u=0;u<t.length;u++)for(var l=t[u],s=this.sortAttributes(l),c=0;c<s.length;c++){var p=s[c];if(UkuleleUtil_1.UkuleleUtil.searchUkuAttrTag(p.nodeName)>-1){var f=p.nodeName.split("-");f.shift();var h=f.join("-");"application"!==h&&(0===h.search("on")?UkuleleUtil_1.UkuleleUtil.isRepeat(l)||UkuleleUtil_1.UkuleleUtil.isInRepeat(l)||this.dealWithEvent(l,h):-1!==h.search("repeat")?this.dealWithRepeat(l):UkuleleUtil_1.UkuleleUtil.isRepeat(l)||UkuleleUtil_1.UkuleleUtil.isInRepeat(l)||("text"!==h?this.dealWithAttribute(l,h):this.dealWithInnerText(l)))}}},Analyzer.prototype.searchComponent=function(e){return __awaiter(this,void 0,void 0,function(){var t,n,r,n,r,o,i;return __generator(this,function(a){switch(a.label){case 0:return(t=this.defMgr.getComponent(e.localName))?t.lazy?[3,1]:(n=e.attributes,r=this.defMgr.getComponentsDefinition()[t.tagName],UkuleleUtil_1.UkuleleUtil.isRepeat(e)||UkuleleUtil_1.UkuleleUtil.isInRepeat(e)?[2,e]:[2,this.dealWithComponent(e,r.template,r.controllerClazz,n)]):[3,4];case 1:return[4,this.defMgr.addLazyComponentDefinition(t.tagName,t.templateUrl)];case 2:return a.sent(),n=e.attributes,r=this.defMgr.getComponentsDefinition()[t.tagName],UkuleleUtil_1.UkuleleUtil.isRepeat(e)||UkuleleUtil_1.UkuleleUtil.isInRepeat(e)?[2,e]:[2,this.dealWithComponent(e,r.template,r.controllerClazz,n)];case 3:return[3,10];case 4:if(!(e.children&&e.children.length>0))return[3,9];o=0,a.label=5;case 5:return o<e.children.length?(i=e.children[o],[4,this.searchComponent(i)]):[3,8];case 6:a.sent(),a.label=7;case 7:return o++,[3,5];case 8:case 9:return[2,e];case 10:return[2]}})})},Analyzer.prototype.dealWithComponent=function(e,t,n,r){return __awaiter(this,void 0,void 0,function(){var o,i,a,u,l,s,c,p,p,f,h,d;return __generator(this,function(_){switch(_.label){case 0:if(o=(new Date).getTime(),i="cc_"+Math.floor(o*Math.random()).toString(),t=t.replace(new RegExp("'cc\\.","gm"),"'"+i+"."),t=t.replace(new RegExp('"cc\\.',"gm"),'"'+i+"."),t=t.replace(new RegExp("{{cc\\.","gm"),"{{"+i+"."),t=t.replace(new RegExp(" cc\\.","gm")," "+i+"."),t=t.replace(new RegExp("\\(cc\\.","gm"),"("+i+"."),t=t.replace(new RegExp("\\,cc\\.","gm"),","+i+"."),t=t.replace(new RegExp("\\.cc\\.","gm"),"."+i+"."),t=t.replace(new RegExp("\\!cc\\.","gm"),"!"+i+"."),a=document.createElement("div"),a.insertAdjacentHTML("afterBegin",t),a.children.length>1&&(t=a.outerHTML),e.insertAdjacentHTML("beforeBegin",t),u=e.previousElementSibling,u.classList.add(e.localName),n)for(l=new n(this.uku),l._dom=u,l.fire=function(e,t,n,r){void 0===n&&(n=!1),void 0===r&&(r=!0);var o=new CustomEvent(e.toLowerCase(),{bubbles:n,cancelable:r});o.data=t,l._dom.dispatchEvent(o)},this.uku.registerController(i,l),s=function(e){var t=r[e];if(0!==UkuleleUtil_1.UkuleleUtil.searchUkuAttrTag(t.nodeName)||-1!==t.nodeName.search("uku-on")||"uku-render"===t.nodeName||"uku-visible"===t.nodeName)u.setAttribute(t.nodeName,t.nodeValue);else{var n=UkuleleUtil_1.UkuleleUtil.getAttrFromUkuTag(t.nodeName,!0),o=c.defMgr.getControllerModelByName(t.nodeValue);if(o&&o.length>0){var i=new BoundItemComponentAttribute_1.BoundItemComponentAttribute(t.nodeValue,n,l,c.uku),a=[];o.forEach(function(e){e.addBoundItem(i),a.push(e.controllerInstance)}),i.render(a)}else{new BoundItemComponentAttribute_1.BoundItemComponentAttribute(t.nodeValue,n,l,c.uku).render([])}}},c=this,p=0;p<r.length;p++)s(p);else for(p=0;p<r.length;p++)f=r[p],0===UkuleleUtil_1.UkuleleUtil.searchUkuAttrTag(f.nodeName)&&-1===f.nodeName.search("uku-on")&&"uku-render"!==f.nodeName&&"uku-visible"!==f.nodeName||u.setAttribute(f.nodeName,f.nodeValue);if(e.parentNode.removeChild(e),!(u.children&&u.children.length>0))return[3,5];h=0,_.label=1;case 1:return h<u.children.length?(d=u.children[h],[4,this.searchComponent(d)]):[3,4];case 2:_.sent(),_.label=3;case 3:return h++,[3,1];case 4:case 5:return l&&l._initialized&&"function"==typeof l._initialized&&l._initialized(i,l._dom),[2,u]}})})},Analyzer.prototype.searchExpression=function(e){-1!==UkuleleUtil_1.UkuleleUtil.searchUkuExpTag(Selector_1.Selector.directText(e))&&(UkuleleUtil_1.UkuleleUtil.isRepeat(e)||UkuleleUtil_1.UkuleleUtil.isInRepeat(e)||this.dealWithExpression(e));for(var t=0;t<e.children.length;t++)this.searchExpression(e.children[t])},Analyzer.prototype.dealWithExpression=function(e){var t=Selector_1.Selector.directText(e);if(-1!==UkuleleUtil_1.UkuleleUtil.searchUkuExpTag(t)){var n=t.slice(2,-2),r=this.defMgr.getControllerModelByName(n);if(r&&r.length>0){var o=new BoundItemExpression_1.BoundItemExpression(n,t,e,this.uku),i=[];r.forEach(function(e){e.addBoundItem(o),i.push(e.controllerInstance)}),o.render(i)}}},Analyzer.prototype.dealWithInnerText=function(e){var t=e.getAttribute("uku-text");if(t){var n=this.defMgr.getControllerModelByName(t);if(n&&n.length>0){var r=new BoundItemInnerText_1.BoundItemInnerText(t,e,this.uku),o=[];n.forEach(function(e){e.addBoundItem(r),o.push(e.controllerInstance)}),r.render(o)}}},Analyzer.prototype.dealWithEvent=function(element,eventName){var _this=this,expression=element.getAttribute("uku-"+eventName),eventNameInListener=eventName.substring(2);eventNameInListener=eventNameInListener.toLowerCase();var controllerModels=this.defMgr.getControllerModelByName(expression);controllerModels&&0!==controllerModels.length||(controllerModels=[]),EventListener_1.EventListener.addEventListener(element,eventNameInListener,function(event){var alias_list=[];controllerModels.forEach(function(e){alias_list.push(e.alias)});var index=UkuleleUtil_1.UkuleleUtil.searchUkuFuncArg(expression);if(-1===index){var handler=new Function("event","return "+expression);console.log(handler.toString()),handler(event)}else{var i=expression.search(/\(/),arg="event";")"!==expression[i+1]&&(arg="event,");var arr=expression.split("(");arr[1]=arg+arr[1];var new_expression_1=arr.join("(");!function(e){var tempScope={};tempScope.event=e,eval(new_expression_1),tempScope=null}(event)}_this.uku.refresh(alias_list,element)})},Analyzer.prototype.dealWithRepeat=function(e){var t=e.getAttribute("uku-repeat"),n=t.split(" in "),r=n[0],o=n[1],i=this.defMgr.getControllerModelByName(o);if(i&&i.length>0){var a=[],u=new BoundItemRepeat_1.BoundItemRepeat(o,r,e,this.uku);i.forEach(function(e){e.addBoundItem(u),a.push(e.controllerInstance)}),u.render(a)}},Analyzer.ANALYIZE_COMPLETED="analyizeCompleted",Analyzer}(EventEmitter_1.EventEmitter);exports.Analyzer=Analyzer},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(19),o=n(20),i=n(21),a=n(22),u=n(23),l=n(24),s=n(25),c=n(26),p=n(1),f=function(){function e(){if(e._instance)throw new Error("Error: Instantiation failed: Use BoundItemAttributeFactory.getInstance() instead of new.");e._instance=this}return e.getInstance=function(){return e._instance},e.prototype.generateInstance=function(e,t,n,f){var h;switch(t){case"selected":h=new r.BountItemAttrSelected(e,t,n,f);break;case"data-item":h=new o.BoundItemAttrDataItem(e,t,n,f);break;case"src":h=new i.BoundItemAttrSrc(e,t,n,f);break;case"disabled":h=new a.BoundItemAttrDisabled(e,t,n,f);break;case"render":h=new u.BoundItemAttrRender(e,t,n,f);break;case"style":h=new l.BoundItemAttrStyle(e,t,n,f);break;case"value":h=new s.BoundItemAttrValue(e,t,n,f);break;case"visible":h=new c.BoundItemAttrVisible(e,t,n,f);break;default:h=new p.BoundItemAttribute(e,t,n,f)}return h},e._instance=new e,e}();t.BoundItemAttributeFactory=f},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(1),i=n(0),a=function(e){function t(t,n,r,o){if("selected"!==n)throw new TypeError("it doesn't use uku-selected");return e.call(this,t,n,r,o)||this}return r(t,e),t.prototype.render=function(e){var t,n=this.attributeName,r=this.element.tagName;if("SELECT"===r){var o=this.attributeName.split("|");n=o[0],t=o[1];var a=i.UkuleleUtil.getFinalValue(e,n),u=void 0;u=t?a[t]:a,this.element.value=u}if("INPUT"===r&&"radio"===this.element.getAttribute("type")){var a=i.UkuleleUtil.getFinalValue(e,n);this.element.value===a&&this.element.setAttribute("checked","true")}},t}(o.BoundItemAttribute);t.BountItemAttrSelected=a},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(1),i=n(0),a=function(e){function t(t,n,r,o){if("data-item"!==n)throw new TypeError("it doesn't use uku-item");return e.call(this,t,n,r,o)||this}return r(t,e),t.prototype.render=function(e){var t=this.attributeName,n=this.element.tagName,r=i.UkuleleUtil.getFinalValue(e,t);"OPTION"===n&&(r=JSON.stringify(r),this.element.setAttribute("data-item",r))},t}(o.BoundItemAttribute);t.BoundItemAttrDataItem=a},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(1),i=n(0),a=function(e){function t(t,n,r,o){if("src"!==n)throw new TypeError("it doesn't use uku-src");return e.call(this,t,n,r,o)||this}return r(t,e),t.prototype.render=function(e){var t=this.attributeName,n=this.element.tagName,r=i.UkuleleUtil.getFinalValue(e,t);if("IMG"!==n&&"VIDEO"!==n&&"AUDIO"!==n)throw new Error("uku-src doesn't work with current dom");r&&this.element.setAttribute(this.ukuTag,r)},t}(o.BoundItemAttribute);t.BoundItemAttrSrc=a},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(1),i=n(0),a=function(e){function t(t,n,r,o){if("disabled"!==n)throw new TypeError("it doesn't use uku-disabled");return e.call(this,t,n,r,o)||this}return r(t,e),t.prototype.render=function(e){var t=this.attributeName,n=(this.element.tagName,i.UkuleleUtil.getFinalValue(e,t));this.element.disabled=n},t}(o.BoundItemAttribute);t.BoundItemAttrDisabled=a},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(1),i=n(0),a=function(e){function t(t,n,r,o){if("render"!==n)throw new TypeError("it doesn't use uku-render");return e.call(this,t,n,r,o)||this}return r(t,e),t.prototype.render=function(e){var t=this.attributeName;if(i.UkuleleUtil.getFinalValue(e,t)){var n=this.element.getAttribute("data-old-display");null!==n&&(this.element.style.display=n)}else{var n=this.element.getAttribute("data-old-display");null===n&&(n=this.element.style.display,this.element.setAttribute("data-old-display",n)),this.element.style.display="none"}},t}(o.BoundItemAttribute);t.BoundItemAttrRender=a},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(1),i=n(0),a=function(e){function t(t,n,r,o){if("style"!==n)throw new TypeError("it doesn't use uku-style");return e.call(this,t,n,r,o)||this}return r(t,e),t.prototype.render=function(e){var t=this.attributeName,n=(this.element.tagName,i.UkuleleUtil.getFinalValue(e,t));for(var r in n)this.element.style[r]=n[r]},t}(o.BoundItemAttribute);t.BoundItemAttrStyle=a},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(1),i=n(0),a=function(e){function t(t,n,r,o){if("value"!==n)throw new TypeError("it doesn't use uku-value");return e.call(this,t,n,r,o)||this}return r(t,e),t.prototype.render=function(e){var t=this.attributeName,n=this.element.tagName,r=i.UkuleleUtil.getFinalValue(e,t);"INPUT"===n&&"checkbox"===this.element.getAttribute("type")?this.element.checked=r:this.element.value=r},t}(o.BoundItemAttribute);t.BoundItemAttrValue=a},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(1),i=n(0),a=function(e){function t(t,n,r,o){if("visible"!==n)throw new TypeError("it doesn't use uku-visible");return e.call(this,t,n,r,o)||this}return r(t,e),t.prototype.render=function(e){var t=this.attributeName,n=(this.element.tagName,i.UkuleleUtil.getFinalValue(e,t));this.element.style.visibility=n?"visible":"hidden"},t}(o.BoundItemAttribute);t.BoundItemAttrVisible=a},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(3),i=n(0),a=n(2),u=function(e){function t(t,n,r,o){var i=e.call(this,t,r,o)||this;return i.expression=n,i}return r(t,e),t.prototype.render=function(e){var t=i.UkuleleUtil.getFinalValue(e,this.attributeName);a.Selector.directText(this.element,t)},t}(o.BoundItemBase);t.BoundItemExpression=u},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(3),i=n(0),a=function(e){function t(t,n,r){var o=e.call(this,t,n,r)||this;return o.tagName="text",o}return r(t,e),t.prototype.render=function(e){var t=i.UkuleleUtil.getFinalValue(e,this.attributeName);this.element.innerHTML=t},t}(o.BoundItemBase);t.BoundItemInnerText=a},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(3),i=n(0),a=function(e){function t(t,n,r,o){var i=e.call(this,t,r,o)||this;return i.expression=n,i.renderTemplate=r.outerHTML,i.parentElement=r.parentNode,i.beginCommentString=void 0,i.endCommentString=void 0,i}return r(t,e),t.prototype.render=function(e){function t(){var e=i.UkuleleUtil.searchHtmlTag(u.renderTemplate,"tr"),t=i.UkuleleUtil.searchHtmlTag(u.renderTemplate,"th");return-1===e||-1===t?document.createElement("tbody"):document.createElement("div")}var n=this,r=i.UkuleleUtil.getFinalValue(e,this.attributeName);if(r){if("number"==typeof r&&Math.floor(r)===r){for(var o=[],a=1;a<=r;a++)o.push(a);r=o}var u=this;if(this.element&&this.element.parentNode){this.beginCommentString="begin uku-repeat: "+this.expression+" in "+this.attributeName;var l=document.createComment(this.beginCommentString);this.element.parentNode.insertBefore(l,this.element),this.endCommentString="end uku-repeat: "+this.expression+" in "+this.attributeName;var s=document.createComment(this.endCommentString);this.element.parentNode.insertBefore(s,this.element.nextSibling),this.element.parentNode.removeChild(this.element)}var c={acceptNode:function(e){return e.nodeValue===u.beginCommentString?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}},p=c.acceptNode;p.acceptNode=c.acceptNode;for(var f=document.createTreeWalker(this.parentElement,NodeFilter.SHOW_COMMENT,p,!1);f.nextNode();){var h=f.currentNode;if(h&&h.nodeValue===this.beginCommentString){for(;h.nextSibling&&h.nextSibling.nodeValue!==this.endCommentString;)h.parentNode.removeChild(h.nextSibling);var d=t(),_=t();h.parentNode.insertBefore(_,h.nextSibling);for(var m=0;m<r.length;m++)if(d.insertAdjacentHTML("beforeEnd",this.renderTemplate),m===r.length-1){var v=d.innerHTML;_.insertAdjacentHTML("beforeBegin",v),h.parentNode.removeChild(_),d=null,_=null}for(var y=h.nextElementSibling,g=(new Date).getTime(),b=0;b<r.length;b++){y.removeAttribute("uku-repeat");var k=this.uku._internal_getDefinitionManager().getComponentsDefinition(),U=this.uku._internal_getDefinitionManager().getComponentsPool();this.uku._internal_getDefinitionManager().setComponentsDefinition(k),this.uku._internal_getDefinitionManager().setComponentsPool(U);var w=y.nextSibling,E=typeof r[b],C="repeatItem_"+Math.floor(g*Math.random()).toString()+"_"+this.expression+"$";"object"===E?this.uku.registerController(C,r[b]):(this.uku.registerController(C,{value:r[b]}),C+=".value");var A=new RegExp("\\b"+this.expression+"(?!\\-|\\s|\\w|\\=)","gm"),I=y.outerHTML.replace(A,C);y.insertAdjacentHTML("afterend",I);var M=y.nextSibling;y.parentNode.removeChild(y),y=M,this.uku._internal_dealWithElement(y,function(e){if("OPTION"===n.element.tagName){var t=n.parentElement.getAttribute("uku-selected"),r=t.split("|");t=r[0];var o=r[1],i=n.uku._internal_getDefinitionManager().getFinalValueByExpression(t);n.parentElement.value=o?i[o]:i}}),y=w}}}}},t}(o.BoundItemBase);t.BoundItemRepeat=a},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(3),i=n(0),a=function(e){function t(t,n,r,o){var i=e.call(this,t,null,o)||this;return i.ukuTag=n,i.componentController=r,i}return r(t,e),t.prototype.render=function(e){var t=i.UkuleleUtil.getFinalValue(e,this.attributeName);this.componentController[this.ukuTag]=t,this.uku.refresh(this.componentController._alias)},t}(o.BoundItemBase);t.BoundItemComponentAttribute=a},function(e,t,n){"use strict";function r(e,t,n,r,i){for(var c=[o,a,u,l,s],p=0;p<c.length;p++){if(c[p].apply(this,arguments))break}}function o(e,t,n,r,o){if("INPUT"===e.tagName&&i(e)&&"value"===t){var a="change",u=e.getAttribute("type");return"text"!==u&&"text"!==u&&"password"!==u&&"tel"!==u&&"number"!==u&&"search"!==u||(a="input"),p.EventListener.addEventListener(e,a,function(i){var a=e.getAttribute("uku-"+t);c.UkuleleUtil.setFinalValue(n.controllerInstance,a,e.value),r&&r.call(o,n.alias,e)}),!0}return!1}function i(e){var t=e.getAttribute("type");return"checkbox"!==t&&"radio"!==t}function a(e,t,n,r,o){return"TEXTAREA"===e.tagName&&"value"===t&&(p.EventListener.addEventListener(e,"input",function(i){var a=e.getAttribute("uku-"+t);c.UkuleleUtil.setFinalValue(n.controllerInstance,a,e.value),r&&r.call(o,n.alias,e)}),!0)}function u(e,t,n,r,o){return"SELECT"===e.tagName&&"selected"===t&&(p.EventListener.addEventListener(e,"change",function(i){var a=e.getAttribute("uku-"+t);a=a.split("|")[0];for(var u=f.Selector.querySelectorAll(e,"option"),l=0;l<u.length;l++){var s=u[l];if(s.selected){var p=JSON.parse(s.getAttribute("data-item"));c.UkuleleUtil.setFinalValue(n.controllerInstance,a,p)}}r&&r.call(o,n.alias,e)}),!0)}function l(e,t,n,r,o){return"INPUT"===e.tagName&&"value"===t&&"checkbox"===e.getAttribute("type")&&(p.EventListener.addEventListener(e,"change",function(i){var a=e.getAttribute("uku-"+t);c.UkuleleUtil.setFinalValue(n.controllerInstance,a,e.checked),r&&r.call(o,n.alias,e)}),!0)}function s(e,t,n,r,o){return"INPUT"===e.tagName&&"selected"===t&&"radio"===e.getAttribute("type")&&(p.EventListener.addEventListener(e,"change",function(i){var a=e.getAttribute("uku-"+t);e.checked&&(c.UkuleleUtil.setFinalValue(n.controllerInstance,a,e.value),r&&r.call(o,n.alias,e))}),!0)}Object.defineProperty(t,"__esModule",{value:!0});var c=n(0),p=n(7),f=n(2);t.elementChangedBinder=r}])}); +!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=8)}([function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var Selector_1=__webpack_require__(2),ComponentConfiguration_1=__webpack_require__(14),ValueAndParent=function(){function e(e,t){this.value=e,this.parent=t}return e}(),UkuleleUtil=function(){function UkuleleUtil(){}return UkuleleUtil.searchHtmlTag=function(e,t){var n="^<"+t+"[\\s\\S]*>[\\s\\S]*</"+t+">$",r=new RegExp(n);return e.search(r)},UkuleleUtil.getInnerHtml=function(e,t){var n="<"+t+"[\\s\\S]*>[\\s\\S]*</"+t+">",r=new RegExp(n),o=e.match(r);if(o.index>-1){var i=o[0],a=i.search(">"),u=i.substr(a+1),l=u.lastIndexOf("</");return u=u.substring(0,l),u=u.replace(/(^\s*)|(\s*$)/g,"")}return null},UkuleleUtil.getComponentConfiguration=function(e){var t=document.createElement("div");t.innerHTML=e;for(var n=Selector_1.Selector.querySelectorAll(t,"template"),r=Selector_1.Selector.querySelectorAll(t,"script"),o=Selector_1.Selector.querySelectorAll(t,"style"),i=[],a=null,u=0;u<r.length;u++){var l=r[u];""!==l.src?i.push(l.src):a=l.innerHTML}return o&&o[0]?new ComponentConfiguration_1.ComponentConfiguration(n[0].innerHTML,i,a,o[0].innerHTML):new ComponentConfiguration_1.ComponentConfiguration(n[0].innerHTML,i,a)},UkuleleUtil.searchUkuAttrTag=function(e){var t=/^uku\-.*/;return e.search(t)},UkuleleUtil.isUkuAttrTag=function(e){return this.searchUkuAttrTag(e)>-1},UkuleleUtil.getAttrFromUkuTag=function(e,t){if(void 0===t&&(t=!1),0===UkuleleUtil.searchUkuAttrTag(e)&&(e=e.replace("uku-","")),t){var n=e.split("-");e=n[0];for(var r=1;r<n.length;r++){e=e+n[r].charAt(0).toUpperCase()+n[r].substr(1)}}return e},UkuleleUtil.searchUkuExpTag=function(e){var t=/^\{\{.*\}\}$/;return e.search(t)},UkuleleUtil.searchUkuFuncArg=function(e){var t=/[\+\-\*\/\%\?\:\>\<]/,n=e.search(t);if(-1===n){var r=/\(.*\)$/;return n=e.search(r)}return-1},UkuleleUtil.isRepeat=function(e){return!!e.getAttribute("uku-repeat")},UkuleleUtil.isInRepeat=function(e){for(var t=Selector_1.Selector.parents(e),n=0;n<t.length;n++){var r=t[n];if(9!==r.nodeType){if(r.getAttribute("uku-repeat"))return!0}}return!1},UkuleleUtil.getBoundModelInstantName=function(e){var t=e.split(".")[0];if(t)return t},UkuleleUtil.getBoundModelInstantNames=function(e,t){var n=[];return e.forEach(function(e){var r=new RegExp("\\b"+e,"gm");console.count("getBoundModelInstantNames执行的次数"),t.search(r)>-1&&n.push(e)}),n},UkuleleUtil.getFinalValue=function(objects,attrName){return function(){var tempScope={};objects.forEach(function(e){tempScope[e._alias]=e;var t=e._alias,n=new RegExp("\\b"+t+"\\b","gm");attrName=attrName.replace(n,"tempScope."+t);var r=new RegExp("\\.tempScope\\."+t,"gm");attrName=attrName.replace(r,"."+t)});var result;try{result=eval(attrName)}catch(e){result=""}return tempScope=null,result}()},UkuleleUtil.setFinalValue=function(object,attrName,value){return function(){var tempScope={};tempScope[object._alias]=object;var valueString;valueString="string"==typeof value?'"'+value+'"':"object"==typeof value?"JSON.parse('"+JSON.stringify(value)+"')":value;var evalString="tempScope."+attrName+"="+valueString;eval(evalString)}()},UkuleleUtil.wrapScriptInComponent=function(e){return 0===e.replace(new RegExp("\\s","gm"),"").search(new RegExp("\\(function\\("))?e:"\t(function(){\n return function(uku){ \n Object.defineProperty(this, 'currentState', {\n set: function(value){\n if(value){\n this._currentState = value;\n uku.refresh(this._alias);\n }\n }\n });\n\n this.setState = function(state){\n this._currentState = state;\n uku.refresh(this._alias);\n };\n\n "+e+"\n };\n })();\n "},UkuleleUtil}();exports.UkuleleUtil=UkuleleUtil},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(3),i=n(0),a=function(e){function t(t,n,r,o){var i=e.call(this,t,r,o)||this;return i.ukuTag=n,i}return r(t,e),t.prototype.render=function(e){var t=this.attributeName,n=i.UkuleleUtil.getFinalValue(e,t);"boolean"==typeof n?!0===n?this.element.setAttribute(this.ukuTag,this.ukuTag):this.element.removeAttribute(this.ukuTag):this.element.setAttribute(this.ukuTag,n)},t}(o.BoundItemBase);t.BoundItemAttribute=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.querySelectorAll=function(e,t){return window.hasOwnProperty("jQuery")&&void 0!==window.jQuery?window.jQuery(e).find(t):e.querySelectorAll(t)},e.fuzzyFind=function(e,t){if(e&&e.attributes)for(var n=0;n<e.attributes.length;n++){var r=e.attributes[n];if(r.nodeName.search(t)>-1)return e}return null},e.directText=function(e,t){for(var n="",r=e.childNodes,o=0;o<=r.length-1;o++){var i=r[o];if(3===i.nodeType){if(t||""===t||0===t||!1===t)return void(i.nodeValue=t);n+=i.nodeValue}}return n.trim()},e.parents=function(e){for(var t=[];e.parentNode&&"BODY"!==e.parentNode.tagName;)t.push(e.parentNode),e=e.parentNode;return t},e}();t.Selector=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t,n){this.attributeName=e,this.element=t,this.uku=n}return e.prototype.render=function(e){},e}();t.BoundItemBase=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){this.eventType=e,this.element=t}return e}();t.Event=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this.eventsPool={}}return e.prototype.getEventsPool=function(){return this.eventsPool},e.prototype.addListener=function(e,t){this.eventsPool[e]||(this.eventsPool[e]=[]),this.eventsPool[e].push(t)},e.prototype.removeListener=function(e,t){if(this.eventsPool[e])for(var n=this.eventsPool[e].length-1;n>=0;n--)if(this.eventsPool[e][n]===t){this.eventsPool[e].splice(n,1);break}},e.prototype.hasListener=function(e){return!!(this.eventsPool[e]&&this.eventsPool[e].length>0)},e.prototype.dispatchEvent=function(e){if(e&&e.eventType){var t=this.eventsPool[e.eventType];if(t)for(var n=0;n<t.length;n++)t[n].call(this,e)}},e}();t.EventEmitter=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.INITIALIZED="initialized",e.REFRESH="refresh",e.HANDLE_ELEMENT_COMPLETED="handle_element_completed",e}();t.UkuEventType=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.addEventListener=function(e,t,n){return e.addEventListener(t,n)},e}();t.EventListener=r},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(5),i=n(9),a=n(15),u=n(17),l=n(2),s=n(6),c=n(4);t.Ukulele=(p=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.promiseArray=[],t._childrenUku={},t}return r(t,e),t.prototype.init=function(){var e=this;Promise.all(this.promiseArray).then(function(){e.manageApplication()})},t.prototype.setChildrenUku=function(e,t){for(var n=0,r=e;n<r.length;n++){var o=r[n],i=o._alias;this._childrenUku[i]||(this._childrenUku[i]=[]),this._childrenUku[i].push(t)}},t.prototype.handleElement=function(e,t){var n=this;this.analyizeElement(e,function(e){n.dispatchEvent(new c.Event(s.UkuEventType.HANDLE_ELEMENT_COMPLETED,e)),t&&"function"==typeof t&&t(e.element)})},t.prototype.registerController=function(e,t){window[e]=t,this._internal_getDefinitionManager().addControllerDefinition(e,t)},t.prototype.getController=function(e){return this._internal_getDefinitionManager().getControllerDefinition(e).controllerInstance},t.prototype.registerComponent=function(e,t,n){var r=this._internal_getDefinitionManager().addComponentDefinition(e,t,n);this.promiseArray.push(r)},t.prototype.getComponent=function(e){return this._internal_getDefinitionManager().getComponent(e)},t.prototype.getComponentController=function(e){return this._internal_getDefinitionManager().getControllerInstByDomId(e)},t.prototype.refresh=function(e,t){this.dirtyChecker||(this.dirtyChecker=new a.DirtyChecker(this)),this.dirtyChecker.runDirtyChecking(e,t)},t.prototype._internal_getDefinitionManager=function(){return this.defMgr||(this.defMgr=new i.DefinitionManager(this)),this.defMgr},t.prototype._internal_dealWithElement=function(e,t){this.analyizeElement(e,t)},t.prototype.manageApplication=function(){var e=this,t=l.Selector.querySelectorAll(document,"[uku-application]");if(1!==t.length)throw new Error("Only one 'uku-application' can be declared in a whole html.");this.analyizeElement(t[0],function(t){e.dispatchEvent(new c.Event(s.UkuEventType.INITIALIZED,t))})},t.prototype.analyizeElement=function(e,t){var n=new u.Analyzer(this);t&&function(e){n.addListener(u.Analyzer.ANALYIZE_COMPLETED,function(t){e(t.element)})}(t),n.analyizeElement(e)},t}(o.EventEmitter),p.INITIALIZED="initialized",p.REFRESH="refresh",p.HANDLE_ELEMENT_COMPLETED="handle_element_completed",p);var p},function(module,exports,__webpack_require__){"use strict";var __awaiter=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function u(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){e.done?o(e.value):new n(function(t){t(e.value)}).then(a,u)}l((r=r.apply(e,t||[])).next())})},__generator=this&&this.__generator||function(e,t){function n(e){return function(t){return r([e,t])}}function r(n){if(o)throw new TypeError("Generator is already executing.");for(;l;)try{if(o=1,i&&(a=i[2&n[0]?"return":n[0]?"throw":"next"])&&!(a=a.call(i,n[1])).done)return a;switch(i=0,a&&(n=[0,a.value]),n[0]){case 0:case 1:a=n;break;case 4:return l.label++,{value:n[1],done:!1};case 5:l.label++,i=n[1],n=[0];continue;case 7:n=l.ops.pop(),l.trys.pop();continue;default:if(a=l.trys,!(a=a.length>0&&a[a.length-1])&&(6===n[0]||2===n[0])){l=0;continue}if(3===n[0]&&(!a||n[1]>a[0]&&n[1]<a[3])){l.label=n[1];break}if(6===n[0]&&l.label<a[1]){l.label=a[1],a=n;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(n);break}a[2]&&l.ops.pop(),l.trys.pop();continue}n=t.call(e,l)}catch(e){n=[6,e],i=0}finally{o=a=0}if(5&n[0])throw n[1];return{value:n[0]?n[1]:void 0,done:!0}}var o,i,a,u,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return u={next:n(0),throw:n(1),return:n(2)},"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u};Object.defineProperty(exports,"__esModule",{value:!0});var Ajax_1=__webpack_require__(10),ControllerModel_1=__webpack_require__(11),ComponentModel_1=__webpack_require__(12),ComponentPoolItem_1=__webpack_require__(13),UkuleleUtil_1=__webpack_require__(0),DefinitionManager=function(){function DefinitionManager(e){this.controllersDefinition={},this.componentsDefinition={},this.componentsPool={},this.copyControllers={},this.dependentScriptsCache={},this.ajax=new Ajax_1.Ajax,this.uku=e}return DefinitionManager.prototype.getComponentsDefinition=function(){return this.componentsDefinition},DefinitionManager.prototype.getComponentsPool=function(){return this.componentsPool},DefinitionManager.prototype.setComponentsPool=function(e){this.componentsPool=e},DefinitionManager.prototype.setComponentsDefinition=function(e){this.componentsDefinition=e},DefinitionManager.prototype.getComponentDefinition=function(e){return this.componentsDefinition[e]},DefinitionManager.prototype.getControllerDefinition=function(e){return this.controllersDefinition[e]},DefinitionManager.prototype.getControllersDefinition=function(){return this.controllersDefinition},DefinitionManager.prototype.getComponent=function(e){return this.componentsPool[e]},DefinitionManager.prototype.getCopyControllers=function(){return this.copyControllers},DefinitionManager.prototype.addControllerDefinition=function(e,t){var n=new ControllerModel_1.ControllerModel(e,t);t._alias=e,this.controllersDefinition[e]=n},DefinitionManager.prototype.getControllerInstByDomId=function(e){for(var t in this.controllersDefinition){var n=this.controllersDefinition[t],r=n.controllerInstance;if(r._dom&&r._dom.id===e)return r}},DefinitionManager.prototype.addComponentDefinition=function(e,t,n){var r=this;return new Promise(function(o,i){if(n)return r.componentsPool[e]=new ComponentPoolItem_1.ComponentPoolItem(e,t,!1),r.ajax.get(t).then(function(t){var n=UkuleleUtil_1.UkuleleUtil.getComponentConfiguration(t);return r.analyizeComponent(e,n)});r.componentsPool[e]=new ComponentPoolItem_1.ComponentPoolItem(e,t,!0),o()})},DefinitionManager.prototype.addLazyComponentDefinition=function(e,t){var n=this;return new Promise(function(r,o){return n.ajax.get(t).then(function(o){var i=UkuleleUtil_1.UkuleleUtil.getComponentConfiguration(o);return n.analyizeComponent(e,i).then(function(){n.componentsPool[e]={tagName:e,templateUrl:t,lazy:!1},r()})})})},DefinitionManager.prototype.getBoundAttributeValue=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=this.getControllerModelByName(e),o=[];r.forEach(function(e){o.push(e.controllerInstance)});var i=[this.uku,o,e];return i=i.concat(t),UkuleleUtil_1.UkuleleUtil.getFinalValue.apply(null,i)},DefinitionManager.prototype.getControllerModelByName=function(e){var t=this,n=[],r=/\$\w+\./g,o=e.match(r);o&&o.forEach(function(e){e=e.substr(0,e.length-1);var r=t.controllersDefinition[e];n.push(r)});var i=/cc\_\w*\./g,a=e.match(i);a&&a.forEach(function(e){e=e.substr(0,e.length-1);var r=t.controllersDefinition[e];n.push(r)});var u=/repeatItem\_\w*\$/g,l=e.match(u);return l&&l.forEach(function(e){var r=t.controllersDefinition[e];n.push(r)}),n},DefinitionManager.prototype.getFinalValueByExpression=function(e){var t=this.getControllerModelByName(e),n=[];return t.forEach(function(e){n.push(e.controllerInstance)}),UkuleleUtil_1.UkuleleUtil.getFinalValue(n,e)},DefinitionManager.prototype.analyizeComponent=function(e,t){return __awaiter(this,void 0,void 0,function(){function n(e){return new Promise(function(t,n){if(o.dependentScriptsCache[e])t();else{var r=document.getElementsByTagName("HEAD")[0],i=document.createElement("script");i.type="text/javascript",i.charset="utf-8",i.async=!0,i.src=e,i.onload=function(e){o.dependentScriptsCache[e.target.src]=!0,t()},r.appendChild(i)}})}var r,o,i,a,u,l,s;return __generator(this,function(c){switch(c.label){case 0:return r=t.dependentScripts,(o=this,r&&r.length>0)?(i=void 0,"function"==typeof window.define&&window.define.amd&&(i=window.define,window.define=void 0),t.componentControllerScript?[3,2]:(a=r[r.length-1],u=t,[4,this.ajax.get(a)])):[3,7];case 1:u.componentControllerScript=c.sent(),r.pop(),c.label=2;case 2:l=0,c.label=3;case 3:return l<r.length?(s=r[l],[4,n(s)]):[3,6];case 4:c.sent(),c.label=5;case 5:return l++,[3,3];case 6:return i&&(window.define=i),this.buildeComponentModel(e,t.template,t.componentControllerScript,t.stylesheet),[2];case 7:return this.buildeComponentModel(e,t.template,t.componentControllerScript,t.stylesheet),[2];case 8:return[2]}})})},DefinitionManager.prototype.buildeComponentModel=function(tag,template,script,style){function dealWithShadowStyle(e,t){var n=document.getElementsByTagName("HEAD")[0],r=document.createElement("style");r.type="text/css";var o=t.split("}"),i=[];o.forEach(function(e,t){var n=e.replace(/^\s*/,"");n&&i.push(n)}),t=i.join("}\n."+e+" "),t="."+e+" "+t+"}",r.innerHTML=t,n.appendChild(r)}var debugComment="//# sourceURL="+tag+".js";try{var controllerClazz=void 0;script&&(script=UkuleleUtil_1.UkuleleUtil.wrapScriptInComponent(script),script+=debugComment,controllerClazz=eval(script));var newComp=new ComponentModel_1.ComponentModel(tag,template,controllerClazz);this.componentsDefinition[tag]=newComp,style&&dealWithShadowStyle(tag,style)}catch(e){console.error(e)}},DefinitionManager}();exports.DefinitionManager=DefinitionManager},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.prototype.get=function(e){return new Promise(function(t,n){var r=new XMLHttpRequest;r.onreadystatechange=function(){4===r.readyState&&(200===r.status?t(r.responseText):n())},r.open("GET",e,!0),r.send(null)})},e}();t.Ajax=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){this.alias=e,this.controllerInstance=t,this.boundItems=[]}return e.prototype.addBoundItem=function(e){this.boundItems.push(e)},e.prototype.getBoundItemsByName=function(e){for(var t=[],n=0;n<this.boundItems.length;n++){var r=this.boundItems[n];r.attributeName===e&&t.push(r)}return t},e}();t.ControllerModel=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t,n){this.tagName=e,this.template=t,this.controllerClazz=n}return e}();t.ComponentModel=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t,n){this.tagName=e,this.templateUrl=t,this.lazy=n}return e}();t.ComponentPoolItem=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t,n,r){void 0===r&&(r=void 0),this.template=e,this.dependentScripts=t,this.componentControllerScript=n,this.stylesheet=r}return e}();t.ComponentConfiguration=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0),o=n(16),i=n(6),a=n(4),u=function(){function e(e){this.oldValueCache={},this.uku=e,this.defMgr=this.uku._internal_getDefinitionManager()}return e.prototype.runDirtyChecking=function(e,t){function n(e){var n=u.defMgr.getControllersDefinition()[e];if(n){var l=n.controllerInstance;u.oldValueCache[e]||(u.oldValueCache[e]={});for(var s=u.oldValueCache[e],c=0,p=0;p<n.boundItems.length;p++){var f=n.boundItems[p],h=f.attributeName;if(s){f.hasOwnProperty("ukuTag")&&"selected"===f.ukuTag&&(h=h.split("|")[0]);var d=r.UkuleleUtil.getFinalValue([l],h),_=s[h];if(!o.ObjectUtil.compare(_,d)){h=f.attributeName;for(var m=n.getBoundItemsByName(h),v=0;v<m.length;v++){var g=m[v];(g.element!==t||f.hasOwnProperty("ukuTag")&&"value"!==g.ukuTag)&&(c++,g.render([l]))}s[h]=o.ObjectUtil.deepClone(d)}}}c>0&&u.uku.hasListener(i.UkuEventType.REFRESH)&&u.uku.dispatchEvent(new a.Event(i.UkuEventType.REFRESH))}}var u=this;if(e){if("string"==typeof e)n(e);else if(o.ObjectUtil.isArray(e))for(var l=0;l<e.length;l++)n(e[l])}else for(var s in this.defMgr.getControllersDefinition())n(s)},e}();t.DirtyChecker=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){}return e.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)},e.getType=function(t){var n=typeof t;return"object"===n&&e.isArray(t)?"array":n},e.deepClone=function(t){var n,r,o;if("object"!=typeof t||null===t)return t;if(t instanceof Array)for(n=[],r=0,o=t.length;r<o;r++)"object"==typeof t[r]&&null!==t[r]?n[r]=e.deepClone(t[r]):n[r]=t[r];else{n={};for(r in t)"object"==typeof t[r]&&null!==t[r]&&"_dom"!==r?n[r]=e.deepClone(t[r]):n[r]=t[r]}return n},e.compare=function(t,n){var r=e.getType(t),o=e.getType(n),i=!0;if(r!==o)return!1;switch(r){case"object":if(null===t&&null===n)i=!0;else if(null===t||null===n)i=!1;else{var a=Object.keys(t),u=Object.keys(n);if(a.length!=u.length)i=!1;else if(0===a.length&&0===u.length)i=!0;else for(var l in t){var s=t[l],c=n[l],p=e.compare(s,c);if(!p){i=!1;break}}}break;case"array":if(t.length===n.length)for(var f=0;f<t.length;f++){var h=t[f],d=n[f],_=e.compare(h,d);if(!_){i=!1;break}}else i=!1;break;case"function":i=t.toString()===n.toString();break;default:i=t===n}return i},e}();t.ObjectUtil=r},function(module,exports,__webpack_require__){"use strict";var __extends=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),__awaiter=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))(function(o,i){function a(e){try{l(r.next(e))}catch(e){i(e)}}function u(e){try{l(r.throw(e))}catch(e){i(e)}}function l(e){e.done?o(e.value):new n(function(t){t(e.value)}).then(a,u)}l((r=r.apply(e,t||[])).next())})},__generator=this&&this.__generator||function(e,t){function n(e){return function(t){return r([e,t])}}function r(n){if(o)throw new TypeError("Generator is already executing.");for(;l;)try{if(o=1,i&&(a=i[2&n[0]?"return":n[0]?"throw":"next"])&&!(a=a.call(i,n[1])).done)return a;switch(i=0,a&&(n=[0,a.value]),n[0]){case 0:case 1:a=n;break;case 4:return l.label++,{value:n[1],done:!1};case 5:l.label++,i=n[1],n=[0];continue;case 7:n=l.ops.pop(),l.trys.pop();continue;default:if(a=l.trys,!(a=a.length>0&&a[a.length-1])&&(6===n[0]||2===n[0])){l=0;continue}if(3===n[0]&&(!a||n[1]>a[0]&&n[1]<a[3])){l.label=n[1];break}if(6===n[0]&&l.label<a[1]){l.label=a[1],a=n;break}if(a&&l.label<a[2]){l.label=a[2],l.ops.push(n);break}a[2]&&l.ops.pop(),l.trys.pop();continue}n=t.call(e,l)}catch(e){n=[6,e],i=0}finally{o=a=0}if(5&n[0])throw n[1];return{value:n[0]?n[1]:void 0,done:!0}}var o,i,a,u,l={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return u={next:n(0),throw:n(1),return:n(2)},"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u};Object.defineProperty(exports,"__esModule",{value:!0});var EventEmitter_1=__webpack_require__(5),UkuleleUtil_1=__webpack_require__(0),BoundItemAttributeFactory_1=__webpack_require__(18),BoundItemExpression_1=__webpack_require__(27),BoundItemInnerText_1=__webpack_require__(28),BoundItemRepeat_1=__webpack_require__(29),BoundItemComponentAttribute_1=__webpack_require__(30),ElementActionBinder_1=__webpack_require__(31),EventListener_1=__webpack_require__(7),Selector_1=__webpack_require__(2),Event_1=__webpack_require__(4),Analyzer=function(_super){function Analyzer(e){var t=_super.call(this)||this;return t.dealWithAttribute=function(e,t){var n=this,r=e.getAttribute("uku-"+t),o=this.defMgr.getControllerModelByName(r);if(o&&o.length>0){var i=BoundItemAttributeFactory_1.BoundItemAttributeFactory.getInstance().generateInstance(r,t,e,this.uku),a=[];o.forEach(function(r){r.addBoundItem(i),ElementActionBinder_1.elementChangedBinder(e,t,r,n.uku.refresh,n.uku),a.push(r.controllerInstance)}),i.render(a)}},t.uku=e,t.defMgr=t.uku._internal_getDefinitionManager(),t}return __extends(Analyzer,_super),Analyzer.prototype.analyizeElement=function(e){var t=this;this.searchComponent(e).then(function(e){t.searchExpression(e),t.searchUkuAttribute(e),t.hasListener(Analyzer.ANALYIZE_COMPLETED)&&t.dispatchEvent(new Event_1.Event(Analyzer.ANALYIZE_COMPLETED,e))})},Analyzer.prototype.sortAttributes=function(e){for(var t=[],n=[],r=0;r<e.attributes.length;r++){var o=e.attributes[r];-1!==o.nodeName.search("uku-on")?n.push(o):t.push(o)}return t=t.concat(n)},Analyzer.prototype.searchUkuAttribute=function(e){var t=[],n=Selector_1.Selector.fuzzyFind(e,"uku-");n&&t.push(n);for(var r=Selector_1.Selector.querySelectorAll(e,"*"),o=0;o<r.length;o++){var i=r[o],a=Selector_1.Selector.fuzzyFind(i,"uku-");a&&!UkuleleUtil_1.UkuleleUtil.isInRepeat(a)&&t.push(a)}for(var u=0;u<t.length;u++)for(var l=t[u],s=this.sortAttributes(l),c=0;c<s.length;c++){var p=s[c];if(UkuleleUtil_1.UkuleleUtil.searchUkuAttrTag(p.nodeName)>-1){var f=p.nodeName.split("-");f.shift();var h=f.join("-");"application"!==h&&(0===h.search("on")?UkuleleUtil_1.UkuleleUtil.isRepeat(l)||UkuleleUtil_1.UkuleleUtil.isInRepeat(l)||this.dealWithEvent(l,h):-1!==h.search("repeat")?this.dealWithRepeat(l):UkuleleUtil_1.UkuleleUtil.isRepeat(l)||UkuleleUtil_1.UkuleleUtil.isInRepeat(l)||("text"!==h?this.dealWithAttribute(l,h):this.dealWithInnerText(l)))}}},Analyzer.prototype.searchComponent=function(e){return __awaiter(this,void 0,void 0,function(){var t,n,r,n,r,o,i;return __generator(this,function(a){switch(a.label){case 0:return(t=this.defMgr.getComponent(e.localName))?t.lazy?[3,1]:(n=e.attributes,r=this.defMgr.getComponentsDefinition()[t.tagName],UkuleleUtil_1.UkuleleUtil.isRepeat(e)||UkuleleUtil_1.UkuleleUtil.isInRepeat(e)?[2,e]:[2,this.dealWithComponent(e,r.template,r.controllerClazz,n)]):[3,4];case 1:return[4,this.defMgr.addLazyComponentDefinition(t.tagName,t.templateUrl)];case 2:return a.sent(),n=e.attributes,r=this.defMgr.getComponentsDefinition()[t.tagName],UkuleleUtil_1.UkuleleUtil.isRepeat(e)||UkuleleUtil_1.UkuleleUtil.isInRepeat(e)?[2,e]:[2,this.dealWithComponent(e,r.template,r.controllerClazz,n)];case 3:return[3,10];case 4:if(!(e.children&&e.children.length>0))return[3,9];o=0,a.label=5;case 5:return o<e.children.length?(i=e.children[o],[4,this.searchComponent(i)]):[3,8];case 6:a.sent(),a.label=7;case 7:return o++,[3,5];case 8:case 9:return[2,e];case 10:return[2]}})})},Analyzer.prototype.dealWithComponent=function(e,t,n,r){return __awaiter(this,void 0,void 0,function(){var o,i,a,u,l,s,c,p,p,f,h,d;return __generator(this,function(_){switch(_.label){case 0:if(o=(new Date).getTime(),i="cc_"+Math.floor(o*Math.random()).toString(),t=t.replace(new RegExp("'cc\\.","gm"),"'"+i+"."),t=t.replace(new RegExp('"cc\\.',"gm"),'"'+i+"."),t=t.replace(new RegExp("{{cc\\.","gm"),"{{"+i+"."),t=t.replace(new RegExp(" cc\\.","gm")," "+i+"."),t=t.replace(new RegExp("\\(cc\\.","gm"),"("+i+"."),t=t.replace(new RegExp("\\,cc\\.","gm"),","+i+"."),t=t.replace(new RegExp("\\.cc\\.","gm"),"."+i+"."),t=t.replace(new RegExp("\\!cc\\.","gm"),"!"+i+"."),a=document.createElement("div"),a.insertAdjacentHTML("afterBegin",t),a.children.length>1&&(t=a.outerHTML),e.insertAdjacentHTML("beforeBegin",t),u=e.previousElementSibling,u.classList.add(e.localName),n)for(l=new n(this.uku),l._dom=u,l.fire=function(e,t,n,r){void 0===n&&(n=!1),void 0===r&&(r=!0);var o=new CustomEvent(e.toLowerCase(),{bubbles:n,cancelable:r});o.data=t,l._dom.dispatchEvent(o)},this.uku.registerController(i,l),s=function(e){var t=r[e];if(0!==UkuleleUtil_1.UkuleleUtil.searchUkuAttrTag(t.nodeName)||-1!==t.nodeName.search("uku-on")||"uku-render"===t.nodeName||"uku-visible"===t.nodeName)u.setAttribute(t.nodeName,t.nodeValue);else{var n=UkuleleUtil_1.UkuleleUtil.getAttrFromUkuTag(t.nodeName,!0),o=c.defMgr.getControllerModelByName(t.nodeValue);if(o&&o.length>0){var i=new BoundItemComponentAttribute_1.BoundItemComponentAttribute(t.nodeValue,n,l,c.uku),a=[];o.forEach(function(e){e.addBoundItem(i),a.push(e.controllerInstance)}),i.render(a)}else{new BoundItemComponentAttribute_1.BoundItemComponentAttribute(t.nodeValue,n,l,c.uku).render([])}}},c=this,p=0;p<r.length;p++)s(p);else for(p=0;p<r.length;p++)f=r[p],0===UkuleleUtil_1.UkuleleUtil.searchUkuAttrTag(f.nodeName)&&-1===f.nodeName.search("uku-on")&&"uku-render"!==f.nodeName&&"uku-visible"!==f.nodeName||u.setAttribute(f.nodeName,f.nodeValue);if(e.parentNode.removeChild(e),!(u.children&&u.children.length>0))return[3,5];h=0,_.label=1;case 1:return h<u.children.length?(d=u.children[h],[4,this.searchComponent(d)]):[3,4];case 2:_.sent(),_.label=3;case 3:return h++,[3,1];case 4:case 5:return l&&l._initialized&&"function"==typeof l._initialized&&l._initialized(i,l._dom),[2,u]}})})},Analyzer.prototype.searchExpression=function(e){-1!==UkuleleUtil_1.UkuleleUtil.searchUkuExpTag(Selector_1.Selector.directText(e))&&(UkuleleUtil_1.UkuleleUtil.isRepeat(e)||UkuleleUtil_1.UkuleleUtil.isInRepeat(e)||this.dealWithExpression(e));for(var t=0;t<e.children.length;t++)this.searchExpression(e.children[t])},Analyzer.prototype.dealWithExpression=function(e){var t=Selector_1.Selector.directText(e);if(-1!==UkuleleUtil_1.UkuleleUtil.searchUkuExpTag(t)){var n=t.slice(2,-2),r=this.defMgr.getControllerModelByName(n);if(r&&r.length>0){var o=new BoundItemExpression_1.BoundItemExpression(n,t,e,this.uku),i=[];r.forEach(function(e){e.addBoundItem(o),i.push(e.controllerInstance)}),o.render(i)}}},Analyzer.prototype.dealWithInnerText=function(e){var t=e.getAttribute("uku-text");if(t){var n=this.defMgr.getControllerModelByName(t);if(n&&n.length>0){var r=new BoundItemInnerText_1.BoundItemInnerText(t,e,this.uku),o=[];n.forEach(function(e){e.addBoundItem(r),o.push(e.controllerInstance)}),r.render(o)}}},Analyzer.prototype.dealWithEvent=function(element,eventName){var _this=this,expression=element.getAttribute("uku-"+eventName),eventNameInListener=eventName.substring(2);eventNameInListener=eventNameInListener.toLowerCase();var controllerModels=this.defMgr.getControllerModelByName(expression);controllerModels&&0!==controllerModels.length||(controllerModels=[]),EventListener_1.EventListener.addEventListener(element,eventNameInListener,function(event){var alias_list=[];controllerModels.forEach(function(e){alias_list.push(e.alias)});var index=UkuleleUtil_1.UkuleleUtil.searchUkuFuncArg(expression);if(-1===index){var handler=new Function("event","return "+expression);console.log(handler.toString()),handler(event)}else{var i=expression.search(/\(/),arg="event";")"!==expression[i+1]&&(arg="event,");var arr=expression.split("(");arr[1]=arg+arr[1];var new_expression_1=arr.join("(");!function(e){var tempScope={};tempScope.event=e,eval(new_expression_1),tempScope=null}(event)}_this.uku.refresh(alias_list,element)})},Analyzer.prototype.dealWithRepeat=function(e){var t=e.getAttribute("uku-repeat"),n=t.split(" in "),r=n[0],o=n[1],i=this.defMgr.getControllerModelByName(o);if(i&&i.length>0){var a=[],u=new BoundItemRepeat_1.BoundItemRepeat(o,r,e,this.uku);i.forEach(function(e){e.addBoundItem(u),a.push(e.controllerInstance)}),u.render(a)}},Analyzer.ANALYIZE_COMPLETED="analyizeCompleted",Analyzer}(EventEmitter_1.EventEmitter);exports.Analyzer=Analyzer},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(19),o=n(20),i=n(21),a=n(22),u=n(23),l=n(24),s=n(25),c=n(26),p=n(1),f=function(){function e(){if(e._instance)throw new Error("Error: Instantiation failed: Use BoundItemAttributeFactory.getInstance() instead of new.");e._instance=this}return e.getInstance=function(){return e._instance},e.prototype.generateInstance=function(e,t,n,f){var h;switch(t){case"selected":h=new r.BountItemAttrSelected(e,t,n,f);break;case"data-item":h=new o.BoundItemAttrDataItem(e,t,n,f);break;case"src":h=new i.BoundItemAttrSrc(e,t,n,f);break;case"disabled":h=new a.BoundItemAttrDisabled(e,t,n,f);break;case"render":h=new u.BoundItemAttrRender(e,t,n,f);break;case"style":h=new l.BoundItemAttrStyle(e,t,n,f);break;case"value":h=new s.BoundItemAttrValue(e,t,n,f);break;case"visible":h=new c.BoundItemAttrVisible(e,t,n,f);break;default:h=new p.BoundItemAttribute(e,t,n,f)}return h},e._instance=new e,e}();t.BoundItemAttributeFactory=f},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(1),i=n(0),a=function(e){function t(t,n,r,o){if("selected"!==n)throw new TypeError("it doesn't use uku-selected");return e.call(this,t,n,r,o)||this}return r(t,e),t.prototype.render=function(e){var t,n=this.attributeName,r=this.element.tagName;if("SELECT"===r){var o=this.attributeName.split("|");n=o[0],t=o[1];var a=i.UkuleleUtil.getFinalValue(e,n),u=void 0;u=t?a[t]:a,this.element.value=u}if("INPUT"===r&&"radio"===this.element.getAttribute("type")){var a=i.UkuleleUtil.getFinalValue(e,n);this.element.value===a&&this.element.setAttribute("checked","true")}},t}(o.BoundItemAttribute);t.BountItemAttrSelected=a},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(1),i=n(0),a=function(e){function t(t,n,r,o){if("data-item"!==n)throw new TypeError("it doesn't use uku-item");return e.call(this,t,n,r,o)||this}return r(t,e),t.prototype.render=function(e){var t=this.attributeName,n=this.element.tagName,r=i.UkuleleUtil.getFinalValue(e,t);"OPTION"===n&&(r=JSON.stringify(r),this.element.setAttribute("data-item",r))},t}(o.BoundItemAttribute);t.BoundItemAttrDataItem=a},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(1),i=n(0),a=function(e){function t(t,n,r,o){if("src"!==n)throw new TypeError("it doesn't use uku-src");return e.call(this,t,n,r,o)||this}return r(t,e),t.prototype.render=function(e){var t=this.attributeName,n=this.element.tagName,r=i.UkuleleUtil.getFinalValue(e,t);if("IMG"!==n&&"VIDEO"!==n&&"AUDIO"!==n)throw new Error("uku-src doesn't work with current dom");r&&this.element.setAttribute(this.ukuTag,r)},t}(o.BoundItemAttribute);t.BoundItemAttrSrc=a},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(1),i=n(0),a=function(e){function t(t,n,r,o){if("disabled"!==n)throw new TypeError("it doesn't use uku-disabled");return e.call(this,t,n,r,o)||this}return r(t,e),t.prototype.render=function(e){var t=this.attributeName,n=(this.element.tagName,i.UkuleleUtil.getFinalValue(e,t));this.element.disabled=n},t}(o.BoundItemAttribute);t.BoundItemAttrDisabled=a},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(1),i=n(0),a=function(e){function t(t,n,r,o){if("render"!==n)throw new TypeError("it doesn't use uku-render");return e.call(this,t,n,r,o)||this}return r(t,e),t.prototype.render=function(e){var t=this.attributeName;if(i.UkuleleUtil.getFinalValue(e,t)){var n=this.element.getAttribute("data-old-display");null!==n&&(this.element.style.display=n)}else{var n=this.element.getAttribute("data-old-display");null===n&&(n=this.element.style.display,this.element.setAttribute("data-old-display",n)),this.element.style.display="none"}},t}(o.BoundItemAttribute);t.BoundItemAttrRender=a},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(1),i=n(0),a=function(e){function t(t,n,r,o){if("style"!==n)throw new TypeError("it doesn't use uku-style");return e.call(this,t,n,r,o)||this}return r(t,e),t.prototype.render=function(e){var t=this.attributeName,n=(this.element.tagName,i.UkuleleUtil.getFinalValue(e,t));for(var r in n)this.element.style[r]=n[r]},t}(o.BoundItemAttribute);t.BoundItemAttrStyle=a},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(1),i=n(0),a=function(e){function t(t,n,r,o){if("value"!==n)throw new TypeError("it doesn't use uku-value");return e.call(this,t,n,r,o)||this}return r(t,e),t.prototype.render=function(e){var t=this.attributeName,n=this.element.tagName,r=i.UkuleleUtil.getFinalValue(e,t);"INPUT"===n&&"checkbox"===this.element.getAttribute("type")?this.element.checked=r:this.element.value=r},t}(o.BoundItemAttribute);t.BoundItemAttrValue=a},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(1),i=n(0),a=function(e){function t(t,n,r,o){if("visible"!==n)throw new TypeError("it doesn't use uku-visible");return e.call(this,t,n,r,o)||this}return r(t,e),t.prototype.render=function(e){var t=this.attributeName,n=(this.element.tagName,i.UkuleleUtil.getFinalValue(e,t));this.element.style.visibility=n?"visible":"hidden"},t}(o.BoundItemAttribute);t.BoundItemAttrVisible=a},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(3),i=n(0),a=n(2),u=function(e){function t(t,n,r,o){var i=e.call(this,t,r,o)||this;return i.expression=n,i}return r(t,e),t.prototype.render=function(e){var t=i.UkuleleUtil.getFinalValue(e,this.attributeName);a.Selector.directText(this.element,t)},t}(o.BoundItemBase);t.BoundItemExpression=u},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(3),i=n(0),a=function(e){function t(t,n,r){var o=e.call(this,t,n,r)||this;return o.tagName="text",o}return r(t,e),t.prototype.render=function(e){var t=i.UkuleleUtil.getFinalValue(e,this.attributeName);this.element.innerHTML=t},t}(o.BoundItemBase);t.BoundItemInnerText=a},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(3),i=n(0),a=function(e){function t(t,n,r,o){var i=e.call(this,t,r,o)||this;return i.expression=n,i.renderTemplate=r.outerHTML,i.parentElement=r.parentNode,i.beginCommentString=void 0,i.endCommentString=void 0,i}return r(t,e),t.prototype.replaceVarible=function(e,t,n){for(var r=new RegExp("\\b"+t+"(?!\\w)","gm"),o=e.attributes,a=0;a<o.length;a++){var u=o[a];i.UkuleleUtil.isUkuAttrTag(u.nodeName)&&(u.nodeValue=u.nodeValue.replace(r,n))}var l=e.innerHTML.match(new RegExp("\\<\\w*.*\\>","gm")),s=e.innerHTML.match(new RegExp("\\{{[\\w\\W]*\\}\\}","gm"));if(null===l&&null!==s&&1===s.length&&(e.textContent=e.textContent.replace(r,n)),e.children&&e.children.length>0)for(var c=0;c<e.children.length;c++){var p=e.children[c];this.replaceVarible(p,t,n)}},t.prototype.render=function(e){function t(){var e=i.UkuleleUtil.searchHtmlTag(u.renderTemplate,"tr"),t=i.UkuleleUtil.searchHtmlTag(u.renderTemplate,"th");return-1===e||-1===t?document.createElement("tbody"):document.createElement("div")}var n=this,r=i.UkuleleUtil.getFinalValue(e,this.attributeName);if(r){if("number"==typeof r&&Math.floor(r)===r){for(var o=[],a=1;a<=r;a++)o.push(a);r=o}var u=this;if(this.element&&this.element.parentNode){this.beginCommentString="begin uku-repeat: "+this.expression+" in "+this.attributeName;var l=document.createComment(this.beginCommentString);this.element.parentNode.insertBefore(l,this.element),this.endCommentString="end uku-repeat: "+this.expression+" in "+this.attributeName;var s=document.createComment(this.endCommentString);this.element.parentNode.insertBefore(s,this.element.nextSibling),this.element.parentNode.removeChild(this.element)}var c={acceptNode:function(e){return e.nodeValue===u.beginCommentString?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}},p=c.acceptNode;p.acceptNode=c.acceptNode;for(var f=document.createTreeWalker(this.parentElement,NodeFilter.SHOW_COMMENT,p,!1);f.nextNode();){var h=f.currentNode;if(h&&h.nodeValue===this.beginCommentString){for(;h.nextSibling&&h.nextSibling.nodeValue!==this.endCommentString;)h.parentNode.removeChild(h.nextSibling);var d=t(),_=t();h.parentNode.insertBefore(_,h.nextSibling);for(var m=0;m<r.length;m++)if(d.insertAdjacentHTML("beforeEnd",this.renderTemplate),m===r.length-1){var v=d.innerHTML;_.insertAdjacentHTML("beforeBegin",v),h.parentNode.removeChild(_),d=null,_=null}for(var g=h.nextElementSibling,y=(new Date).getTime(),b=0;b<r.length;b++){g.removeAttribute("uku-repeat");var k=this.uku._internal_getDefinitionManager().getComponentsDefinition(),U=this.uku._internal_getDefinitionManager().getComponentsPool();this.uku._internal_getDefinitionManager().setComponentsDefinition(k),this.uku._internal_getDefinitionManager().setComponentsPool(U);var w=g.nextSibling,E=typeof r[b],C="repeatItem_"+Math.floor(y*Math.random()).toString()+"_"+this.expression+"$";"object"===E?this.uku.registerController(C,r[b]):(this.uku.registerController(C,{value:r[b]}),C+=".value"),this.replaceVarible(g,this.expression,C),g.insertAdjacentHTML("afterend",g.outerHTML);var A=g.nextSibling;g.parentNode.removeChild(g),g=A,this.uku._internal_dealWithElement(g,function(e){if("OPTION"===n.element.tagName){var t=n.parentElement.getAttribute("uku-selected"),r=t.split("|");t=r[0];var o=r[1],i=n.uku._internal_getDefinitionManager().getFinalValueByExpression(t);n.parentElement.value=o?i[o]:i}}),g=w}}}}},t}(o.BoundItemBase);t.BoundItemRepeat=a},function(e,t,n){"use strict";var r=this&&this.__extends||function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(t,"__esModule",{value:!0});var o=n(3),i=n(0),a=function(e){function t(t,n,r,o){var i=e.call(this,t,null,o)||this;return i.ukuTag=n,i.componentController=r,i}return r(t,e),t.prototype.render=function(e){var t=i.UkuleleUtil.getFinalValue(e,this.attributeName);this.componentController[this.ukuTag]=t,this.uku.refresh(this.componentController._alias)},t}(o.BoundItemBase);t.BoundItemComponentAttribute=a},function(e,t,n){"use strict";function r(e,t,n,r,i){for(var c=[o,a,u,l,s],p=0;p<c.length;p++){if(c[p].apply(this,arguments))break}}function o(e,t,n,r,o){if("INPUT"===e.tagName&&i(e)&&"value"===t){var a="change",u=e.getAttribute("type");return"text"!==u&&"text"!==u&&"password"!==u&&"tel"!==u&&"number"!==u&&"search"!==u||(a="input"),p.EventListener.addEventListener(e,a,function(i){var a=e.getAttribute("uku-"+t);c.UkuleleUtil.setFinalValue(n.controllerInstance,a,e.value),r&&r.call(o,n.alias,e)}),!0}return!1}function i(e){var t=e.getAttribute("type");return"checkbox"!==t&&"radio"!==t}function a(e,t,n,r,o){return"TEXTAREA"===e.tagName&&"value"===t&&(p.EventListener.addEventListener(e,"input",function(i){var a=e.getAttribute("uku-"+t);c.UkuleleUtil.setFinalValue(n.controllerInstance,a,e.value),r&&r.call(o,n.alias,e)}),!0)}function u(e,t,n,r,o){return"SELECT"===e.tagName&&"selected"===t&&(p.EventListener.addEventListener(e,"change",function(i){var a=e.getAttribute("uku-"+t);a=a.split("|")[0];for(var u=f.Selector.querySelectorAll(e,"option"),l=0;l<u.length;l++){var s=u[l];if(s.selected){var p=JSON.parse(s.getAttribute("data-item"));c.UkuleleUtil.setFinalValue(n.controllerInstance,a,p)}}r&&r.call(o,n.alias,e)}),!0)}function l(e,t,n,r,o){return"INPUT"===e.tagName&&"value"===t&&"checkbox"===e.getAttribute("type")&&(p.EventListener.addEventListener(e,"change",function(i){var a=e.getAttribute("uku-"+t);c.UkuleleUtil.setFinalValue(n.controllerInstance,a,e.checked),r&&r.call(o,n.alias,e)}),!0)}function s(e,t,n,r,o){return"INPUT"===e.tagName&&"selected"===t&&"radio"===e.getAttribute("type")&&(p.EventListener.addEventListener(e,"change",function(i){var a=e.getAttribute("uku-"+t);e.checked&&(c.UkuleleUtil.setFinalValue(n.controllerInstance,a,e.value),r&&r.call(o,n.alias,e))}),!0)}Object.defineProperty(t,"__esModule",{value:!0});var c=n(0),p=n(7),f=n(2);t.elementChangedBinder=r}])}); //# sourceMappingURL=uku.js.map \ No newline at end of file diff --git a/dist/uku.js.map b/dist/uku.js.map index 508bd90..f563975 100644 --- a/dist/uku.js.map +++ b/dist/uku.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///uku.js","webpack:///webpack/bootstrap a3f930a80a59a2ec8f3b","webpack:///./src/util/UkuleleUtil.ts","webpack:///./src/model/BoundItemAttribute.ts","webpack:///./src/extend/Selector.ts","webpack:///./src/model/BoundItemBase.ts","webpack:///./src/core/Event.ts","webpack:///./src/core/EventEmitter.ts","webpack:///./src/core/UkuEventType.ts","webpack:///./src/extend/EventListener.ts","webpack:///./src/core/Ukulele.ts","webpack:///./src/core/DefinitionManager.ts","webpack:///./src/extend/Ajax.ts","webpack:///./src/model/ControllerModel.ts","webpack:///./src/model/ComponentModel.ts","webpack:///./src/model/ComponentPoolItem.ts","webpack:///./src/model/ComponentConfiguration.ts","webpack:///./src/core/DirtyChecker.ts","webpack:///./src/util/ObjectUtil.ts","webpack:///./src/core/Analyzer.ts","webpack:///./src/core/BoundItemAttributeFactory.ts","webpack:///./src/model/directive/BoundItemAttrSelected.ts","webpack:///./src/model/directive/BoundItemAttrDataItem.ts","webpack:///./src/model/directive/BoundItemAttrSrc.ts","webpack:///./src/model/directive/BoundItemAttrDisabled.ts","webpack:///./src/model/directive/BoundItemAttrRender.ts","webpack:///./src/model/directive/BoundItemAttrStyle.ts","webpack:///./src/model/directive/BoundItemAttrValue.ts","webpack:///./src/model/directive/BoundItemAttrVisible.ts","webpack:///./src/model/BoundItemExpression.ts","webpack:///./src/model/BoundItemInnerText.ts","webpack:///./src/model/BoundItemRepeat.ts","webpack:///./src/model/BoundItemComponentAttribute.ts","webpack:///./src/core/ElementActionBinder.ts"],"names":["root","factory","exports","module","define","amd","a","i","this","modules","__webpack_require__","moduleId","installedModules","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","value","Selector_1","ComponentConfiguration_1","ValueAndParent","_value","_parant","parent","UkuleleUtil","searchHtmlTag","htmlString","tagName","reTemp","re","RegExp","search","getInnerHtml","match","index","matchString","tempString","substr","index2","lastIndexOf","substring","replace","getComponentConfiguration","tempDom","document","createElement","innerHTML","tpl","Selector","querySelectorAll","scripts","stylesheet","deps","ccs","length","script","src","push","ComponentConfiguration","searchUkuAttrTag","getAttrFromUkuTag","ukuTag","camelCase","names","split","charAt","toUpperCase","searchUkuExpTag","expression","searchUkuFuncArg","re1","re2","isRepeat","element","getAttribute","isInRepeat","parents","parent_1","nodeType","getBoundModelInstantName","controlInstName","getBoundModelInstantNames","controller_alias_list","arr","forEach","alias","pattern","console","count","getFinalValue","objects","attrName","tempScope","pattern2","result","eval","err","setFinalValue","valueString","JSON","stringify","evalString","wrapScriptInComponent","originalScript","__extends","extendStatics","setPrototypeOf","__proto__","Array","b","__","constructor","create","BoundItemBase_1","UkuleleUtil_1","BoundItemAttribute","_super","uku","_this","render","controllers","attr","attributeName","finalValue","setAttribute","removeAttribute","BoundItemBase","query","window","find","fuzzyFind","text","attributes","nodeName","directText","nodes","childNodes","node","nodeValue","trim","parentNode","_attrName","_element","_uku","Event","_eventType","eventType","EventEmitter","eventsPool","getEventsPool","addListener","handler","removeListener","splice","hasListener","dispatchEvent","event","handlers","UkuEventType","INITIALIZED","REFRESH","HANDLE_ELEMENT_COMPLETED","EventListener","addEventListener","EventEmitter_1","DefinitionManager_1","DirtyChecker_1","Analyzer_1","UkuEventType_1","Event_1","Ukulele","_a","apply","arguments","promiseArray","_childrenUku","init","Promise","all","then","manageApplication","setChildrenUku","_i","controllers_1","cc","_alias","handleElement","handleElementCompletedFunc","analyizeElement","e","registerController","instanceName","controllerInst","_internal_getDefinitionManager","addControllerDefinition","getController","getControllerDefinition","controllerInstance","registerComponent","tag","templateUrl","preload","addComponentDefinition","getComponent","getComponentController","componentId","getControllerInstByDomId","refresh","excludeElement","dirtyChecker","DirtyChecker","runDirtyChecking","defMgr","DefinitionManager","_internal_dealWithElement","callback","apps","Error","ele","anylyzer","Analyzer","retFunc","ANALYIZE_COMPLETED","__awaiter","thisArg","_arguments","P","generator","resolve","reject","fulfilled","step","next","rejected","done","__generator","body","verb","v","op","f","TypeError","_","y","t","label","ops","pop","trys","g","sent","throw","return","Symbol","iterator","Ajax_1","ControllerModel_1","ComponentModel_1","ComponentPoolItem_1","controllersDefinition","componentsDefinition","componentsPool","copyControllers","dependentScriptsCache","ajax","Ajax","getComponentsDefinition","getComponentsPool","setComponentsPool","pool","setComponentsDefinition","getComponentDefinition","getControllersDefinition","getCopyControllers","controllerModel","ControllerModel","domId","controller","_dom","id","ComponentPoolItem","componentConfig","analyizeComponent","addLazyComponentDefinition","lazy","getBoundAttributeValue","additionalArgu","controllerModels","getControllerModelByName","parameters","concat","normalReg","normals","matchAlias","ccReg","ccAlias","repeatReg","repeats","repeatAlias","getFinalValueByExpression","config","loadDependentScript","self","head","getElementsByTagName","type","charset","async","onload","target","appendChild","tmpAMD","ccsExternal","dep","_b","dependentScripts","undefined","componentControllerScript","buildeComponentModel","template","style","dealWithShadowStyle","styleArray","newArray","newValue","join","debugComment","controllerClazz","newComp","ComponentModel","error","url","request","XMLHttpRequest","onreadystatechange","readyState","status","responseText","open","send","ctrlInst","boundItems","addBoundItem","boundItem","getBoundItemsByName","tempBoundItems","clazz","_tagName","_templateUrl","_lazy","_template","_dependentScripts","_componentControllerScript","_stylesheet","ObjectUtil_1","oldValueCache","ctrlAliasName","watchController","oldValueMap","changedElementCount","previousFinalValue","ObjectUtil","compare","changedBoundItems","j","changedBoundItem","deepClone","isArray","obj","toString","getType","objA","objB","typeB","keys_a","keys","keys_b","key","valuA","valuB","isEqual","itemA","itemB","isEqual2","BoundItemAttributeFactory_1","BoundItemExpression_1","BoundItemInnerText_1","BoundItemRepeat_1","BoundItemComponentAttribute_1","ElementActionBinder_1","EventListener_1","dealWithAttribute","boundItem_1","BoundItemAttributeFactory","getInstance","generateInstance","elementChangedBinder","searchComponent","searchExpression","searchUkuAttribute","sortAttributes","subElement","orderAttrs","listenerAttrs","attribute","subElements","isSelfHasUkuTag","allChildren","child","matchElement","tempArr","shift","dealWithEvent","dealWithRepeat","dealWithInnerText","comp","attrs","compDef","localName","dealWithComponent","children","Clazz","time","randomAlias","tempFragment","htmlDom","_loop_1","this_1","Date","getTime","Math","floor","random","insertAdjacentHTML","outerHTML","previousElementSibling","classList","add","fire","data","bubbles","cancelable","CustomEvent","toLowerCase","boundItem_2","BoundItemComponentAttribute","controllers_2","removeChild","_initialized","dealWithExpression","slice","boundItem_3","BoundItemExpression","controllers_3","boundItem_4","BoundItemInnerText","controllers_4","eventName","eventNameInListener","alias_list","Function","log","arg","new_expression_1","repeatExpression","itemName","controllers_5","boundItem_5","BoundItemRepeat","BoundItemAttrSelected_1","BoundItemAttrDataItem_1","BoundItemAttrSrc_1","BoundItemAttrDisabled_1","BoundItemAttrRender_1","BoundItemAttrStyle_1","BoundItemAttrValue_1","BoundItemAttrVisible_1","BoundItemAttribute_1","_instance","instance","BountItemAttrSelected","BoundItemAttrDataItem","BoundItemAttrSrc","BoundItemAttrDisabled","BoundItemAttrRender","BoundItemAttrStyle","BoundItemAttrValue","BoundItemAttrVisible","elementName","disabled","oldDisplaySetting","display","cssName","checked","visibility","renderTemplate","parentElement","beginCommentString","endCommentString","generateTempContainer","newFinalValue","num","beginComment","createComment","insertBefore","endComment","nextSibling","filter","acceptNode","NodeFilter","FILTER_ACCEPT","FILTER_SKIP","safeFilter","treeWalker","createTreeWalker","SHOW_COMMENT","nextNode","commentNode","currentNode","tempDiv","blankDiv","childrenHTML","nextElementSibling","compPool","sibling","itemType","newOuterHtml","newItemDom","componentController","host","elementStrategies","inputTextCase","textareaCase","selectCase","checkboxCase","radioCase","isSupportInputType","inputType","options","option","selected","selectedItem","parse"],"mappings":"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","file":"uku.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 8);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Selector_1 = __webpack_require__(2);\r\nvar ComponentConfiguration_1 = __webpack_require__(14);\r\nvar ValueAndParent = (function () {\r\n function ValueAndParent(_value, _parant) {\r\n this.value = _value;\r\n this.parent = _parant;\r\n }\r\n return ValueAndParent;\r\n}());\r\nvar UkuleleUtil = (function () {\r\n function UkuleleUtil() {\r\n }\r\n UkuleleUtil.searchHtmlTag = function (htmlString, tagName) {\r\n var reTemp = \"^<\" + tagName + \"[\\\\s\\\\S]*>\" + \"[\\\\s\\\\S]*</\" + tagName + \">$\";\r\n var re = new RegExp(reTemp);\r\n var index = htmlString.search(re);\r\n return index;\r\n };\r\n UkuleleUtil.getInnerHtml = function (htmlString, tagName) {\r\n var reTemp = \"<\" + tagName + \"[\\\\s\\\\S]*>\" + \"[\\\\s\\\\S]*</\" + tagName + \">\";\r\n var re = new RegExp(reTemp);\r\n var match = htmlString.match(re);\r\n if (match.index > -1) {\r\n var matchString = match[0];\r\n var index = matchString.search(\">\");\r\n var tempString = matchString.substr(index + 1);\r\n var index2 = tempString.lastIndexOf(\"</\");\r\n tempString = tempString.substring(0, index2);\r\n tempString = tempString.replace(/(^\\s*)|(\\s*$)/g, \"\");\r\n return tempString;\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n UkuleleUtil.getComponentConfiguration = function (htmlString) {\r\n var tempDom = document.createElement(\"div\");\r\n tempDom.innerHTML = htmlString;\r\n var tpl = Selector_1.Selector.querySelectorAll(tempDom, \"template\");\r\n var scripts = Selector_1.Selector.querySelectorAll(tempDom, \"script\");\r\n var stylesheet = Selector_1.Selector.querySelectorAll(tempDom, \"style\");\r\n var deps = [];\r\n var ccs = null;\r\n for (var i = 0; i < scripts.length; i++) {\r\n var script = scripts[i];\r\n if (script.src !== \"\") {\r\n deps.push(script.src);\r\n }\r\n else {\r\n ccs = script.innerHTML;\r\n }\r\n }\r\n if (stylesheet && stylesheet[0]) {\r\n return new ComponentConfiguration_1.ComponentConfiguration(tpl[0].innerHTML, deps, ccs, stylesheet[0].innerHTML);\r\n }\r\n else {\r\n return new ComponentConfiguration_1.ComponentConfiguration(tpl[0].innerHTML, deps, ccs);\r\n }\r\n };\r\n UkuleleUtil.searchUkuAttrTag = function (htmlString) {\r\n var re = /^uku\\-.*/;\r\n var index = htmlString.search(re);\r\n return index;\r\n };\r\n UkuleleUtil.getAttrFromUkuTag = function (ukuTag, camelCase) {\r\n if (camelCase === void 0) { camelCase = false; }\r\n if (UkuleleUtil.searchUkuAttrTag(ukuTag) === 0) {\r\n ukuTag = ukuTag.replace('uku-', '');\r\n }\r\n if (camelCase) {\r\n var names = ukuTag.split('-');\r\n ukuTag = names[0];\r\n for (var i = 1; i < names.length; i++) {\r\n var firstLetter = names[i].charAt(0).toUpperCase();\r\n ukuTag = ukuTag + firstLetter + names[i].substr(1);\r\n }\r\n }\r\n return ukuTag;\r\n };\r\n UkuleleUtil.searchUkuExpTag = function (expression) {\r\n var re = /^\\{\\{.*\\}\\}$/;\r\n var index = expression.search(re);\r\n return index;\r\n };\r\n UkuleleUtil.searchUkuFuncArg = function (htmlString) {\r\n var re1 = /[\\+\\-\\*\\/\\%\\?\\:\\>\\<]/;\r\n var index = htmlString.search(re1);\r\n if (index === -1) {\r\n var re2 = /\\(.*\\)$/;\r\n index = htmlString.search(re2);\r\n return index;\r\n }\r\n else {\r\n return -1;\r\n }\r\n };\r\n UkuleleUtil.isRepeat = function (element) {\r\n if (element.getAttribute(\"uku-repeat\")) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n UkuleleUtil.isInRepeat = function (element) {\r\n var parents = Selector_1.Selector.parents(element);\r\n for (var i = 0; i < parents.length; i++) {\r\n var parent_1 = parents[i];\r\n if (parent_1.nodeType !== 9) {\r\n var b = parent_1.getAttribute(\"uku-repeat\");\r\n if (b) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n UkuleleUtil.getBoundModelInstantName = function (expression) {\r\n var controlInstName = expression.split('.')[0];\r\n if (controlInstName) {\r\n return controlInstName;\r\n }\r\n return undefined;\r\n };\r\n UkuleleUtil.getBoundModelInstantNames = function (controller_alias_list, expression) {\r\n var arr = [];\r\n controller_alias_list.forEach(function (alias) {\r\n var pattern = new RegExp(\"\\\\b\" + alias, \"gm\");\r\n console.count('getBoundModelInstantNames执行的次数');\r\n if (expression.search(pattern) > -1) {\r\n arr.push(alias);\r\n }\r\n });\r\n return arr;\r\n };\r\n UkuleleUtil.getFinalValue = function (objects, attrName) {\r\n return (function () {\r\n var tempScope = {};\r\n objects.forEach(function (object) {\r\n tempScope[object['_alias']] = object;\r\n var alias = object['_alias'];\r\n var pattern = new RegExp(\"\\\\b\" + alias + \"\\\\b\", \"gm\");\r\n attrName = attrName.replace(pattern, \"tempScope.\" + alias);\r\n var pattern2 = new RegExp(\"\\\\.tempScope\\\\.\" + alias, \"gm\");\r\n attrName = attrName.replace(pattern2, \".\" + alias);\r\n });\r\n var result;\r\n try {\r\n result = eval(attrName);\r\n }\r\n catch (err) {\r\n result = '';\r\n }\r\n tempScope = null;\r\n return result;\r\n })();\r\n };\r\n UkuleleUtil.setFinalValue = function (object, attrName, value) {\r\n return (function () {\r\n var tempScope = {};\r\n tempScope[object['_alias']] = object;\r\n var valueString;\r\n if (typeof value === \"string\") {\r\n valueString = '\"' + value + '\"';\r\n }\r\n else if (typeof value === \"object\") {\r\n valueString = \"JSON.parse('\" + JSON.stringify(value) + \"')\";\r\n }\r\n else {\r\n valueString = value;\r\n }\r\n var evalString = \"tempScope.\" + attrName + \"=\" + valueString;\r\n eval(evalString);\r\n })();\r\n };\r\n UkuleleUtil.wrapScriptInComponent = function (originalScript) {\r\n var trimScript = originalScript.replace(new RegExp('\\\\s', 'gm'), '');\r\n if (trimScript.search(new RegExp('\\\\(function\\\\(')) === 0) {\r\n return originalScript;\r\n }\r\n else {\r\n var selfExcutingFrame = \"\\t(function(){\\n return function(uku){ \\n Object.defineProperty(this, 'currentState', {\\n set: function(value){\\n if(value){\\n this._currentState = value;\\n uku.refresh(this._alias);\\n }\\n }\\n });\\n\\n this.setState = function(state){\\n this._currentState = state;\\n uku.refresh(this._alias);\\n };\\n\\n \" + originalScript + \"\\n };\\n })();\\n \";\r\n return selfExcutingFrame;\r\n }\r\n };\r\n return UkuleleUtil;\r\n}());\r\nexports.UkuleleUtil = UkuleleUtil;\r\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemBase_1 = __webpack_require__(3);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\n//import {SelectedDecorator} from \"./decorator/SelectedDecorator\";\r\nvar BoundItemAttribute = (function (_super) {\r\n __extends(BoundItemAttribute, _super);\r\n function BoundItemAttribute(attrName, ukuTag, element, uku) {\r\n var _this = _super.call(this, attrName, element, uku) || this;\r\n _this.ukuTag = ukuTag;\r\n return _this;\r\n }\r\n BoundItemAttribute.prototype.render = function (controllers) {\r\n var attr = this.attributeName;\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, attr);\r\n if (typeof finalValue === 'boolean') {\r\n if (finalValue === true) {\r\n this.element.setAttribute(this.ukuTag, this.ukuTag);\r\n }\r\n else {\r\n this.element.removeAttribute(this.ukuTag);\r\n }\r\n }\r\n else {\r\n this.element.setAttribute(this.ukuTag, finalValue);\r\n }\r\n };\r\n return BoundItemAttribute;\r\n}(BoundItemBase_1.BoundItemBase));\r\nexports.BoundItemAttribute = BoundItemAttribute;\r\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Selector = (function () {\r\n function Selector() {\r\n }\r\n Selector.querySelectorAll = function (element, query) {\r\n if (window.hasOwnProperty('jQuery') && typeof window['jQuery'] !== \"undefined\") {\r\n return window['jQuery'](element).find(query);\r\n }\r\n else {\r\n return element.querySelectorAll(query);\r\n }\r\n };\r\n Selector.fuzzyFind = function (element, text) {\r\n if (element && element.attributes) {\r\n for (var i = 0; i < element.attributes.length; i++) {\r\n var attr = element.attributes[i];\r\n if (attr.nodeName.search(text) > -1) {\r\n return element;\r\n }\r\n }\r\n }\r\n return null;\r\n };\r\n Selector.directText = function (element, text) {\r\n var o = \"\";\r\n var nodes = element.childNodes;\r\n for (var i = 0; i <= nodes.length - 1; i++) {\r\n var node = nodes[i];\r\n if (node.nodeType === 3) {\r\n if (text || text === \"\" || text === 0 || text === false) {\r\n node.nodeValue = text;\r\n return;\r\n }\r\n else {\r\n o += node.nodeValue;\r\n }\r\n }\r\n }\r\n return o.trim();\r\n };\r\n Selector.parents = function (element) {\r\n var parents = [];\r\n while (element.parentNode && element.parentNode.tagName !== 'BODY') {\r\n parents.push(element.parentNode);\r\n element = element.parentNode;\r\n }\r\n return parents;\r\n };\r\n return Selector;\r\n}());\r\nexports.Selector = Selector;\r\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemBase = (function () {\r\n function BoundItemBase(_attrName, _element, _uku) {\r\n this.attributeName = _attrName;\r\n this.element = _element;\r\n this.uku = _uku;\r\n }\r\n BoundItemBase.prototype.render = function (controllers) {\r\n };\r\n return BoundItemBase;\r\n}());\r\nexports.BoundItemBase = BoundItemBase;\r\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Event = (function () {\r\n function Event(_eventType, _element) {\r\n this.eventType = _eventType;\r\n this.element = _element;\r\n }\r\n return Event;\r\n}());\r\nexports.Event = Event;\r\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventEmitter = (function () {\r\n function EventEmitter() {\r\n this.eventsPool = {};\r\n }\r\n EventEmitter.prototype.getEventsPool = function () {\r\n return this.eventsPool;\r\n };\r\n EventEmitter.prototype.addListener = function (eventType, handler) {\r\n if (!this.eventsPool[eventType]) {\r\n this.eventsPool[eventType] = [];\r\n }\r\n this.eventsPool[eventType].push(handler);\r\n };\r\n EventEmitter.prototype.removeListener = function (eventType, handler) {\r\n if (this.eventsPool[eventType]) {\r\n for (var i = this.eventsPool[eventType].length - 1; i >= 0; i--) {\r\n if (this.eventsPool[eventType][i] === handler) {\r\n this.eventsPool[eventType].splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n EventEmitter.prototype.hasListener = function (eventType) {\r\n if (this.eventsPool[eventType] && this.eventsPool[eventType].length > 0) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n EventEmitter.prototype.dispatchEvent = function (event) {\r\n if (event && event.eventType) {\r\n var handlers = this.eventsPool[event.eventType];\r\n if (handlers) {\r\n for (var i = 0; i < handlers.length; i++) {\r\n handlers[i].call(this, event);\r\n }\r\n }\r\n }\r\n };\r\n return EventEmitter;\r\n}());\r\nexports.EventEmitter = EventEmitter;\r\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar UkuEventType = (function () {\r\n function UkuEventType() {\r\n }\r\n UkuEventType.INITIALIZED = 'initialized';\r\n UkuEventType.REFRESH = 'refresh';\r\n UkuEventType.HANDLE_ELEMENT_COMPLETED = \"handle_element_completed\";\r\n return UkuEventType;\r\n}());\r\nexports.UkuEventType = UkuEventType;\r\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventListener = (function () {\r\n function EventListener() {\r\n }\r\n EventListener.addEventListener = function (element, eventType, handler) {\r\n return element.addEventListener(eventType, handler);\r\n };\r\n return EventListener;\r\n}());\r\nexports.EventListener = EventListener;\r\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventEmitter_1 = __webpack_require__(5);\r\nvar DefinitionManager_1 = __webpack_require__(9);\r\nvar DirtyChecker_1 = __webpack_require__(15);\r\nvar Analyzer_1 = __webpack_require__(17);\r\nvar Selector_1 = __webpack_require__(2);\r\nvar UkuEventType_1 = __webpack_require__(6);\r\nvar Event_1 = __webpack_require__(4);\r\nexports.Ukulele = (_a = (function (_super) {\r\n __extends(Ukulele, _super);\r\n function Ukulele() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.promiseArray = [];\r\n _this._childrenUku = {};\r\n return _this;\r\n }\r\n Ukulele.prototype.init = function () {\r\n var _this = this;\r\n Promise.all(this.promiseArray).then(function () {\r\n _this.manageApplication();\r\n });\r\n };\r\n Ukulele.prototype.setChildrenUku = function (controllers, uku) {\r\n for (var _i = 0, controllers_1 = controllers; _i < controllers_1.length; _i++) {\r\n var cc = controllers_1[_i];\r\n var alias = cc._alias;\r\n if (!this._childrenUku[alias]) {\r\n this._childrenUku[alias] = [];\r\n }\r\n this._childrenUku[alias].push(uku);\r\n }\r\n };\r\n Ukulele.prototype.handleElement = function (element, handleElementCompletedFunc) {\r\n var _this = this;\r\n this.analyizeElement(element, function (e) {\r\n _this.dispatchEvent(new Event_1.Event(UkuEventType_1.UkuEventType.HANDLE_ELEMENT_COMPLETED, e));\r\n if (handleElementCompletedFunc && typeof handleElementCompletedFunc === 'function') {\r\n handleElementCompletedFunc(e.element);\r\n }\r\n });\r\n };\r\n Ukulele.prototype.registerController = function (instanceName, controllerInst) {\r\n window[instanceName] = controllerInst;\r\n this._internal_getDefinitionManager().addControllerDefinition(instanceName, controllerInst);\r\n };\r\n Ukulele.prototype.getController = function (instanceName) {\r\n return this._internal_getDefinitionManager().getControllerDefinition(instanceName).controllerInstance;\r\n };\r\n Ukulele.prototype.registerComponent = function (tag, templateUrl, preload) {\r\n var p = this._internal_getDefinitionManager().addComponentDefinition(tag, templateUrl, preload);\r\n this.promiseArray.push(p);\r\n };\r\n Ukulele.prototype.getComponent = function (tagName) {\r\n return this._internal_getDefinitionManager().getComponent(tagName);\r\n };\r\n Ukulele.prototype.getComponentController = function (componentId) {\r\n return this._internal_getDefinitionManager().getControllerInstByDomId(componentId);\r\n };\r\n Ukulele.prototype.refresh = function (alias, excludeElement) {\r\n if (!this.dirtyChecker) {\r\n this.dirtyChecker = new DirtyChecker_1.DirtyChecker(this);\r\n }\r\n this.dirtyChecker.runDirtyChecking(alias, excludeElement);\r\n };\r\n //internal function\r\n Ukulele.prototype._internal_getDefinitionManager = function () {\r\n if (!this.defMgr) {\r\n this.defMgr = new DefinitionManager_1.DefinitionManager(this);\r\n }\r\n return this.defMgr;\r\n };\r\n Ukulele.prototype._internal_dealWithElement = function (element, callback) {\r\n this.analyizeElement(element, callback);\r\n };\r\n Ukulele.prototype.manageApplication = function () {\r\n var _this = this;\r\n var apps = Selector_1.Selector.querySelectorAll(document, \"[uku-application]\");\r\n if (apps.length === 1) {\r\n this.analyizeElement(apps[0], function (ele) {\r\n _this.dispatchEvent(new Event_1.Event(UkuEventType_1.UkuEventType.INITIALIZED, ele));\r\n });\r\n }\r\n else {\r\n throw new Error(\"Only one 'uku-application' can be declared in a whole html.\");\r\n }\r\n };\r\n Ukulele.prototype.analyizeElement = function (element, callback) {\r\n var anylyzer = new Analyzer_1.Analyzer(this);\r\n if (callback) {\r\n (function (retFunc) {\r\n anylyzer.addListener(Analyzer_1.Analyzer.ANALYIZE_COMPLETED, function (e) {\r\n retFunc(e.element);\r\n });\r\n })(callback);\r\n }\r\n anylyzer.analyizeElement(element);\r\n };\r\n return Ukulele;\r\n }(EventEmitter_1.EventEmitter)),\r\n _a.INITIALIZED = 'initialized',\r\n _a.REFRESH = 'refresh',\r\n _a.HANDLE_ELEMENT_COMPLETED = \"handle_element_completed\",\r\n _a);\r\nvar _a;\r\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Ajax_1 = __webpack_require__(10);\r\nvar ControllerModel_1 = __webpack_require__(11);\r\nvar ComponentModel_1 = __webpack_require__(12);\r\nvar ComponentPoolItem_1 = __webpack_require__(13);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar DefinitionManager = (function () {\r\n function DefinitionManager(_uku) {\r\n this.controllersDefinition = {};\r\n this.componentsDefinition = {};\r\n this.componentsPool = {};\r\n this.copyControllers = {};\r\n this.dependentScriptsCache = {};\r\n this.ajax = new Ajax_1.Ajax();\r\n this.uku = _uku;\r\n }\r\n DefinitionManager.prototype.getComponentsDefinition = function () {\r\n return this.componentsDefinition;\r\n };\r\n DefinitionManager.prototype.getComponentsPool = function () {\r\n return this.componentsPool;\r\n };\r\n DefinitionManager.prototype.setComponentsPool = function (pool) {\r\n this.componentsPool = pool;\r\n };\r\n DefinitionManager.prototype.setComponentsDefinition = function (value) {\r\n this.componentsDefinition = value;\r\n };\r\n DefinitionManager.prototype.getComponentDefinition = function (tagName) {\r\n return this.componentsDefinition[tagName];\r\n };\r\n DefinitionManager.prototype.getControllerDefinition = function (instanceName) {\r\n return this.controllersDefinition[instanceName];\r\n };\r\n DefinitionManager.prototype.getControllersDefinition = function () {\r\n return this.controllersDefinition;\r\n };\r\n DefinitionManager.prototype.getComponent = function (tagName) {\r\n return this.componentsPool[tagName];\r\n };\r\n DefinitionManager.prototype.getCopyControllers = function () {\r\n return this.copyControllers;\r\n };\r\n DefinitionManager.prototype.addControllerDefinition = function (instanceName, controllerInst) {\r\n var controllerModel = new ControllerModel_1.ControllerModel(instanceName, controllerInst);\r\n controllerInst._alias = instanceName;\r\n this.controllersDefinition[instanceName] = controllerModel;\r\n };\r\n DefinitionManager.prototype.getControllerInstByDomId = function (domId) {\r\n for (var alias in this.controllersDefinition) {\r\n var controllerModel = this.controllersDefinition[alias];\r\n var controller = controllerModel.controllerInstance;\r\n if (controller._dom && controller._dom.id === domId) {\r\n return controller;\r\n }\r\n }\r\n return undefined;\r\n };\r\n DefinitionManager.prototype.addComponentDefinition = function (tag, templateUrl, preload) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n if (!preload) {\r\n _this.componentsPool[tag] = new ComponentPoolItem_1.ComponentPoolItem(tag, templateUrl, true);\r\n resolve();\r\n }\r\n else {\r\n _this.componentsPool[tag] = new ComponentPoolItem_1.ComponentPoolItem(tag, templateUrl, false);\r\n return _this.ajax.get(templateUrl).then(function (result) {\r\n var componentConfig = UkuleleUtil_1.UkuleleUtil.getComponentConfiguration(result);\r\n return _this.analyizeComponent(tag, componentConfig);\r\n });\r\n }\r\n });\r\n };\r\n DefinitionManager.prototype.addLazyComponentDefinition = function (tag, templateUrl) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n return _this.ajax.get(templateUrl).then(function (result) {\r\n var componentConfig = UkuleleUtil_1.UkuleleUtil.getComponentConfiguration(result);\r\n return _this.analyizeComponent(tag, componentConfig).then(function () {\r\n _this.componentsPool[tag] = { 'tagName': tag, 'templateUrl': templateUrl, 'lazy': false };\r\n resolve();\r\n });\r\n });\r\n });\r\n };\r\n DefinitionManager.prototype.getBoundAttributeValue = function (attr) {\r\n var additionalArgu = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n additionalArgu[_i - 1] = arguments[_i];\r\n }\r\n var controllerModels = this.getControllerModelByName(attr);\r\n var controllers = [];\r\n controllerModels.forEach(function (controllerModel) {\r\n controllers.push(controllerModel.controllerInstance);\r\n });\r\n var parameters = [this.uku, controllers, attr];\r\n parameters = parameters.concat(additionalArgu);\r\n var result = UkuleleUtil_1.UkuleleUtil.getFinalValue.apply(null, parameters);\r\n return result;\r\n };\r\n ;\r\n DefinitionManager.prototype.getControllerModelByName = function (expression) {\r\n var _this = this;\r\n var arr = [];\r\n var normalReg = /\\$\\w+\\./g;\r\n var normals = expression.match(normalReg);\r\n if (normals) {\r\n normals.forEach(function (matchAlias) {\r\n matchAlias = matchAlias.substr(0, matchAlias.length - 1);\r\n var controllerModel = _this.controllersDefinition[matchAlias];\r\n arr.push(controllerModel);\r\n });\r\n }\r\n var ccReg = /cc\\_\\w*\\./g;\r\n var ccs = expression.match(ccReg);\r\n if (ccs) {\r\n ccs.forEach(function (ccAlias) {\r\n ccAlias = ccAlias.substr(0, ccAlias.length - 1);\r\n var controllerModel = _this.controllersDefinition[ccAlias];\r\n arr.push(controllerModel);\r\n });\r\n }\r\n var repeatReg = /repeatItem\\_\\w*\\$/g;\r\n var repeats = expression.match(repeatReg);\r\n if (repeats) {\r\n repeats.forEach(function (repeatAlias) {\r\n //repeatAlias = repeatAlias.substr(0,repeatAlias.length-1);\r\n var controllerModel = _this.controllersDefinition[repeatAlias];\r\n arr.push(controllerModel);\r\n });\r\n }\r\n return arr;\r\n };\r\n ;\r\n DefinitionManager.prototype.getFinalValueByExpression = function (expression) {\r\n var controllerModels = this.getControllerModelByName(expression);\r\n var controllers = [];\r\n controllerModels.forEach(function (controllerModel) {\r\n controllers.push(controllerModel.controllerInstance);\r\n });\r\n return UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, expression);\r\n };\r\n ;\r\n DefinitionManager.prototype.analyizeComponent = function (tag, config) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n function loadDependentScript(src) {\r\n return new Promise(function (resolve, reject) {\r\n if (!self.dependentScriptsCache[src]) {\r\n var head = document.getElementsByTagName('HEAD')[0];\r\n var script = document.createElement('script');\r\n script.type = 'text/javascript';\r\n script.charset = 'utf-8';\r\n script.async = true;\r\n script.src = src;\r\n script.onload = function (e) {\r\n self.dependentScriptsCache[e.target['src']] = true;\r\n resolve();\r\n };\r\n head.appendChild(script);\r\n }\r\n else {\r\n resolve();\r\n }\r\n });\r\n }\r\n var deps, self, tmpAMD, ccsExternal, _a, i, dep;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n deps = config.dependentScripts;\r\n self = this;\r\n if (!(deps && deps.length > 0)) return [3 /*break*/, 7];\r\n tmpAMD = void 0;\r\n if (typeof window['define'] === 'function' && window['define'].amd) {\r\n tmpAMD = window['define'];\r\n window['define'] = undefined;\r\n }\r\n if (!!config.componentControllerScript) return [3 /*break*/, 2];\r\n ccsExternal = deps[deps.length - 1];\r\n _a = config;\r\n return [4 /*yield*/, this.ajax.get(ccsExternal)];\r\n case 1:\r\n _a.componentControllerScript = _b.sent();\r\n deps.pop();\r\n _b.label = 2;\r\n case 2:\r\n i = 0;\r\n _b.label = 3;\r\n case 3:\r\n if (!(i < deps.length)) return [3 /*break*/, 6];\r\n dep = deps[i];\r\n return [4 /*yield*/, loadDependentScript(dep)];\r\n case 4:\r\n _b.sent();\r\n _b.label = 5;\r\n case 5:\r\n i++;\r\n return [3 /*break*/, 3];\r\n case 6:\r\n if (tmpAMD) {\r\n window['define'] = tmpAMD;\r\n }\r\n this.buildeComponentModel(tag, config.template, config.componentControllerScript, config.stylesheet);\r\n return [2 /*return*/];\r\n case 7:\r\n this.buildeComponentModel(tag, config.template, config.componentControllerScript, config.stylesheet);\r\n return [2 /*return*/];\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n DefinitionManager.prototype.buildeComponentModel = function (tag, template, script, style) {\r\n var debugComment = \"//# sourceURL=\" + tag + \".js\";\r\n try {\r\n var controllerClazz = void 0;\r\n if (script) {\r\n script = UkuleleUtil_1.UkuleleUtil.wrapScriptInComponent(script);\r\n script += debugComment;\r\n controllerClazz = eval(script);\r\n }\r\n var newComp = new ComponentModel_1.ComponentModel(tag, template, controllerClazz);\r\n this.componentsDefinition[tag] = newComp;\r\n if (style) {\r\n dealWithShadowStyle(tag, style);\r\n }\r\n }\r\n catch (e) {\r\n console.error(e);\r\n }\r\n function dealWithShadowStyle(tagName, stylesheet) {\r\n var head = document.getElementsByTagName('HEAD')[0];\r\n var style = document.createElement('style');\r\n style.type = 'text/css';\r\n var styleArray = stylesheet.split(\"}\");\r\n var newArray = [];\r\n styleArray.forEach(function (value, index) {\r\n var newValue = value.replace(/^\\s*/, \"\");\r\n if (newValue) {\r\n newArray.push(newValue);\r\n }\r\n });\r\n stylesheet = newArray.join(\"}\\n\" + \".\" + tagName + \" \");\r\n stylesheet = \".\" + tagName + \" \" + stylesheet + \"}\";\r\n style.innerHTML = stylesheet;\r\n head.appendChild(style);\r\n }\r\n };\r\n return DefinitionManager;\r\n}());\r\nexports.DefinitionManager = DefinitionManager;\r\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Ajax = (function () {\r\n function Ajax() {\r\n }\r\n Ajax.prototype.get = function (url) {\r\n return new Promise(function (resolve, reject) {\r\n var request = new XMLHttpRequest();\r\n request.onreadystatechange = function () {\r\n if (request.readyState === 4) {\r\n if (request.status === 200) {\r\n resolve(request.responseText);\r\n }\r\n else {\r\n reject();\r\n }\r\n }\r\n };\r\n request.open(\"GET\", url, true);\r\n request.send(null);\r\n });\r\n };\r\n return Ajax;\r\n}());\r\nexports.Ajax = Ajax;\r\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ControllerModel = (function () {\r\n function ControllerModel(alias, ctrlInst) {\r\n this.alias = alias;\r\n this.controllerInstance = ctrlInst;\r\n this.boundItems = [];\r\n }\r\n ControllerModel.prototype.addBoundItem = function (boundItem) {\r\n this.boundItems.push(boundItem);\r\n };\r\n ControllerModel.prototype.getBoundItemsByName = function (name) {\r\n var tempBoundItems = [];\r\n for (var i = 0; i < this.boundItems.length; i++) {\r\n var boundItem = this.boundItems[i];\r\n if (boundItem.attributeName === name) {\r\n tempBoundItems.push(boundItem);\r\n }\r\n }\r\n return tempBoundItems;\r\n };\r\n return ControllerModel;\r\n}());\r\nexports.ControllerModel = ControllerModel;\r\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ComponentModel = (function () {\r\n function ComponentModel(tagName, template, clazz) {\r\n this.tagName = tagName;\r\n this.template = template;\r\n this.controllerClazz = clazz;\r\n }\r\n return ComponentModel;\r\n}());\r\nexports.ComponentModel = ComponentModel;\r\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ComponentPoolItem = (function () {\r\n function ComponentPoolItem(_tagName, _templateUrl, _lazy) {\r\n this.tagName = _tagName;\r\n this.templateUrl = _templateUrl;\r\n this.lazy = _lazy;\r\n }\r\n return ComponentPoolItem;\r\n}());\r\nexports.ComponentPoolItem = ComponentPoolItem;\r\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ComponentConfiguration = (function () {\r\n function ComponentConfiguration(_template, _dependentScripts, _componentControllerScript, _stylesheet) {\r\n if (_stylesheet === void 0) { _stylesheet = undefined; }\r\n this.template = _template;\r\n this.dependentScripts = _dependentScripts;\r\n this.componentControllerScript = _componentControllerScript;\r\n this.stylesheet = _stylesheet;\r\n }\r\n return ComponentConfiguration;\r\n}());\r\nexports.ComponentConfiguration = ComponentConfiguration;\r\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar ObjectUtil_1 = __webpack_require__(16);\r\nvar UkuEventType_1 = __webpack_require__(6);\r\nvar Event_1 = __webpack_require__(4);\r\nvar DirtyChecker = (function () {\r\n function DirtyChecker(_uku) {\r\n this.oldValueCache = {};\r\n this.uku = _uku;\r\n this.defMgr = this.uku._internal_getDefinitionManager();\r\n }\r\n DirtyChecker.prototype.runDirtyChecking = function (ctrlAliasName, excludeElement) {\r\n var _this = this;\r\n if (ctrlAliasName) {\r\n if (typeof (ctrlAliasName) === \"string\") {\r\n watchController(ctrlAliasName);\r\n }\r\n else if (ObjectUtil_1.ObjectUtil.isArray(ctrlAliasName)) {\r\n for (var i = 0; i < ctrlAliasName.length; i++) {\r\n watchController(ctrlAliasName[i]);\r\n }\r\n }\r\n }\r\n else {\r\n for (var alias in this.defMgr.getControllersDefinition()) {\r\n watchController(alias);\r\n }\r\n }\r\n function watchController(alias) {\r\n var controllerModel = _this.defMgr.getControllersDefinition()[alias];\r\n if (!controllerModel) {\r\n return;\r\n }\r\n var controller = controllerModel.controllerInstance;\r\n if (!_this.oldValueCache[alias]) {\r\n _this.oldValueCache[alias] = {};\r\n }\r\n var oldValueMap = _this.oldValueCache[alias];\r\n var changedElementCount = 0;\r\n for (var i = 0; i < controllerModel.boundItems.length; i++) {\r\n var boundItem = controllerModel.boundItems[i];\r\n var attrName = boundItem.attributeName;\r\n if (oldValueMap) {\r\n if (boundItem.hasOwnProperty('ukuTag') && boundItem['ukuTag'] === \"selected\") {\r\n attrName = attrName.split(\"|\")[0];\r\n }\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue([controller], attrName);\r\n var previousFinalValue = oldValueMap[attrName];\r\n if (!ObjectUtil_1.ObjectUtil.compare(previousFinalValue, finalValue)) {\r\n attrName = boundItem.attributeName;\r\n var changedBoundItems = controllerModel.getBoundItemsByName(attrName);\r\n for (var j = 0; j < changedBoundItems.length; j++) {\r\n var changedBoundItem = changedBoundItems[j];\r\n if (changedBoundItem.element !== excludeElement || (boundItem.hasOwnProperty('ukuTag') && changedBoundItem['ukuTag'] !== \"value\")) {\r\n changedElementCount++;\r\n changedBoundItem.render([controller]);\r\n }\r\n }\r\n oldValueMap[attrName] = ObjectUtil_1.ObjectUtil.deepClone(finalValue);\r\n }\r\n }\r\n }\r\n if (changedElementCount > 0 && _this.uku.hasListener(UkuEventType_1.UkuEventType.REFRESH)) {\r\n _this.uku.dispatchEvent(new Event_1.Event(UkuEventType_1.UkuEventType.REFRESH));\r\n }\r\n }\r\n };\r\n ;\r\n return DirtyChecker;\r\n}());\r\nexports.DirtyChecker = DirtyChecker;\r\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ObjectUtil = (function () {\r\n function ObjectUtil() {\r\n }\r\n ObjectUtil.isArray = function (obj) {\r\n return Object.prototype.toString.call(obj) === '[object Array]';\r\n };\r\n ObjectUtil.getType = function (obj) {\r\n var type = typeof (obj);\r\n if (type === \"object\") {\r\n if (ObjectUtil.isArray(obj)) {\r\n return \"array\";\r\n }\r\n else {\r\n return type;\r\n }\r\n }\r\n else {\r\n return type;\r\n }\r\n };\r\n ObjectUtil.deepClone = function (obj) {\r\n var o;\r\n var i;\r\n var j;\r\n if (typeof (obj) !== \"object\" || obj === null) {\r\n return obj;\r\n }\r\n if (obj instanceof (Array)) {\r\n o = [];\r\n i = 0;\r\n j = obj.length;\r\n for (; i < j; i++) {\r\n if (typeof (obj[i]) === \"object\" && obj[i] !== null) {\r\n o[i] = ObjectUtil.deepClone(obj[i]);\r\n }\r\n else {\r\n o[i] = obj[i];\r\n }\r\n }\r\n }\r\n else {\r\n o = {};\r\n for (i in obj) {\r\n if (typeof (obj[i]) === \"object\" && obj[i] !== null && i !== \"_dom\") {\r\n o[i] = ObjectUtil.deepClone(obj[i]);\r\n }\r\n else {\r\n o[i] = obj[i];\r\n }\r\n }\r\n }\r\n return o;\r\n };\r\n ObjectUtil.compare = function (objA, objB) {\r\n var type = ObjectUtil.getType(objA);\r\n var typeB = ObjectUtil.getType(objB);\r\n var result = true;\r\n if (type !== typeB) {\r\n return false;\r\n }\r\n else {\r\n switch (type) {\r\n case \"object\":\r\n if (objA === null && objB === null) {\r\n result = true;\r\n }\r\n else if (objA === null || objB === null) {\r\n result = false;\r\n }\r\n else {\r\n var keys_a = Object.keys(objA);\r\n var keys_b = Object.keys(objB);\r\n if (keys_a.length != keys_b.length) {\r\n result = false;\r\n }\r\n else if (keys_a.length === 0 && keys_b.length === 0) {\r\n result = true;\r\n }\r\n else {\r\n for (var key in objA) {\r\n var valuA = objA[key];\r\n var valuB = objB[key];\r\n var isEqual = ObjectUtil.compare(valuA, valuB);\r\n if (!isEqual) {\r\n result = false;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n case \"array\":\r\n if (objA.length === objB.length) {\r\n for (var i = 0; i < objA.length; i++) {\r\n var itemA = objA[i];\r\n var itemB = objB[i];\r\n var isEqual2 = ObjectUtil.compare(itemA, itemB);\r\n if (!isEqual2) {\r\n result = false;\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n result = false;\r\n }\r\n break;\r\n case \"function\":\r\n result = objA.toString() === objB.toString();\r\n break;\r\n default:\r\n result = objA === objB;\r\n break;\r\n }\r\n }\r\n return result;\r\n };\r\n return ObjectUtil;\r\n}());\r\nexports.ObjectUtil = ObjectUtil;\r\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventEmitter_1 = __webpack_require__(5);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BoundItemAttributeFactory_1 = __webpack_require__(18);\r\nvar BoundItemExpression_1 = __webpack_require__(27);\r\nvar BoundItemInnerText_1 = __webpack_require__(28);\r\nvar BoundItemRepeat_1 = __webpack_require__(29);\r\nvar BoundItemComponentAttribute_1 = __webpack_require__(30);\r\nvar ElementActionBinder_1 = __webpack_require__(31);\r\nvar EventListener_1 = __webpack_require__(7);\r\nvar Selector_1 = __webpack_require__(2);\r\nvar Event_1 = __webpack_require__(4);\r\nvar Analyzer = (function (_super) {\r\n __extends(Analyzer, _super);\r\n function Analyzer(_uku) {\r\n var _this = _super.call(this) || this;\r\n //处理绑定的attribute\r\n _this.dealWithAttribute = function (element, tagName) {\r\n var _this = this;\r\n var attr = element.getAttribute(\"uku-\" + tagName);\r\n //let elementName = element.tagName;\r\n var controllerModels = this.defMgr.getControllerModelByName(attr);\r\n if (controllerModels && controllerModels.length > 0) {\r\n var boundItem_1 = BoundItemAttributeFactory_1.BoundItemAttributeFactory.getInstance().generateInstance(attr, tagName, element, this.uku);\r\n var controllers_1 = [];\r\n controllerModels.forEach(function (controllerModel) {\r\n controllerModel.addBoundItem(boundItem_1);\r\n ElementActionBinder_1.elementChangedBinder(element, tagName, controllerModel, _this.uku.refresh, _this.uku);\r\n controllers_1.push(controllerModel.controllerInstance);\r\n });\r\n boundItem_1.render(controllers_1);\r\n }\r\n };\r\n _this.uku = _uku;\r\n _this.defMgr = _this.uku._internal_getDefinitionManager();\r\n return _this;\r\n }\r\n Analyzer.prototype.analyizeElement = function (ele) {\r\n var _this = this;\r\n this.searchComponent(ele).then(function (element) {\r\n _this.searchExpression(element);\r\n _this.searchUkuAttribute(element);\r\n //this.defMgr.copyAllController();\r\n if (_this.hasListener(Analyzer.ANALYIZE_COMPLETED)) {\r\n _this.dispatchEvent(new Event_1.Event(Analyzer.ANALYIZE_COMPLETED, element));\r\n }\r\n });\r\n };\r\n Analyzer.prototype.sortAttributes = function (subElement) {\r\n var orderAttrs = [];\r\n var listenerAttrs = [];\r\n for (var i = 0; i < subElement.attributes.length; i++) {\r\n var attribute = subElement.attributes[i];\r\n if (attribute.nodeName.search(\"uku-on\") !== -1) {\r\n //orderAttrs.push(attribute);\r\n listenerAttrs.push(attribute);\r\n }\r\n else {\r\n orderAttrs.push(attribute);\r\n }\r\n }\r\n orderAttrs = orderAttrs.concat(listenerAttrs);\r\n return orderAttrs;\r\n };\r\n Analyzer.prototype.searchUkuAttribute = function (element) {\r\n var subElements = [];\r\n //scan element which has uku-* tag\r\n var isSelfHasUkuTag = Selector_1.Selector.fuzzyFind(element, 'uku-');\r\n if (isSelfHasUkuTag) {\r\n subElements.push(isSelfHasUkuTag);\r\n }\r\n var allChildren = Selector_1.Selector.querySelectorAll(element, \"*\");\r\n for (var i = 0; i < allChildren.length; i++) {\r\n var child = allChildren[i];\r\n var matchElement = Selector_1.Selector.fuzzyFind(child, 'uku-');\r\n if (matchElement && !UkuleleUtil_1.UkuleleUtil.isInRepeat(matchElement)) {\r\n subElements.push(matchElement);\r\n }\r\n }\r\n //解析绑定 attribute,注册event\r\n for (var n = 0; n < subElements.length; n++) {\r\n var subElement = subElements[n];\r\n var orderAttrs = this.sortAttributes(subElement);\r\n for (var j = 0; j < orderAttrs.length; j++) {\r\n var attribute = orderAttrs[j];\r\n if (UkuleleUtil_1.UkuleleUtil.searchUkuAttrTag(attribute.nodeName) > -1) {\r\n var tempArr = attribute.nodeName.split('-');\r\n tempArr.shift();\r\n var attrName = tempArr.join('-');\r\n if (attrName !== \"application\") {\r\n if (attrName.search('on') === 0) {\r\n //is an event\r\n if (!UkuleleUtil_1.UkuleleUtil.isRepeat(subElement) && !UkuleleUtil_1.UkuleleUtil.isInRepeat(subElement)) {\r\n this.dealWithEvent(subElement, attrName);\r\n }\r\n }\r\n else if (attrName.search('repeat') !== -1) {\r\n //is an repeat\r\n this.dealWithRepeat(subElement);\r\n }\r\n else {\r\n //is an attribute\r\n if (!UkuleleUtil_1.UkuleleUtil.isRepeat(subElement) && !UkuleleUtil_1.UkuleleUtil.isInRepeat(subElement)) {\r\n if (attrName !== \"text\") {\r\n this.dealWithAttribute(subElement, attrName);\r\n }\r\n else {\r\n this.dealWithInnerText(subElement);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n Analyzer.prototype.searchComponent = function (element) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var comp, attrs, compDef, attrs, compDef, i, child;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n comp = this.defMgr.getComponent(element.localName);\r\n if (!comp) return [3 /*break*/, 4];\r\n if (!!comp.lazy) return [3 /*break*/, 1];\r\n attrs = element.attributes;\r\n compDef = this.defMgr.getComponentsDefinition()[comp.tagName];\r\n if (!UkuleleUtil_1.UkuleleUtil.isRepeat(element) && !UkuleleUtil_1.UkuleleUtil.isInRepeat(element)) {\r\n return [2 /*return*/, this.dealWithComponent(element, compDef.template, compDef.controllerClazz, attrs)];\r\n }\r\n else {\r\n return [2 /*return*/, element];\r\n }\r\n return [3 /*break*/, 3];\r\n case 1: return [4 /*yield*/, this.defMgr.addLazyComponentDefinition(comp.tagName, comp.templateUrl)];\r\n case 2:\r\n _a.sent();\r\n attrs = element.attributes;\r\n compDef = this.defMgr.getComponentsDefinition()[comp.tagName];\r\n if (!UkuleleUtil_1.UkuleleUtil.isRepeat(element) && !UkuleleUtil_1.UkuleleUtil.isInRepeat(element)) {\r\n return [2 /*return*/, this.dealWithComponent(element, compDef.template, compDef.controllerClazz, attrs)];\r\n }\r\n else {\r\n return [2 /*return*/, element];\r\n }\r\n _a.label = 3;\r\n case 3: return [3 /*break*/, 10];\r\n case 4:\r\n if (!(element.children && element.children.length > 0)) return [3 /*break*/, 9];\r\n i = 0;\r\n _a.label = 5;\r\n case 5:\r\n if (!(i < element.children.length)) return [3 /*break*/, 8];\r\n child = element.children[i];\r\n return [4 /*yield*/, this.searchComponent(child)];\r\n case 6:\r\n _a.sent();\r\n _a.label = 7;\r\n case 7:\r\n i++;\r\n return [3 /*break*/, 5];\r\n case 8: return [2 /*return*/, element];\r\n case 9: return [2 /*return*/, element];\r\n case 10: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n Analyzer.prototype.dealWithComponent = function (tag, template, Clazz, attrs) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var time, randomAlias, tempFragment, htmlDom, cc, _loop_1, this_1, i, i, attr, j, child;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n time = new Date().getTime();\r\n randomAlias = 'cc_' + Math.floor(time * Math.random()).toString();\r\n //should consider white space between characters\r\n template = template.replace(new RegExp(\"\\'cc\\\\.\", 'gm'), \"'\" + randomAlias + '.');\r\n template = template.replace(new RegExp('\"cc\\\\.', 'gm'), '\"' + randomAlias + '.');\r\n template = template.replace(new RegExp('\\{\\{cc\\\\.', 'gm'), \"{{\" + randomAlias + '.');\r\n template = template.replace(new RegExp(' cc\\\\.', 'gm'), ' ' + randomAlias + '.');\r\n template = template.replace(new RegExp('\\\\(cc\\\\.', 'gm'), '(' + randomAlias + '.');\r\n template = template.replace(new RegExp('\\\\,cc\\\\.', 'gm'), ',' + randomAlias + '.');\r\n template = template.replace(new RegExp('\\\\.cc\\\\.', 'gm'), '.' + randomAlias + '.');\r\n template = template.replace(new RegExp('\\\\!cc\\\\.', 'gm'), '!' + randomAlias + '.');\r\n tempFragment = document.createElement('div');\r\n tempFragment.insertAdjacentHTML('afterBegin', template);\r\n if (tempFragment.children.length > 1) {\r\n template = tempFragment.outerHTML;\r\n }\r\n tag.insertAdjacentHTML('beforeBegin', template);\r\n htmlDom = tag.previousElementSibling;\r\n htmlDom.classList.add(tag.localName);\r\n if (Clazz) {\r\n cc = new Clazz(this.uku);\r\n cc._dom = htmlDom;\r\n cc.fire = function (eventType, data, bubbles, cancelable) {\r\n if (bubbles === void 0) { bubbles = false; }\r\n if (cancelable === void 0) { cancelable = true; }\r\n var event = new CustomEvent(eventType.toLowerCase(), { \"bubbles\": bubbles, \"cancelable\": cancelable });\r\n event['data'] = data;\r\n cc._dom.dispatchEvent(event);\r\n };\r\n this.uku.registerController(randomAlias, cc);\r\n _loop_1 = function (i) {\r\n var attr = attrs[i];\r\n //todo need Refactor\r\n if (UkuleleUtil_1.UkuleleUtil.searchUkuAttrTag(attr.nodeName) !== 0\r\n || attr.nodeName.search(\"uku-on\") !== -1\r\n || attr.nodeName === \"uku-render\"\r\n || attr.nodeName === \"uku-visible\") {\r\n htmlDom.setAttribute(attr.nodeName, attr.nodeValue);\r\n }\r\n else {\r\n var tagName = UkuleleUtil_1.UkuleleUtil.getAttrFromUkuTag(attr.nodeName, true);\r\n var controllerModels = this_1.defMgr.getControllerModelByName(attr.nodeValue);\r\n if (controllerModels && controllerModels.length > 0) {\r\n var boundItem_2 = new BoundItemComponentAttribute_1.BoundItemComponentAttribute(attr.nodeValue, tagName, cc, this_1.uku);\r\n var controllers_2 = [];\r\n controllerModels.forEach(function (controllerModel) {\r\n controllerModel.addBoundItem(boundItem_2);\r\n controllers_2.push(controllerModel.controllerInstance);\r\n });\r\n boundItem_2.render(controllers_2);\r\n }\r\n else {\r\n //native value, not expression\r\n var boundItem = new BoundItemComponentAttribute_1.BoundItemComponentAttribute(attr.nodeValue, tagName, cc, this_1.uku);\r\n boundItem.render([]);\r\n }\r\n }\r\n };\r\n this_1 = this;\r\n for (i = 0; i < attrs.length; i++) {\r\n _loop_1(i);\r\n }\r\n }\r\n else {\r\n for (i = 0; i < attrs.length; i++) {\r\n attr = attrs[i];\r\n //todo:need Refactor\r\n if (UkuleleUtil_1.UkuleleUtil.searchUkuAttrTag(attr.nodeName) !== 0\r\n || attr.nodeName.search(\"uku-on\") !== -1\r\n || attr.nodeName === \"uku-render\"\r\n || attr.nodeName === \"uku-visible\") {\r\n htmlDom.setAttribute(attr.nodeName, attr.nodeValue);\r\n }\r\n }\r\n }\r\n tag.parentNode.removeChild(tag);\r\n if (!(htmlDom.children && htmlDom.children.length > 0)) return [3 /*break*/, 5];\r\n j = 0;\r\n _a.label = 1;\r\n case 1:\r\n if (!(j < htmlDom.children.length)) return [3 /*break*/, 4];\r\n child = htmlDom.children[j];\r\n return [4 /*yield*/, this.searchComponent(child)];\r\n case 2:\r\n _a.sent();\r\n _a.label = 3;\r\n case 3:\r\n j++;\r\n return [3 /*break*/, 1];\r\n case 4:\r\n if (cc && cc._initialized && typeof (cc._initialized) === 'function') {\r\n cc._initialized(randomAlias, cc._dom);\r\n }\r\n return [2 /*return*/, htmlDom];\r\n case 5:\r\n if (cc && cc._initialized && typeof (cc._initialized) === 'function') {\r\n cc._initialized(randomAlias, cc._dom);\r\n }\r\n return [2 /*return*/, htmlDom];\r\n }\r\n });\r\n });\r\n };\r\n //todo: 处理 tag之间使用{{}}括起的表达式,用以显示文字\r\n Analyzer.prototype.searchExpression = function (element) {\r\n if (UkuleleUtil_1.UkuleleUtil.searchUkuExpTag(Selector_1.Selector.directText(element)) !== -1) {\r\n if (!UkuleleUtil_1.UkuleleUtil.isRepeat(element) && !UkuleleUtil_1.UkuleleUtil.isInRepeat(element)) {\r\n //normal expression\r\n this.dealWithExpression(element);\r\n }\r\n }\r\n for (var i = 0; i < element.children.length; i++) {\r\n this.searchExpression(element.children[i]);\r\n }\r\n };\r\n Analyzer.prototype.dealWithExpression = function (element) {\r\n //通常的花括号声明方式\r\n var expression = Selector_1.Selector.directText(element);\r\n if (UkuleleUtil_1.UkuleleUtil.searchUkuExpTag(expression) !== -1) {\r\n var attr = expression.slice(2, -2);\r\n var controllerModels = this.defMgr.getControllerModelByName(attr);\r\n if (controllerModels && controllerModels.length > 0) {\r\n var boundItem_3 = new BoundItemExpression_1.BoundItemExpression(attr, expression, element, this.uku);\r\n var controllers_3 = [];\r\n controllerModels.forEach(function (controllerModel) {\r\n controllerModel.addBoundItem(boundItem_3);\r\n controllers_3.push(controllerModel.controllerInstance);\r\n });\r\n boundItem_3.render(controllers_3);\r\n }\r\n }\r\n };\r\n //处理 uku-text\r\n Analyzer.prototype.dealWithInnerText = function (element) {\r\n var attr = element.getAttribute(\"uku-text\");\r\n if (attr) {\r\n var controllerModels = this.defMgr.getControllerModelByName(attr);\r\n if (controllerModels && controllerModels.length > 0) {\r\n var boundItem_4 = new BoundItemInnerText_1.BoundItemInnerText(attr, element, this.uku);\r\n var controllers_4 = [];\r\n controllerModels.forEach(function (controllerModel) {\r\n controllerModel.addBoundItem(boundItem_4);\r\n controllers_4.push(controllerModel.controllerInstance);\r\n });\r\n boundItem_4.render(controllers_4);\r\n }\r\n }\r\n };\r\n //处理 事件 event\r\n Analyzer.prototype.dealWithEvent = function (element, eventName) {\r\n var _this = this;\r\n var expression = element.getAttribute(\"uku-\" + eventName);\r\n var eventNameInListener = eventName.substring(2);\r\n eventNameInListener = eventNameInListener.toLowerCase();\r\n var controllerModels = this.defMgr.getControllerModelByName(expression);\r\n if (!controllerModels || controllerModels.length === 0) {\r\n controllerModels = [];\r\n }\r\n EventListener_1.EventListener.addEventListener(element, eventNameInListener, function (event) {\r\n var alias_list = [];\r\n controllerModels.forEach(function (controllerModel) {\r\n //this.defMgr.copyControllerInstance(controllerModel.controllerInstance, controllerModels.alias);\r\n alias_list.push(controllerModel.alias);\r\n });\r\n var index = UkuleleUtil_1.UkuleleUtil.searchUkuFuncArg(expression);\r\n if (index === -1) {\r\n // is an expression, not a function\r\n var handler = new Function(\"event\", \"return \" + expression);\r\n console.log(handler.toString());\r\n handler(event);\r\n }\r\n else {\r\n // is a function\r\n var i = expression.search(/\\(/);\r\n var arg = 'event';\r\n if (expression[i + 1] !== ')') {\r\n // has argument\r\n arg = 'event,';\r\n }\r\n var arr = expression.split('(');\r\n arr[1] = arg + arr[1];\r\n var new_expression_1 = arr.join(\"(\");\r\n (function (e) {\r\n var tempScope = {};\r\n tempScope['event'] = e;\r\n eval(new_expression_1);\r\n tempScope = null;\r\n })(event);\r\n }\r\n _this.uku.refresh(alias_list, element);\r\n });\r\n };\r\n //处理 repeat\r\n Analyzer.prototype.dealWithRepeat = function (element) {\r\n var repeatExpression = element.getAttribute(\"uku-repeat\");\r\n var tempArr = repeatExpression.split(' in ');\r\n var itemName = tempArr[0];\r\n var attr = tempArr[1];\r\n var controllerModels = this.defMgr.getControllerModelByName(attr);\r\n if (controllerModels && controllerModels.length > 0) {\r\n var controllers_5 = [];\r\n //let controllerInst = controllerModel.controllerInstance;\r\n var boundItem_5 = new BoundItemRepeat_1.BoundItemRepeat(attr, itemName, element, this.uku);\r\n controllerModels.forEach(function (controllerModel) {\r\n controllerModel.addBoundItem(boundItem_5);\r\n controllers_5.push(controllerModel.controllerInstance);\r\n });\r\n boundItem_5.render(controllers_5);\r\n }\r\n };\r\n Analyzer.ANALYIZE_COMPLETED = 'analyizeCompleted';\r\n return Analyzer;\r\n}(EventEmitter_1.EventEmitter));\r\nexports.Analyzer = Analyzer;\r\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemAttrSelected_1 = __webpack_require__(19);\r\nvar BoundItemAttrDataItem_1 = __webpack_require__(20);\r\nvar BoundItemAttrSrc_1 = __webpack_require__(21);\r\nvar BoundItemAttrDisabled_1 = __webpack_require__(22);\r\nvar BoundItemAttrRender_1 = __webpack_require__(23);\r\nvar BoundItemAttrStyle_1 = __webpack_require__(24);\r\nvar BoundItemAttrValue_1 = __webpack_require__(25);\r\nvar BoundItemAttrVisible_1 = __webpack_require__(26);\r\nvar BoundItemAttribute_1 = __webpack_require__(1);\r\nvar BoundItemAttributeFactory = (function () {\r\n function BoundItemAttributeFactory() {\r\n if (BoundItemAttributeFactory._instance) {\r\n throw new Error(\"Error: Instantiation failed: Use BoundItemAttributeFactory.getInstance() instead of new.\");\r\n }\r\n BoundItemAttributeFactory._instance = this;\r\n }\r\n BoundItemAttributeFactory.getInstance = function () {\r\n return BoundItemAttributeFactory._instance;\r\n };\r\n BoundItemAttributeFactory.prototype.generateInstance = function (attr, tagName, element, uku) {\r\n var instance;\r\n switch (tagName) {\r\n case \"selected\":\r\n instance = new BoundItemAttrSelected_1.BountItemAttrSelected(attr, tagName, element, uku);\r\n break;\r\n case \"data-item\":\r\n instance = new BoundItemAttrDataItem_1.BoundItemAttrDataItem(attr, tagName, element, uku);\r\n break;\r\n case \"src\":\r\n instance = new BoundItemAttrSrc_1.BoundItemAttrSrc(attr, tagName, element, uku);\r\n break;\r\n case \"disabled\":\r\n instance = new BoundItemAttrDisabled_1.BoundItemAttrDisabled(attr, tagName, element, uku);\r\n break;\r\n case \"render\":\r\n instance = new BoundItemAttrRender_1.BoundItemAttrRender(attr, tagName, element, uku);\r\n break;\r\n case \"style\":\r\n instance = new BoundItemAttrStyle_1.BoundItemAttrStyle(attr, tagName, element, uku);\r\n break;\r\n case \"value\":\r\n instance = new BoundItemAttrValue_1.BoundItemAttrValue(attr, tagName, element, uku);\r\n break;\r\n case \"visible\":\r\n instance = new BoundItemAttrVisible_1.BoundItemAttrVisible(attr, tagName, element, uku);\r\n break;\r\n default:\r\n instance = new BoundItemAttribute_1.BoundItemAttribute(attr, tagName, element, uku);\r\n }\r\n return instance;\r\n };\r\n BoundItemAttributeFactory._instance = new BoundItemAttributeFactory();\r\n return BoundItemAttributeFactory;\r\n}());\r\nexports.BoundItemAttributeFactory = BoundItemAttributeFactory;\r\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemAttribute_1 = __webpack_require__(1);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BountItemAttrSelected = (function (_super) {\r\n __extends(BountItemAttrSelected, _super);\r\n function BountItemAttrSelected(attrName, ukuTag, element, uku) {\r\n var _this = this;\r\n if (ukuTag !== \"selected\") {\r\n throw new TypeError(\"it doesn't use uku-selected\");\r\n }\r\n _this = _super.call(this, attrName, ukuTag, element, uku) || this;\r\n return _this;\r\n }\r\n BountItemAttrSelected.prototype.render = function (controllers) {\r\n var attr = this.attributeName;\r\n var key;\r\n var elementName = this.element.tagName;\r\n if (elementName === \"SELECT\") {\r\n var tempArr = this.attributeName.split(\"|\");\r\n attr = tempArr[0];\r\n key = tempArr[1];\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, attr);\r\n var value = void 0;\r\n if (key) {\r\n value = finalValue[key];\r\n }\r\n else {\r\n value = finalValue;\r\n }\r\n this.element.value = value;\r\n }\r\n if (elementName === \"INPUT\" && this.element.getAttribute(\"type\") === \"radio\") {\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, attr);\r\n if (this.element.value === finalValue) {\r\n this.element.setAttribute(\"checked\", \"true\");\r\n }\r\n }\r\n };\r\n return BountItemAttrSelected;\r\n}(BoundItemAttribute_1.BoundItemAttribute));\r\nexports.BountItemAttrSelected = BountItemAttrSelected;\r\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemAttribute_1 = __webpack_require__(1);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BoundItemAttrDataItem = (function (_super) {\r\n __extends(BoundItemAttrDataItem, _super);\r\n function BoundItemAttrDataItem(attrName, ukuTag, element, uku) {\r\n var _this = this;\r\n if (ukuTag !== \"data-item\") {\r\n throw new TypeError(\"it doesn't use uku-item\");\r\n }\r\n _this = _super.call(this, attrName, ukuTag, element, uku) || this;\r\n return _this;\r\n }\r\n BoundItemAttrDataItem.prototype.render = function (controllers) {\r\n var attr = this.attributeName;\r\n var elementName = this.element.tagName;\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, attr);\r\n if (elementName === \"OPTION\") {\r\n finalValue = JSON.stringify(finalValue);\r\n this.element.setAttribute('data-item', finalValue);\r\n }\r\n };\r\n return BoundItemAttrDataItem;\r\n}(BoundItemAttribute_1.BoundItemAttribute));\r\nexports.BoundItemAttrDataItem = BoundItemAttrDataItem;\r\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemAttribute_1 = __webpack_require__(1);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BoundItemAttrSrc = (function (_super) {\r\n __extends(BoundItemAttrSrc, _super);\r\n function BoundItemAttrSrc(attrName, ukuTag, element, uku) {\r\n var _this = this;\r\n if (ukuTag !== \"src\") {\r\n throw new TypeError(\"it doesn't use uku-src\");\r\n }\r\n _this = _super.call(this, attrName, ukuTag, element, uku) || this;\r\n return _this;\r\n }\r\n BoundItemAttrSrc.prototype.render = function (controllers) {\r\n var attr = this.attributeName;\r\n var elementName = this.element.tagName;\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, attr);\r\n if (elementName === \"IMG\" || elementName === \"VIDEO\" || elementName === \"AUDIO\") {\r\n if (finalValue) {\r\n this.element.setAttribute(this.ukuTag, finalValue);\r\n }\r\n }\r\n else {\r\n throw new Error(\"uku-src doesn't work with current dom\");\r\n }\r\n };\r\n return BoundItemAttrSrc;\r\n}(BoundItemAttribute_1.BoundItemAttribute));\r\nexports.BoundItemAttrSrc = BoundItemAttrSrc;\r\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemAttribute_1 = __webpack_require__(1);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BoundItemAttrDisabled = (function (_super) {\r\n __extends(BoundItemAttrDisabled, _super);\r\n function BoundItemAttrDisabled(attrName, ukuTag, element, uku) {\r\n var _this = this;\r\n if (ukuTag !== \"disabled\") {\r\n throw new TypeError(\"it doesn't use uku-disabled\");\r\n }\r\n _this = _super.call(this, attrName, ukuTag, element, uku) || this;\r\n return _this;\r\n }\r\n BoundItemAttrDisabled.prototype.render = function (controllers) {\r\n var attr = this.attributeName;\r\n var elementName = this.element.tagName;\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, attr);\r\n this.element.disabled = finalValue;\r\n };\r\n return BoundItemAttrDisabled;\r\n}(BoundItemAttribute_1.BoundItemAttribute));\r\nexports.BoundItemAttrDisabled = BoundItemAttrDisabled;\r\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemAttribute_1 = __webpack_require__(1);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BoundItemAttrRender = (function (_super) {\r\n __extends(BoundItemAttrRender, _super);\r\n function BoundItemAttrRender(attrName, ukuTag, element, uku) {\r\n var _this = this;\r\n if (ukuTag !== \"render\") {\r\n throw new TypeError(\"it doesn't use uku-render\");\r\n }\r\n _this = _super.call(this, attrName, ukuTag, element, uku) || this;\r\n return _this;\r\n }\r\n BoundItemAttrRender.prototype.render = function (controllers) {\r\n var attr = this.attributeName;\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, attr);\r\n if (finalValue) {\r\n var oldDisplaySetting = this.element.getAttribute(\"data-old-display\");\r\n if (oldDisplaySetting !== null) {\r\n this.element.style.display = oldDisplaySetting;\r\n }\r\n }\r\n else {\r\n var oldDisplaySetting = this.element.getAttribute(\"data-old-display\");\r\n if (oldDisplaySetting === null) {\r\n oldDisplaySetting = this.element.style.display;\r\n this.element.setAttribute(\"data-old-display\", oldDisplaySetting);\r\n }\r\n this.element.style.display = \"none\";\r\n }\r\n };\r\n return BoundItemAttrRender;\r\n}(BoundItemAttribute_1.BoundItemAttribute));\r\nexports.BoundItemAttrRender = BoundItemAttrRender;\r\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemAttribute_1 = __webpack_require__(1);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BoundItemAttrStyle = (function (_super) {\r\n __extends(BoundItemAttrStyle, _super);\r\n function BoundItemAttrStyle(attrName, ukuTag, element, uku) {\r\n var _this = this;\r\n if (ukuTag !== \"style\") {\r\n throw new TypeError(\"it doesn't use uku-style\");\r\n }\r\n _this = _super.call(this, attrName, ukuTag, element, uku) || this;\r\n return _this;\r\n }\r\n BoundItemAttrStyle.prototype.render = function (controllers) {\r\n var attr = this.attributeName;\r\n var elementName = this.element.tagName;\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, attr);\r\n for (var cssName in finalValue) {\r\n this.element.style[cssName] = finalValue[cssName];\r\n }\r\n };\r\n return BoundItemAttrStyle;\r\n}(BoundItemAttribute_1.BoundItemAttribute));\r\nexports.BoundItemAttrStyle = BoundItemAttrStyle;\r\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemAttribute_1 = __webpack_require__(1);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BoundItemAttrValue = (function (_super) {\r\n __extends(BoundItemAttrValue, _super);\r\n function BoundItemAttrValue(attrName, ukuTag, element, uku) {\r\n var _this = this;\r\n if (ukuTag !== \"value\") {\r\n throw new TypeError(\"it doesn't use uku-value\");\r\n }\r\n _this = _super.call(this, attrName, ukuTag, element, uku) || this;\r\n return _this;\r\n }\r\n BoundItemAttrValue.prototype.render = function (controllers) {\r\n var attr = this.attributeName;\r\n var elementName = this.element.tagName;\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, attr);\r\n if (elementName === \"INPUT\" && this.element.getAttribute(\"type\") === \"checkbox\") {\r\n this.element.checked = finalValue;\r\n }\r\n else {\r\n this.element.value = finalValue;\r\n }\r\n };\r\n return BoundItemAttrValue;\r\n}(BoundItemAttribute_1.BoundItemAttribute));\r\nexports.BoundItemAttrValue = BoundItemAttrValue;\r\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemAttribute_1 = __webpack_require__(1);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BoundItemAttrVisible = (function (_super) {\r\n __extends(BoundItemAttrVisible, _super);\r\n function BoundItemAttrVisible(attrName, ukuTag, element, uku) {\r\n var _this = this;\r\n if (ukuTag !== \"visible\") {\r\n throw new TypeError(\"it doesn't use uku-visible\");\r\n }\r\n _this = _super.call(this, attrName, ukuTag, element, uku) || this;\r\n return _this;\r\n }\r\n BoundItemAttrVisible.prototype.render = function (controllers) {\r\n var attr = this.attributeName;\r\n var elementName = this.element.tagName;\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, attr);\r\n if (finalValue) {\r\n this.element.style.visibility = \"visible\";\r\n }\r\n else {\r\n this.element.style.visibility = \"hidden\";\r\n }\r\n };\r\n return BoundItemAttrVisible;\r\n}(BoundItemAttribute_1.BoundItemAttribute));\r\nexports.BoundItemAttrVisible = BoundItemAttrVisible;\r\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemBase_1 = __webpack_require__(3);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar Selector_1 = __webpack_require__(2);\r\nvar BoundItemExpression = (function (_super) {\r\n __extends(BoundItemExpression, _super);\r\n function BoundItemExpression(attrName, expression, element, uku) {\r\n var _this = _super.call(this, attrName, element, uku) || this;\r\n _this.expression = expression;\r\n return _this;\r\n }\r\n BoundItemExpression.prototype.render = function (controllers) {\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, this.attributeName);\r\n Selector_1.Selector.directText(this.element, finalValue);\r\n };\r\n return BoundItemExpression;\r\n}(BoundItemBase_1.BoundItemBase));\r\nexports.BoundItemExpression = BoundItemExpression;\r\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemBase_1 = __webpack_require__(3);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BoundItemInnerText = (function (_super) {\r\n __extends(BoundItemInnerText, _super);\r\n function BoundItemInnerText(attrName, element, uku) {\r\n var _this = _super.call(this, attrName, element, uku) || this;\r\n _this.tagName = 'text';\r\n return _this;\r\n }\r\n BoundItemInnerText.prototype.render = function (controllers) {\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, this.attributeName);\r\n this.element.innerHTML = finalValue;\r\n };\r\n return BoundItemInnerText;\r\n}(BoundItemBase_1.BoundItemBase));\r\nexports.BoundItemInnerText = BoundItemInnerText;\r\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemBase_1 = __webpack_require__(3);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BoundItemRepeat = (function (_super) {\r\n __extends(BoundItemRepeat, _super);\r\n function BoundItemRepeat(attrName, itemName, element, uku) {\r\n var _this = _super.call(this, attrName, element, uku) || this;\r\n _this.expression = itemName;\r\n _this.renderTemplate = element.outerHTML;\r\n _this.parentElement = element.parentNode;\r\n _this.beginCommentString = undefined;\r\n _this.endCommentString = undefined;\r\n return _this;\r\n }\r\n BoundItemRepeat.prototype.render = function (controllers) {\r\n var _this = this;\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, this.attributeName);\r\n if (!finalValue) {\r\n return;\r\n }\r\n if (typeof finalValue === \"number\" && Math.floor(finalValue) === finalValue) {\r\n //finalValue = \r\n var newFinalValue = [];\r\n for (var num = 1; num <= finalValue; num++) {\r\n //let item = {value: num};\r\n newFinalValue.push(num);\r\n }\r\n finalValue = newFinalValue;\r\n }\r\n var self = this;\r\n if (this.element && this.element.parentNode) {\r\n //create repeate begin comment\r\n this.beginCommentString = \"begin uku-repeat: \" + this.expression + \" in \" + this.attributeName;\r\n var beginComment = document.createComment(this.beginCommentString);\r\n this.element.parentNode.insertBefore(beginComment, this.element);\r\n //create repeate end comment\r\n this.endCommentString = \"end uku-repeat: \" + this.expression + \" in \" + this.attributeName;\r\n var endComment = document.createComment(this.endCommentString);\r\n this.element.parentNode.insertBefore(endComment, this.element.nextSibling);\r\n //remove definition dom\r\n this.element.parentNode.removeChild(this.element);\r\n }\r\n var filter = { acceptNode: function (node) {\r\n if (node.nodeValue === self.beginCommentString) {\r\n return NodeFilter.FILTER_ACCEPT;\r\n }\r\n return NodeFilter.FILTER_SKIP;\r\n } };\r\n var safeFilter = filter.acceptNode;\r\n safeFilter.acceptNode = filter.acceptNode;\r\n var treeWalker = document.createTreeWalker(this.parentElement, NodeFilter.SHOW_COMMENT, safeFilter, false);\r\n /*function filter(node:Node) :any{\r\n if (node.nodeValue === self.beginCommentString) {\r\n return (NodeFilter.FILTER_ACCEPT);\r\n }\r\n return (NodeFilter.FILTER_SKIP);\r\n }*/\r\n function generateTempContainer() {\r\n var index = UkuleleUtil_1.UkuleleUtil.searchHtmlTag(self.renderTemplate, \"tr\");\r\n var index2 = UkuleleUtil_1.UkuleleUtil.searchHtmlTag(self.renderTemplate, \"th\");\r\n if (index === -1 || index2 === -1) {\r\n return document.createElement(\"tbody\");\r\n }\r\n else {\r\n return document.createElement(\"div\");\r\n }\r\n }\r\n while (treeWalker.nextNode()) {\r\n var commentNode = treeWalker.currentNode;\r\n if (commentNode && commentNode.nodeValue === this.beginCommentString) {\r\n //remove overtime dom.\r\n while (commentNode.nextSibling && commentNode.nextSibling.nodeValue !== this.endCommentString) {\r\n commentNode.parentNode.removeChild(commentNode.nextSibling);\r\n }\r\n //create new dom\r\n var tempDiv = generateTempContainer();\r\n var blankDiv = generateTempContainer();\r\n commentNode.parentNode.insertBefore(blankDiv, commentNode.nextSibling);\r\n for (var i = 0; i < finalValue.length; i++) {\r\n tempDiv.insertAdjacentHTML('beforeEnd', this.renderTemplate);\r\n if (i === finalValue.length - 1) {\r\n var childrenHTML = tempDiv.innerHTML;\r\n blankDiv.insertAdjacentHTML('beforeBegin', childrenHTML);\r\n commentNode.parentNode.removeChild(blankDiv);\r\n tempDiv = null;\r\n blankDiv = null;\r\n }\r\n }\r\n var child = commentNode.nextElementSibling;\r\n var time = new Date().getTime();\r\n for (var j = 0; j < finalValue.length; j++) {\r\n child.removeAttribute(\"uku-repeat\");\r\n var compDef = this.uku._internal_getDefinitionManager().getComponentsDefinition();\r\n var compPool = this.uku._internal_getDefinitionManager().getComponentsPool();\r\n this.uku._internal_getDefinitionManager().setComponentsDefinition(compDef);\r\n this.uku._internal_getDefinitionManager().setComponentsPool(compPool);\r\n var sibling = child.nextSibling;\r\n var itemType = typeof finalValue[j];\r\n var alias = \"repeatItem_\" + Math.floor(time * Math.random()).toString() + \"_\" + this.expression + \"$\";\r\n if (itemType === \"object\") {\r\n this.uku.registerController(alias, finalValue[j]);\r\n }\r\n else {\r\n this.uku.registerController(alias, { 'value': finalValue[j] });\r\n alias = alias + \".value\";\r\n }\r\n var pattern = new RegExp(\"\\\\b\" + this.expression + \"(?!\\\\-|\\\\s|\\\\w|\\\\=)\", \"gm\");\r\n //let pattern = new RegExp(this.expression+\"(?!\\\\w)\",\"gm\");\r\n var newOuterHtml = child.outerHTML.replace(pattern, alias);\r\n child.insertAdjacentHTML('afterend', newOuterHtml);\r\n var newItemDom = child.nextSibling;\r\n child.parentNode.removeChild(child);\r\n child = newItemDom;\r\n this.uku._internal_dealWithElement(child, function (element) {\r\n if (_this.element.tagName === \"OPTION\") {\r\n var expression = _this.parentElement.getAttribute(\"uku-selected\");\r\n var tempArr = expression.split(\"|\");\r\n expression = tempArr[0];\r\n var key = tempArr[1];\r\n var value = _this.uku._internal_getDefinitionManager().getFinalValueByExpression(expression);\r\n if (key) {\r\n _this.parentElement.value = value[key];\r\n }\r\n else {\r\n _this.parentElement.value = value;\r\n }\r\n }\r\n });\r\n child = sibling;\r\n }\r\n }\r\n }\r\n };\r\n return BoundItemRepeat;\r\n}(BoundItemBase_1.BoundItemBase));\r\nexports.BoundItemRepeat = BoundItemRepeat;\r\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemBase_1 = __webpack_require__(3);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BoundItemComponentAttribute = (function (_super) {\r\n __extends(BoundItemComponentAttribute, _super);\r\n function BoundItemComponentAttribute(attrName, ukuTag, cc, uku) {\r\n var _this = _super.call(this, attrName, null, uku) || this;\r\n _this.ukuTag = ukuTag;\r\n _this.componentController = cc;\r\n return _this;\r\n }\r\n BoundItemComponentAttribute.prototype.render = function (controllers) {\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, this.attributeName);\r\n this.componentController[this.ukuTag] = finalValue;\r\n this.uku.refresh(this.componentController._alias);\r\n };\r\n return BoundItemComponentAttribute;\r\n}(BoundItemBase_1.BoundItemBase));\r\nexports.BoundItemComponentAttribute = BoundItemComponentAttribute;\r\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar EventListener_1 = __webpack_require__(7);\r\nvar Selector_1 = __webpack_require__(2);\r\nfunction elementChangedBinder(element, tagName, controllerModel, handler, host) {\r\n var elementStrategies = [inputTextCase, textareaCase, selectCase, checkboxCase, radioCase];\r\n for (var i = 0; i < elementStrategies.length; i++) {\r\n var func = elementStrategies[i];\r\n var goon = func.apply(this, arguments);\r\n if (goon) {\r\n break;\r\n }\r\n }\r\n}\r\nexports.elementChangedBinder = elementChangedBinder;\r\nfunction inputTextCase(element, tagName, controllerModel, handler, host) {\r\n var elementName = element.tagName;\r\n if (elementName === \"INPUT\" && isSupportInputType(element) && tagName === \"value\") {\r\n var eventType = 'change';\r\n var inputType = element.getAttribute('type');\r\n if (inputType === \"text\"\r\n || inputType === \"text\"\r\n || inputType === \"password\"\r\n || inputType === \"tel\"\r\n || inputType === \"number\"\r\n || inputType === \"search\") {\r\n eventType = 'input';\r\n }\r\n EventListener_1.EventListener.addEventListener(element, eventType, function (e) {\r\n var attr = element.getAttribute(\"uku-\" + tagName);\r\n UkuleleUtil_1.UkuleleUtil.setFinalValue(controllerModel.controllerInstance, attr, element.value);\r\n if (handler) {\r\n handler.call(host, controllerModel.alias, element);\r\n }\r\n });\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isSupportInputType(element) {\r\n var type = element.getAttribute(\"type\");\r\n if (type !== \"checkbox\" && type !== \"radio\") {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction textareaCase(element, tagName, controllerModel, handler, host) {\r\n var elementName = element.tagName;\r\n if (elementName === \"TEXTAREA\" && tagName === \"value\") {\r\n EventListener_1.EventListener.addEventListener(element, 'input', function (e) {\r\n var attr = element.getAttribute(\"uku-\" + tagName);\r\n UkuleleUtil_1.UkuleleUtil.setFinalValue(controllerModel.controllerInstance, attr, element.value);\r\n if (handler) {\r\n handler.call(host, controllerModel.alias, element);\r\n }\r\n });\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction selectCase(element, tagName, controllerModel, handler, host) {\r\n var elementName = element.tagName;\r\n if ((elementName === \"SELECT\" && tagName === \"selected\")) {\r\n EventListener_1.EventListener.addEventListener(element, 'change', function (e) {\r\n var attr = element.getAttribute(\"uku-\" + tagName);\r\n var key;\r\n var tmpArr = attr.split(\"|\");\r\n attr = tmpArr[0];\r\n var options = Selector_1.Selector.querySelectorAll(element, \"option\");\r\n for (var j = 0; j < options.length; j++) {\r\n var option = options[j];\r\n if (option.selected) {\r\n var selectedItem = JSON.parse(option.getAttribute(\"data-item\"));\r\n UkuleleUtil_1.UkuleleUtil.setFinalValue(controllerModel.controllerInstance, attr, selectedItem);\r\n }\r\n }\r\n if (handler) {\r\n handler.call(host, controllerModel.alias, element);\r\n }\r\n });\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction checkboxCase(element, tagName, controllerModel, handler, host) {\r\n var elementName = element.tagName;\r\n if (elementName === \"INPUT\" && tagName === \"value\" && element.getAttribute(\"type\") === \"checkbox\") {\r\n EventListener_1.EventListener.addEventListener(element, 'change', function (e) {\r\n var attr = element.getAttribute(\"uku-\" + tagName);\r\n UkuleleUtil_1.UkuleleUtil.setFinalValue(controllerModel.controllerInstance, attr, element.checked);\r\n if (handler) {\r\n handler.call(host, controllerModel.alias, element);\r\n }\r\n });\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction radioCase(element, tagName, controllerModel, handler, host) {\r\n var elementName = element.tagName;\r\n if (elementName === \"INPUT\" && tagName === \"selected\" && element.getAttribute(\"type\") === \"radio\") {\r\n EventListener_1.EventListener.addEventListener(element, 'change', function (e) {\r\n var attr = element.getAttribute(\"uku-\" + tagName);\r\n if (element.checked) {\r\n UkuleleUtil_1.UkuleleUtil.setFinalValue(controllerModel.controllerInstance, attr, element.value);\r\n if (handler) {\r\n handler.call(host, controllerModel.alias, element);\r\n }\r\n }\r\n });\r\n return true;\r\n }\r\n return false;\r\n}\r\n\n\n/***/ })\n/******/ ]);\n});\n\n\n// WEBPACK FOOTER //\n// uku.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 8);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap a3f930a80a59a2ec8f3b","import { Selector } from \"../extend/Selector\";\nimport { ComponentConfiguration } from \"../model/ComponentConfiguration\";\nimport { IUkulele } from \"../core/IUkulele\";\nimport { ControllerModel } from \"../model/ControllerModel\";\nclass ValueAndParent {\n value: any;\n parent: Object;\n constructor(_value: any, _parant: Object) {\n this.value = _value;\n this.parent = _parant;\n }\n}\nexport class UkuleleUtil {\n\n static searchHtmlTag(htmlString: string, tagName: string): number {\n let reTemp: string = \"^<\" + tagName + \"[\\\\s\\\\S]*>\" + \"[\\\\s\\\\S]*</\" + tagName + \">$\";\n let re: RegExp = new RegExp(reTemp);\n let index: number = htmlString.search(re);\n return index;\n }\n\n static getInnerHtml(htmlString: string, tagName: string): string {\n let reTemp: string = \"<\" + tagName + \"[\\\\s\\\\S]*>\" + \"[\\\\s\\\\S]*</\" + tagName + \">\";\n let re: RegExp = new RegExp(reTemp);\n let match: RegExpMatchArray = htmlString.match(re);\n if (match.index > -1) {\n let matchString: string = match[0];\n let index: number = matchString.search(\">\");\n let tempString = matchString.substr(index + 1);\n let index2: number = tempString.lastIndexOf(\"</\");\n tempString = tempString.substring(0, index2);\n tempString = tempString.replace(/(^\\s*)|(\\s*$)/g, \"\");\n return tempString;\n } else {\n return null;\n }\n }\n\n static getComponentConfiguration(htmlString: string): ComponentConfiguration {\n let tempDom: HTMLElement = document.createElement(\"div\");\n tempDom.innerHTML = htmlString;\n let tpl: NodeList = Selector.querySelectorAll(tempDom, \"template\");\n let scripts: NodeList = Selector.querySelectorAll(tempDom, \"script\");\n let stylesheet: NodeList = Selector.querySelectorAll(tempDom, \"style\");\n let deps: Array<string> = [];\n let ccs: string = null;\n for (let i = 0; i < scripts.length; i++) {\n let script: HTMLScriptElement = scripts[i] as HTMLScriptElement;\n if (script.src !== \"\") {\n deps.push(script.src);\n } else {\n ccs = script.innerHTML;\n }\n }\n if (stylesheet && stylesheet[0]) {\n return new ComponentConfiguration((tpl[0] as HTMLElement).innerHTML, deps, ccs, (stylesheet[0] as HTMLElement).innerHTML);\n } else {\n return new ComponentConfiguration((tpl[0] as HTMLElement).innerHTML, deps, ccs);\n }\n\n }\n\n static searchUkuAttrTag(htmlString: string): number {\n let re: RegExp = /^uku\\-.*/;\n let index: number = htmlString.search(re);\n return index;\n }\n\n static getAttrFromUkuTag(ukuTag: string, camelCase: boolean = false) {\n if (UkuleleUtil.searchUkuAttrTag(ukuTag) === 0) {\n ukuTag = ukuTag.replace('uku-', '');\n }\n if (camelCase) {\n let names: Array<string> = ukuTag.split('-');\n ukuTag = names[0];\n for (let i = 1; i < names.length; i++) {\n let firstLetter: string = names[i].charAt(0).toUpperCase();\n ukuTag = ukuTag + firstLetter + names[i].substr(1);\n }\n }\n return ukuTag;\n }\n\n static searchUkuExpTag(expression: string): number {\n let re: RegExp = /^\\{\\{.*\\}\\}$/;\n let index: number = expression.search(re);\n return index;\n }\n\n static searchUkuFuncArg(htmlString: string): number {\n let re1: RegExp = /[\\+\\-\\*\\/\\%\\?\\:\\>\\<]/;\n let index = htmlString.search(re1);\n if (index === -1) {\n let re2: RegExp = /\\(.*\\)$/;\n index = htmlString.search(re2);\n return index;\n } else {\n return -1;\n }\n }\n\n static isRepeat(element: HTMLElement): boolean {\n if (element.getAttribute(\"uku-repeat\")) {\n return true;\n }\n return false;\n }\n\n static isInRepeat(element: HTMLElement): boolean {\n let parents: Array<HTMLElement> = Selector.parents(element);\n for (let i = 0; i < parents.length; i++) {\n let parent: HTMLElement = parents[i] as HTMLElement;\n if (parent.nodeType !== 9) {\n let b: string = parent.getAttribute(\"uku-repeat\");\n if (b) {\n return true;\n }\n }\n }\n return false;\n }\n\n static getBoundModelInstantName(expression: string): string {\n let controlInstName: string = expression.split('.')[0];\n if (controlInstName) {\n return controlInstName;\n }\n return undefined;\n }\n\n static getBoundModelInstantNames(controller_alias_list, expression): any {\n let arr = [];\n controller_alias_list.forEach(alias => {\n let pattern = new RegExp(\"\\\\b\" + alias, \"gm\");\n console.count('getBoundModelInstantNames执行的次数');\n if (expression.search(pattern) > -1) {\n arr.push(alias);\n }\n });\n return arr;\n }\n\n static getFinalValue(objects: Object[], attrName: string) {\n return (function () {\n var tempScope = {};\n objects.forEach(object => {\n tempScope[object['_alias']] = object;\n let alias = object['_alias'];\n let pattern = new RegExp(\"\\\\b\" + alias + \"\\\\b\", \"gm\");\n attrName = attrName.replace(pattern, \"tempScope.\" + alias);\n\n let pattern2 = new RegExp(\"\\\\.tempScope\\\\.\" + alias, \"gm\");\n attrName = attrName.replace(pattern2, \".\" + alias);\n\n });\n var result;\n try {\n result = eval(attrName);\n } catch (err) {\n result = '';\n }\n tempScope = null;\n return result;\n })();\n }\n\n static setFinalValue(object: Object, attrName: string, value: any) {\n return (function () {\n var tempScope = {};\n tempScope[object['_alias']] = object;\n\n let valueString;\n if (typeof value === \"string\") {\n valueString = '\"' + value + '\"';\n } else if (typeof value === \"object\") {\n valueString = \"JSON.parse('\" + JSON.stringify(value) + \"')\";\n } else {\n valueString = value;\n }\n\n let evalString = \"tempScope.\" + attrName + \"=\" + valueString;\n eval(evalString);\n })();\n }\n\n static wrapScriptInComponent(originalScript): string {\n let trimScript = originalScript.replace(new RegExp('\\\\s', 'gm'), '');\n if (trimScript.search(new RegExp('\\\\(function\\\\(')) === 0) {\n return originalScript;\n } else {\n let selfExcutingFrame =\n `\t(function(){\n return function(uku){ \n Object.defineProperty(this, 'currentState', {\n set: function(value){\n if(value){\n this._currentState = value;\n uku.refresh(this._alias);\n }\n }\n });\n\n this.setState = function(state){\n this._currentState = state;\n uku.refresh(this._alias);\n };\n\n ${originalScript}\n };\n })();\n `;\n return selfExcutingFrame;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/util/UkuleleUtil.ts","import {BoundItemBase} from \"./BoundItemBase\";\nimport {UkuleleUtil} from \"../util/UkuleleUtil\";\n//import {SelectedDecorator} from \"./decorator/SelectedDecorator\";\nexport class BoundItemAttribute extends BoundItemBase{\n ukuTag:string;\n constructor(attrName:string, ukuTag:string, element:HTMLElement, uku:any){\n super(attrName,element,uku);\n this.ukuTag = ukuTag;\n }\n \n render(controllers):void{\n let attr:string = this.attributeName;\n let finalValue = UkuleleUtil.getFinalValue(controllers,attr);\n if(typeof finalValue === 'boolean'){\n if(finalValue === true){\n this.element.setAttribute(this.ukuTag, this.ukuTag);\n }else{\n this.element.removeAttribute(this.ukuTag);\n } \n }else{\n this.element.setAttribute(this.ukuTag, finalValue);\n }\n \n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/model/BoundItemAttribute.ts","export class Selector{\n static querySelectorAll(element:HTMLBodyElement|HTMLDocument|HTMLElement,query:string):NodeList{\n if(window.hasOwnProperty('jQuery') && typeof window['jQuery'] !== \"undefined\"){\n return window['jQuery'](element).find(query);\n }else{\n return element.querySelectorAll(query);\n }\n }\n\n static fuzzyFind(element:HTMLElement,text:string):HTMLElement {\n if (element && element.attributes) {\n for (let i = 0; i < element.attributes.length; i++) {\n let attr = element.attributes[i];\n if (attr.nodeName.search(text) > -1) {\n return element;\n }\n }\n }\n return null;\n }\n\n static directText(element:HTMLElement,text?:any):string {\n let o = \"\";\n let nodes = element.childNodes;\n for (let i = 0; i <= nodes.length - 1; i++) {\n let node = nodes[i];\n if (node.nodeType === 3) {\n if (text || text ===\"\" || text === 0 || text === false) {\n node.nodeValue = text;\n return;\n } else {\n o += node.nodeValue;\n }\n }\n }\n return o.trim();\n }\n\n static parents(element:HTMLElement):Array<HTMLElement>{\n let parents = [];\n while(element.parentNode && (element.parentNode as HTMLElement).tagName !== 'BODY'){\n parents.push(element.parentNode as HTMLElement);\n element = element.parentNode as HTMLElement;\n }\n return parents;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/extend/Selector.ts","import {IUkulele} from \"../core/IUkulele\";\nexport class BoundItemBase{\n attributeName:string;\n element:HTMLElement;\n uku:IUkulele;\n constructor(_attrName:string, _element:HTMLElement, _uku:IUkulele){\n this.attributeName = _attrName;\n this.element = _element;\n this.uku = _uku;\n }\n render(controllers:Object[]):void{\n \n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/model/BoundItemBase.ts","export class Event{\n eventType:string;\n element:HTMLElement;\n \n constructor(_eventType,_element?:HTMLElement){\n this.eventType = _eventType;\n this.element = _element;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/core/Event.ts","import {IEventEmitter} from \"./IEventEmitter\";\nimport {Event} from \"./Event\";\nexport class EventEmitter implements IEventEmitter{\n private eventsPool:Object;\n \n constructor(){\n this.eventsPool = {};\n }\n \n getEventsPool():Object{\n return this.eventsPool;\n }\n addListener(eventType:string, handler:Function):void{\n if(!this.eventsPool[eventType]){\n this.eventsPool[eventType] = [];\n }\n this.eventsPool[eventType].push(handler);\n }\n removeListener(eventType:string, handler:Function):void{\n if(this.eventsPool[eventType]){\n for(let i=this.eventsPool[eventType].length-1;i>=0;i--){\n if(this.eventsPool[eventType][i] === handler){\n this.eventsPool[eventType].splice(i,1);\n break;\n }\n }\n }\n }\n hasListener(eventType:string):boolean{\n if(this.eventsPool[eventType] && this.eventsPool[eventType].length > 0){\n return true;\n }\n return false;\n }\n dispatchEvent(event:Event):void{\n if(event && event.eventType){\n let handlers:Array<Function> = this.eventsPool[event.eventType];\n if(handlers){\n for(let i=0;i<handlers.length;i++){\n handlers[i].call(this,event);\n }\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/core/EventEmitter.ts","export class UkuEventType{\n static INITIALIZED:string = 'initialized';\n\tstatic REFRESH:string = 'refresh';\n\tstatic HANDLE_ELEMENT_COMPLETED:string = \"handle_element_completed\";\n}\n\n\n// WEBPACK FOOTER //\n// ./src/core/UkuEventType.ts","export class EventListener{\n static addEventListener(element:HTMLElement,eventType:string,handler:any):void{\n return element.addEventListener(eventType,handler);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/extend/EventListener.ts","import { EventEmitter } from \"./EventEmitter\";\nimport { DefinitionManager } from \"./DefinitionManager\";\nimport { DirtyChecker } from \"./DirtyChecker\";\nimport { Analyzer } from \"./Analyzer\";\nimport { Selector } from \"../extend/Selector\";\nimport { UkuEventType } from \"./UkuEventType\";\nimport { IUkulele } from \"./IUkulele\";\nimport { Event } from \"./Event\";\nimport { ControllerModel } from \"../model/ControllerModel\";\n\nexport let Ukulele = class Ukulele extends EventEmitter implements IUkulele {\n\tprivate defMgr: DefinitionManager;\n\tprivate dirtyChecker: DirtyChecker;\n\tprivate promiseArray = [];\n\n\tprivate _childrenUku = {};\n\tstatic INITIALIZED: string = 'initialized';\n\tstatic REFRESH: string = 'refresh';\n\tstatic HANDLE_ELEMENT_COMPLETED: string = \"handle_element_completed\";\n\n\n\tpublic init(): void {\n\t\tPromise.all(this.promiseArray).then(() => {\n\t\t\tthis.manageApplication();\n\t\t});\n\t}\n\n\tpublic setChildrenUku(controllers, uku){\n\t\tfor(let cc of controllers){\n\t\t\tlet alias = cc._alias;\n\t\t\tif(!this._childrenUku[alias]){\n\t\t\t\tthis._childrenUku[alias] = []\n\t\t\t}\n\t\t\tthis._childrenUku[alias].push(uku);\n\t\t}\n\t}\n\n\tpublic handleElement(element: HTMLElement, handleElementCompletedFunc: Function): void {\n\t\tthis.analyizeElement(element, (e) => {\n\t\t\tthis.dispatchEvent(new Event(UkuEventType.HANDLE_ELEMENT_COMPLETED, e));\n\t\t\tif(handleElementCompletedFunc && typeof handleElementCompletedFunc === 'function'){\n\t\t\t\thandleElementCompletedFunc(e.element);\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic registerController(instanceName: string, controllerInst: Object): void {\n\t\twindow[instanceName] = controllerInst;\n\t\tthis._internal_getDefinitionManager().addControllerDefinition(instanceName, controllerInst);\n\t}\n\n\tpublic getController(instanceName: string) {\n\t\treturn this._internal_getDefinitionManager().getControllerDefinition(instanceName).controllerInstance;\n\t}\n\n\tpublic registerComponent(tag: string, templateUrl: string, preload: boolean): void {\n\t\tvar p: Promise<void> = this._internal_getDefinitionManager().addComponentDefinition(tag, templateUrl, preload);\n\t\tthis.promiseArray.push(p);\n\t}\n\n\tpublic getComponent(tagName: string) {\n\t\treturn this._internal_getDefinitionManager().getComponent(tagName);\n\t}\n\n\tpublic getComponentController(componentId: string): Object {\n\t\treturn this._internal_getDefinitionManager().getControllerInstByDomId(componentId);\n\t}\n\n\tpublic refresh(alias?: string | Array<string>, excludeElement?: HTMLElement) {\n\t\tif (!this.dirtyChecker) {\n\t\t\tthis.dirtyChecker = new DirtyChecker(this);\n\t\t}\n\t\tthis.dirtyChecker.runDirtyChecking(alias, excludeElement);\n\t}\n\t//internal function\n\tpublic _internal_getDefinitionManager(): DefinitionManager {\n\t\tif (!this.defMgr) {\n\t\t\tthis.defMgr = new DefinitionManager(this);\n\t\t}\n\t\treturn this.defMgr;\n\t}\n\tpublic _internal_dealWithElement(element: HTMLElement, callback: Function): void {\n\t\tthis.analyizeElement(element, callback);\n\t}\n\n\tprivate manageApplication(): void {\n\t\tlet apps: NodeList = Selector.querySelectorAll(document, \"[uku-application]\");\n\t\tif (apps.length === 1) {\n\t\t\tthis.analyizeElement(apps[0] as HTMLElement, (ele) => {\n\t\t\t\tthis.dispatchEvent(new Event(UkuEventType.INITIALIZED, ele));\n\t\t\t});\n\t\t} else {\n\t\t\tthrow new Error(\"Only one 'uku-application' can be declared in a whole html.\");\n\t\t}\n\t}\n\tprivate analyizeElement(element: HTMLElement, callback?: Function): void {\n\t\tlet anylyzer = new Analyzer(this);\n\t\tif (callback) {\n\t\t\t((retFunc: Function) => {\n\t\t\t\tanylyzer.addListener(Analyzer.ANALYIZE_COMPLETED, (e) => {\n\t\t\t\t\tretFunc(e.element);\n\t\t\t\t});\n\t\t\t})(callback);\n\t\t}\n\t\tanylyzer.analyizeElement(element);\n\t}\n}\n\n\n// WEBPACK FOOTER //\n// ./src/core/Ukulele.ts","import { Ajax } from \"../extend/Ajax\";\nimport { ControllerModel } from \"../model/ControllerModel\";\nimport { ComponentModel } from \"../model/ComponentModel\";\nimport { ComponentPoolItem } from \"../model/ComponentPoolItem\";\nimport { ComponentConfiguration } from \"../model/ComponentConfiguration\";\nimport { UkuleleUtil } from \"../util/UkuleleUtil\";\nimport { IUkulele } from \"./IUkulele\";\nexport class DefinitionManager {\n\tprivate uku: IUkulele;\n\tconstructor(_uku: IUkulele) {\n\t\tthis.uku = _uku;\n\t}\n\tprivate controllersDefinition: Object = {};\n\tprivate componentsDefinition: Object = {};\n\tprivate componentsPool: Object = {};\n\tprivate copyControllers: Object = {};\n\tprivate dependentScriptsCache: Object = {};\n\tprivate ajax: Ajax = new Ajax();\n\n\tgetComponentsDefinition(): Object {\n\t\treturn this.componentsDefinition;\n\t}\n\n\tgetComponentsPool(): Object {\n\t\treturn this.componentsPool;\n\t}\n\n\tsetComponentsPool(pool): void {\n\t\tthis.componentsPool = pool;\n\t}\n\n\tsetComponentsDefinition(value: Object): void {\n\t\tthis.componentsDefinition = value;\n\t}\n\n\tgetComponentDefinition(tagName: string): ComponentModel {\n\t\treturn this.componentsDefinition[tagName] as ComponentModel;\n\t}\n\n\tgetControllerDefinition(instanceName: string): ControllerModel {\n\t\treturn this.controllersDefinition[instanceName] as ControllerModel;\n\t}\n\n\tgetControllersDefinition(): Object {\n\t\treturn this.controllersDefinition;\n\t}\n\n\tgetComponent(tagName: string) {\n\t\treturn this.componentsPool[tagName];\n\t}\n\n\tgetCopyControllers(): Object {\n\t\treturn this.copyControllers;\n\t}\n\n\taddControllerDefinition(instanceName: string, controllerInst): void {\n\t\tlet controllerModel = new ControllerModel(instanceName, controllerInst);\n\t\tcontrollerInst._alias = instanceName;\n\t\tthis.controllersDefinition[instanceName] = controllerModel;\n\t}\n\n\tgetControllerInstByDomId(domId: string): Object {\n\t\tfor (let alias in this.controllersDefinition) {\n\t\t\tlet controllerModel = this.controllersDefinition[alias];\n\t\t\tlet controller = controllerModel.controllerInstance;\n\t\t\tif (controller._dom && controller._dom.id === domId) {\n\t\t\t\treturn controller;\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}\n\n\n\taddComponentDefinition(tag: string, templateUrl: string, preload: boolean): Promise<void> {\n\t\treturn new Promise<void>((resolve, reject) => {\n\t\t\tif (!preload) {\n\t\t\t\tthis.componentsPool[tag] = new ComponentPoolItem(tag, templateUrl, true);\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\tthis.componentsPool[tag] = new ComponentPoolItem(tag, templateUrl, false);\n\t\t\t\treturn this.ajax.get(templateUrl).then((result) => {\n\t\t\t\t\tlet componentConfig = UkuleleUtil.getComponentConfiguration(result);\n\t\t\t\t\treturn this.analyizeComponent(tag, componentConfig);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\taddLazyComponentDefinition(tag: string, templateUrl: string): Promise<void> {\n\t\treturn new Promise<void>((resolve, reject) => {\n\t\t\treturn this.ajax.get(templateUrl).then((result) => {\n\t\t\t\tlet componentConfig = UkuleleUtil.getComponentConfiguration(result);\n\t\t\t\treturn this.analyizeComponent(tag, componentConfig).then(() => {\n\t\t\t\t\tthis.componentsPool[tag] = { 'tagName': tag, 'templateUrl': templateUrl, 'lazy': false };\n\t\t\t\t\tresolve();\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\n\n\tgetBoundAttributeValue(attr: string, ...additionalArgu): any {\n\t\tlet controllerModels = this.getControllerModelByName(attr);\n\t\tlet controllers = [];\n\t\tcontrollerModels.forEach(controllerModel => {\n\t\t\tcontrollers.push(controllerModel.controllerInstance);\n\t\t});\n\t\tlet parameters: Array<any> = [this.uku, controllers, attr];\n\t\tparameters = parameters.concat(additionalArgu);\n\t\tlet result = UkuleleUtil.getFinalValue.apply(null, parameters);\n\t\treturn result;\n\t};\n\n\n\tgetControllerModelByName(expression: string): ControllerModel[] {\n\t\tlet arr = [];\n\t\tlet normalReg = /\\$\\w+\\./g;\n\t\tlet normals = expression.match(normalReg);\n\t\tif(normals){\n\t\t\tnormals.forEach( matchAlias => {\n\t\t\t\tmatchAlias = matchAlias.substr(0,matchAlias.length-1);\n\t\t\t\tlet controllerModel: ControllerModel = this.controllersDefinition[matchAlias];\n\t\t\t\tarr.push(controllerModel);\n\t\t\t});\n\t\t}\n\t\t\n\t\tlet ccReg = /cc\\_\\w*\\./g;\n\t\tlet ccs = expression.match(ccReg);\n\t\tif(ccs){\n\t\t\tccs.forEach( ccAlias => {\n\t\t\t\tccAlias = ccAlias.substr(0,ccAlias.length-1);\n\t\t\t\tlet controllerModel: ControllerModel = this.controllersDefinition[ccAlias];\n\t\t\t\tarr.push(controllerModel);\n\t\t\t});\n\t\t}\n\t\t\n\t\tlet repeatReg = /repeatItem\\_\\w*\\$/g;\n\t\tlet repeats = expression.match(repeatReg);\n\t\tif(repeats){\n\t\t\trepeats.forEach( repeatAlias => {\n\t\t\t\t//repeatAlias = repeatAlias.substr(0,repeatAlias.length-1);\n\t\t\t\tlet controllerModel: ControllerModel = this.controllersDefinition[repeatAlias];\n\t\t\t\tarr.push(controllerModel);\n\t\t\t});\n\t\t}\n\t\treturn arr;\n\t};\n\n\n\tgetFinalValueByExpression(expression: string): any {\n\t\tlet controllerModels = this.getControllerModelByName(expression);\n\t\tlet controllers = [];\n\t\tcontrollerModels.forEach(controllerModel => {\n\t\t\tcontrollers.push(controllerModel.controllerInstance);\n\t\t});\n\n\t\treturn UkuleleUtil.getFinalValue(controllers, expression);\n\t};\n\n\tprivate async analyizeComponent(tag: string, config: ComponentConfiguration): Promise<void> {\n\t\tlet deps: Array<string> = config.dependentScripts;\n\t\tlet self: DefinitionManager = this;\n\t\tif (deps && deps.length > 0) {\n\t\t\tlet tmpAMD;\n\t\t\tif (typeof window['define'] === 'function' && window['define'].amd) {\n\t\t\t\ttmpAMD = window['define'];\n\t\t\t\twindow['define'] = undefined;\n\t\t\t}\n\t\t\tif (!config.componentControllerScript) {\n\t\t\t\tlet ccsExternal = deps[deps.length - 1];\n\t\t\t\tconfig.componentControllerScript = await this.ajax.get(ccsExternal);\n\t\t\t\tdeps.pop();\n\t\t\t}\n\t\t\tfor (let i = 0; i < deps.length; i++) {\n\t\t\t\tlet dep = deps[i];\n\t\t\t\tawait loadDependentScript(dep);\n\t\t\t}\n\t\t\tif (tmpAMD) {\n\t\t\t\twindow['define'] = tmpAMD;\n\t\t\t}\n\t\t\tthis.buildeComponentModel(tag, config.template, config.componentControllerScript, config.stylesheet);\n\t\t\treturn;\n\t\t} else {\n\t\t\tthis.buildeComponentModel(tag, config.template, config.componentControllerScript, config.stylesheet);\n\t\t\treturn;\n\t\t}\n\n\t\tfunction loadDependentScript(src: string): Promise<void> {\n\t\t\treturn new Promise<void>((resolve, reject) => {\n\t\t\t\tif (!self.dependentScriptsCache[src]) {\n\t\t\t\t\tlet head = document.getElementsByTagName('HEAD')[0];\n\t\t\t\t\tlet script = document.createElement('script');\n\t\t\t\t\tscript.type = 'text/javascript';\n\t\t\t\t\tscript.charset = 'utf-8';\n\t\t\t\t\tscript.async = true;\n\t\t\t\t\tscript.src = src;\n\t\t\t\t\tscript.onload = (e) => {\n\t\t\t\t\t\tself.dependentScriptsCache[e.target['src']] = true;\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t};\n\t\t\t\t\thead.appendChild(script);\n\t\t\t\t} else {\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate buildeComponentModel(tag: string, template: string, script: string, style: string): void {\n\t\tlet debugComment = \"//# sourceURL=\" + tag + \".js\";\n\t\ttry {\n\t\t\tlet controllerClazz\n\t\t\tif (script) {\n\t\t\t\tscript = UkuleleUtil.wrapScriptInComponent(script);\n\t\t\t\tscript += debugComment;\n\t\t\t\tcontrollerClazz = eval(script);\n\t\t\t}\n\t\t\tlet newComp = new ComponentModel(tag, template, controllerClazz);\n\t\t\tthis.componentsDefinition[tag] = newComp;\n\t\t\tif (style) {\n\t\t\t\tdealWithShadowStyle(tag, style);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\n\t\tfunction dealWithShadowStyle(tagName: string, stylesheet: string): void {\n\t\t\tlet head = document.getElementsByTagName('HEAD')[0];\n\t\t\tlet style = document.createElement('style');\n\t\t\tstyle.type = 'text/css';\n\t\t\tvar styleArray = stylesheet.split(\"}\");\n\t\t\tvar newArray = [];\n\t\t\tstyleArray.forEach((value: string, index: number) => {\n\t\t\t\tvar newValue = value.replace(/^\\s*/, \"\");\n\t\t\t\tif (newValue) {\n\t\t\t\t\tnewArray.push(newValue);\n\t\t\t\t}\n\t\t\t});\n\t\t\tstylesheet = newArray.join(\"}\\n\" + \".\" + tagName + \" \");\n\t\t\tstylesheet = \".\" + tagName + \" \" + stylesheet + \"}\";\n\t\t\tstyle.innerHTML = stylesheet;\n\t\t\thead.appendChild(style);\n\t\t}\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/core/DefinitionManager.ts","export class Ajax {\n get(url:string):Promise<any> {\n return new Promise<any>((resolve, reject)=>{\n let request:XMLHttpRequest = new XMLHttpRequest();\n request.onreadystatechange = function() {\n if (request.readyState === 4) {\n if (request.status === 200) {\n resolve(request.responseText);\n } else {\n reject();\n }\n }\n };\n request.open(\"GET\", url, true);\n request.send(null);\n });\n \n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/extend/Ajax.ts","import {BoundItemBase} from \"./BoundItemBase\";\nexport class ControllerModel{\n alias:string;\n controllerInstance:Object;\n boundItems:Array<BoundItemBase>;\n constructor(alias:string ,ctrlInst:Object){\n this.alias = alias;\n this.controllerInstance = ctrlInst;\n this.boundItems = [];\n }\n addBoundItem(boundItem:BoundItemBase) :void{\n this.boundItems.push(boundItem);\n }\n\n getBoundItemsByName(name):Array<BoundItemBase> {\n let tempBoundItems:Array<BoundItemBase> = [];\n for (let i = 0; i < this.boundItems.length; i++) {\n let boundItem:BoundItemBase = this.boundItems[i];\n if (boundItem.attributeName === name) {\n tempBoundItems.push(boundItem);\n }\n }\n return tempBoundItems;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/model/ControllerModel.ts","export class ComponentModel{\n tagName:string;\n template:string;\n controllerClazz:Function;\n constructor(tagName,template,clazz){\n this.tagName = tagName;\n this.template = template;\n this.controllerClazz = clazz;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/model/ComponentModel.ts","export class ComponentPoolItem{\n tagName:string;\n templateUrl:string;\n lazy:boolean;\n \n constructor(_tagName,_templateUrl,_lazy){\n this.tagName = _tagName;\n this.templateUrl = _templateUrl;\n this.lazy = _lazy;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/model/ComponentPoolItem.ts","export class ComponentConfiguration{\n template:string;\n dependentScripts:Array<string>;\n componentControllerScript:string;\n stylesheet:string;\n \n constructor(_template:string,_dependentScripts:Array<string>,_componentControllerScript:string,_stylesheet:string = undefined){\n this.template = _template;\n this.dependentScripts = _dependentScripts;\n this.componentControllerScript = _componentControllerScript;\n this.stylesheet = _stylesheet;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/model/ComponentConfiguration.ts","import {UkuleleUtil} from \"../util/UkuleleUtil\";\nimport {ObjectUtil} from \"../util/ObjectUtil\";\nimport {UkuEventType} from \"./UkuEventType\";\nimport {IUkulele} from \"./IUkulele\";\nimport {ControllerModel} from \"../model/ControllerModel\";\nimport {BoundItemBase} from \"../model/BoundItemBase\";\nimport {Event} from \"./Event\";\nexport class DirtyChecker{\n\tprivate uku:IUkulele;\n\tprivate defMgr;\n\tprivate oldValueCache = {};\n\tconstructor(_uku:IUkulele){\n\t\tthis.uku = _uku;\n\t\tthis.defMgr = this.uku._internal_getDefinitionManager();\n\t}\n \n\trunDirtyChecking(ctrlAliasName?:string|Array<string>, excludeElement?:HTMLElement):void {\n\t\tlet _this:DirtyChecker = this;\n\t\tif (ctrlAliasName) {\n\t\t\tif (typeof (ctrlAliasName) === \"string\") {\n\t\t\t\twatchController(ctrlAliasName as string);\n\t\t\t} else if (ObjectUtil.isArray(ctrlAliasName)) {\n\t\t\t\tfor (let i = 0; i < ctrlAliasName.length; i++) {\n\t\t\t\t\twatchController(ctrlAliasName[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (let alias in this.defMgr.getControllersDefinition()) {\n\t\t\t\twatchController(alias);\n\t\t\t}\n\t\t}\n\n\t\tfunction watchController(alias:string) {\n\t\t\tlet controllerModel:ControllerModel = _this.defMgr.getControllersDefinition()[alias];\n\t\t\tif (!controllerModel) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet controller:Object = controllerModel.controllerInstance;\n\t\t\tif(!_this.oldValueCache[alias]){\n\t\t\t\t_this.oldValueCache[alias] = {};\n\t\t\t}\n\t\t\tlet oldValueMap = _this.oldValueCache[alias];\n\t\t\tlet changedElementCount = 0;\n\t\t\tfor (let i = 0; i < controllerModel.boundItems.length; i++) {\n\t\t\t\tlet boundItem:BoundItemBase = controllerModel.boundItems[i] as BoundItemBase;\n\t\t\t\tlet attrName:string = boundItem.attributeName;\n\n\t\t\t\tif (oldValueMap) {\n\t\t\t\t\tif (boundItem.hasOwnProperty('ukuTag') && boundItem['ukuTag'] === \"selected\") {\n\t\t\t\t\t\tattrName = attrName.split(\"|\")[0];\n\t\t\t\t\t}\n\t\t\t\t\tlet finalValue = UkuleleUtil.getFinalValue( [controller], attrName);\n\t\t\t\t\tlet previousFinalValue = oldValueMap[attrName];\t\t\t\t\n\t\t\t\t\tif (!ObjectUtil.compare(previousFinalValue, finalValue)) {\n\t\t\t\t\t\tattrName = boundItem.attributeName;\n\t\t\t\t\t\tlet changedBoundItems:Array<BoundItemBase> = controllerModel.getBoundItemsByName(attrName);\n\t\t\t\t\t\tfor (let j = 0; j < changedBoundItems.length; j++) {\n\t\t\t\t\t\t\tlet changedBoundItem:BoundItemBase = changedBoundItems[j] as BoundItemBase;\n\t\t\t\t\t\t\tif(changedBoundItem.element !== excludeElement || (boundItem.hasOwnProperty('ukuTag') && changedBoundItem['ukuTag'] !== \"value\")){\n\t\t\t\t\t\t\t\tchangedElementCount++;\n\t\t\t\t\t\t\t\tchangedBoundItem.render([controller]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\toldValueMap[attrName] = ObjectUtil.deepClone(finalValue);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(changedElementCount > 0 && _this.uku.hasListener(UkuEventType.REFRESH)){\n\t\t\t\t_this.uku.dispatchEvent(new Event(UkuEventType.REFRESH));\n\t\t\t}\n\t\t}\n\t};\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/core/DirtyChecker.ts","export class ObjectUtil {\n static isArray(obj: Object): boolean {\n return Object.prototype.toString.call(obj) === '[object Array]';\n }\n\n static getType(obj: any): string {\n let type: string = typeof (obj);\n if (type === \"object\") {\n if (ObjectUtil.isArray(obj)) {\n return \"array\";\n } else {\n return type;\n }\n } else {\n return type;\n }\n }\n\n static deepClone(obj: any): any {\n let o: any;\n let i: any;\n let j: number;\n if (typeof (obj) !== \"object\" || obj === null) {\n return obj;\n }\n if (obj instanceof (Array)) {\n o = [];\n i = 0;\n j = obj.length;\n for (; i < j; i++) {\n if (typeof (obj[i]) === \"object\" && obj[i] !== null) {\n o[i] = ObjectUtil.deepClone(obj[i]);\n } else {\n o[i] = obj[i];\n }\n }\n } else {\n o = {};\n for (i in obj) {\n if (typeof (obj[i]) === \"object\" && obj[i] !== null && i !== \"_dom\") {\n o[i] = ObjectUtil.deepClone(obj[i]);\n } else {\n o[i] = obj[i];\n }\n }\n }\n\n return o;\n }\n\n static compare(objA: any, objB: any): boolean {\n let type: string = ObjectUtil.getType(objA);\n let typeB: string = ObjectUtil.getType(objB);\n let result: boolean = true;\n if (type !== typeB) {\n return false;\n } else {\n switch (type) {\n case \"object\":\n if (objA === null && objB === null) {\n result = true;\n } else if (objA === null || objB === null) {\n result = false;\n } else {\n let keys_a = Object.keys(objA);\n let keys_b = Object.keys(objB);\n\n if (keys_a.length != keys_b.length) {\n result = false;\n } else if (keys_a.length === 0 && keys_b.length === 0) {\n result = true;\n } else {\n for (let key in objA) {\n let valuA = objA[key];\n let valuB = objB[key];\n let isEqual: boolean = ObjectUtil.compare(valuA, valuB);\n if (!isEqual) {\n result = false;\n break;\n }\n }\n }\n }\n break;\n case \"array\":\n if (objA.length === objB.length) {\n for (let i = 0; i < objA.length; i++) {\n let itemA = objA[i];\n let itemB = objB[i];\n let isEqual2: boolean = ObjectUtil.compare(itemA, itemB);\n if (!isEqual2) {\n result = false;\n break;\n }\n }\n } else {\n result = false;\n }\n break;\n case \"function\":\n result = objA.toString() === objB.toString();\n break;\n default:\n result = objA === objB;\n break;\n }\n }\n return result;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/util/ObjectUtil.ts","import { EventEmitter } from \"./EventEmitter\";\nimport { UkuleleUtil } from \"../util/UkuleleUtil\";\nimport { BoundItemAttributeFactory } from './BoundItemAttributeFactory';\nimport { BoundItemExpression } from '../model/BoundItemExpression';\nimport { BoundItemInnerText } from '../model/BoundItemInnerText';\nimport { BoundItemRepeat } from '../model/BoundItemRepeat';\nimport { BoundItemComponentAttribute } from \"../model/BoundItemComponentAttribute\";\nimport { elementChangedBinder } from \"./ElementActionBinder\";\nimport { IUkulele } from \"./IUkulele\";\nimport { EventListener } from \"../extend/EventListener\";\nimport { Selector } from \"../extend/Selector\";\nimport { Event as UkuEvent } from \"./Event\";\nexport class Analyzer extends EventEmitter {\n private uku: IUkulele;\n private defMgr;\n static ANALYIZE_COMPLETED: string = 'analyizeCompleted';\n constructor(_uku: IUkulele) {\n super();\n this.uku = _uku;\n this.defMgr = this.uku._internal_getDefinitionManager();\n }\n\n public analyizeElement(ele): void {\n this.searchComponent(ele).then((element) => {\n this.searchExpression(element);\n this.searchUkuAttribute(element);\n //this.defMgr.copyAllController();\n if (this.hasListener(Analyzer.ANALYIZE_COMPLETED)) {\n this.dispatchEvent(new UkuEvent(Analyzer.ANALYIZE_COMPLETED, element));\n }\n });\n }\n\n private sortAttributes(subElement): Array<any> {\n let orderAttrs = [];\n let listenerAttrs = [];\n for (let i = 0; i < subElement.attributes.length; i++) {\n let attribute = subElement.attributes[i];\n if (attribute.nodeName.search(\"uku-on\") !== -1) {\n //orderAttrs.push(attribute);\n listenerAttrs.push(attribute);\n } else {\n orderAttrs.push(attribute);\n }\n }\n orderAttrs = orderAttrs.concat(listenerAttrs);\n return orderAttrs;\n }\n\n private searchUkuAttribute(element): void {\n let subElements = [];\n //scan element which has uku-* tag\n let isSelfHasUkuTag = Selector.fuzzyFind(element, 'uku-');\n if (isSelfHasUkuTag) {\n subElements.push(isSelfHasUkuTag);\n }\n let allChildren = Selector.querySelectorAll(element, \"*\");\n for (let i = 0; i < allChildren.length; i++) {\n let child: HTMLElement = allChildren[i] as HTMLElement;\n let matchElement = Selector.fuzzyFind(child, 'uku-');\n if (matchElement && !UkuleleUtil.isInRepeat(matchElement)) {\n subElements.push(matchElement);\n }\n }\n //解析绑定 attribute,注册event\n for (let n = 0; n < subElements.length; n++) {\n let subElement = subElements[n];\n let orderAttrs = this.sortAttributes(subElement);\n for (let j = 0; j < orderAttrs.length; j++) {\n let attribute = orderAttrs[j];\n if (UkuleleUtil.searchUkuAttrTag(attribute.nodeName) > -1) {\n let tempArr = attribute.nodeName.split('-');\n tempArr.shift();\n let attrName = tempArr.join('-');\n if (attrName !== \"application\") {\n if (attrName.search('on') === 0) {\n //is an event\n if (!UkuleleUtil.isRepeat(subElement) && !UkuleleUtil.isInRepeat(subElement)) {\n this.dealWithEvent(subElement, attrName);\n }\n } else if (attrName.search('repeat') !== -1) {\n //is an repeat\n this.dealWithRepeat(subElement);\n } else {\n //is an attribute\n if (!UkuleleUtil.isRepeat(subElement) && !UkuleleUtil.isInRepeat(subElement)) {\n if (attrName !== \"text\") {\n this.dealWithAttribute(subElement, attrName);\n } else {\n this.dealWithInnerText(subElement);\n }\n }\n }\n }\n }\n }\n }\n }\n\n\n private async searchComponent(element): Promise<any> {\n let comp = this.defMgr.getComponent(element.localName);\n if (comp) {\n if (!comp.lazy) {\n let attrs = element.attributes;\n let compDef = this.defMgr.getComponentsDefinition()[comp.tagName];\n if (!UkuleleUtil.isRepeat(element) && !UkuleleUtil.isInRepeat(element)) {\n return this.dealWithComponent(element, compDef.template, compDef.controllerClazz, attrs);\n } else {\n return element;\n }\n } else {\n await this.defMgr.addLazyComponentDefinition(comp.tagName, comp.templateUrl);\n let attrs = element.attributes;\n let compDef = this.defMgr.getComponentsDefinition()[comp.tagName];\n if (!UkuleleUtil.isRepeat(element) && !UkuleleUtil.isInRepeat(element)) {\n return this.dealWithComponent(element, compDef.template, compDef.controllerClazz, attrs);\n } else {\n return element;\n }\n }\n } else {\n if (element.children && element.children.length > 0) {\n for (let i = 0; i < element.children.length; i++) {\n let child = element.children[i];\n await this.searchComponent(child);\n }\n return element;\n } else {\n return element;\n }\n }\n }\n\n private async dealWithComponent(tag, template, Clazz, attrs): Promise<any> {\n let time = new Date().getTime();\n let randomAlias = 'cc_' + Math.floor(time * Math.random()).toString();\n //should consider white space between characters\n template = template.replace(new RegExp(\"\\'cc\\\\.\", 'gm'), \"'\" + randomAlias + '.');\n template = template.replace(new RegExp('\"cc\\\\.', 'gm'), '\"' + randomAlias + '.');\n template = template.replace(new RegExp('\\{\\{cc\\\\.', 'gm'), \"{{\" + randomAlias + '.');\n template = template.replace(new RegExp(' cc\\\\.', 'gm'), ' ' + randomAlias + '.');\n template = template.replace(new RegExp('\\\\(cc\\\\.', 'gm'), '(' + randomAlias + '.');\n template = template.replace(new RegExp('\\\\,cc\\\\.', 'gm'), ',' + randomAlias + '.');\n template = template.replace(new RegExp('\\\\.cc\\\\.', 'gm'), '.' + randomAlias + '.');\n template = template.replace(new RegExp('\\\\!cc\\\\.', 'gm'), '!' + randomAlias + '.');\n let tempFragment = document.createElement('div');\n tempFragment.insertAdjacentHTML('afterBegin' as InsertPosition, template);\n if (tempFragment.children.length > 1) {\n template = tempFragment.outerHTML;\n }\n tag.insertAdjacentHTML('beforeBegin', template);\n let htmlDom = tag.previousElementSibling;\n htmlDom.classList.add(tag.localName);\n let cc;\n if (Clazz) {\n cc = new Clazz(this.uku);\n cc._dom = htmlDom;\n cc.fire = (eventType: string, data: any, bubbles: boolean = false, cancelable: boolean = true) => {\n let event = new CustomEvent(eventType.toLowerCase(), { \"bubbles\": bubbles, \"cancelable\": cancelable });\n event['data'] = data;\n cc._dom.dispatchEvent(event);\n };\n this.uku.registerController(randomAlias, cc);\n for (let i = 0; i < attrs.length; i++) {\n let attr = attrs[i];\n //todo need Refactor\n if (UkuleleUtil.searchUkuAttrTag(attr.nodeName) !== 0\n || attr.nodeName.search(\"uku-on\") !== -1\n || attr.nodeName === \"uku-render\"\n || attr.nodeName === \"uku-visible\") {\n htmlDom.setAttribute(attr.nodeName, attr.nodeValue);\n } else {\n let tagName = UkuleleUtil.getAttrFromUkuTag(attr.nodeName, true);\n let controllerModels = this.defMgr.getControllerModelByName(attr.nodeValue);\n if (controllerModels && controllerModels.length > 0) {\n let boundItem = new BoundItemComponentAttribute(attr.nodeValue, tagName, cc, this.uku);\n let controllers = [];\n controllerModels.forEach(controllerModel => {\n controllerModel.addBoundItem(boundItem);\n controllers.push(controllerModel.controllerInstance);\n });\n \n boundItem.render(controllers);\n }else{\n //native value, not expression\n let boundItem = new BoundItemComponentAttribute(attr.nodeValue, tagName, cc, this.uku);\n boundItem.render([]);\n }\n }\n }\n } else {\n for (let i = 0; i < attrs.length; i++) {\n let attr = attrs[i];\n //todo:need Refactor\n if (UkuleleUtil.searchUkuAttrTag(attr.nodeName) !== 0\n || attr.nodeName.search(\"uku-on\") !== -1\n || attr.nodeName === \"uku-render\"\n || attr.nodeName === \"uku-visible\") {\n htmlDom.setAttribute(attr.nodeName, attr.nodeValue);\n }\n }\n }\n\n tag.parentNode.removeChild(tag);\n if (htmlDom.children && htmlDom.children.length > 0) {\n for (let j = 0; j < htmlDom.children.length; j++) {\n let child = htmlDom.children[j];\n await this.searchComponent(child);\n }\n if (cc && cc._initialized && typeof (cc._initialized) === 'function') {\n cc._initialized(randomAlias,cc._dom);\n }\n return htmlDom;\n } else {\n if (cc && cc._initialized && typeof (cc._initialized) === 'function') {\n cc._initialized(randomAlias,cc._dom);\n }\n return htmlDom;\n }\n }\n //todo: 处理 tag之间使用{{}}括起的表达式,用以显示文字\n private searchExpression(element: HTMLElement): void {\n if (UkuleleUtil.searchUkuExpTag(Selector.directText(element)) !== -1) {\n if (!UkuleleUtil.isRepeat(element) && !UkuleleUtil.isInRepeat(element)) {\n //normal expression\n this.dealWithExpression(element);\n }\n }\n for (let i = 0; i < element.children.length; i++) {\n this.searchExpression(element.children[i] as HTMLElement);\n }\n\n\n }\n\n private dealWithExpression(element) {\n //通常的花括号声明方式\n let expression = Selector.directText(element);\n if (UkuleleUtil.searchUkuExpTag(expression) !== -1) {\n let attr = expression.slice(2, -2);\n let controllerModels = this.defMgr.getControllerModelByName(attr);\n if (controllerModels && controllerModels.length > 0) {\n let boundItem = new BoundItemExpression(attr, expression, element, this.uku);\n let controllers = [];\n controllerModels.forEach(controllerModel => {\n controllerModel.addBoundItem(boundItem);\n controllers.push(controllerModel.controllerInstance);\n }); \n boundItem.render(controllers);\n }\n }\n }\n\n //处理绑定的attribute\n private dealWithAttribute: Function = function (element, tagName) {\n let attr = element.getAttribute(\"uku-\" + tagName);\n //let elementName = element.tagName;\n let controllerModels = this.defMgr.getControllerModelByName(attr);\n if (controllerModels && controllerModels.length > 0) {\n let boundItem = BoundItemAttributeFactory.getInstance().generateInstance(attr, tagName, element, this.uku);\n let controllers = [];\n controllerModels.forEach(controllerModel => {\n controllerModel.addBoundItem(boundItem);\n elementChangedBinder(element, tagName, controllerModel, this.uku.refresh, this.uku);\n controllers.push(controllerModel.controllerInstance)\n }); \n boundItem.render(controllers);\n \n }\n }\n\n //处理 uku-text\n private dealWithInnerText(element) {\n let attr = element.getAttribute(\"uku-text\");\n if (attr) {\n let controllerModels = this.defMgr.getControllerModelByName(attr);\n if (controllerModels && controllerModels.length > 0) {\n let boundItem = new BoundItemInnerText(attr, element, this.uku);\n let controllers = [];\n controllerModels.forEach(controllerModel => {\n controllerModel.addBoundItem(boundItem);\n controllers.push(controllerModel.controllerInstance);\n });\n boundItem.render(controllers);\n }\n }\n }\n\n\n //处理 事件 event\n private dealWithEvent(element, eventName) {\n let expression = element.getAttribute(\"uku-\" + eventName);\n let eventNameInListener = eventName.substring(2);\n eventNameInListener = eventNameInListener.toLowerCase();\n let controllerModels = this.defMgr.getControllerModelByName(expression);\n if(!controllerModels || controllerModels.length === 0){\n controllerModels = [];\n } \n EventListener.addEventListener(element, eventNameInListener, (event) => {\n let alias_list = [];\n controllerModels.forEach(controllerModel => {\n //this.defMgr.copyControllerInstance(controllerModel.controllerInstance, controllerModels.alias);\n alias_list.push(controllerModel.alias);\n });\n \n let index = UkuleleUtil.searchUkuFuncArg(expression);\n if(index === -1){\n // is an expression, not a function\n let handler = new Function(\"event\",\"return \" + expression);\n console.log(handler.toString());\n handler(event);\n }else{\n // is a function\n let i = expression.search(/\\(/);\n let arg = 'event';\n if(expression[i+1] !== ')'){\n // has argument\n arg = 'event,'\n }\n let arr = expression.split('(');\n arr[1] = arg + arr[1];\n let new_expression = arr.join(\"(\");\n (function(e){\n let tempScope = {};\n tempScope['event'] = e;\n eval(new_expression);\n tempScope = null;\n })(event);\n }\n this.uku.refresh(alias_list, element);\n });\n }\n //处理 repeat\n private dealWithRepeat(element) {\n let repeatExpression = element.getAttribute(\"uku-repeat\");\n let tempArr = repeatExpression.split(' in ');\n let itemName = tempArr[0];\n let attr = tempArr[1];\n let controllerModels = this.defMgr.getControllerModelByName(attr);\n if (controllerModels && controllerModels.length > 0) {\n let controllers = [];\n //let controllerInst = controllerModel.controllerInstance;\n let boundItem = new BoundItemRepeat(attr, itemName, element, this.uku);\n controllerModels.forEach(controllerModel => {\n controllerModel.addBoundItem(boundItem);\n controllers.push(controllerModel.controllerInstance);\n }); \n boundItem.render(controllers);\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/core/Analyzer.ts","import {BountItemAttrSelected} from \"../model/directive/BoundItemAttrSelected\";\nimport {BoundItemAttrDataItem} from \"../model/directive/BoundItemAttrDataItem\";\nimport {BoundItemAttrSrc} from \"../model/directive/BoundItemAttrSrc\";\nimport {BoundItemAttrDisabled} from \"../model/directive/BoundItemAttrDisabled\";\nimport {BoundItemAttrRender} from \"../model/directive/BoundItemAttrRender\";\nimport {BoundItemAttrStyle} from \"../model/directive/BoundItemAttrStyle\";\nimport {BoundItemAttrValue} from \"../model/directive/BoundItemAttrValue\";\nimport {BoundItemAttrVisible} from \"../model/directive/BoundItemAttrVisible\";\nimport {BoundItemAttribute} from \"../model/BoundItemAttribute\";\nexport class BoundItemAttributeFactory{\n private static _instance = new BoundItemAttributeFactory();\n constructor(){\n if(BoundItemAttributeFactory._instance){\n throw new Error(\"Error: Instantiation failed: Use BoundItemAttributeFactory.getInstance() instead of new.\"); \n }\n BoundItemAttributeFactory._instance = this;\n\n }\n static getInstance():BoundItemAttributeFactory{\n return BoundItemAttributeFactory._instance;\n }\n generateInstance(attr, tagName, element, uku){\n let instance;\n switch (tagName) {\n case \"selected\":\n instance = new BountItemAttrSelected(attr, tagName, element, uku);\n break;\n case \"data-item\":\n instance = new BoundItemAttrDataItem(attr, tagName, element, uku);\n break;\n case \"src\":\n instance = new BoundItemAttrSrc(attr, tagName, element, uku);\n break;\n case \"disabled\":\n instance = new BoundItemAttrDisabled(attr, tagName, element, uku);\n break;\n case \"render\":\n instance = new BoundItemAttrRender(attr, tagName, element, uku);\n break;\n case \"style\":\n instance = new BoundItemAttrStyle(attr, tagName, element, uku);\n break;\n case \"value\":\n instance = new BoundItemAttrValue(attr, tagName, element, uku);\n break;\n case \"visible\":\n instance = new BoundItemAttrVisible(attr, tagName, element, uku);\n break;\n default:\n instance = new BoundItemAttribute(attr, tagName, element, uku);\n }\n return instance;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/core/BoundItemAttributeFactory.ts","import {BoundItemAttribute} from \"../BoundItemAttribute\";\nimport {UkuleleUtil} from \"../../util/UkuleleUtil\";\n\nexport class BountItemAttrSelected extends BoundItemAttribute{\n constructor(attrName:string, ukuTag:string, element:HTMLElement, uku:any){\n if(ukuTag !== \"selected\"){\n throw new TypeError(\"it doesn't use uku-selected\");\n }\n super(attrName,ukuTag,element,uku);\n }\n render(controllers):void{\n let attr:string = this.attributeName;\n let key:string;\n let elementName:string = this.element.tagName;\n if(elementName === \"SELECT\"){\n let tempArr:Array<string> = this.attributeName.split(\"|\");\n attr = tempArr[0];\n key = tempArr[1];\n let finalValue = UkuleleUtil.getFinalValue(controllers,attr);\n let value;\n \tif(key){\n \t\tvalue = finalValue[key];\n \t}else{\n \t\tvalue = finalValue;\n \t}\n (this.element as HTMLSelectElement).value = value;\n }\n\n if(elementName === \"INPUT\" && this.element.getAttribute(\"type\") === \"radio\"){\n let finalValue = UkuleleUtil.getFinalValue(controllers,attr);\n if((this.element as HTMLInputElement).value === finalValue){\n (this.element as HTMLInputElement).setAttribute(\"checked\",\"true\");\n }\n } \n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/model/directive/BoundItemAttrSelected.ts","import {BoundItemAttribute} from \"../BoundItemAttribute\";\nimport {UkuleleUtil} from \"../../util/UkuleleUtil\";\n\nexport class BoundItemAttrDataItem extends BoundItemAttribute{\n constructor(attrName:string, ukuTag:string, element:HTMLElement, uku:any){\n if(ukuTag !== \"data-item\"){\n throw new TypeError(\"it doesn't use uku-item\");\n }\n super(attrName,ukuTag,element,uku);\n }\n render(controllers):void{\n let attr:string = this.attributeName;\n let elementName:string = this.element.tagName;\n let finalValue = UkuleleUtil.getFinalValue(controllers,attr);\n if(elementName === \"OPTION\"){\n \tfinalValue = JSON.stringify(finalValue);\n this.element.setAttribute('data-item',finalValue);\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/model/directive/BoundItemAttrDataItem.ts","import {BoundItemAttribute} from \"../BoundItemAttribute\";\nimport {UkuleleUtil} from \"../../util/UkuleleUtil\";\n\nexport class BoundItemAttrSrc extends BoundItemAttribute{\n constructor(attrName:string, ukuTag:string, element:HTMLElement, uku:any){\n if(ukuTag !== \"src\"){\n throw new TypeError(\"it doesn't use uku-src\");\n }\n super(attrName,ukuTag,element,uku);\n }\n render(controllers):void{\n let attr:string = this.attributeName;\n let elementName:string = this.element.tagName;\n let finalValue = UkuleleUtil.getFinalValue(controllers,attr);\n if(elementName === \"IMG\" || elementName === \"VIDEO\" || elementName === \"AUDIO\"){\n \t\tif(finalValue){\n this.element.setAttribute(this.ukuTag,finalValue);\n }\n \t}else{\n throw new Error(\"uku-src doesn't work with current dom\");\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/model/directive/BoundItemAttrSrc.ts","import {BoundItemAttribute} from \"../BoundItemAttribute\";\nimport {UkuleleUtil} from \"../../util/UkuleleUtil\";\n\nexport class BoundItemAttrDisabled extends BoundItemAttribute{\n constructor(attrName:string, ukuTag:string, element:HTMLElement, uku:any){\n if(ukuTag !== \"disabled\"){\n throw new TypeError(\"it doesn't use uku-disabled\");\n }\n super(attrName,ukuTag,element,uku);\n }\n render(controllers):void{\n let attr:string = this.attributeName;\n let elementName:string = this.element.tagName;\n let finalValue = UkuleleUtil.getFinalValue(controllers,attr);\n (this.element as HTMLInputElement).disabled = finalValue;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/model/directive/BoundItemAttrDisabled.ts","import {BoundItemAttribute} from \"../BoundItemAttribute\";\nimport {UkuleleUtil} from \"../../util/UkuleleUtil\";\n\nexport class BoundItemAttrRender extends BoundItemAttribute{\n constructor(attrName:string, ukuTag:string, element:HTMLElement, uku:any){\n if(ukuTag !== \"render\"){\n throw new TypeError(\"it doesn't use uku-render\");\n }\n super(attrName,ukuTag,element,uku);\n }\n render(controllers):void{\n let attr:string = this.attributeName;\n let finalValue = UkuleleUtil.getFinalValue(controllers,attr);\n if(finalValue){\n let oldDisplaySetting = this.element.getAttribute(\"data-old-display\");\n if(oldDisplaySetting !== null){\n this.element.style.display = oldDisplaySetting;\n }\n }else{\n let oldDisplaySetting = this.element.getAttribute(\"data-old-display\");\n if(oldDisplaySetting === null){\n oldDisplaySetting = this.element.style.display;\n this.element.setAttribute(\"data-old-display\",oldDisplaySetting);\n }\n this.element.style.display = \"none\";\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/model/directive/BoundItemAttrRender.ts","import {BoundItemAttribute} from \"../BoundItemAttribute\";\nimport {UkuleleUtil} from \"../../util/UkuleleUtil\";\n\nexport class BoundItemAttrStyle extends BoundItemAttribute{\n constructor(attrName:string, ukuTag:string, element:HTMLElement, uku:any){\n if(ukuTag !== \"style\"){\n throw new TypeError(\"it doesn't use uku-style\");\n }\n super(attrName,ukuTag,element,uku);\n }\n render(controllers):void{\n let attr:string = this.attributeName;\n let elementName:string = this.element.tagName;\n let finalValue = UkuleleUtil.getFinalValue(controllers,attr);\n for(let cssName in finalValue){\n this.element.style[cssName] = finalValue[cssName];\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/model/directive/BoundItemAttrStyle.ts","import {BoundItemAttribute} from \"../BoundItemAttribute\";\nimport {UkuleleUtil} from \"../../util/UkuleleUtil\";\n\nexport class BoundItemAttrValue extends BoundItemAttribute{\n constructor(attrName:string, ukuTag:string, element:HTMLElement, uku:any){\n if(ukuTag !== \"value\"){\n throw new TypeError(\"it doesn't use uku-value\");\n }\n super(attrName,ukuTag,element,uku);\n }\n render(controllers):void{\n let attr:string = this.attributeName;\n let elementName:string = this.element.tagName;\n let finalValue = UkuleleUtil.getFinalValue(controllers,attr);\n if(elementName === \"INPUT\" && this.element.getAttribute(\"type\") === \"checkbox\"){\n \t\t(this.element as HTMLInputElement).checked = finalValue;\n \t}\n \telse{\n (this.element as HTMLInputElement).value = finalValue;\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/model/directive/BoundItemAttrValue.ts","import {BoundItemAttribute} from \"../BoundItemAttribute\";\nimport {UkuleleUtil} from \"../../util/UkuleleUtil\";\n\nexport class BoundItemAttrVisible extends BoundItemAttribute{\n constructor(attrName:string, ukuTag:string, element:HTMLElement, uku:any){\n if(ukuTag !== \"visible\"){\n throw new TypeError(\"it doesn't use uku-visible\");\n }\n super(attrName,ukuTag,element,uku);\n }\n render(controllers):void{\n let attr:string = this.attributeName;\n let elementName:string = this.element.tagName;\n let finalValue = UkuleleUtil.getFinalValue(controllers,attr);\n if(finalValue){\n this.element.style.visibility = \"visible\";\n }else{\n this.element.style.visibility = \"hidden\";\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/model/directive/BoundItemAttrVisible.ts","import {BoundItemBase} from \"./BoundItemBase\";\nimport {UkuleleUtil} from \"../util/UkuleleUtil\";\nimport {Selector} from \"../extend/Selector\";\nimport {IUkulele} from \"../core/IUkulele\";\nexport class BoundItemExpression extends BoundItemBase{\n expression:string;\n constructor(attrName:string, expression:string, element:HTMLElement, uku:IUkulele){\n super(attrName,element,uku);\n this.expression = expression;\n }\n\n render(controllers) :void{\n let finalValue = UkuleleUtil.getFinalValue(controllers,this.attributeName);\n Selector.directText(this.element,finalValue);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/model/BoundItemExpression.ts","import {BoundItemBase} from \"./BoundItemBase\";\nimport {UkuleleUtil} from \"../util/UkuleleUtil\";\nimport {IUkulele} from \"../core/IUkulele\";\nexport class BoundItemInnerText extends BoundItemBase{\n tagName:string;\n constructor(attrName:string, element:HTMLElement, uku:IUkulele){\n super(attrName,element,uku);\n this.tagName = 'text';\n }\n\n render(controllers):void {\n let finalValue = UkuleleUtil.getFinalValue(controllers,this.attributeName);\n this.element.innerHTML = finalValue;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/model/BoundItemInnerText.ts","import {BoundItemBase} from \"./BoundItemBase\";\nimport {UkuleleUtil} from \"../util/UkuleleUtil\";\nimport {IUkulele} from \"../core/IUkulele\";\n\nexport class BoundItemRepeat extends BoundItemBase{\n expression:string;\n renderTemplate:string;\n parentElement:Node;\n beginCommentString:string;\n endCommentString:string;\n constructor(attrName, itemName, element, uku){\n super(attrName, element, uku);\n this.expression = itemName;\n this.renderTemplate = element.outerHTML;\n this.parentElement = element.parentNode;\n this.beginCommentString = undefined;\n this.endCommentString = undefined;\n }\n\n render(controllers) {\n let finalValue = UkuleleUtil.getFinalValue(controllers, this.attributeName);\n if (!finalValue) {\n return;\n }\n if(typeof finalValue === \"number\" && Math.floor(finalValue) === finalValue){\n //finalValue = \n let newFinalValue = [];\n for(let num=1; num <= finalValue; num++){\n //let item = {value: num};\n newFinalValue.push(num);\n }\n finalValue = newFinalValue;\n }\n\n let self = this;\n if (this.element && this.element.parentNode) {\n //create repeate begin comment\n this.beginCommentString = \"begin uku-repeat: \" + this.expression + \" in \" + this.attributeName;\n let beginComment = document.createComment(this.beginCommentString);\n this.element.parentNode.insertBefore(beginComment, this.element);\n //create repeate end comment\n this.endCommentString = \"end uku-repeat: \" + this.expression + \" in \" + this.attributeName;\n let endComment = document.createComment(this.endCommentString);\n this.element.parentNode.insertBefore(endComment, this.element.nextSibling);\n //remove definition dom\n this.element.parentNode.removeChild(this.element);\n }\n let filter:NodeFilter = {acceptNode: function(node){\n if (node.nodeValue === self.beginCommentString) {\n return NodeFilter.FILTER_ACCEPT;\n }\n return NodeFilter.FILTER_SKIP;\n }};\n let safeFilter:any = filter.acceptNode;\n safeFilter.acceptNode = filter.acceptNode;\n let treeWalker = document.createTreeWalker(this.parentElement,\n NodeFilter.SHOW_COMMENT,\n safeFilter,\n false);\n \n /*function filter(node:Node) :any{\n if (node.nodeValue === self.beginCommentString) {\n return (NodeFilter.FILTER_ACCEPT);\n }\n return (NodeFilter.FILTER_SKIP);\n }*/\n\n function generateTempContainer():HTMLElement{\n let index = UkuleleUtil.searchHtmlTag(self.renderTemplate,\"tr\");\n let index2 = UkuleleUtil.searchHtmlTag(self.renderTemplate,\"th\");\n if(index === -1 || index2 === -1 ){\n return document.createElement(\"tbody\");\n }else{\n return document.createElement(\"div\");\n }\n }\n\n while (treeWalker.nextNode()) {\n let commentNode = treeWalker.currentNode;\n if (commentNode && commentNode.nodeValue === this.beginCommentString) {\n //remove overtime dom.\n while (commentNode.nextSibling && commentNode.nextSibling.nodeValue !== this.endCommentString) {\n commentNode.parentNode.removeChild(commentNode.nextSibling);\n }\n //create new dom\n let tempDiv = generateTempContainer();\n let blankDiv = generateTempContainer();\n commentNode.parentNode.insertBefore(blankDiv, commentNode.nextSibling);\n for (let i = 0; i < finalValue.length; i++) {\n tempDiv.insertAdjacentHTML('beforeEnd' as InsertPosition, this.renderTemplate);\n if (i === finalValue.length - 1) {\n let childrenHTML = tempDiv.innerHTML;\n blankDiv.insertAdjacentHTML('beforeBegin' as InsertPosition, childrenHTML);\n commentNode.parentNode.removeChild(blankDiv);\n tempDiv = null;\n blankDiv = null;\n }\n }\n\n let child:HTMLElement = (commentNode as HTMLElement).nextElementSibling as HTMLElement;\n let time = new Date().getTime();\n for (let j = 0; j < finalValue.length; j++) {\n child.removeAttribute(\"uku-repeat\");\n let compDef = this.uku._internal_getDefinitionManager().getComponentsDefinition();\n let compPool = this.uku._internal_getDefinitionManager().getComponentsPool();\n this.uku._internal_getDefinitionManager().setComponentsDefinition(compDef);\n this.uku._internal_getDefinitionManager().setComponentsPool(compPool);\n let sibling:HTMLElement = child.nextSibling as HTMLElement;\n let itemType = typeof finalValue[j];\n let alias = \"repeatItem_\"+Math.floor(time * Math.random()).toString() + \"_\" + this.expression + \"$\";\n if(itemType === \"object\"){\n this.uku.registerController(alias, finalValue[j]);\n }else {\n this.uku.registerController(alias, {'value':finalValue[j]});\n alias = alias + \".value\";\n }\n let pattern = new RegExp(\"\\\\b\"+ this.expression + \"(?!\\\\-|\\\\s|\\\\w|\\\\=)\",\"gm\");\n //let pattern = new RegExp(this.expression+\"(?!\\\\w)\",\"gm\");\n let newOuterHtml = child.outerHTML.replace(pattern,alias);\n child.insertAdjacentHTML('afterend',newOuterHtml);\n let newItemDom:HTMLElement = child.nextSibling as HTMLElement;\n child.parentNode.removeChild(child);\n child = newItemDom;\n this.uku._internal_dealWithElement(child,(element)=>{\n if (this.element.tagName === \"OPTION\") {\n let expression = (this.parentElement as HTMLInputElement).getAttribute(\"uku-selected\");\n let tempArr = expression.split(\"|\");\n expression = tempArr[0];\n let key = tempArr[1];\n let value = this.uku._internal_getDefinitionManager().getFinalValueByExpression(expression);\n if (key) {\n (this.parentElement as HTMLInputElement).value = value[key];\n } else {\n (this.parentElement as HTMLInputElement).value = value;\n }\n }\n });\n child = sibling;\n }\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/model/BoundItemRepeat.ts","import {BoundItemBase} from \"./BoundItemBase\";\nimport {UkuleleUtil} from \"../util/UkuleleUtil\";\nimport {IUkulele} from \"../core/IUkulele\";\nexport class BoundItemComponentAttribute extends BoundItemBase{\n ukuTag:string;\n componentController:any;\n constructor(attrName:string, ukuTag:string, cc:any, uku:IUkulele){\n super(attrName,null,uku);\n this.ukuTag = ukuTag;\n this.componentController = cc;\n }\n render(controllers) :void{\n let finalValue = UkuleleUtil.getFinalValue(controllers,this.attributeName);\n this.componentController[this.ukuTag] = finalValue;\n this.uku.refresh(this.componentController._alias);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/model/BoundItemComponentAttribute.ts","import { UkuleleUtil } from '../util/UkuleleUtil';\nimport { EventListener } from '../extend/EventListener';\nimport { Selector } from '../extend/Selector';\n\nfunction elementChangedBinder(element, tagName, controllerModel, handler, host) {\n let elementStrategies = [inputTextCase, textareaCase, selectCase, checkboxCase, radioCase];\n for (let i = 0; i < elementStrategies.length; i++) {\n let func = elementStrategies[i];\n let goon = func.apply(this, arguments);\n if (goon) {\n break;\n }\n }\n}\n\n\nfunction inputTextCase(element, tagName, controllerModel, handler, host) {\n let elementName = element.tagName;\n if (elementName === \"INPUT\" && isSupportInputType(element) && tagName === \"value\") {\n let eventType = 'change';\n let inputType = element.getAttribute('type');\n if (inputType === \"text\"\n || inputType === \"text\"\n || inputType === \"password\"\n || inputType === \"tel\"\n || inputType === \"number\"\n || inputType === \"search\") {\n eventType = 'input';\n }\n EventListener.addEventListener(element, eventType, (e) => {\n let attr = element.getAttribute(\"uku-\" + tagName);\n UkuleleUtil.setFinalValue(controllerModel.controllerInstance, attr, element.value);\n if (handler) {\n handler.call(host, controllerModel.alias, element);\n }\n });\n return true;\n }\n return false;\n}\n\nfunction isSupportInputType(element) {\n let type = element.getAttribute(\"type\");\n if (type !== \"checkbox\" && type !== \"radio\") {\n return true;\n }\n return false;\n}\n\nfunction textareaCase(element, tagName, controllerModel, handler, host) {\n let elementName = element.tagName;\n if (elementName === \"TEXTAREA\" && tagName === \"value\") {\n EventListener.addEventListener(element, 'input', function (e) {\n let attr = element.getAttribute(\"uku-\" + tagName);\n UkuleleUtil.setFinalValue(controllerModel.controllerInstance, attr, element.value);\n if (handler) {\n handler.call(host, controllerModel.alias, element);\n }\n });\n return true;\n }\n return false;\n}\n\nfunction selectCase(element, tagName, controllerModel, handler, host) {\n let elementName = element.tagName;\n if ((elementName === \"SELECT\" && tagName === \"selected\")) {\n EventListener.addEventListener(element, 'change', function (e) {\n let attr = element.getAttribute(\"uku-\" + tagName);\n let key;\n let tmpArr = attr.split(\"|\");\n attr = tmpArr[0];\n\n let options = Selector.querySelectorAll(element, \"option\");\n for (let j = 0; j < options.length; j++) {\n let option: HTMLOptionElement = options[j] as HTMLOptionElement;\n if (option.selected) {\n let selectedItem = JSON.parse(option.getAttribute(\"data-item\"));\n UkuleleUtil.setFinalValue(controllerModel.controllerInstance, attr, selectedItem);\n\n }\n }\n if (handler) {\n handler.call(host, controllerModel.alias, element);\n }\n });\n return true;\n }\n return false;\n}\n\nfunction checkboxCase(element, tagName, controllerModel, handler, host) {\n let elementName = element.tagName;\n\n if (elementName === \"INPUT\" && tagName === \"value\" && element.getAttribute(\"type\") === \"checkbox\") {\n EventListener.addEventListener(element, 'change', function (e) {\n let attr = element.getAttribute(\"uku-\" + tagName);\n\n UkuleleUtil.setFinalValue(controllerModel.controllerInstance, attr, element.checked);\n if (handler) {\n handler.call(host, controllerModel.alias, element);\n }\n });\n return true;\n }\n return false;\n}\n\nfunction radioCase(element, tagName, controllerModel, handler, host) {\n let elementName = element.tagName;\n\n if (elementName === \"INPUT\" && tagName === \"selected\" && element.getAttribute(\"type\") === \"radio\") {\n EventListener.addEventListener(element, 'change', function (e) {\n let attr = element.getAttribute(\"uku-\" + tagName);\n\n if (element.checked) {\n UkuleleUtil.setFinalValue(controllerModel.controllerInstance, attr, element.value);\n if (handler) {\n handler.call(host, controllerModel.alias, element);\n }\n }\n });\n return true;\n }\n return false;\n}\n\nexport { elementChangedBinder };\n\n\n\n// WEBPACK FOOTER //\n// ./src/core/ElementActionBinder.ts"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///uku.js","webpack:///webpack/bootstrap e7b6fba92938868f9718","webpack:///./src/util/UkuleleUtil.ts","webpack:///./src/model/BoundItemAttribute.ts","webpack:///./src/extend/Selector.ts","webpack:///./src/model/BoundItemBase.ts","webpack:///./src/core/Event.ts","webpack:///./src/core/EventEmitter.ts","webpack:///./src/core/UkuEventType.ts","webpack:///./src/extend/EventListener.ts","webpack:///./src/core/Ukulele.ts","webpack:///./src/core/DefinitionManager.ts","webpack:///./src/extend/Ajax.ts","webpack:///./src/model/ControllerModel.ts","webpack:///./src/model/ComponentModel.ts","webpack:///./src/model/ComponentPoolItem.ts","webpack:///./src/model/ComponentConfiguration.ts","webpack:///./src/core/DirtyChecker.ts","webpack:///./src/util/ObjectUtil.ts","webpack:///./src/core/Analyzer.ts","webpack:///./src/core/BoundItemAttributeFactory.ts","webpack:///./src/model/directive/BoundItemAttrSelected.ts","webpack:///./src/model/directive/BoundItemAttrDataItem.ts","webpack:///./src/model/directive/BoundItemAttrSrc.ts","webpack:///./src/model/directive/BoundItemAttrDisabled.ts","webpack:///./src/model/directive/BoundItemAttrRender.ts","webpack:///./src/model/directive/BoundItemAttrStyle.ts","webpack:///./src/model/directive/BoundItemAttrValue.ts","webpack:///./src/model/directive/BoundItemAttrVisible.ts","webpack:///./src/model/BoundItemExpression.ts","webpack:///./src/model/BoundItemInnerText.ts","webpack:///./src/model/BoundItemRepeat.ts","webpack:///./src/model/BoundItemComponentAttribute.ts","webpack:///./src/core/ElementActionBinder.ts"],"names":["root","factory","exports","module","define","amd","a","i","this","modules","__webpack_require__","moduleId","installedModules","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","value","Selector_1","ComponentConfiguration_1","ValueAndParent","_value","_parant","parent","UkuleleUtil","searchHtmlTag","htmlString","tagName","reTemp","re","RegExp","search","getInnerHtml","match","index","matchString","tempString","substr","index2","lastIndexOf","substring","replace","getComponentConfiguration","tempDom","document","createElement","innerHTML","tpl","Selector","querySelectorAll","scripts","stylesheet","deps","ccs","length","script","src","push","ComponentConfiguration","searchUkuAttrTag","isUkuAttrTag","getAttrFromUkuTag","ukuTag","camelCase","names","split","charAt","toUpperCase","searchUkuExpTag","expression","searchUkuFuncArg","re1","re2","isRepeat","element","getAttribute","isInRepeat","parents","parent_1","nodeType","getBoundModelInstantName","controlInstName","getBoundModelInstantNames","controller_alias_list","arr","forEach","alias","pattern","console","count","getFinalValue","objects","attrName","tempScope","pattern2","result","eval","err","setFinalValue","valueString","JSON","stringify","evalString","wrapScriptInComponent","originalScript","__extends","extendStatics","setPrototypeOf","__proto__","Array","b","__","constructor","create","BoundItemBase_1","UkuleleUtil_1","BoundItemAttribute","_super","uku","_this","render","controllers","attr","attributeName","finalValue","setAttribute","removeAttribute","BoundItemBase","query","window","find","fuzzyFind","text","attributes","nodeName","directText","nodes","childNodes","node","nodeValue","trim","parentNode","_attrName","_element","_uku","Event","_eventType","eventType","EventEmitter","eventsPool","getEventsPool","addListener","handler","removeListener","splice","hasListener","dispatchEvent","event","handlers","UkuEventType","INITIALIZED","REFRESH","HANDLE_ELEMENT_COMPLETED","EventListener","addEventListener","EventEmitter_1","DefinitionManager_1","DirtyChecker_1","Analyzer_1","UkuEventType_1","Event_1","Ukulele","_a","apply","arguments","promiseArray","_childrenUku","init","Promise","all","then","manageApplication","setChildrenUku","_i","controllers_1","cc","_alias","handleElement","handleElementCompletedFunc","analyizeElement","e","registerController","instanceName","controllerInst","_internal_getDefinitionManager","addControllerDefinition","getController","getControllerDefinition","controllerInstance","registerComponent","tag","templateUrl","preload","addComponentDefinition","getComponent","getComponentController","componentId","getControllerInstByDomId","refresh","excludeElement","dirtyChecker","DirtyChecker","runDirtyChecking","defMgr","DefinitionManager","_internal_dealWithElement","callback","apps","Error","ele","anylyzer","Analyzer","retFunc","ANALYIZE_COMPLETED","__awaiter","thisArg","_arguments","P","generator","resolve","reject","fulfilled","step","next","rejected","done","__generator","body","verb","v","op","f","TypeError","_","y","t","label","ops","pop","trys","g","sent","throw","return","Symbol","iterator","Ajax_1","ControllerModel_1","ComponentModel_1","ComponentPoolItem_1","controllersDefinition","componentsDefinition","componentsPool","copyControllers","dependentScriptsCache","ajax","Ajax","getComponentsDefinition","getComponentsPool","setComponentsPool","pool","setComponentsDefinition","getComponentDefinition","getControllersDefinition","getCopyControllers","controllerModel","ControllerModel","domId","controller","_dom","id","ComponentPoolItem","componentConfig","analyizeComponent","addLazyComponentDefinition","lazy","getBoundAttributeValue","additionalArgu","controllerModels","getControllerModelByName","parameters","concat","normalReg","normals","matchAlias","ccReg","ccAlias","repeatReg","repeats","repeatAlias","getFinalValueByExpression","config","loadDependentScript","self","head","getElementsByTagName","type","charset","async","onload","target","appendChild","tmpAMD","ccsExternal","dep","_b","dependentScripts","undefined","componentControllerScript","buildeComponentModel","template","style","dealWithShadowStyle","styleArray","newArray","newValue","join","debugComment","controllerClazz","newComp","ComponentModel","error","url","request","XMLHttpRequest","onreadystatechange","readyState","status","responseText","open","send","ctrlInst","boundItems","addBoundItem","boundItem","getBoundItemsByName","tempBoundItems","clazz","_tagName","_templateUrl","_lazy","_template","_dependentScripts","_componentControllerScript","_stylesheet","ObjectUtil_1","oldValueCache","ctrlAliasName","watchController","oldValueMap","changedElementCount","previousFinalValue","ObjectUtil","compare","changedBoundItems","j","changedBoundItem","deepClone","isArray","obj","toString","getType","objA","objB","typeB","keys_a","keys","keys_b","key","valuA","valuB","isEqual","itemA","itemB","isEqual2","BoundItemAttributeFactory_1","BoundItemExpression_1","BoundItemInnerText_1","BoundItemRepeat_1","BoundItemComponentAttribute_1","ElementActionBinder_1","EventListener_1","dealWithAttribute","boundItem_1","BoundItemAttributeFactory","getInstance","generateInstance","elementChangedBinder","searchComponent","searchExpression","searchUkuAttribute","sortAttributes","subElement","orderAttrs","listenerAttrs","attribute","subElements","isSelfHasUkuTag","allChildren","child","matchElement","tempArr","shift","dealWithEvent","dealWithRepeat","dealWithInnerText","comp","attrs","compDef","localName","dealWithComponent","children","Clazz","time","randomAlias","tempFragment","htmlDom","_loop_1","this_1","Date","getTime","Math","floor","random","insertAdjacentHTML","outerHTML","previousElementSibling","classList","add","fire","data","bubbles","cancelable","CustomEvent","toLowerCase","boundItem_2","BoundItemComponentAttribute","controllers_2","removeChild","_initialized","dealWithExpression","slice","boundItem_3","BoundItemExpression","controllers_3","boundItem_4","BoundItemInnerText","controllers_4","eventName","eventNameInListener","alias_list","Function","log","arg","new_expression_1","repeatExpression","itemName","controllers_5","boundItem_5","BoundItemRepeat","BoundItemAttrSelected_1","BoundItemAttrDataItem_1","BoundItemAttrSrc_1","BoundItemAttrDisabled_1","BoundItemAttrRender_1","BoundItemAttrStyle_1","BoundItemAttrValue_1","BoundItemAttrVisible_1","BoundItemAttribute_1","_instance","instance","BountItemAttrSelected","BoundItemAttrDataItem","BoundItemAttrSrc","BoundItemAttrDisabled","BoundItemAttrRender","BoundItemAttrStyle","BoundItemAttrValue","BoundItemAttrVisible","elementName","disabled","oldDisplaySetting","display","cssName","checked","visibility","renderTemplate","parentElement","beginCommentString","endCommentString","replaceVarible","varName","childTag","innerText","textContent","generateTempContainer","newFinalValue","num","beginComment","createComment","insertBefore","endComment","nextSibling","filter","acceptNode","NodeFilter","FILTER_ACCEPT","FILTER_SKIP","safeFilter","treeWalker","createTreeWalker","SHOW_COMMENT","nextNode","commentNode","currentNode","tempDiv","blankDiv","childrenHTML","nextElementSibling","compPool","sibling","itemType","newItemDom","componentController","host","elementStrategies","inputTextCase","textareaCase","selectCase","checkboxCase","radioCase","isSupportInputType","inputType","options","option","selected","selectedItem","parse"],"mappings":"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","file":"uku.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 8);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Selector_1 = __webpack_require__(2);\r\nvar ComponentConfiguration_1 = __webpack_require__(14);\r\nvar ValueAndParent = (function () {\r\n function ValueAndParent(_value, _parant) {\r\n this.value = _value;\r\n this.parent = _parant;\r\n }\r\n return ValueAndParent;\r\n}());\r\nvar UkuleleUtil = (function () {\r\n function UkuleleUtil() {\r\n }\r\n UkuleleUtil.searchHtmlTag = function (htmlString, tagName) {\r\n var reTemp = \"^<\" + tagName + \"[\\\\s\\\\S]*>\" + \"[\\\\s\\\\S]*</\" + tagName + \">$\";\r\n var re = new RegExp(reTemp);\r\n var index = htmlString.search(re);\r\n return index;\r\n };\r\n UkuleleUtil.getInnerHtml = function (htmlString, tagName) {\r\n var reTemp = \"<\" + tagName + \"[\\\\s\\\\S]*>\" + \"[\\\\s\\\\S]*</\" + tagName + \">\";\r\n var re = new RegExp(reTemp);\r\n var match = htmlString.match(re);\r\n if (match.index > -1) {\r\n var matchString = match[0];\r\n var index = matchString.search(\">\");\r\n var tempString = matchString.substr(index + 1);\r\n var index2 = tempString.lastIndexOf(\"</\");\r\n tempString = tempString.substring(0, index2);\r\n tempString = tempString.replace(/(^\\s*)|(\\s*$)/g, \"\");\r\n return tempString;\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n UkuleleUtil.getComponentConfiguration = function (htmlString) {\r\n var tempDom = document.createElement(\"div\");\r\n tempDom.innerHTML = htmlString;\r\n var tpl = Selector_1.Selector.querySelectorAll(tempDom, \"template\");\r\n var scripts = Selector_1.Selector.querySelectorAll(tempDom, \"script\");\r\n var stylesheet = Selector_1.Selector.querySelectorAll(tempDom, \"style\");\r\n var deps = [];\r\n var ccs = null;\r\n for (var i = 0; i < scripts.length; i++) {\r\n var script = scripts[i];\r\n if (script.src !== \"\") {\r\n deps.push(script.src);\r\n }\r\n else {\r\n ccs = script.innerHTML;\r\n }\r\n }\r\n if (stylesheet && stylesheet[0]) {\r\n return new ComponentConfiguration_1.ComponentConfiguration(tpl[0].innerHTML, deps, ccs, stylesheet[0].innerHTML);\r\n }\r\n else {\r\n return new ComponentConfiguration_1.ComponentConfiguration(tpl[0].innerHTML, deps, ccs);\r\n }\r\n };\r\n UkuleleUtil.searchUkuAttrTag = function (htmlString) {\r\n var re = /^uku\\-.*/;\r\n var index = htmlString.search(re);\r\n return index;\r\n };\r\n UkuleleUtil.isUkuAttrTag = function (tagName) {\r\n if (this.searchUkuAttrTag(tagName) > -1) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n UkuleleUtil.getAttrFromUkuTag = function (ukuTag, camelCase) {\r\n if (camelCase === void 0) { camelCase = false; }\r\n if (UkuleleUtil.searchUkuAttrTag(ukuTag) === 0) {\r\n ukuTag = ukuTag.replace('uku-', '');\r\n }\r\n if (camelCase) {\r\n var names = ukuTag.split('-');\r\n ukuTag = names[0];\r\n for (var i = 1; i < names.length; i++) {\r\n var firstLetter = names[i].charAt(0).toUpperCase();\r\n ukuTag = ukuTag + firstLetter + names[i].substr(1);\r\n }\r\n }\r\n return ukuTag;\r\n };\r\n UkuleleUtil.searchUkuExpTag = function (expression) {\r\n var re = /^\\{\\{.*\\}\\}$/;\r\n var index = expression.search(re);\r\n return index;\r\n };\r\n UkuleleUtil.searchUkuFuncArg = function (htmlString) {\r\n var re1 = /[\\+\\-\\*\\/\\%\\?\\:\\>\\<]/;\r\n var index = htmlString.search(re1);\r\n if (index === -1) {\r\n var re2 = /\\(.*\\)$/;\r\n index = htmlString.search(re2);\r\n return index;\r\n }\r\n else {\r\n return -1;\r\n }\r\n };\r\n UkuleleUtil.isRepeat = function (element) {\r\n if (element.getAttribute(\"uku-repeat\")) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n UkuleleUtil.isInRepeat = function (element) {\r\n var parents = Selector_1.Selector.parents(element);\r\n for (var i = 0; i < parents.length; i++) {\r\n var parent_1 = parents[i];\r\n if (parent_1.nodeType !== 9) {\r\n var b = parent_1.getAttribute(\"uku-repeat\");\r\n if (b) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n UkuleleUtil.getBoundModelInstantName = function (expression) {\r\n var controlInstName = expression.split('.')[0];\r\n if (controlInstName) {\r\n return controlInstName;\r\n }\r\n return undefined;\r\n };\r\n UkuleleUtil.getBoundModelInstantNames = function (controller_alias_list, expression) {\r\n var arr = [];\r\n controller_alias_list.forEach(function (alias) {\r\n var pattern = new RegExp(\"\\\\b\" + alias, \"gm\");\r\n console.count('getBoundModelInstantNames执行的次数');\r\n if (expression.search(pattern) > -1) {\r\n arr.push(alias);\r\n }\r\n });\r\n return arr;\r\n };\r\n UkuleleUtil.getFinalValue = function (objects, attrName) {\r\n return (function () {\r\n var tempScope = {};\r\n objects.forEach(function (object) {\r\n tempScope[object['_alias']] = object;\r\n var alias = object['_alias'];\r\n var pattern = new RegExp(\"\\\\b\" + alias + \"\\\\b\", \"gm\");\r\n attrName = attrName.replace(pattern, \"tempScope.\" + alias);\r\n var pattern2 = new RegExp(\"\\\\.tempScope\\\\.\" + alias, \"gm\");\r\n attrName = attrName.replace(pattern2, \".\" + alias);\r\n });\r\n var result;\r\n try {\r\n result = eval(attrName);\r\n }\r\n catch (err) {\r\n result = '';\r\n }\r\n tempScope = null;\r\n return result;\r\n })();\r\n };\r\n UkuleleUtil.setFinalValue = function (object, attrName, value) {\r\n return (function () {\r\n var tempScope = {};\r\n tempScope[object['_alias']] = object;\r\n var valueString;\r\n if (typeof value === \"string\") {\r\n valueString = '\"' + value + '\"';\r\n }\r\n else if (typeof value === \"object\") {\r\n valueString = \"JSON.parse('\" + JSON.stringify(value) + \"')\";\r\n }\r\n else {\r\n valueString = value;\r\n }\r\n var evalString = \"tempScope.\" + attrName + \"=\" + valueString;\r\n eval(evalString);\r\n })();\r\n };\r\n UkuleleUtil.wrapScriptInComponent = function (originalScript) {\r\n var trimScript = originalScript.replace(new RegExp('\\\\s', 'gm'), '');\r\n if (trimScript.search(new RegExp('\\\\(function\\\\(')) === 0) {\r\n return originalScript;\r\n }\r\n else {\r\n var selfExcutingFrame = \"\\t(function(){\\n return function(uku){ \\n Object.defineProperty(this, 'currentState', {\\n set: function(value){\\n if(value){\\n this._currentState = value;\\n uku.refresh(this._alias);\\n }\\n }\\n });\\n\\n this.setState = function(state){\\n this._currentState = state;\\n uku.refresh(this._alias);\\n };\\n\\n \" + originalScript + \"\\n };\\n })();\\n \";\r\n return selfExcutingFrame;\r\n }\r\n };\r\n return UkuleleUtil;\r\n}());\r\nexports.UkuleleUtil = UkuleleUtil;\r\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemBase_1 = __webpack_require__(3);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\n//import {SelectedDecorator} from \"./decorator/SelectedDecorator\";\r\nvar BoundItemAttribute = (function (_super) {\r\n __extends(BoundItemAttribute, _super);\r\n function BoundItemAttribute(attrName, ukuTag, element, uku) {\r\n var _this = _super.call(this, attrName, element, uku) || this;\r\n _this.ukuTag = ukuTag;\r\n return _this;\r\n }\r\n BoundItemAttribute.prototype.render = function (controllers) {\r\n var attr = this.attributeName;\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, attr);\r\n if (typeof finalValue === 'boolean') {\r\n if (finalValue === true) {\r\n this.element.setAttribute(this.ukuTag, this.ukuTag);\r\n }\r\n else {\r\n this.element.removeAttribute(this.ukuTag);\r\n }\r\n }\r\n else {\r\n this.element.setAttribute(this.ukuTag, finalValue);\r\n }\r\n };\r\n return BoundItemAttribute;\r\n}(BoundItemBase_1.BoundItemBase));\r\nexports.BoundItemAttribute = BoundItemAttribute;\r\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Selector = (function () {\r\n function Selector() {\r\n }\r\n Selector.querySelectorAll = function (element, query) {\r\n if (window.hasOwnProperty('jQuery') && typeof window['jQuery'] !== \"undefined\") {\r\n return window['jQuery'](element).find(query);\r\n }\r\n else {\r\n return element.querySelectorAll(query);\r\n }\r\n };\r\n Selector.fuzzyFind = function (element, text) {\r\n if (element && element.attributes) {\r\n for (var i = 0; i < element.attributes.length; i++) {\r\n var attr = element.attributes[i];\r\n if (attr.nodeName.search(text) > -1) {\r\n return element;\r\n }\r\n }\r\n }\r\n return null;\r\n };\r\n Selector.directText = function (element, text) {\r\n var o = \"\";\r\n var nodes = element.childNodes;\r\n for (var i = 0; i <= nodes.length - 1; i++) {\r\n var node = nodes[i];\r\n if (node.nodeType === 3) {\r\n if (text || text === \"\" || text === 0 || text === false) {\r\n node.nodeValue = text;\r\n return;\r\n }\r\n else {\r\n o += node.nodeValue;\r\n }\r\n }\r\n }\r\n return o.trim();\r\n };\r\n Selector.parents = function (element) {\r\n var parents = [];\r\n while (element.parentNode && element.parentNode.tagName !== 'BODY') {\r\n parents.push(element.parentNode);\r\n element = element.parentNode;\r\n }\r\n return parents;\r\n };\r\n return Selector;\r\n}());\r\nexports.Selector = Selector;\r\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemBase = (function () {\r\n function BoundItemBase(_attrName, _element, _uku) {\r\n this.attributeName = _attrName;\r\n this.element = _element;\r\n this.uku = _uku;\r\n }\r\n BoundItemBase.prototype.render = function (controllers) {\r\n };\r\n return BoundItemBase;\r\n}());\r\nexports.BoundItemBase = BoundItemBase;\r\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Event = (function () {\r\n function Event(_eventType, _element) {\r\n this.eventType = _eventType;\r\n this.element = _element;\r\n }\r\n return Event;\r\n}());\r\nexports.Event = Event;\r\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventEmitter = (function () {\r\n function EventEmitter() {\r\n this.eventsPool = {};\r\n }\r\n EventEmitter.prototype.getEventsPool = function () {\r\n return this.eventsPool;\r\n };\r\n EventEmitter.prototype.addListener = function (eventType, handler) {\r\n if (!this.eventsPool[eventType]) {\r\n this.eventsPool[eventType] = [];\r\n }\r\n this.eventsPool[eventType].push(handler);\r\n };\r\n EventEmitter.prototype.removeListener = function (eventType, handler) {\r\n if (this.eventsPool[eventType]) {\r\n for (var i = this.eventsPool[eventType].length - 1; i >= 0; i--) {\r\n if (this.eventsPool[eventType][i] === handler) {\r\n this.eventsPool[eventType].splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n EventEmitter.prototype.hasListener = function (eventType) {\r\n if (this.eventsPool[eventType] && this.eventsPool[eventType].length > 0) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n EventEmitter.prototype.dispatchEvent = function (event) {\r\n if (event && event.eventType) {\r\n var handlers = this.eventsPool[event.eventType];\r\n if (handlers) {\r\n for (var i = 0; i < handlers.length; i++) {\r\n handlers[i].call(this, event);\r\n }\r\n }\r\n }\r\n };\r\n return EventEmitter;\r\n}());\r\nexports.EventEmitter = EventEmitter;\r\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar UkuEventType = (function () {\r\n function UkuEventType() {\r\n }\r\n UkuEventType.INITIALIZED = 'initialized';\r\n UkuEventType.REFRESH = 'refresh';\r\n UkuEventType.HANDLE_ELEMENT_COMPLETED = \"handle_element_completed\";\r\n return UkuEventType;\r\n}());\r\nexports.UkuEventType = UkuEventType;\r\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventListener = (function () {\r\n function EventListener() {\r\n }\r\n EventListener.addEventListener = function (element, eventType, handler) {\r\n return element.addEventListener(eventType, handler);\r\n };\r\n return EventListener;\r\n}());\r\nexports.EventListener = EventListener;\r\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventEmitter_1 = __webpack_require__(5);\r\nvar DefinitionManager_1 = __webpack_require__(9);\r\nvar DirtyChecker_1 = __webpack_require__(15);\r\nvar Analyzer_1 = __webpack_require__(17);\r\nvar Selector_1 = __webpack_require__(2);\r\nvar UkuEventType_1 = __webpack_require__(6);\r\nvar Event_1 = __webpack_require__(4);\r\nexports.Ukulele = (_a = (function (_super) {\r\n __extends(Ukulele, _super);\r\n function Ukulele() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.promiseArray = [];\r\n _this._childrenUku = {};\r\n return _this;\r\n }\r\n Ukulele.prototype.init = function () {\r\n var _this = this;\r\n Promise.all(this.promiseArray).then(function () {\r\n _this.manageApplication();\r\n });\r\n };\r\n Ukulele.prototype.setChildrenUku = function (controllers, uku) {\r\n for (var _i = 0, controllers_1 = controllers; _i < controllers_1.length; _i++) {\r\n var cc = controllers_1[_i];\r\n var alias = cc._alias;\r\n if (!this._childrenUku[alias]) {\r\n this._childrenUku[alias] = [];\r\n }\r\n this._childrenUku[alias].push(uku);\r\n }\r\n };\r\n Ukulele.prototype.handleElement = function (element, handleElementCompletedFunc) {\r\n var _this = this;\r\n this.analyizeElement(element, function (e) {\r\n _this.dispatchEvent(new Event_1.Event(UkuEventType_1.UkuEventType.HANDLE_ELEMENT_COMPLETED, e));\r\n if (handleElementCompletedFunc && typeof handleElementCompletedFunc === 'function') {\r\n handleElementCompletedFunc(e.element);\r\n }\r\n });\r\n };\r\n Ukulele.prototype.registerController = function (instanceName, controllerInst) {\r\n window[instanceName] = controllerInst;\r\n this._internal_getDefinitionManager().addControllerDefinition(instanceName, controllerInst);\r\n };\r\n Ukulele.prototype.getController = function (instanceName) {\r\n return this._internal_getDefinitionManager().getControllerDefinition(instanceName).controllerInstance;\r\n };\r\n Ukulele.prototype.registerComponent = function (tag, templateUrl, preload) {\r\n var p = this._internal_getDefinitionManager().addComponentDefinition(tag, templateUrl, preload);\r\n this.promiseArray.push(p);\r\n };\r\n Ukulele.prototype.getComponent = function (tagName) {\r\n return this._internal_getDefinitionManager().getComponent(tagName);\r\n };\r\n Ukulele.prototype.getComponentController = function (componentId) {\r\n return this._internal_getDefinitionManager().getControllerInstByDomId(componentId);\r\n };\r\n Ukulele.prototype.refresh = function (alias, excludeElement) {\r\n if (!this.dirtyChecker) {\r\n this.dirtyChecker = new DirtyChecker_1.DirtyChecker(this);\r\n }\r\n this.dirtyChecker.runDirtyChecking(alias, excludeElement);\r\n };\r\n //internal function\r\n Ukulele.prototype._internal_getDefinitionManager = function () {\r\n if (!this.defMgr) {\r\n this.defMgr = new DefinitionManager_1.DefinitionManager(this);\r\n }\r\n return this.defMgr;\r\n };\r\n Ukulele.prototype._internal_dealWithElement = function (element, callback) {\r\n this.analyizeElement(element, callback);\r\n };\r\n Ukulele.prototype.manageApplication = function () {\r\n var _this = this;\r\n var apps = Selector_1.Selector.querySelectorAll(document, \"[uku-application]\");\r\n if (apps.length === 1) {\r\n this.analyizeElement(apps[0], function (ele) {\r\n _this.dispatchEvent(new Event_1.Event(UkuEventType_1.UkuEventType.INITIALIZED, ele));\r\n });\r\n }\r\n else {\r\n throw new Error(\"Only one 'uku-application' can be declared in a whole html.\");\r\n }\r\n };\r\n Ukulele.prototype.analyizeElement = function (element, callback) {\r\n var anylyzer = new Analyzer_1.Analyzer(this);\r\n if (callback) {\r\n (function (retFunc) {\r\n anylyzer.addListener(Analyzer_1.Analyzer.ANALYIZE_COMPLETED, function (e) {\r\n retFunc(e.element);\r\n });\r\n })(callback);\r\n }\r\n anylyzer.analyizeElement(element);\r\n };\r\n return Ukulele;\r\n }(EventEmitter_1.EventEmitter)),\r\n _a.INITIALIZED = 'initialized',\r\n _a.REFRESH = 'refresh',\r\n _a.HANDLE_ELEMENT_COMPLETED = \"handle_element_completed\",\r\n _a);\r\nvar _a;\r\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Ajax_1 = __webpack_require__(10);\r\nvar ControllerModel_1 = __webpack_require__(11);\r\nvar ComponentModel_1 = __webpack_require__(12);\r\nvar ComponentPoolItem_1 = __webpack_require__(13);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar DefinitionManager = (function () {\r\n function DefinitionManager(_uku) {\r\n this.controllersDefinition = {};\r\n this.componentsDefinition = {};\r\n this.componentsPool = {};\r\n this.copyControllers = {};\r\n this.dependentScriptsCache = {};\r\n this.ajax = new Ajax_1.Ajax();\r\n this.uku = _uku;\r\n }\r\n DefinitionManager.prototype.getComponentsDefinition = function () {\r\n return this.componentsDefinition;\r\n };\r\n DefinitionManager.prototype.getComponentsPool = function () {\r\n return this.componentsPool;\r\n };\r\n DefinitionManager.prototype.setComponentsPool = function (pool) {\r\n this.componentsPool = pool;\r\n };\r\n DefinitionManager.prototype.setComponentsDefinition = function (value) {\r\n this.componentsDefinition = value;\r\n };\r\n DefinitionManager.prototype.getComponentDefinition = function (tagName) {\r\n return this.componentsDefinition[tagName];\r\n };\r\n DefinitionManager.prototype.getControllerDefinition = function (instanceName) {\r\n return this.controllersDefinition[instanceName];\r\n };\r\n DefinitionManager.prototype.getControllersDefinition = function () {\r\n return this.controllersDefinition;\r\n };\r\n DefinitionManager.prototype.getComponent = function (tagName) {\r\n return this.componentsPool[tagName];\r\n };\r\n DefinitionManager.prototype.getCopyControllers = function () {\r\n return this.copyControllers;\r\n };\r\n DefinitionManager.prototype.addControllerDefinition = function (instanceName, controllerInst) {\r\n var controllerModel = new ControllerModel_1.ControllerModel(instanceName, controllerInst);\r\n controllerInst._alias = instanceName;\r\n this.controllersDefinition[instanceName] = controllerModel;\r\n };\r\n DefinitionManager.prototype.getControllerInstByDomId = function (domId) {\r\n for (var alias in this.controllersDefinition) {\r\n var controllerModel = this.controllersDefinition[alias];\r\n var controller = controllerModel.controllerInstance;\r\n if (controller._dom && controller._dom.id === domId) {\r\n return controller;\r\n }\r\n }\r\n return undefined;\r\n };\r\n DefinitionManager.prototype.addComponentDefinition = function (tag, templateUrl, preload) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n if (!preload) {\r\n _this.componentsPool[tag] = new ComponentPoolItem_1.ComponentPoolItem(tag, templateUrl, true);\r\n resolve();\r\n }\r\n else {\r\n _this.componentsPool[tag] = new ComponentPoolItem_1.ComponentPoolItem(tag, templateUrl, false);\r\n return _this.ajax.get(templateUrl).then(function (result) {\r\n var componentConfig = UkuleleUtil_1.UkuleleUtil.getComponentConfiguration(result);\r\n return _this.analyizeComponent(tag, componentConfig);\r\n });\r\n }\r\n });\r\n };\r\n DefinitionManager.prototype.addLazyComponentDefinition = function (tag, templateUrl) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n return _this.ajax.get(templateUrl).then(function (result) {\r\n var componentConfig = UkuleleUtil_1.UkuleleUtil.getComponentConfiguration(result);\r\n return _this.analyizeComponent(tag, componentConfig).then(function () {\r\n _this.componentsPool[tag] = { 'tagName': tag, 'templateUrl': templateUrl, 'lazy': false };\r\n resolve();\r\n });\r\n });\r\n });\r\n };\r\n DefinitionManager.prototype.getBoundAttributeValue = function (attr) {\r\n var additionalArgu = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n additionalArgu[_i - 1] = arguments[_i];\r\n }\r\n var controllerModels = this.getControllerModelByName(attr);\r\n var controllers = [];\r\n controllerModels.forEach(function (controllerModel) {\r\n controllers.push(controllerModel.controllerInstance);\r\n });\r\n var parameters = [this.uku, controllers, attr];\r\n parameters = parameters.concat(additionalArgu);\r\n var result = UkuleleUtil_1.UkuleleUtil.getFinalValue.apply(null, parameters);\r\n return result;\r\n };\r\n ;\r\n DefinitionManager.prototype.getControllerModelByName = function (expression) {\r\n var _this = this;\r\n var arr = [];\r\n var normalReg = /\\$\\w+\\./g;\r\n var normals = expression.match(normalReg);\r\n if (normals) {\r\n normals.forEach(function (matchAlias) {\r\n matchAlias = matchAlias.substr(0, matchAlias.length - 1);\r\n var controllerModel = _this.controllersDefinition[matchAlias];\r\n arr.push(controllerModel);\r\n });\r\n }\r\n var ccReg = /cc\\_\\w*\\./g;\r\n var ccs = expression.match(ccReg);\r\n if (ccs) {\r\n ccs.forEach(function (ccAlias) {\r\n ccAlias = ccAlias.substr(0, ccAlias.length - 1);\r\n var controllerModel = _this.controllersDefinition[ccAlias];\r\n arr.push(controllerModel);\r\n });\r\n }\r\n var repeatReg = /repeatItem\\_\\w*\\$/g;\r\n var repeats = expression.match(repeatReg);\r\n if (repeats) {\r\n repeats.forEach(function (repeatAlias) {\r\n //repeatAlias = repeatAlias.substr(0,repeatAlias.length-1);\r\n var controllerModel = _this.controllersDefinition[repeatAlias];\r\n arr.push(controllerModel);\r\n });\r\n }\r\n return arr;\r\n };\r\n ;\r\n DefinitionManager.prototype.getFinalValueByExpression = function (expression) {\r\n var controllerModels = this.getControllerModelByName(expression);\r\n var controllers = [];\r\n controllerModels.forEach(function (controllerModel) {\r\n controllers.push(controllerModel.controllerInstance);\r\n });\r\n return UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, expression);\r\n };\r\n ;\r\n DefinitionManager.prototype.analyizeComponent = function (tag, config) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n function loadDependentScript(src) {\r\n return new Promise(function (resolve, reject) {\r\n if (!self.dependentScriptsCache[src]) {\r\n var head = document.getElementsByTagName('HEAD')[0];\r\n var script = document.createElement('script');\r\n script.type = 'text/javascript';\r\n script.charset = 'utf-8';\r\n script.async = true;\r\n script.src = src;\r\n script.onload = function (e) {\r\n self.dependentScriptsCache[e.target['src']] = true;\r\n resolve();\r\n };\r\n head.appendChild(script);\r\n }\r\n else {\r\n resolve();\r\n }\r\n });\r\n }\r\n var deps, self, tmpAMD, ccsExternal, _a, i, dep;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n deps = config.dependentScripts;\r\n self = this;\r\n if (!(deps && deps.length > 0)) return [3 /*break*/, 7];\r\n tmpAMD = void 0;\r\n if (typeof window['define'] === 'function' && window['define'].amd) {\r\n tmpAMD = window['define'];\r\n window['define'] = undefined;\r\n }\r\n if (!!config.componentControllerScript) return [3 /*break*/, 2];\r\n ccsExternal = deps[deps.length - 1];\r\n _a = config;\r\n return [4 /*yield*/, this.ajax.get(ccsExternal)];\r\n case 1:\r\n _a.componentControllerScript = _b.sent();\r\n deps.pop();\r\n _b.label = 2;\r\n case 2:\r\n i = 0;\r\n _b.label = 3;\r\n case 3:\r\n if (!(i < deps.length)) return [3 /*break*/, 6];\r\n dep = deps[i];\r\n return [4 /*yield*/, loadDependentScript(dep)];\r\n case 4:\r\n _b.sent();\r\n _b.label = 5;\r\n case 5:\r\n i++;\r\n return [3 /*break*/, 3];\r\n case 6:\r\n if (tmpAMD) {\r\n window['define'] = tmpAMD;\r\n }\r\n this.buildeComponentModel(tag, config.template, config.componentControllerScript, config.stylesheet);\r\n return [2 /*return*/];\r\n case 7:\r\n this.buildeComponentModel(tag, config.template, config.componentControllerScript, config.stylesheet);\r\n return [2 /*return*/];\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n DefinitionManager.prototype.buildeComponentModel = function (tag, template, script, style) {\r\n var debugComment = \"//# sourceURL=\" + tag + \".js\";\r\n try {\r\n var controllerClazz = void 0;\r\n if (script) {\r\n script = UkuleleUtil_1.UkuleleUtil.wrapScriptInComponent(script);\r\n script += debugComment;\r\n controllerClazz = eval(script);\r\n }\r\n var newComp = new ComponentModel_1.ComponentModel(tag, template, controllerClazz);\r\n this.componentsDefinition[tag] = newComp;\r\n if (style) {\r\n dealWithShadowStyle(tag, style);\r\n }\r\n }\r\n catch (e) {\r\n console.error(e);\r\n }\r\n function dealWithShadowStyle(tagName, stylesheet) {\r\n var head = document.getElementsByTagName('HEAD')[0];\r\n var style = document.createElement('style');\r\n style.type = 'text/css';\r\n var styleArray = stylesheet.split(\"}\");\r\n var newArray = [];\r\n styleArray.forEach(function (value, index) {\r\n var newValue = value.replace(/^\\s*/, \"\");\r\n if (newValue) {\r\n newArray.push(newValue);\r\n }\r\n });\r\n stylesheet = newArray.join(\"}\\n\" + \".\" + tagName + \" \");\r\n stylesheet = \".\" + tagName + \" \" + stylesheet + \"}\";\r\n style.innerHTML = stylesheet;\r\n head.appendChild(style);\r\n }\r\n };\r\n return DefinitionManager;\r\n}());\r\nexports.DefinitionManager = DefinitionManager;\r\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Ajax = (function () {\r\n function Ajax() {\r\n }\r\n Ajax.prototype.get = function (url) {\r\n return new Promise(function (resolve, reject) {\r\n var request = new XMLHttpRequest();\r\n request.onreadystatechange = function () {\r\n if (request.readyState === 4) {\r\n if (request.status === 200) {\r\n resolve(request.responseText);\r\n }\r\n else {\r\n reject();\r\n }\r\n }\r\n };\r\n request.open(\"GET\", url, true);\r\n request.send(null);\r\n });\r\n };\r\n return Ajax;\r\n}());\r\nexports.Ajax = Ajax;\r\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ControllerModel = (function () {\r\n function ControllerModel(alias, ctrlInst) {\r\n this.alias = alias;\r\n this.controllerInstance = ctrlInst;\r\n this.boundItems = [];\r\n }\r\n ControllerModel.prototype.addBoundItem = function (boundItem) {\r\n this.boundItems.push(boundItem);\r\n };\r\n ControllerModel.prototype.getBoundItemsByName = function (name) {\r\n var tempBoundItems = [];\r\n for (var i = 0; i < this.boundItems.length; i++) {\r\n var boundItem = this.boundItems[i];\r\n if (boundItem.attributeName === name) {\r\n tempBoundItems.push(boundItem);\r\n }\r\n }\r\n return tempBoundItems;\r\n };\r\n return ControllerModel;\r\n}());\r\nexports.ControllerModel = ControllerModel;\r\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ComponentModel = (function () {\r\n function ComponentModel(tagName, template, clazz) {\r\n this.tagName = tagName;\r\n this.template = template;\r\n this.controllerClazz = clazz;\r\n }\r\n return ComponentModel;\r\n}());\r\nexports.ComponentModel = ComponentModel;\r\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ComponentPoolItem = (function () {\r\n function ComponentPoolItem(_tagName, _templateUrl, _lazy) {\r\n this.tagName = _tagName;\r\n this.templateUrl = _templateUrl;\r\n this.lazy = _lazy;\r\n }\r\n return ComponentPoolItem;\r\n}());\r\nexports.ComponentPoolItem = ComponentPoolItem;\r\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ComponentConfiguration = (function () {\r\n function ComponentConfiguration(_template, _dependentScripts, _componentControllerScript, _stylesheet) {\r\n if (_stylesheet === void 0) { _stylesheet = undefined; }\r\n this.template = _template;\r\n this.dependentScripts = _dependentScripts;\r\n this.componentControllerScript = _componentControllerScript;\r\n this.stylesheet = _stylesheet;\r\n }\r\n return ComponentConfiguration;\r\n}());\r\nexports.ComponentConfiguration = ComponentConfiguration;\r\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar ObjectUtil_1 = __webpack_require__(16);\r\nvar UkuEventType_1 = __webpack_require__(6);\r\nvar Event_1 = __webpack_require__(4);\r\nvar DirtyChecker = (function () {\r\n function DirtyChecker(_uku) {\r\n this.oldValueCache = {};\r\n this.uku = _uku;\r\n this.defMgr = this.uku._internal_getDefinitionManager();\r\n }\r\n DirtyChecker.prototype.runDirtyChecking = function (ctrlAliasName, excludeElement) {\r\n var _this = this;\r\n if (ctrlAliasName) {\r\n if (typeof (ctrlAliasName) === \"string\") {\r\n watchController(ctrlAliasName);\r\n }\r\n else if (ObjectUtil_1.ObjectUtil.isArray(ctrlAliasName)) {\r\n for (var i = 0; i < ctrlAliasName.length; i++) {\r\n watchController(ctrlAliasName[i]);\r\n }\r\n }\r\n }\r\n else {\r\n for (var alias in this.defMgr.getControllersDefinition()) {\r\n watchController(alias);\r\n }\r\n }\r\n function watchController(alias) {\r\n var controllerModel = _this.defMgr.getControllersDefinition()[alias];\r\n if (!controllerModel) {\r\n return;\r\n }\r\n var controller = controllerModel.controllerInstance;\r\n if (!_this.oldValueCache[alias]) {\r\n _this.oldValueCache[alias] = {};\r\n }\r\n var oldValueMap = _this.oldValueCache[alias];\r\n var changedElementCount = 0;\r\n for (var i = 0; i < controllerModel.boundItems.length; i++) {\r\n var boundItem = controllerModel.boundItems[i];\r\n var attrName = boundItem.attributeName;\r\n if (oldValueMap) {\r\n if (boundItem.hasOwnProperty('ukuTag') && boundItem['ukuTag'] === \"selected\") {\r\n attrName = attrName.split(\"|\")[0];\r\n }\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue([controller], attrName);\r\n var previousFinalValue = oldValueMap[attrName];\r\n if (!ObjectUtil_1.ObjectUtil.compare(previousFinalValue, finalValue)) {\r\n attrName = boundItem.attributeName;\r\n var changedBoundItems = controllerModel.getBoundItemsByName(attrName);\r\n for (var j = 0; j < changedBoundItems.length; j++) {\r\n var changedBoundItem = changedBoundItems[j];\r\n if (changedBoundItem.element !== excludeElement || (boundItem.hasOwnProperty('ukuTag') && changedBoundItem['ukuTag'] !== \"value\")) {\r\n changedElementCount++;\r\n changedBoundItem.render([controller]);\r\n }\r\n }\r\n oldValueMap[attrName] = ObjectUtil_1.ObjectUtil.deepClone(finalValue);\r\n }\r\n }\r\n }\r\n if (changedElementCount > 0 && _this.uku.hasListener(UkuEventType_1.UkuEventType.REFRESH)) {\r\n _this.uku.dispatchEvent(new Event_1.Event(UkuEventType_1.UkuEventType.REFRESH));\r\n }\r\n }\r\n };\r\n ;\r\n return DirtyChecker;\r\n}());\r\nexports.DirtyChecker = DirtyChecker;\r\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ObjectUtil = (function () {\r\n function ObjectUtil() {\r\n }\r\n ObjectUtil.isArray = function (obj) {\r\n return Object.prototype.toString.call(obj) === '[object Array]';\r\n };\r\n ObjectUtil.getType = function (obj) {\r\n var type = typeof (obj);\r\n if (type === \"object\") {\r\n if (ObjectUtil.isArray(obj)) {\r\n return \"array\";\r\n }\r\n else {\r\n return type;\r\n }\r\n }\r\n else {\r\n return type;\r\n }\r\n };\r\n ObjectUtil.deepClone = function (obj) {\r\n var o;\r\n var i;\r\n var j;\r\n if (typeof (obj) !== \"object\" || obj === null) {\r\n return obj;\r\n }\r\n if (obj instanceof (Array)) {\r\n o = [];\r\n i = 0;\r\n j = obj.length;\r\n for (; i < j; i++) {\r\n if (typeof (obj[i]) === \"object\" && obj[i] !== null) {\r\n o[i] = ObjectUtil.deepClone(obj[i]);\r\n }\r\n else {\r\n o[i] = obj[i];\r\n }\r\n }\r\n }\r\n else {\r\n o = {};\r\n for (i in obj) {\r\n if (typeof (obj[i]) === \"object\" && obj[i] !== null && i !== \"_dom\") {\r\n o[i] = ObjectUtil.deepClone(obj[i]);\r\n }\r\n else {\r\n o[i] = obj[i];\r\n }\r\n }\r\n }\r\n return o;\r\n };\r\n ObjectUtil.compare = function (objA, objB) {\r\n var type = ObjectUtil.getType(objA);\r\n var typeB = ObjectUtil.getType(objB);\r\n var result = true;\r\n if (type !== typeB) {\r\n return false;\r\n }\r\n else {\r\n switch (type) {\r\n case \"object\":\r\n if (objA === null && objB === null) {\r\n result = true;\r\n }\r\n else if (objA === null || objB === null) {\r\n result = false;\r\n }\r\n else {\r\n var keys_a = Object.keys(objA);\r\n var keys_b = Object.keys(objB);\r\n if (keys_a.length != keys_b.length) {\r\n result = false;\r\n }\r\n else if (keys_a.length === 0 && keys_b.length === 0) {\r\n result = true;\r\n }\r\n else {\r\n for (var key in objA) {\r\n var valuA = objA[key];\r\n var valuB = objB[key];\r\n var isEqual = ObjectUtil.compare(valuA, valuB);\r\n if (!isEqual) {\r\n result = false;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n case \"array\":\r\n if (objA.length === objB.length) {\r\n for (var i = 0; i < objA.length; i++) {\r\n var itemA = objA[i];\r\n var itemB = objB[i];\r\n var isEqual2 = ObjectUtil.compare(itemA, itemB);\r\n if (!isEqual2) {\r\n result = false;\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n result = false;\r\n }\r\n break;\r\n case \"function\":\r\n result = objA.toString() === objB.toString();\r\n break;\r\n default:\r\n result = objA === objB;\r\n break;\r\n }\r\n }\r\n return result;\r\n };\r\n return ObjectUtil;\r\n}());\r\nexports.ObjectUtil = ObjectUtil;\r\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventEmitter_1 = __webpack_require__(5);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BoundItemAttributeFactory_1 = __webpack_require__(18);\r\nvar BoundItemExpression_1 = __webpack_require__(27);\r\nvar BoundItemInnerText_1 = __webpack_require__(28);\r\nvar BoundItemRepeat_1 = __webpack_require__(29);\r\nvar BoundItemComponentAttribute_1 = __webpack_require__(30);\r\nvar ElementActionBinder_1 = __webpack_require__(31);\r\nvar EventListener_1 = __webpack_require__(7);\r\nvar Selector_1 = __webpack_require__(2);\r\nvar Event_1 = __webpack_require__(4);\r\nvar Analyzer = (function (_super) {\r\n __extends(Analyzer, _super);\r\n function Analyzer(_uku) {\r\n var _this = _super.call(this) || this;\r\n //处理绑定的attribute\r\n _this.dealWithAttribute = function (element, tagName) {\r\n var _this = this;\r\n var attr = element.getAttribute(\"uku-\" + tagName);\r\n //let elementName = element.tagName;\r\n var controllerModels = this.defMgr.getControllerModelByName(attr);\r\n if (controllerModels && controllerModels.length > 0) {\r\n var boundItem_1 = BoundItemAttributeFactory_1.BoundItemAttributeFactory.getInstance().generateInstance(attr, tagName, element, this.uku);\r\n var controllers_1 = [];\r\n controllerModels.forEach(function (controllerModel) {\r\n controllerModel.addBoundItem(boundItem_1);\r\n ElementActionBinder_1.elementChangedBinder(element, tagName, controllerModel, _this.uku.refresh, _this.uku);\r\n controllers_1.push(controllerModel.controllerInstance);\r\n });\r\n boundItem_1.render(controllers_1);\r\n }\r\n };\r\n _this.uku = _uku;\r\n _this.defMgr = _this.uku._internal_getDefinitionManager();\r\n return _this;\r\n }\r\n Analyzer.prototype.analyizeElement = function (ele) {\r\n var _this = this;\r\n this.searchComponent(ele).then(function (element) {\r\n _this.searchExpression(element);\r\n _this.searchUkuAttribute(element);\r\n //this.defMgr.copyAllController();\r\n if (_this.hasListener(Analyzer.ANALYIZE_COMPLETED)) {\r\n _this.dispatchEvent(new Event_1.Event(Analyzer.ANALYIZE_COMPLETED, element));\r\n }\r\n });\r\n };\r\n Analyzer.prototype.sortAttributes = function (subElement) {\r\n var orderAttrs = [];\r\n var listenerAttrs = [];\r\n for (var i = 0; i < subElement.attributes.length; i++) {\r\n var attribute = subElement.attributes[i];\r\n if (attribute.nodeName.search(\"uku-on\") !== -1) {\r\n //orderAttrs.push(attribute);\r\n listenerAttrs.push(attribute);\r\n }\r\n else {\r\n orderAttrs.push(attribute);\r\n }\r\n }\r\n orderAttrs = orderAttrs.concat(listenerAttrs);\r\n return orderAttrs;\r\n };\r\n Analyzer.prototype.searchUkuAttribute = function (element) {\r\n var subElements = [];\r\n //scan element which has uku-* tag\r\n var isSelfHasUkuTag = Selector_1.Selector.fuzzyFind(element, 'uku-');\r\n if (isSelfHasUkuTag) {\r\n subElements.push(isSelfHasUkuTag);\r\n }\r\n var allChildren = Selector_1.Selector.querySelectorAll(element, \"*\");\r\n for (var i = 0; i < allChildren.length; i++) {\r\n var child = allChildren[i];\r\n var matchElement = Selector_1.Selector.fuzzyFind(child, 'uku-');\r\n if (matchElement && !UkuleleUtil_1.UkuleleUtil.isInRepeat(matchElement)) {\r\n subElements.push(matchElement);\r\n }\r\n }\r\n //解析绑定 attribute,注册event\r\n for (var n = 0; n < subElements.length; n++) {\r\n var subElement = subElements[n];\r\n var orderAttrs = this.sortAttributes(subElement);\r\n for (var j = 0; j < orderAttrs.length; j++) {\r\n var attribute = orderAttrs[j];\r\n if (UkuleleUtil_1.UkuleleUtil.searchUkuAttrTag(attribute.nodeName) > -1) {\r\n var tempArr = attribute.nodeName.split('-');\r\n tempArr.shift();\r\n var attrName = tempArr.join('-');\r\n if (attrName !== \"application\") {\r\n if (attrName.search('on') === 0) {\r\n //is an event\r\n if (!UkuleleUtil_1.UkuleleUtil.isRepeat(subElement) && !UkuleleUtil_1.UkuleleUtil.isInRepeat(subElement)) {\r\n this.dealWithEvent(subElement, attrName);\r\n }\r\n }\r\n else if (attrName.search('repeat') !== -1) {\r\n //is an repeat\r\n this.dealWithRepeat(subElement);\r\n }\r\n else {\r\n //is an attribute\r\n if (!UkuleleUtil_1.UkuleleUtil.isRepeat(subElement) && !UkuleleUtil_1.UkuleleUtil.isInRepeat(subElement)) {\r\n if (attrName !== \"text\") {\r\n this.dealWithAttribute(subElement, attrName);\r\n }\r\n else {\r\n this.dealWithInnerText(subElement);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n Analyzer.prototype.searchComponent = function (element) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var comp, attrs, compDef, attrs, compDef, i, child;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n comp = this.defMgr.getComponent(element.localName);\r\n if (!comp) return [3 /*break*/, 4];\r\n if (!!comp.lazy) return [3 /*break*/, 1];\r\n attrs = element.attributes;\r\n compDef = this.defMgr.getComponentsDefinition()[comp.tagName];\r\n if (!UkuleleUtil_1.UkuleleUtil.isRepeat(element) && !UkuleleUtil_1.UkuleleUtil.isInRepeat(element)) {\r\n return [2 /*return*/, this.dealWithComponent(element, compDef.template, compDef.controllerClazz, attrs)];\r\n }\r\n else {\r\n return [2 /*return*/, element];\r\n }\r\n return [3 /*break*/, 3];\r\n case 1: return [4 /*yield*/, this.defMgr.addLazyComponentDefinition(comp.tagName, comp.templateUrl)];\r\n case 2:\r\n _a.sent();\r\n attrs = element.attributes;\r\n compDef = this.defMgr.getComponentsDefinition()[comp.tagName];\r\n if (!UkuleleUtil_1.UkuleleUtil.isRepeat(element) && !UkuleleUtil_1.UkuleleUtil.isInRepeat(element)) {\r\n return [2 /*return*/, this.dealWithComponent(element, compDef.template, compDef.controllerClazz, attrs)];\r\n }\r\n else {\r\n return [2 /*return*/, element];\r\n }\r\n _a.label = 3;\r\n case 3: return [3 /*break*/, 10];\r\n case 4:\r\n if (!(element.children && element.children.length > 0)) return [3 /*break*/, 9];\r\n i = 0;\r\n _a.label = 5;\r\n case 5:\r\n if (!(i < element.children.length)) return [3 /*break*/, 8];\r\n child = element.children[i];\r\n return [4 /*yield*/, this.searchComponent(child)];\r\n case 6:\r\n _a.sent();\r\n _a.label = 7;\r\n case 7:\r\n i++;\r\n return [3 /*break*/, 5];\r\n case 8: return [2 /*return*/, element];\r\n case 9: return [2 /*return*/, element];\r\n case 10: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n Analyzer.prototype.dealWithComponent = function (tag, template, Clazz, attrs) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var time, randomAlias, tempFragment, htmlDom, cc, _loop_1, this_1, i, i, attr, j, child;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n time = new Date().getTime();\r\n randomAlias = 'cc_' + Math.floor(time * Math.random()).toString();\r\n //should consider white space between characters\r\n template = template.replace(new RegExp(\"\\'cc\\\\.\", 'gm'), \"'\" + randomAlias + '.');\r\n template = template.replace(new RegExp('\"cc\\\\.', 'gm'), '\"' + randomAlias + '.');\r\n template = template.replace(new RegExp('\\{\\{cc\\\\.', 'gm'), \"{{\" + randomAlias + '.');\r\n template = template.replace(new RegExp(' cc\\\\.', 'gm'), ' ' + randomAlias + '.');\r\n template = template.replace(new RegExp('\\\\(cc\\\\.', 'gm'), '(' + randomAlias + '.');\r\n template = template.replace(new RegExp('\\\\,cc\\\\.', 'gm'), ',' + randomAlias + '.');\r\n template = template.replace(new RegExp('\\\\.cc\\\\.', 'gm'), '.' + randomAlias + '.');\r\n template = template.replace(new RegExp('\\\\!cc\\\\.', 'gm'), '!' + randomAlias + '.');\r\n tempFragment = document.createElement('div');\r\n tempFragment.insertAdjacentHTML('afterBegin', template);\r\n if (tempFragment.children.length > 1) {\r\n template = tempFragment.outerHTML;\r\n }\r\n tag.insertAdjacentHTML('beforeBegin', template);\r\n htmlDom = tag.previousElementSibling;\r\n htmlDom.classList.add(tag.localName);\r\n if (Clazz) {\r\n cc = new Clazz(this.uku);\r\n cc._dom = htmlDom;\r\n cc.fire = function (eventType, data, bubbles, cancelable) {\r\n if (bubbles === void 0) { bubbles = false; }\r\n if (cancelable === void 0) { cancelable = true; }\r\n var event = new CustomEvent(eventType.toLowerCase(), { \"bubbles\": bubbles, \"cancelable\": cancelable });\r\n event['data'] = data;\r\n cc._dom.dispatchEvent(event);\r\n };\r\n this.uku.registerController(randomAlias, cc);\r\n _loop_1 = function (i) {\r\n var attr = attrs[i];\r\n //todo need Refactor\r\n if (UkuleleUtil_1.UkuleleUtil.searchUkuAttrTag(attr.nodeName) !== 0\r\n || attr.nodeName.search(\"uku-on\") !== -1\r\n || attr.nodeName === \"uku-render\"\r\n || attr.nodeName === \"uku-visible\") {\r\n htmlDom.setAttribute(attr.nodeName, attr.nodeValue);\r\n }\r\n else {\r\n var tagName = UkuleleUtil_1.UkuleleUtil.getAttrFromUkuTag(attr.nodeName, true);\r\n var controllerModels = this_1.defMgr.getControllerModelByName(attr.nodeValue);\r\n if (controllerModels && controllerModels.length > 0) {\r\n var boundItem_2 = new BoundItemComponentAttribute_1.BoundItemComponentAttribute(attr.nodeValue, tagName, cc, this_1.uku);\r\n var controllers_2 = [];\r\n controllerModels.forEach(function (controllerModel) {\r\n controllerModel.addBoundItem(boundItem_2);\r\n controllers_2.push(controllerModel.controllerInstance);\r\n });\r\n boundItem_2.render(controllers_2);\r\n }\r\n else {\r\n //native value, not expression\r\n var boundItem = new BoundItemComponentAttribute_1.BoundItemComponentAttribute(attr.nodeValue, tagName, cc, this_1.uku);\r\n boundItem.render([]);\r\n }\r\n }\r\n };\r\n this_1 = this;\r\n for (i = 0; i < attrs.length; i++) {\r\n _loop_1(i);\r\n }\r\n }\r\n else {\r\n for (i = 0; i < attrs.length; i++) {\r\n attr = attrs[i];\r\n //todo:need Refactor\r\n if (UkuleleUtil_1.UkuleleUtil.searchUkuAttrTag(attr.nodeName) !== 0\r\n || attr.nodeName.search(\"uku-on\") !== -1\r\n || attr.nodeName === \"uku-render\"\r\n || attr.nodeName === \"uku-visible\") {\r\n htmlDom.setAttribute(attr.nodeName, attr.nodeValue);\r\n }\r\n }\r\n }\r\n tag.parentNode.removeChild(tag);\r\n if (!(htmlDom.children && htmlDom.children.length > 0)) return [3 /*break*/, 5];\r\n j = 0;\r\n _a.label = 1;\r\n case 1:\r\n if (!(j < htmlDom.children.length)) return [3 /*break*/, 4];\r\n child = htmlDom.children[j];\r\n return [4 /*yield*/, this.searchComponent(child)];\r\n case 2:\r\n _a.sent();\r\n _a.label = 3;\r\n case 3:\r\n j++;\r\n return [3 /*break*/, 1];\r\n case 4:\r\n if (cc && cc._initialized && typeof (cc._initialized) === 'function') {\r\n cc._initialized(randomAlias, cc._dom);\r\n }\r\n return [2 /*return*/, htmlDom];\r\n case 5:\r\n if (cc && cc._initialized && typeof (cc._initialized) === 'function') {\r\n cc._initialized(randomAlias, cc._dom);\r\n }\r\n return [2 /*return*/, htmlDom];\r\n }\r\n });\r\n });\r\n };\r\n //todo: 处理 tag之间使用{{}}括起的表达式,用以显示文字\r\n Analyzer.prototype.searchExpression = function (element) {\r\n if (UkuleleUtil_1.UkuleleUtil.searchUkuExpTag(Selector_1.Selector.directText(element)) !== -1) {\r\n if (!UkuleleUtil_1.UkuleleUtil.isRepeat(element) && !UkuleleUtil_1.UkuleleUtil.isInRepeat(element)) {\r\n //normal expression\r\n this.dealWithExpression(element);\r\n }\r\n }\r\n for (var i = 0; i < element.children.length; i++) {\r\n this.searchExpression(element.children[i]);\r\n }\r\n };\r\n Analyzer.prototype.dealWithExpression = function (element) {\r\n //通常的花括号声明方式\r\n var expression = Selector_1.Selector.directText(element);\r\n if (UkuleleUtil_1.UkuleleUtil.searchUkuExpTag(expression) !== -1) {\r\n var attr = expression.slice(2, -2);\r\n var controllerModels = this.defMgr.getControllerModelByName(attr);\r\n if (controllerModels && controllerModels.length > 0) {\r\n var boundItem_3 = new BoundItemExpression_1.BoundItemExpression(attr, expression, element, this.uku);\r\n var controllers_3 = [];\r\n controllerModels.forEach(function (controllerModel) {\r\n controllerModel.addBoundItem(boundItem_3);\r\n controllers_3.push(controllerModel.controllerInstance);\r\n });\r\n boundItem_3.render(controllers_3);\r\n }\r\n }\r\n };\r\n //处理 uku-text\r\n Analyzer.prototype.dealWithInnerText = function (element) {\r\n var attr = element.getAttribute(\"uku-text\");\r\n if (attr) {\r\n var controllerModels = this.defMgr.getControllerModelByName(attr);\r\n if (controllerModels && controllerModels.length > 0) {\r\n var boundItem_4 = new BoundItemInnerText_1.BoundItemInnerText(attr, element, this.uku);\r\n var controllers_4 = [];\r\n controllerModels.forEach(function (controllerModel) {\r\n controllerModel.addBoundItem(boundItem_4);\r\n controllers_4.push(controllerModel.controllerInstance);\r\n });\r\n boundItem_4.render(controllers_4);\r\n }\r\n }\r\n };\r\n //处理 事件 event\r\n Analyzer.prototype.dealWithEvent = function (element, eventName) {\r\n var _this = this;\r\n var expression = element.getAttribute(\"uku-\" + eventName);\r\n var eventNameInListener = eventName.substring(2);\r\n eventNameInListener = eventNameInListener.toLowerCase();\r\n var controllerModels = this.defMgr.getControllerModelByName(expression);\r\n if (!controllerModels || controllerModels.length === 0) {\r\n controllerModels = [];\r\n }\r\n EventListener_1.EventListener.addEventListener(element, eventNameInListener, function (event) {\r\n var alias_list = [];\r\n controllerModels.forEach(function (controllerModel) {\r\n //this.defMgr.copyControllerInstance(controllerModel.controllerInstance, controllerModels.alias);\r\n alias_list.push(controllerModel.alias);\r\n });\r\n var index = UkuleleUtil_1.UkuleleUtil.searchUkuFuncArg(expression);\r\n if (index === -1) {\r\n // is an expression, not a function\r\n var handler = new Function(\"event\", \"return \" + expression);\r\n console.log(handler.toString());\r\n handler(event);\r\n }\r\n else {\r\n // is a function\r\n var i = expression.search(/\\(/);\r\n var arg = 'event';\r\n if (expression[i + 1] !== ')') {\r\n // has argument\r\n arg = 'event,';\r\n }\r\n var arr = expression.split('(');\r\n arr[1] = arg + arr[1];\r\n var new_expression_1 = arr.join(\"(\");\r\n (function (e) {\r\n var tempScope = {};\r\n tempScope['event'] = e;\r\n eval(new_expression_1);\r\n tempScope = null;\r\n })(event);\r\n }\r\n _this.uku.refresh(alias_list, element);\r\n });\r\n };\r\n //处理 repeat\r\n Analyzer.prototype.dealWithRepeat = function (element) {\r\n var repeatExpression = element.getAttribute(\"uku-repeat\");\r\n var tempArr = repeatExpression.split(' in ');\r\n var itemName = tempArr[0];\r\n var attr = tempArr[1];\r\n var controllerModels = this.defMgr.getControllerModelByName(attr);\r\n if (controllerModels && controllerModels.length > 0) {\r\n var controllers_5 = [];\r\n //let controllerInst = controllerModel.controllerInstance;\r\n var boundItem_5 = new BoundItemRepeat_1.BoundItemRepeat(attr, itemName, element, this.uku);\r\n controllerModels.forEach(function (controllerModel) {\r\n controllerModel.addBoundItem(boundItem_5);\r\n controllers_5.push(controllerModel.controllerInstance);\r\n });\r\n boundItem_5.render(controllers_5);\r\n }\r\n };\r\n Analyzer.ANALYIZE_COMPLETED = 'analyizeCompleted';\r\n return Analyzer;\r\n}(EventEmitter_1.EventEmitter));\r\nexports.Analyzer = Analyzer;\r\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemAttrSelected_1 = __webpack_require__(19);\r\nvar BoundItemAttrDataItem_1 = __webpack_require__(20);\r\nvar BoundItemAttrSrc_1 = __webpack_require__(21);\r\nvar BoundItemAttrDisabled_1 = __webpack_require__(22);\r\nvar BoundItemAttrRender_1 = __webpack_require__(23);\r\nvar BoundItemAttrStyle_1 = __webpack_require__(24);\r\nvar BoundItemAttrValue_1 = __webpack_require__(25);\r\nvar BoundItemAttrVisible_1 = __webpack_require__(26);\r\nvar BoundItemAttribute_1 = __webpack_require__(1);\r\nvar BoundItemAttributeFactory = (function () {\r\n function BoundItemAttributeFactory() {\r\n if (BoundItemAttributeFactory._instance) {\r\n throw new Error(\"Error: Instantiation failed: Use BoundItemAttributeFactory.getInstance() instead of new.\");\r\n }\r\n BoundItemAttributeFactory._instance = this;\r\n }\r\n BoundItemAttributeFactory.getInstance = function () {\r\n return BoundItemAttributeFactory._instance;\r\n };\r\n BoundItemAttributeFactory.prototype.generateInstance = function (attr, tagName, element, uku) {\r\n var instance;\r\n switch (tagName) {\r\n case \"selected\":\r\n instance = new BoundItemAttrSelected_1.BountItemAttrSelected(attr, tagName, element, uku);\r\n break;\r\n case \"data-item\":\r\n instance = new BoundItemAttrDataItem_1.BoundItemAttrDataItem(attr, tagName, element, uku);\r\n break;\r\n case \"src\":\r\n instance = new BoundItemAttrSrc_1.BoundItemAttrSrc(attr, tagName, element, uku);\r\n break;\r\n case \"disabled\":\r\n instance = new BoundItemAttrDisabled_1.BoundItemAttrDisabled(attr, tagName, element, uku);\r\n break;\r\n case \"render\":\r\n instance = new BoundItemAttrRender_1.BoundItemAttrRender(attr, tagName, element, uku);\r\n break;\r\n case \"style\":\r\n instance = new BoundItemAttrStyle_1.BoundItemAttrStyle(attr, tagName, element, uku);\r\n break;\r\n case \"value\":\r\n instance = new BoundItemAttrValue_1.BoundItemAttrValue(attr, tagName, element, uku);\r\n break;\r\n case \"visible\":\r\n instance = new BoundItemAttrVisible_1.BoundItemAttrVisible(attr, tagName, element, uku);\r\n break;\r\n default:\r\n instance = new BoundItemAttribute_1.BoundItemAttribute(attr, tagName, element, uku);\r\n }\r\n return instance;\r\n };\r\n BoundItemAttributeFactory._instance = new BoundItemAttributeFactory();\r\n return BoundItemAttributeFactory;\r\n}());\r\nexports.BoundItemAttributeFactory = BoundItemAttributeFactory;\r\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemAttribute_1 = __webpack_require__(1);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BountItemAttrSelected = (function (_super) {\r\n __extends(BountItemAttrSelected, _super);\r\n function BountItemAttrSelected(attrName, ukuTag, element, uku) {\r\n var _this = this;\r\n if (ukuTag !== \"selected\") {\r\n throw new TypeError(\"it doesn't use uku-selected\");\r\n }\r\n _this = _super.call(this, attrName, ukuTag, element, uku) || this;\r\n return _this;\r\n }\r\n BountItemAttrSelected.prototype.render = function (controllers) {\r\n var attr = this.attributeName;\r\n var key;\r\n var elementName = this.element.tagName;\r\n if (elementName === \"SELECT\") {\r\n var tempArr = this.attributeName.split(\"|\");\r\n attr = tempArr[0];\r\n key = tempArr[1];\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, attr);\r\n var value = void 0;\r\n if (key) {\r\n value = finalValue[key];\r\n }\r\n else {\r\n value = finalValue;\r\n }\r\n this.element.value = value;\r\n }\r\n if (elementName === \"INPUT\" && this.element.getAttribute(\"type\") === \"radio\") {\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, attr);\r\n if (this.element.value === finalValue) {\r\n this.element.setAttribute(\"checked\", \"true\");\r\n }\r\n }\r\n };\r\n return BountItemAttrSelected;\r\n}(BoundItemAttribute_1.BoundItemAttribute));\r\nexports.BountItemAttrSelected = BountItemAttrSelected;\r\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemAttribute_1 = __webpack_require__(1);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BoundItemAttrDataItem = (function (_super) {\r\n __extends(BoundItemAttrDataItem, _super);\r\n function BoundItemAttrDataItem(attrName, ukuTag, element, uku) {\r\n var _this = this;\r\n if (ukuTag !== \"data-item\") {\r\n throw new TypeError(\"it doesn't use uku-item\");\r\n }\r\n _this = _super.call(this, attrName, ukuTag, element, uku) || this;\r\n return _this;\r\n }\r\n BoundItemAttrDataItem.prototype.render = function (controllers) {\r\n var attr = this.attributeName;\r\n var elementName = this.element.tagName;\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, attr);\r\n if (elementName === \"OPTION\") {\r\n finalValue = JSON.stringify(finalValue);\r\n this.element.setAttribute('data-item', finalValue);\r\n }\r\n };\r\n return BoundItemAttrDataItem;\r\n}(BoundItemAttribute_1.BoundItemAttribute));\r\nexports.BoundItemAttrDataItem = BoundItemAttrDataItem;\r\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemAttribute_1 = __webpack_require__(1);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BoundItemAttrSrc = (function (_super) {\r\n __extends(BoundItemAttrSrc, _super);\r\n function BoundItemAttrSrc(attrName, ukuTag, element, uku) {\r\n var _this = this;\r\n if (ukuTag !== \"src\") {\r\n throw new TypeError(\"it doesn't use uku-src\");\r\n }\r\n _this = _super.call(this, attrName, ukuTag, element, uku) || this;\r\n return _this;\r\n }\r\n BoundItemAttrSrc.prototype.render = function (controllers) {\r\n var attr = this.attributeName;\r\n var elementName = this.element.tagName;\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, attr);\r\n if (elementName === \"IMG\" || elementName === \"VIDEO\" || elementName === \"AUDIO\") {\r\n if (finalValue) {\r\n this.element.setAttribute(this.ukuTag, finalValue);\r\n }\r\n }\r\n else {\r\n throw new Error(\"uku-src doesn't work with current dom\");\r\n }\r\n };\r\n return BoundItemAttrSrc;\r\n}(BoundItemAttribute_1.BoundItemAttribute));\r\nexports.BoundItemAttrSrc = BoundItemAttrSrc;\r\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemAttribute_1 = __webpack_require__(1);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BoundItemAttrDisabled = (function (_super) {\r\n __extends(BoundItemAttrDisabled, _super);\r\n function BoundItemAttrDisabled(attrName, ukuTag, element, uku) {\r\n var _this = this;\r\n if (ukuTag !== \"disabled\") {\r\n throw new TypeError(\"it doesn't use uku-disabled\");\r\n }\r\n _this = _super.call(this, attrName, ukuTag, element, uku) || this;\r\n return _this;\r\n }\r\n BoundItemAttrDisabled.prototype.render = function (controllers) {\r\n var attr = this.attributeName;\r\n var elementName = this.element.tagName;\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, attr);\r\n this.element.disabled = finalValue;\r\n };\r\n return BoundItemAttrDisabled;\r\n}(BoundItemAttribute_1.BoundItemAttribute));\r\nexports.BoundItemAttrDisabled = BoundItemAttrDisabled;\r\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemAttribute_1 = __webpack_require__(1);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BoundItemAttrRender = (function (_super) {\r\n __extends(BoundItemAttrRender, _super);\r\n function BoundItemAttrRender(attrName, ukuTag, element, uku) {\r\n var _this = this;\r\n if (ukuTag !== \"render\") {\r\n throw new TypeError(\"it doesn't use uku-render\");\r\n }\r\n _this = _super.call(this, attrName, ukuTag, element, uku) || this;\r\n return _this;\r\n }\r\n BoundItemAttrRender.prototype.render = function (controllers) {\r\n var attr = this.attributeName;\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, attr);\r\n if (finalValue) {\r\n var oldDisplaySetting = this.element.getAttribute(\"data-old-display\");\r\n if (oldDisplaySetting !== null) {\r\n this.element.style.display = oldDisplaySetting;\r\n }\r\n }\r\n else {\r\n var oldDisplaySetting = this.element.getAttribute(\"data-old-display\");\r\n if (oldDisplaySetting === null) {\r\n oldDisplaySetting = this.element.style.display;\r\n this.element.setAttribute(\"data-old-display\", oldDisplaySetting);\r\n }\r\n this.element.style.display = \"none\";\r\n }\r\n };\r\n return BoundItemAttrRender;\r\n}(BoundItemAttribute_1.BoundItemAttribute));\r\nexports.BoundItemAttrRender = BoundItemAttrRender;\r\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemAttribute_1 = __webpack_require__(1);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BoundItemAttrStyle = (function (_super) {\r\n __extends(BoundItemAttrStyle, _super);\r\n function BoundItemAttrStyle(attrName, ukuTag, element, uku) {\r\n var _this = this;\r\n if (ukuTag !== \"style\") {\r\n throw new TypeError(\"it doesn't use uku-style\");\r\n }\r\n _this = _super.call(this, attrName, ukuTag, element, uku) || this;\r\n return _this;\r\n }\r\n BoundItemAttrStyle.prototype.render = function (controllers) {\r\n var attr = this.attributeName;\r\n var elementName = this.element.tagName;\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, attr);\r\n for (var cssName in finalValue) {\r\n this.element.style[cssName] = finalValue[cssName];\r\n }\r\n };\r\n return BoundItemAttrStyle;\r\n}(BoundItemAttribute_1.BoundItemAttribute));\r\nexports.BoundItemAttrStyle = BoundItemAttrStyle;\r\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemAttribute_1 = __webpack_require__(1);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BoundItemAttrValue = (function (_super) {\r\n __extends(BoundItemAttrValue, _super);\r\n function BoundItemAttrValue(attrName, ukuTag, element, uku) {\r\n var _this = this;\r\n if (ukuTag !== \"value\") {\r\n throw new TypeError(\"it doesn't use uku-value\");\r\n }\r\n _this = _super.call(this, attrName, ukuTag, element, uku) || this;\r\n return _this;\r\n }\r\n BoundItemAttrValue.prototype.render = function (controllers) {\r\n var attr = this.attributeName;\r\n var elementName = this.element.tagName;\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, attr);\r\n if (elementName === \"INPUT\" && this.element.getAttribute(\"type\") === \"checkbox\") {\r\n this.element.checked = finalValue;\r\n }\r\n else {\r\n this.element.value = finalValue;\r\n }\r\n };\r\n return BoundItemAttrValue;\r\n}(BoundItemAttribute_1.BoundItemAttribute));\r\nexports.BoundItemAttrValue = BoundItemAttrValue;\r\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemAttribute_1 = __webpack_require__(1);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BoundItemAttrVisible = (function (_super) {\r\n __extends(BoundItemAttrVisible, _super);\r\n function BoundItemAttrVisible(attrName, ukuTag, element, uku) {\r\n var _this = this;\r\n if (ukuTag !== \"visible\") {\r\n throw new TypeError(\"it doesn't use uku-visible\");\r\n }\r\n _this = _super.call(this, attrName, ukuTag, element, uku) || this;\r\n return _this;\r\n }\r\n BoundItemAttrVisible.prototype.render = function (controllers) {\r\n var attr = this.attributeName;\r\n var elementName = this.element.tagName;\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, attr);\r\n if (finalValue) {\r\n this.element.style.visibility = \"visible\";\r\n }\r\n else {\r\n this.element.style.visibility = \"hidden\";\r\n }\r\n };\r\n return BoundItemAttrVisible;\r\n}(BoundItemAttribute_1.BoundItemAttribute));\r\nexports.BoundItemAttrVisible = BoundItemAttrVisible;\r\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemBase_1 = __webpack_require__(3);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar Selector_1 = __webpack_require__(2);\r\nvar BoundItemExpression = (function (_super) {\r\n __extends(BoundItemExpression, _super);\r\n function BoundItemExpression(attrName, expression, element, uku) {\r\n var _this = _super.call(this, attrName, element, uku) || this;\r\n _this.expression = expression;\r\n return _this;\r\n }\r\n BoundItemExpression.prototype.render = function (controllers) {\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, this.attributeName);\r\n Selector_1.Selector.directText(this.element, finalValue);\r\n };\r\n return BoundItemExpression;\r\n}(BoundItemBase_1.BoundItemBase));\r\nexports.BoundItemExpression = BoundItemExpression;\r\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemBase_1 = __webpack_require__(3);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BoundItemInnerText = (function (_super) {\r\n __extends(BoundItemInnerText, _super);\r\n function BoundItemInnerText(attrName, element, uku) {\r\n var _this = _super.call(this, attrName, element, uku) || this;\r\n _this.tagName = 'text';\r\n return _this;\r\n }\r\n BoundItemInnerText.prototype.render = function (controllers) {\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, this.attributeName);\r\n this.element.innerHTML = finalValue;\r\n };\r\n return BoundItemInnerText;\r\n}(BoundItemBase_1.BoundItemBase));\r\nexports.BoundItemInnerText = BoundItemInnerText;\r\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemBase_1 = __webpack_require__(3);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BoundItemRepeat = (function (_super) {\r\n __extends(BoundItemRepeat, _super);\r\n function BoundItemRepeat(attrName, itemName, element, uku) {\r\n var _this = _super.call(this, attrName, element, uku) || this;\r\n _this.expression = itemName;\r\n _this.renderTemplate = element.outerHTML;\r\n _this.parentElement = element.parentNode;\r\n _this.beginCommentString = undefined;\r\n _this.endCommentString = undefined;\r\n return _this;\r\n }\r\n BoundItemRepeat.prototype.replaceVarible = function (element, varName, alias) {\r\n var pattern = new RegExp(\"\\\\b\" + varName + \"(?!\\\\w)\", \"gm\");\r\n var attributes = element.attributes;\r\n for (var i = 0; i < attributes.length; i++) {\r\n var attr = attributes[i];\r\n if (UkuleleUtil_1.UkuleleUtil.isUkuAttrTag(attr.nodeName)) {\r\n attr.nodeValue = attr.nodeValue.replace(pattern, alias);\r\n }\r\n }\r\n var childTag = element.innerHTML.match(new RegExp(\"\\\\<\\\\w*.*\\\\>\", \"gm\"));\r\n var innerText = element.innerHTML.match(new RegExp(\"\\\\{{[\\\\w\\\\W]*\\\\}\\\\}\", \"gm\"));\r\n if (childTag === null\r\n && innerText !== null\r\n && innerText.length === 1) {\r\n element.textContent = element.textContent.replace(pattern, alias);\r\n }\r\n if (element.children && element.children.length > 0) {\r\n for (var j = 0; j < element.children.length; j++) {\r\n var child = element.children[j];\r\n this.replaceVarible(child, varName, alias);\r\n }\r\n }\r\n };\r\n BoundItemRepeat.prototype.render = function (controllers) {\r\n var _this = this;\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, this.attributeName);\r\n if (!finalValue) {\r\n return;\r\n }\r\n if (typeof finalValue === \"number\" && Math.floor(finalValue) === finalValue) {\r\n //finalValue = \r\n var newFinalValue = [];\r\n for (var num = 1; num <= finalValue; num++) {\r\n //let item = {value: num};\r\n newFinalValue.push(num);\r\n }\r\n finalValue = newFinalValue;\r\n }\r\n var self = this;\r\n if (this.element && this.element.parentNode) {\r\n //create repeate begin comment\r\n this.beginCommentString = \"begin uku-repeat: \" + this.expression + \" in \" + this.attributeName;\r\n var beginComment = document.createComment(this.beginCommentString);\r\n this.element.parentNode.insertBefore(beginComment, this.element);\r\n //create repeate end comment\r\n this.endCommentString = \"end uku-repeat: \" + this.expression + \" in \" + this.attributeName;\r\n var endComment = document.createComment(this.endCommentString);\r\n this.element.parentNode.insertBefore(endComment, this.element.nextSibling);\r\n //remove definition dom\r\n this.element.parentNode.removeChild(this.element);\r\n }\r\n var filter = { acceptNode: function (node) {\r\n if (node.nodeValue === self.beginCommentString) {\r\n return NodeFilter.FILTER_ACCEPT;\r\n }\r\n return NodeFilter.FILTER_SKIP;\r\n } };\r\n var safeFilter = filter.acceptNode;\r\n safeFilter.acceptNode = filter.acceptNode;\r\n var treeWalker = document.createTreeWalker(this.parentElement, NodeFilter.SHOW_COMMENT, safeFilter, false);\r\n function generateTempContainer() {\r\n var index = UkuleleUtil_1.UkuleleUtil.searchHtmlTag(self.renderTemplate, \"tr\");\r\n var index2 = UkuleleUtil_1.UkuleleUtil.searchHtmlTag(self.renderTemplate, \"th\");\r\n if (index === -1 || index2 === -1) {\r\n return document.createElement(\"tbody\");\r\n }\r\n else {\r\n return document.createElement(\"div\");\r\n }\r\n }\r\n while (treeWalker.nextNode()) {\r\n var commentNode = treeWalker.currentNode;\r\n if (commentNode && commentNode.nodeValue === this.beginCommentString) {\r\n //remove overtime dom.\r\n while (commentNode.nextSibling && commentNode.nextSibling.nodeValue !== this.endCommentString) {\r\n commentNode.parentNode.removeChild(commentNode.nextSibling);\r\n }\r\n //create new dom\r\n var tempDiv = generateTempContainer();\r\n var blankDiv = generateTempContainer();\r\n commentNode.parentNode.insertBefore(blankDiv, commentNode.nextSibling);\r\n for (var i = 0; i < finalValue.length; i++) {\r\n tempDiv.insertAdjacentHTML('beforeEnd', this.renderTemplate);\r\n if (i === finalValue.length - 1) {\r\n var childrenHTML = tempDiv.innerHTML;\r\n blankDiv.insertAdjacentHTML('beforeBegin', childrenHTML);\r\n commentNode.parentNode.removeChild(blankDiv);\r\n tempDiv = null;\r\n blankDiv = null;\r\n }\r\n }\r\n var child = commentNode.nextElementSibling;\r\n var time = new Date().getTime();\r\n for (var j = 0; j < finalValue.length; j++) {\r\n child.removeAttribute(\"uku-repeat\");\r\n var compDef = this.uku._internal_getDefinitionManager().getComponentsDefinition();\r\n var compPool = this.uku._internal_getDefinitionManager().getComponentsPool();\r\n this.uku._internal_getDefinitionManager().setComponentsDefinition(compDef);\r\n this.uku._internal_getDefinitionManager().setComponentsPool(compPool);\r\n var sibling = child.nextSibling;\r\n var itemType = typeof finalValue[j];\r\n var alias = \"repeatItem_\" + Math.floor(time * Math.random()).toString() + \"_\" + this.expression + \"$\";\r\n if (itemType === \"object\") {\r\n this.uku.registerController(alias, finalValue[j]);\r\n }\r\n else {\r\n this.uku.registerController(alias, { 'value': finalValue[j] });\r\n alias = alias + \".value\";\r\n }\r\n this.replaceVarible(child, this.expression, alias);\r\n child.insertAdjacentHTML('afterend', child.outerHTML);\r\n var newItemDom = child.nextSibling;\r\n child.parentNode.removeChild(child);\r\n child = newItemDom;\r\n this.uku._internal_dealWithElement(child, function (element) {\r\n if (_this.element.tagName === \"OPTION\") {\r\n var expression = _this.parentElement.getAttribute(\"uku-selected\");\r\n var tempArr = expression.split(\"|\");\r\n expression = tempArr[0];\r\n var key = tempArr[1];\r\n var value = _this.uku._internal_getDefinitionManager().getFinalValueByExpression(expression);\r\n if (key) {\r\n _this.parentElement.value = value[key];\r\n }\r\n else {\r\n _this.parentElement.value = value;\r\n }\r\n }\r\n });\r\n child = sibling;\r\n }\r\n }\r\n }\r\n };\r\n return BoundItemRepeat;\r\n}(BoundItemBase_1.BoundItemBase));\r\nexports.BoundItemRepeat = BoundItemRepeat;\r\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BoundItemBase_1 = __webpack_require__(3);\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar BoundItemComponentAttribute = (function (_super) {\r\n __extends(BoundItemComponentAttribute, _super);\r\n function BoundItemComponentAttribute(attrName, ukuTag, cc, uku) {\r\n var _this = _super.call(this, attrName, null, uku) || this;\r\n _this.ukuTag = ukuTag;\r\n _this.componentController = cc;\r\n return _this;\r\n }\r\n BoundItemComponentAttribute.prototype.render = function (controllers) {\r\n var finalValue = UkuleleUtil_1.UkuleleUtil.getFinalValue(controllers, this.attributeName);\r\n this.componentController[this.ukuTag] = finalValue;\r\n this.uku.refresh(this.componentController._alias);\r\n };\r\n return BoundItemComponentAttribute;\r\n}(BoundItemBase_1.BoundItemBase));\r\nexports.BoundItemComponentAttribute = BoundItemComponentAttribute;\r\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar UkuleleUtil_1 = __webpack_require__(0);\r\nvar EventListener_1 = __webpack_require__(7);\r\nvar Selector_1 = __webpack_require__(2);\r\nfunction elementChangedBinder(element, tagName, controllerModel, handler, host) {\r\n var elementStrategies = [inputTextCase, textareaCase, selectCase, checkboxCase, radioCase];\r\n for (var i = 0; i < elementStrategies.length; i++) {\r\n var func = elementStrategies[i];\r\n var goon = func.apply(this, arguments);\r\n if (goon) {\r\n break;\r\n }\r\n }\r\n}\r\nexports.elementChangedBinder = elementChangedBinder;\r\nfunction inputTextCase(element, tagName, controllerModel, handler, host) {\r\n var elementName = element.tagName;\r\n if (elementName === \"INPUT\" && isSupportInputType(element) && tagName === \"value\") {\r\n var eventType = 'change';\r\n var inputType = element.getAttribute('type');\r\n if (inputType === \"text\"\r\n || inputType === \"text\"\r\n || inputType === \"password\"\r\n || inputType === \"tel\"\r\n || inputType === \"number\"\r\n || inputType === \"search\") {\r\n eventType = 'input';\r\n }\r\n EventListener_1.EventListener.addEventListener(element, eventType, function (e) {\r\n var attr = element.getAttribute(\"uku-\" + tagName);\r\n UkuleleUtil_1.UkuleleUtil.setFinalValue(controllerModel.controllerInstance, attr, element.value);\r\n if (handler) {\r\n handler.call(host, controllerModel.alias, element);\r\n }\r\n });\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isSupportInputType(element) {\r\n var type = element.getAttribute(\"type\");\r\n if (type !== \"checkbox\" && type !== \"radio\") {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction textareaCase(element, tagName, controllerModel, handler, host) {\r\n var elementName = element.tagName;\r\n if (elementName === \"TEXTAREA\" && tagName === \"value\") {\r\n EventListener_1.EventListener.addEventListener(element, 'input', function (e) {\r\n var attr = element.getAttribute(\"uku-\" + tagName);\r\n UkuleleUtil_1.UkuleleUtil.setFinalValue(controllerModel.controllerInstance, attr, element.value);\r\n if (handler) {\r\n handler.call(host, controllerModel.alias, element);\r\n }\r\n });\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction selectCase(element, tagName, controllerModel, handler, host) {\r\n var elementName = element.tagName;\r\n if ((elementName === \"SELECT\" && tagName === \"selected\")) {\r\n EventListener_1.EventListener.addEventListener(element, 'change', function (e) {\r\n var attr = element.getAttribute(\"uku-\" + tagName);\r\n var key;\r\n var tmpArr = attr.split(\"|\");\r\n attr = tmpArr[0];\r\n var options = Selector_1.Selector.querySelectorAll(element, \"option\");\r\n for (var j = 0; j < options.length; j++) {\r\n var option = options[j];\r\n if (option.selected) {\r\n var selectedItem = JSON.parse(option.getAttribute(\"data-item\"));\r\n UkuleleUtil_1.UkuleleUtil.setFinalValue(controllerModel.controllerInstance, attr, selectedItem);\r\n }\r\n }\r\n if (handler) {\r\n handler.call(host, controllerModel.alias, element);\r\n }\r\n });\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction checkboxCase(element, tagName, controllerModel, handler, host) {\r\n var elementName = element.tagName;\r\n if (elementName === \"INPUT\" && tagName === \"value\" && element.getAttribute(\"type\") === \"checkbox\") {\r\n EventListener_1.EventListener.addEventListener(element, 'change', function (e) {\r\n var attr = element.getAttribute(\"uku-\" + tagName);\r\n UkuleleUtil_1.UkuleleUtil.setFinalValue(controllerModel.controllerInstance, attr, element.checked);\r\n if (handler) {\r\n handler.call(host, controllerModel.alias, element);\r\n }\r\n });\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction radioCase(element, tagName, controllerModel, handler, host) {\r\n var elementName = element.tagName;\r\n if (elementName === \"INPUT\" && tagName === \"selected\" && element.getAttribute(\"type\") === \"radio\") {\r\n EventListener_1.EventListener.addEventListener(element, 'change', function (e) {\r\n var attr = element.getAttribute(\"uku-\" + tagName);\r\n if (element.checked) {\r\n UkuleleUtil_1.UkuleleUtil.setFinalValue(controllerModel.controllerInstance, attr, element.value);\r\n if (handler) {\r\n handler.call(host, controllerModel.alias, element);\r\n }\r\n }\r\n });\r\n return true;\r\n }\r\n return false;\r\n}\r\n\n\n/***/ })\n/******/ ]);\n});\n\n\n// WEBPACK FOOTER //\n// uku.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 8);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap e7b6fba92938868f9718","import { Selector } from \"../extend/Selector\";\nimport { ComponentConfiguration } from \"../model/ComponentConfiguration\";\nimport { IUkulele } from \"../core/IUkulele\";\nimport { ControllerModel } from \"../model/ControllerModel\";\nclass ValueAndParent {\n value: any;\n parent: Object;\n constructor(_value: any, _parant: Object) {\n this.value = _value;\n this.parent = _parant;\n }\n}\nexport class UkuleleUtil {\n\n static searchHtmlTag(htmlString: string, tagName: string): number {\n let reTemp: string = \"^<\" + tagName + \"[\\\\s\\\\S]*>\" + \"[\\\\s\\\\S]*</\" + tagName + \">$\";\n let re: RegExp = new RegExp(reTemp);\n let index: number = htmlString.search(re);\n return index;\n }\n\n static getInnerHtml(htmlString: string, tagName: string): string {\n let reTemp: string = \"<\" + tagName + \"[\\\\s\\\\S]*>\" + \"[\\\\s\\\\S]*</\" + tagName + \">\";\n let re: RegExp = new RegExp(reTemp);\n let match: RegExpMatchArray = htmlString.match(re);\n if (match.index > -1) {\n let matchString: string = match[0];\n let index: number = matchString.search(\">\");\n let tempString = matchString.substr(index + 1);\n let index2: number = tempString.lastIndexOf(\"</\");\n tempString = tempString.substring(0, index2);\n tempString = tempString.replace(/(^\\s*)|(\\s*$)/g, \"\");\n return tempString;\n } else {\n return null;\n }\n }\n\n static getComponentConfiguration(htmlString: string): ComponentConfiguration {\n let tempDom: HTMLElement = document.createElement(\"div\");\n tempDom.innerHTML = htmlString;\n let tpl: NodeList = Selector.querySelectorAll(tempDom, \"template\");\n let scripts: NodeList = Selector.querySelectorAll(tempDom, \"script\");\n let stylesheet: NodeList = Selector.querySelectorAll(tempDom, \"style\");\n let deps: Array<string> = [];\n let ccs: string = null;\n for (let i = 0; i < scripts.length; i++) {\n let script: HTMLScriptElement = scripts[i] as HTMLScriptElement;\n if (script.src !== \"\") {\n deps.push(script.src);\n } else {\n ccs = script.innerHTML;\n }\n }\n if (stylesheet && stylesheet[0]) {\n return new ComponentConfiguration((tpl[0] as HTMLElement).innerHTML, deps, ccs, (stylesheet[0] as HTMLElement).innerHTML);\n } else {\n return new ComponentConfiguration((tpl[0] as HTMLElement).innerHTML, deps, ccs);\n }\n\n }\n\n static searchUkuAttrTag(htmlString: string): number {\n let re: RegExp = /^uku\\-.*/;\n let index: number = htmlString.search(re);\n return index;\n }\n\n static isUkuAttrTag(tagName:string): boolean{\n if(this.searchUkuAttrTag(tagName) > -1){\n return true;\n }\n return false;\n }\n\n static getAttrFromUkuTag(ukuTag: string, camelCase: boolean = false) {\n if (UkuleleUtil.searchUkuAttrTag(ukuTag) === 0) {\n ukuTag = ukuTag.replace('uku-', '');\n }\n if (camelCase) {\n let names: Array<string> = ukuTag.split('-');\n ukuTag = names[0];\n for (let i = 1; i < names.length; i++) {\n let firstLetter: string = names[i].charAt(0).toUpperCase();\n ukuTag = ukuTag + firstLetter + names[i].substr(1);\n }\n }\n return ukuTag;\n }\n\n static searchUkuExpTag(expression: string): number {\n let re: RegExp = /^\\{\\{.*\\}\\}$/;\n let index: number = expression.search(re);\n return index;\n }\n\n static searchUkuFuncArg(htmlString: string): number {\n let re1: RegExp = /[\\+\\-\\*\\/\\%\\?\\:\\>\\<]/;\n let index = htmlString.search(re1);\n if (index === -1) {\n let re2: RegExp = /\\(.*\\)$/;\n index = htmlString.search(re2);\n return index;\n } else {\n return -1;\n }\n }\n\n static isRepeat(element: HTMLElement): boolean {\n if (element.getAttribute(\"uku-repeat\")) {\n return true;\n }\n return false;\n }\n\n static isInRepeat(element: HTMLElement): boolean {\n let parents: Array<HTMLElement> = Selector.parents(element);\n for (let i = 0; i < parents.length; i++) {\n let parent: HTMLElement = parents[i] as HTMLElement;\n if (parent.nodeType !== 9) {\n let b: string = parent.getAttribute(\"uku-repeat\");\n if (b) {\n return true;\n }\n }\n }\n return false;\n }\n\n static getBoundModelInstantName(expression: string): string {\n let controlInstName: string = expression.split('.')[0];\n if (controlInstName) {\n return controlInstName;\n }\n return undefined;\n }\n\n static getBoundModelInstantNames(controller_alias_list, expression): any {\n let arr = [];\n controller_alias_list.forEach(alias => {\n let pattern = new RegExp(\"\\\\b\" + alias, \"gm\");\n console.count('getBoundModelInstantNames执行的次数');\n if (expression.search(pattern) > -1) {\n arr.push(alias);\n }\n });\n return arr;\n }\n\n static getFinalValue(objects: Object[], attrName: string) {\n return (function () {\n var tempScope = {};\n objects.forEach(object => {\n tempScope[object['_alias']] = object;\n let alias = object['_alias'];\n let pattern = new RegExp(\"\\\\b\" + alias + \"\\\\b\", \"gm\");\n attrName = attrName.replace(pattern, \"tempScope.\" + alias);\n\n let pattern2 = new RegExp(\"\\\\.tempScope\\\\.\" + alias, \"gm\");\n attrName = attrName.replace(pattern2, \".\" + alias);\n\n });\n var result;\n try {\n result = eval(attrName);\n } catch (err) {\n result = '';\n }\n tempScope = null;\n return result;\n })();\n }\n\n static setFinalValue(object: Object, attrName: string, value: any) {\n return (function () {\n var tempScope = {};\n tempScope[object['_alias']] = object;\n\n let valueString;\n if (typeof value === \"string\") {\n valueString = '\"' + value + '\"';\n } else if (typeof value === \"object\") {\n valueString = \"JSON.parse('\" + JSON.stringify(value) + \"')\";\n } else {\n valueString = value;\n }\n\n let evalString = \"tempScope.\" + attrName + \"=\" + valueString;\n eval(evalString);\n })();\n }\n\n static wrapScriptInComponent(originalScript): string {\n let trimScript = originalScript.replace(new RegExp('\\\\s', 'gm'), '');\n if (trimScript.search(new RegExp('\\\\(function\\\\(')) === 0) {\n return originalScript;\n } else {\n let selfExcutingFrame =\n `\t(function(){\n return function(uku){ \n Object.defineProperty(this, 'currentState', {\n set: function(value){\n if(value){\n this._currentState = value;\n uku.refresh(this._alias);\n }\n }\n });\n\n this.setState = function(state){\n this._currentState = state;\n uku.refresh(this._alias);\n };\n\n ${originalScript}\n };\n })();\n `;\n return selfExcutingFrame;\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/util/UkuleleUtil.ts","import {BoundItemBase} from \"./BoundItemBase\";\nimport {UkuleleUtil} from \"../util/UkuleleUtil\";\n//import {SelectedDecorator} from \"./decorator/SelectedDecorator\";\nexport class BoundItemAttribute extends BoundItemBase{\n ukuTag:string;\n constructor(attrName:string, ukuTag:string, element:HTMLElement, uku:any){\n super(attrName,element,uku);\n this.ukuTag = ukuTag;\n }\n \n render(controllers):void{\n let attr:string = this.attributeName;\n let finalValue = UkuleleUtil.getFinalValue(controllers,attr);\n if(typeof finalValue === 'boolean'){\n if(finalValue === true){\n this.element.setAttribute(this.ukuTag, this.ukuTag);\n }else{\n this.element.removeAttribute(this.ukuTag);\n } \n }else{\n this.element.setAttribute(this.ukuTag, finalValue);\n }\n \n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/model/BoundItemAttribute.ts","export class Selector{\n static querySelectorAll(element:HTMLBodyElement|HTMLDocument|HTMLElement,query:string):NodeList{\n if(window.hasOwnProperty('jQuery') && typeof window['jQuery'] !== \"undefined\"){\n return window['jQuery'](element).find(query);\n }else{\n return element.querySelectorAll(query);\n }\n }\n\n static fuzzyFind(element:HTMLElement,text:string):HTMLElement {\n if (element && element.attributes) {\n for (let i = 0; i < element.attributes.length; i++) {\n let attr = element.attributes[i];\n if (attr.nodeName.search(text) > -1) {\n return element;\n }\n }\n }\n return null;\n }\n\n static directText(element:HTMLElement,text?:any):string {\n let o = \"\";\n let nodes = element.childNodes;\n for (let i = 0; i <= nodes.length - 1; i++) {\n let node = nodes[i];\n if (node.nodeType === 3) {\n if (text || text ===\"\" || text === 0 || text === false) {\n node.nodeValue = text;\n return;\n } else {\n o += node.nodeValue;\n }\n }\n }\n return o.trim();\n }\n\n static parents(element:HTMLElement):Array<HTMLElement>{\n let parents = [];\n while(element.parentNode && (element.parentNode as HTMLElement).tagName !== 'BODY'){\n parents.push(element.parentNode as HTMLElement);\n element = element.parentNode as HTMLElement;\n }\n return parents;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/extend/Selector.ts","import {IUkulele} from \"../core/IUkulele\";\nexport class BoundItemBase{\n attributeName:string;\n element:HTMLElement;\n uku:IUkulele;\n constructor(_attrName:string, _element:HTMLElement, _uku:IUkulele){\n this.attributeName = _attrName;\n this.element = _element;\n this.uku = _uku;\n }\n render(controllers:Object[]):void{\n \n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/model/BoundItemBase.ts","export class Event{\n eventType:string;\n element:HTMLElement;\n \n constructor(_eventType,_element?:HTMLElement){\n this.eventType = _eventType;\n this.element = _element;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/core/Event.ts","import {IEventEmitter} from \"./IEventEmitter\";\nimport {Event} from \"./Event\";\nexport class EventEmitter implements IEventEmitter{\n private eventsPool:Object;\n \n constructor(){\n this.eventsPool = {};\n }\n \n getEventsPool():Object{\n return this.eventsPool;\n }\n addListener(eventType:string, handler:Function):void{\n if(!this.eventsPool[eventType]){\n this.eventsPool[eventType] = [];\n }\n this.eventsPool[eventType].push(handler);\n }\n removeListener(eventType:string, handler:Function):void{\n if(this.eventsPool[eventType]){\n for(let i=this.eventsPool[eventType].length-1;i>=0;i--){\n if(this.eventsPool[eventType][i] === handler){\n this.eventsPool[eventType].splice(i,1);\n break;\n }\n }\n }\n }\n hasListener(eventType:string):boolean{\n if(this.eventsPool[eventType] && this.eventsPool[eventType].length > 0){\n return true;\n }\n return false;\n }\n dispatchEvent(event:Event):void{\n if(event && event.eventType){\n let handlers:Array<Function> = this.eventsPool[event.eventType];\n if(handlers){\n for(let i=0;i<handlers.length;i++){\n handlers[i].call(this,event);\n }\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/core/EventEmitter.ts","export class UkuEventType{\n static INITIALIZED:string = 'initialized';\n\tstatic REFRESH:string = 'refresh';\n\tstatic HANDLE_ELEMENT_COMPLETED:string = \"handle_element_completed\";\n}\n\n\n// WEBPACK FOOTER //\n// ./src/core/UkuEventType.ts","export class EventListener{\n static addEventListener(element:HTMLElement,eventType:string,handler:any):void{\n return element.addEventListener(eventType,handler);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/extend/EventListener.ts","import { EventEmitter } from \"./EventEmitter\";\nimport { DefinitionManager } from \"./DefinitionManager\";\nimport { DirtyChecker } from \"./DirtyChecker\";\nimport { Analyzer } from \"./Analyzer\";\nimport { Selector } from \"../extend/Selector\";\nimport { UkuEventType } from \"./UkuEventType\";\nimport { IUkulele } from \"./IUkulele\";\nimport { Event } from \"./Event\";\nimport { ControllerModel } from \"../model/ControllerModel\";\n\nexport let Ukulele = class Ukulele extends EventEmitter implements IUkulele {\n\tprivate defMgr: DefinitionManager;\n\tprivate dirtyChecker: DirtyChecker;\n\tprivate promiseArray = [];\n\n\tprivate _childrenUku = {};\n\tstatic INITIALIZED: string = 'initialized';\n\tstatic REFRESH: string = 'refresh';\n\tstatic HANDLE_ELEMENT_COMPLETED: string = \"handle_element_completed\";\n\n\n\tpublic init(): void {\n\t\tPromise.all(this.promiseArray).then(() => {\n\t\t\tthis.manageApplication();\n\t\t});\n\t}\n\n\tpublic setChildrenUku(controllers, uku){\n\t\tfor(let cc of controllers){\n\t\t\tlet alias = cc._alias;\n\t\t\tif(!this._childrenUku[alias]){\n\t\t\t\tthis._childrenUku[alias] = []\n\t\t\t}\n\t\t\tthis._childrenUku[alias].push(uku);\n\t\t}\n\t}\n\n\tpublic handleElement(element: HTMLElement, handleElementCompletedFunc: Function): void {\n\t\tthis.analyizeElement(element, (e) => {\n\t\t\tthis.dispatchEvent(new Event(UkuEventType.HANDLE_ELEMENT_COMPLETED, e));\n\t\t\tif(handleElementCompletedFunc && typeof handleElementCompletedFunc === 'function'){\n\t\t\t\thandleElementCompletedFunc(e.element);\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic registerController(instanceName: string, controllerInst: Object): void {\n\t\twindow[instanceName] = controllerInst;\n\t\tthis._internal_getDefinitionManager().addControllerDefinition(instanceName, controllerInst);\n\t}\n\n\tpublic getController(instanceName: string) {\n\t\treturn this._internal_getDefinitionManager().getControllerDefinition(instanceName).controllerInstance;\n\t}\n\n\tpublic registerComponent(tag: string, templateUrl: string, preload: boolean): void {\n\t\tvar p: Promise<void> = this._internal_getDefinitionManager().addComponentDefinition(tag, templateUrl, preload);\n\t\tthis.promiseArray.push(p);\n\t}\n\n\tpublic getComponent(tagName: string) {\n\t\treturn this._internal_getDefinitionManager().getComponent(tagName);\n\t}\n\n\tpublic getComponentController(componentId: string): Object {\n\t\treturn this._internal_getDefinitionManager().getControllerInstByDomId(componentId);\n\t}\n\n\tpublic refresh(alias?: string | Array<string>, excludeElement?: HTMLElement) {\n\t\tif (!this.dirtyChecker) {\n\t\t\tthis.dirtyChecker = new DirtyChecker(this);\n\t\t}\n\t\tthis.dirtyChecker.runDirtyChecking(alias, excludeElement);\n\t}\n\t//internal function\n\tpublic _internal_getDefinitionManager(): DefinitionManager {\n\t\tif (!this.defMgr) {\n\t\t\tthis.defMgr = new DefinitionManager(this);\n\t\t}\n\t\treturn this.defMgr;\n\t}\n\tpublic _internal_dealWithElement(element: HTMLElement, callback: Function): void {\n\t\tthis.analyizeElement(element, callback);\n\t}\n\n\tprivate manageApplication(): void {\n\t\tlet apps: NodeList = Selector.querySelectorAll(document, \"[uku-application]\");\n\t\tif (apps.length === 1) {\n\t\t\tthis.analyizeElement(apps[0] as HTMLElement, (ele) => {\n\t\t\t\tthis.dispatchEvent(new Event(UkuEventType.INITIALIZED, ele));\n\t\t\t});\n\t\t} else {\n\t\t\tthrow new Error(\"Only one 'uku-application' can be declared in a whole html.\");\n\t\t}\n\t}\n\tprivate analyizeElement(element: HTMLElement, callback?: Function): void {\n\t\tlet anylyzer = new Analyzer(this);\n\t\tif (callback) {\n\t\t\t((retFunc: Function) => {\n\t\t\t\tanylyzer.addListener(Analyzer.ANALYIZE_COMPLETED, (e) => {\n\t\t\t\t\tretFunc(e.element);\n\t\t\t\t});\n\t\t\t})(callback);\n\t\t}\n\t\tanylyzer.analyizeElement(element);\n\t}\n}\n\n\n// WEBPACK FOOTER //\n// ./src/core/Ukulele.ts","import { Ajax } from \"../extend/Ajax\";\nimport { ControllerModel } from \"../model/ControllerModel\";\nimport { ComponentModel } from \"../model/ComponentModel\";\nimport { ComponentPoolItem } from \"../model/ComponentPoolItem\";\nimport { ComponentConfiguration } from \"../model/ComponentConfiguration\";\nimport { UkuleleUtil } from \"../util/UkuleleUtil\";\nimport { IUkulele } from \"./IUkulele\";\nexport class DefinitionManager {\n\tprivate uku: IUkulele;\n\tconstructor(_uku: IUkulele) {\n\t\tthis.uku = _uku;\n\t}\n\tprivate controllersDefinition: Object = {};\n\tprivate componentsDefinition: Object = {};\n\tprivate componentsPool: Object = {};\n\tprivate copyControllers: Object = {};\n\tprivate dependentScriptsCache: Object = {};\n\tprivate ajax: Ajax = new Ajax();\n\n\tgetComponentsDefinition(): Object {\n\t\treturn this.componentsDefinition;\n\t}\n\n\tgetComponentsPool(): Object {\n\t\treturn this.componentsPool;\n\t}\n\n\tsetComponentsPool(pool): void {\n\t\tthis.componentsPool = pool;\n\t}\n\n\tsetComponentsDefinition(value: Object): void {\n\t\tthis.componentsDefinition = value;\n\t}\n\n\tgetComponentDefinition(tagName: string): ComponentModel {\n\t\treturn this.componentsDefinition[tagName] as ComponentModel;\n\t}\n\n\tgetControllerDefinition(instanceName: string): ControllerModel {\n\t\treturn this.controllersDefinition[instanceName] as ControllerModel;\n\t}\n\n\tgetControllersDefinition(): Object {\n\t\treturn this.controllersDefinition;\n\t}\n\n\tgetComponent(tagName: string) {\n\t\treturn this.componentsPool[tagName];\n\t}\n\n\tgetCopyControllers(): Object {\n\t\treturn this.copyControllers;\n\t}\n\n\taddControllerDefinition(instanceName: string, controllerInst): void {\n\t\tlet controllerModel = new ControllerModel(instanceName, controllerInst);\n\t\tcontrollerInst._alias = instanceName;\n\t\tthis.controllersDefinition[instanceName] = controllerModel;\n\t}\n\n\tgetControllerInstByDomId(domId: string): Object {\n\t\tfor (let alias in this.controllersDefinition) {\n\t\t\tlet controllerModel = this.controllersDefinition[alias];\n\t\t\tlet controller = controllerModel.controllerInstance;\n\t\t\tif (controller._dom && controller._dom.id === domId) {\n\t\t\t\treturn controller;\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}\n\n\n\taddComponentDefinition(tag: string, templateUrl: string, preload: boolean): Promise<void> {\n\t\treturn new Promise<void>((resolve, reject) => {\n\t\t\tif (!preload) {\n\t\t\t\tthis.componentsPool[tag] = new ComponentPoolItem(tag, templateUrl, true);\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\tthis.componentsPool[tag] = new ComponentPoolItem(tag, templateUrl, false);\n\t\t\t\treturn this.ajax.get(templateUrl).then((result) => {\n\t\t\t\t\tlet componentConfig = UkuleleUtil.getComponentConfiguration(result);\n\t\t\t\t\treturn this.analyizeComponent(tag, componentConfig);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\taddLazyComponentDefinition(tag: string, templateUrl: string): Promise<void> {\n\t\treturn new Promise<void>((resolve, reject) => {\n\t\t\treturn this.ajax.get(templateUrl).then((result) => {\n\t\t\t\tlet componentConfig = UkuleleUtil.getComponentConfiguration(result);\n\t\t\t\treturn this.analyizeComponent(tag, componentConfig).then(() => {\n\t\t\t\t\tthis.componentsPool[tag] = { 'tagName': tag, 'templateUrl': templateUrl, 'lazy': false };\n\t\t\t\t\tresolve();\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\n\n\tgetBoundAttributeValue(attr: string, ...additionalArgu): any {\n\t\tlet controllerModels = this.getControllerModelByName(attr);\n\t\tlet controllers = [];\n\t\tcontrollerModels.forEach(controllerModel => {\n\t\t\tcontrollers.push(controllerModel.controllerInstance);\n\t\t});\n\t\tlet parameters: Array<any> = [this.uku, controllers, attr];\n\t\tparameters = parameters.concat(additionalArgu);\n\t\tlet result = UkuleleUtil.getFinalValue.apply(null, parameters);\n\t\treturn result;\n\t};\n\n\n\tgetControllerModelByName(expression: string): ControllerModel[] {\n\t\tlet arr = [];\n\t\tlet normalReg = /\\$\\w+\\./g;\n\t\tlet normals = expression.match(normalReg);\n\t\tif(normals){\n\t\t\tnormals.forEach( matchAlias => {\n\t\t\t\tmatchAlias = matchAlias.substr(0,matchAlias.length-1);\n\t\t\t\tlet controllerModel: ControllerModel = this.controllersDefinition[matchAlias];\n\t\t\t\tarr.push(controllerModel);\n\t\t\t});\n\t\t}\n\t\t\n\t\tlet ccReg = /cc\\_\\w*\\./g;\n\t\tlet ccs = expression.match(ccReg);\n\t\tif(ccs){\n\t\t\tccs.forEach( ccAlias => {\n\t\t\t\tccAlias = ccAlias.substr(0,ccAlias.length-1);\n\t\t\t\tlet controllerModel: ControllerModel = this.controllersDefinition[ccAlias];\n\t\t\t\tarr.push(controllerModel);\n\t\t\t});\n\t\t}\n\t\t\n\t\tlet repeatReg = /repeatItem\\_\\w*\\$/g;\n\t\tlet repeats = expression.match(repeatReg);\n\t\tif(repeats){\n\t\t\trepeats.forEach( repeatAlias => {\n\t\t\t\t//repeatAlias = repeatAlias.substr(0,repeatAlias.length-1);\n\t\t\t\tlet controllerModel: ControllerModel = this.controllersDefinition[repeatAlias];\n\t\t\t\tarr.push(controllerModel);\n\t\t\t});\n\t\t}\n\t\treturn arr;\n\t};\n\n\n\tgetFinalValueByExpression(expression: string): any {\n\t\tlet controllerModels = this.getControllerModelByName(expression);\n\t\tlet controllers = [];\n\t\tcontrollerModels.forEach(controllerModel => {\n\t\t\tcontrollers.push(controllerModel.controllerInstance);\n\t\t});\n\n\t\treturn UkuleleUtil.getFinalValue(controllers, expression);\n\t};\n\n\tprivate async analyizeComponent(tag: string, config: ComponentConfiguration): Promise<void> {\n\t\tlet deps: Array<string> = config.dependentScripts;\n\t\tlet self: DefinitionManager = this;\n\t\tif (deps && deps.length > 0) {\n\t\t\tlet tmpAMD;\n\t\t\tif (typeof window['define'] === 'function' && window['define'].amd) {\n\t\t\t\ttmpAMD = window['define'];\n\t\t\t\twindow['define'] = undefined;\n\t\t\t}\n\t\t\tif (!config.componentControllerScript) {\n\t\t\t\tlet ccsExternal = deps[deps.length - 1];\n\t\t\t\tconfig.componentControllerScript = await this.ajax.get(ccsExternal);\n\t\t\t\tdeps.pop();\n\t\t\t}\n\t\t\tfor (let i = 0; i < deps.length; i++) {\n\t\t\t\tlet dep = deps[i];\n\t\t\t\tawait loadDependentScript(dep);\n\t\t\t}\n\t\t\tif (tmpAMD) {\n\t\t\t\twindow['define'] = tmpAMD;\n\t\t\t}\n\t\t\tthis.buildeComponentModel(tag, config.template, config.componentControllerScript, config.stylesheet);\n\t\t\treturn;\n\t\t} else {\n\t\t\tthis.buildeComponentModel(tag, config.template, config.componentControllerScript, config.stylesheet);\n\t\t\treturn;\n\t\t}\n\n\t\tfunction loadDependentScript(src: string): Promise<void> {\n\t\t\treturn new Promise<void>((resolve, reject) => {\n\t\t\t\tif (!self.dependentScriptsCache[src]) {\n\t\t\t\t\tlet head = document.getElementsByTagName('HEAD')[0];\n\t\t\t\t\tlet script = document.createElement('script');\n\t\t\t\t\tscript.type = 'text/javascript';\n\t\t\t\t\tscript.charset = 'utf-8';\n\t\t\t\t\tscript.async = true;\n\t\t\t\t\tscript.src = src;\n\t\t\t\t\tscript.onload = (e) => {\n\t\t\t\t\t\tself.dependentScriptsCache[e.target['src']] = true;\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t};\n\t\t\t\t\thead.appendChild(script);\n\t\t\t\t} else {\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate buildeComponentModel(tag: string, template: string, script: string, style: string): void {\n\t\tlet debugComment = \"//# sourceURL=\" + tag + \".js\";\n\t\ttry {\n\t\t\tlet controllerClazz\n\t\t\tif (script) {\n\t\t\t\tscript = UkuleleUtil.wrapScriptInComponent(script);\n\t\t\t\tscript += debugComment;\n\t\t\t\tcontrollerClazz = eval(script);\n\t\t\t}\n\t\t\tlet newComp = new ComponentModel(tag, template, controllerClazz);\n\t\t\tthis.componentsDefinition[tag] = newComp;\n\t\t\tif (style) {\n\t\t\t\tdealWithShadowStyle(tag, style);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\n\t\tfunction dealWithShadowStyle(tagName: string, stylesheet: string): void {\n\t\t\tlet head = document.getElementsByTagName('HEAD')[0];\n\t\t\tlet style = document.createElement('style');\n\t\t\tstyle.type = 'text/css';\n\t\t\tvar styleArray = stylesheet.split(\"}\");\n\t\t\tvar newArray = [];\n\t\t\tstyleArray.forEach((value: string, index: number) => {\n\t\t\t\tvar newValue = value.replace(/^\\s*/, \"\");\n\t\t\t\tif (newValue) {\n\t\t\t\t\tnewArray.push(newValue);\n\t\t\t\t}\n\t\t\t});\n\t\t\tstylesheet = newArray.join(\"}\\n\" + \".\" + tagName + \" \");\n\t\t\tstylesheet = \".\" + tagName + \" \" + stylesheet + \"}\";\n\t\t\tstyle.innerHTML = stylesheet;\n\t\t\thead.appendChild(style);\n\t\t}\n\t}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/core/DefinitionManager.ts","export class Ajax {\n get(url:string):Promise<any> {\n return new Promise<any>((resolve, reject)=>{\n let request:XMLHttpRequest = new XMLHttpRequest();\n request.onreadystatechange = function() {\n if (request.readyState === 4) {\n if (request.status === 200) {\n resolve(request.responseText);\n } else {\n reject();\n }\n }\n };\n request.open(\"GET\", url, true);\n request.send(null);\n });\n \n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/extend/Ajax.ts","import {BoundItemBase} from \"./BoundItemBase\";\nexport class ControllerModel{\n alias:string;\n controllerInstance:Object;\n boundItems:Array<BoundItemBase>;\n constructor(alias:string ,ctrlInst:Object){\n this.alias = alias;\n this.controllerInstance = ctrlInst;\n this.boundItems = [];\n }\n addBoundItem(boundItem:BoundItemBase) :void{\n this.boundItems.push(boundItem);\n }\n\n getBoundItemsByName(name):Array<BoundItemBase> {\n let tempBoundItems:Array<BoundItemBase> = [];\n for (let i = 0; i < this.boundItems.length; i++) {\n let boundItem:BoundItemBase = this.boundItems[i];\n if (boundItem.attributeName === name) {\n tempBoundItems.push(boundItem);\n }\n }\n return tempBoundItems;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/model/ControllerModel.ts","export class ComponentModel{\n tagName:string;\n template:string;\n controllerClazz:Function;\n constructor(tagName,template,clazz){\n this.tagName = tagName;\n this.template = template;\n this.controllerClazz = clazz;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/model/ComponentModel.ts","export class ComponentPoolItem{\n tagName:string;\n templateUrl:string;\n lazy:boolean;\n \n constructor(_tagName,_templateUrl,_lazy){\n this.tagName = _tagName;\n this.templateUrl = _templateUrl;\n this.lazy = _lazy;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/model/ComponentPoolItem.ts","export class ComponentConfiguration{\n template:string;\n dependentScripts:Array<string>;\n componentControllerScript:string;\n stylesheet:string;\n \n constructor(_template:string,_dependentScripts:Array<string>,_componentControllerScript:string,_stylesheet:string = undefined){\n this.template = _template;\n this.dependentScripts = _dependentScripts;\n this.componentControllerScript = _componentControllerScript;\n this.stylesheet = _stylesheet;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/model/ComponentConfiguration.ts","import {UkuleleUtil} from \"../util/UkuleleUtil\";\nimport {ObjectUtil} from \"../util/ObjectUtil\";\nimport {UkuEventType} from \"./UkuEventType\";\nimport {IUkulele} from \"./IUkulele\";\nimport {ControllerModel} from \"../model/ControllerModel\";\nimport {BoundItemBase} from \"../model/BoundItemBase\";\nimport {Event} from \"./Event\";\nexport class DirtyChecker{\n\tprivate uku:IUkulele;\n\tprivate defMgr;\n\tprivate oldValueCache = {};\n\tconstructor(_uku:IUkulele){\n\t\tthis.uku = _uku;\n\t\tthis.defMgr = this.uku._internal_getDefinitionManager();\n\t}\n \n\trunDirtyChecking(ctrlAliasName?:string|Array<string>, excludeElement?:HTMLElement):void {\n\t\tlet _this:DirtyChecker = this;\n\t\tif (ctrlAliasName) {\n\t\t\tif (typeof (ctrlAliasName) === \"string\") {\n\t\t\t\twatchController(ctrlAliasName as string);\n\t\t\t} else if (ObjectUtil.isArray(ctrlAliasName)) {\n\t\t\t\tfor (let i = 0; i < ctrlAliasName.length; i++) {\n\t\t\t\t\twatchController(ctrlAliasName[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (let alias in this.defMgr.getControllersDefinition()) {\n\t\t\t\twatchController(alias);\n\t\t\t}\n\t\t}\n\n\t\tfunction watchController(alias:string) {\n\t\t\tlet controllerModel:ControllerModel = _this.defMgr.getControllersDefinition()[alias];\n\t\t\tif (!controllerModel) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet controller:Object = controllerModel.controllerInstance;\n\t\t\tif(!_this.oldValueCache[alias]){\n\t\t\t\t_this.oldValueCache[alias] = {};\n\t\t\t}\n\t\t\tlet oldValueMap = _this.oldValueCache[alias];\n\t\t\tlet changedElementCount = 0;\n\t\t\tfor (let i = 0; i < controllerModel.boundItems.length; i++) {\n\t\t\t\tlet boundItem:BoundItemBase = controllerModel.boundItems[i] as BoundItemBase;\n\t\t\t\tlet attrName:string = boundItem.attributeName;\n\n\t\t\t\tif (oldValueMap) {\n\t\t\t\t\tif (boundItem.hasOwnProperty('ukuTag') && boundItem['ukuTag'] === \"selected\") {\n\t\t\t\t\t\tattrName = attrName.split(\"|\")[0];\n\t\t\t\t\t}\n\t\t\t\t\tlet finalValue = UkuleleUtil.getFinalValue( [controller], attrName);\n\t\t\t\t\tlet previousFinalValue = oldValueMap[attrName];\t\t\t\t\n\t\t\t\t\tif (!ObjectUtil.compare(previousFinalValue, finalValue)) {\n\t\t\t\t\t\tattrName = boundItem.attributeName;\n\t\t\t\t\t\tlet changedBoundItems:Array<BoundItemBase> = controllerModel.getBoundItemsByName(attrName);\n\t\t\t\t\t\tfor (let j = 0; j < changedBoundItems.length; j++) {\n\t\t\t\t\t\t\tlet changedBoundItem:BoundItemBase = changedBoundItems[j] as BoundItemBase;\n\t\t\t\t\t\t\tif(changedBoundItem.element !== excludeElement || (boundItem.hasOwnProperty('ukuTag') && changedBoundItem['ukuTag'] !== \"value\")){\n\t\t\t\t\t\t\t\tchangedElementCount++;\n\t\t\t\t\t\t\t\tchangedBoundItem.render([controller]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\toldValueMap[attrName] = ObjectUtil.deepClone(finalValue);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(changedElementCount > 0 && _this.uku.hasListener(UkuEventType.REFRESH)){\n\t\t\t\t_this.uku.dispatchEvent(new Event(UkuEventType.REFRESH));\n\t\t\t}\n\t\t}\n\t};\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/core/DirtyChecker.ts","export class ObjectUtil {\n static isArray(obj: Object): boolean {\n return Object.prototype.toString.call(obj) === '[object Array]';\n }\n\n static getType(obj: any): string {\n let type: string = typeof (obj);\n if (type === \"object\") {\n if (ObjectUtil.isArray(obj)) {\n return \"array\";\n } else {\n return type;\n }\n } else {\n return type;\n }\n }\n\n static deepClone(obj: any): any {\n let o: any;\n let i: any;\n let j: number;\n if (typeof (obj) !== \"object\" || obj === null) {\n return obj;\n }\n if (obj instanceof (Array)) {\n o = [];\n i = 0;\n j = obj.length;\n for (; i < j; i++) {\n if (typeof (obj[i]) === \"object\" && obj[i] !== null) {\n o[i] = ObjectUtil.deepClone(obj[i]);\n } else {\n o[i] = obj[i];\n }\n }\n } else {\n o = {};\n for (i in obj) {\n if (typeof (obj[i]) === \"object\" && obj[i] !== null && i !== \"_dom\") {\n o[i] = ObjectUtil.deepClone(obj[i]);\n } else {\n o[i] = obj[i];\n }\n }\n }\n\n return o;\n }\n\n static compare(objA: any, objB: any): boolean {\n let type: string = ObjectUtil.getType(objA);\n let typeB: string = ObjectUtil.getType(objB);\n let result: boolean = true;\n if (type !== typeB) {\n return false;\n } else {\n switch (type) {\n case \"object\":\n if (objA === null && objB === null) {\n result = true;\n } else if (objA === null || objB === null) {\n result = false;\n } else {\n let keys_a = Object.keys(objA);\n let keys_b = Object.keys(objB);\n\n if (keys_a.length != keys_b.length) {\n result = false;\n } else if (keys_a.length === 0 && keys_b.length === 0) {\n result = true;\n } else {\n for (let key in objA) {\n let valuA = objA[key];\n let valuB = objB[key];\n let isEqual: boolean = ObjectUtil.compare(valuA, valuB);\n if (!isEqual) {\n result = false;\n break;\n }\n }\n }\n }\n break;\n case \"array\":\n if (objA.length === objB.length) {\n for (let i = 0; i < objA.length; i++) {\n let itemA = objA[i];\n let itemB = objB[i];\n let isEqual2: boolean = ObjectUtil.compare(itemA, itemB);\n if (!isEqual2) {\n result = false;\n break;\n }\n }\n } else {\n result = false;\n }\n break;\n case \"function\":\n result = objA.toString() === objB.toString();\n break;\n default:\n result = objA === objB;\n break;\n }\n }\n return result;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/util/ObjectUtil.ts","import { EventEmitter } from \"./EventEmitter\";\nimport { UkuleleUtil } from \"../util/UkuleleUtil\";\nimport { BoundItemAttributeFactory } from './BoundItemAttributeFactory';\nimport { BoundItemExpression } from '../model/BoundItemExpression';\nimport { BoundItemInnerText } from '../model/BoundItemInnerText';\nimport { BoundItemRepeat } from '../model/BoundItemRepeat';\nimport { BoundItemComponentAttribute } from \"../model/BoundItemComponentAttribute\";\nimport { elementChangedBinder } from \"./ElementActionBinder\";\nimport { IUkulele } from \"./IUkulele\";\nimport { EventListener } from \"../extend/EventListener\";\nimport { Selector } from \"../extend/Selector\";\nimport { Event as UkuEvent } from \"./Event\";\nexport class Analyzer extends EventEmitter {\n private uku: IUkulele;\n private defMgr;\n static ANALYIZE_COMPLETED: string = 'analyizeCompleted';\n constructor(_uku: IUkulele) {\n super();\n this.uku = _uku;\n this.defMgr = this.uku._internal_getDefinitionManager();\n }\n\n public analyizeElement(ele): void {\n this.searchComponent(ele).then((element) => {\n this.searchExpression(element);\n this.searchUkuAttribute(element);\n //this.defMgr.copyAllController();\n if (this.hasListener(Analyzer.ANALYIZE_COMPLETED)) {\n this.dispatchEvent(new UkuEvent(Analyzer.ANALYIZE_COMPLETED, element));\n }\n });\n }\n\n private sortAttributes(subElement): Array<any> {\n let orderAttrs = [];\n let listenerAttrs = [];\n for (let i = 0; i < subElement.attributes.length; i++) {\n let attribute = subElement.attributes[i];\n if (attribute.nodeName.search(\"uku-on\") !== -1) {\n //orderAttrs.push(attribute);\n listenerAttrs.push(attribute);\n } else {\n orderAttrs.push(attribute);\n }\n }\n orderAttrs = orderAttrs.concat(listenerAttrs);\n return orderAttrs;\n }\n\n private searchUkuAttribute(element): void {\n let subElements = [];\n //scan element which has uku-* tag\n let isSelfHasUkuTag = Selector.fuzzyFind(element, 'uku-');\n if (isSelfHasUkuTag) {\n subElements.push(isSelfHasUkuTag);\n }\n let allChildren = Selector.querySelectorAll(element, \"*\");\n for (let i = 0; i < allChildren.length; i++) {\n let child: HTMLElement = allChildren[i] as HTMLElement;\n let matchElement = Selector.fuzzyFind(child, 'uku-');\n if (matchElement && !UkuleleUtil.isInRepeat(matchElement)) {\n subElements.push(matchElement);\n }\n }\n //解析绑定 attribute,注册event\n for (let n = 0; n < subElements.length; n++) {\n let subElement = subElements[n];\n let orderAttrs = this.sortAttributes(subElement);\n for (let j = 0; j < orderAttrs.length; j++) {\n let attribute = orderAttrs[j];\n if (UkuleleUtil.searchUkuAttrTag(attribute.nodeName) > -1) {\n let tempArr = attribute.nodeName.split('-');\n tempArr.shift();\n let attrName = tempArr.join('-');\n if (attrName !== \"application\") {\n if (attrName.search('on') === 0) {\n //is an event\n if (!UkuleleUtil.isRepeat(subElement) && !UkuleleUtil.isInRepeat(subElement)) {\n this.dealWithEvent(subElement, attrName);\n }\n } else if (attrName.search('repeat') !== -1) {\n //is an repeat\n this.dealWithRepeat(subElement);\n } else {\n //is an attribute\n if (!UkuleleUtil.isRepeat(subElement) && !UkuleleUtil.isInRepeat(subElement)) {\n if (attrName !== \"text\") {\n this.dealWithAttribute(subElement, attrName);\n } else {\n this.dealWithInnerText(subElement);\n }\n }\n }\n }\n }\n }\n }\n }\n\n\n private async searchComponent(element): Promise<any> {\n let comp = this.defMgr.getComponent(element.localName);\n if (comp) {\n if (!comp.lazy) {\n let attrs = element.attributes;\n let compDef = this.defMgr.getComponentsDefinition()[comp.tagName];\n if (!UkuleleUtil.isRepeat(element) && !UkuleleUtil.isInRepeat(element)) {\n return this.dealWithComponent(element, compDef.template, compDef.controllerClazz, attrs);\n } else {\n return element;\n }\n } else {\n await this.defMgr.addLazyComponentDefinition(comp.tagName, comp.templateUrl);\n let attrs = element.attributes;\n let compDef = this.defMgr.getComponentsDefinition()[comp.tagName];\n if (!UkuleleUtil.isRepeat(element) && !UkuleleUtil.isInRepeat(element)) {\n return this.dealWithComponent(element, compDef.template, compDef.controllerClazz, attrs);\n } else {\n return element;\n }\n }\n } else {\n if (element.children && element.children.length > 0) {\n for (let i = 0; i < element.children.length; i++) {\n let child = element.children[i];\n await this.searchComponent(child);\n }\n return element;\n } else {\n return element;\n }\n }\n }\n\n private async dealWithComponent(tag, template, Clazz, attrs): Promise<any> {\n let time = new Date().getTime();\n let randomAlias = 'cc_' + Math.floor(time * Math.random()).toString();\n //should consider white space between characters\n template = template.replace(new RegExp(\"\\'cc\\\\.\", 'gm'), \"'\" + randomAlias + '.');\n template = template.replace(new RegExp('\"cc\\\\.', 'gm'), '\"' + randomAlias + '.');\n template = template.replace(new RegExp('\\{\\{cc\\\\.', 'gm'), \"{{\" + randomAlias + '.');\n template = template.replace(new RegExp(' cc\\\\.', 'gm'), ' ' + randomAlias + '.');\n template = template.replace(new RegExp('\\\\(cc\\\\.', 'gm'), '(' + randomAlias + '.');\n template = template.replace(new RegExp('\\\\,cc\\\\.', 'gm'), ',' + randomAlias + '.');\n template = template.replace(new RegExp('\\\\.cc\\\\.', 'gm'), '.' + randomAlias + '.');\n template = template.replace(new RegExp('\\\\!cc\\\\.', 'gm'), '!' + randomAlias + '.');\n let tempFragment = document.createElement('div');\n tempFragment.insertAdjacentHTML('afterBegin' as InsertPosition, template);\n if (tempFragment.children.length > 1) {\n template = tempFragment.outerHTML;\n }\n tag.insertAdjacentHTML('beforeBegin', template);\n let htmlDom = tag.previousElementSibling;\n htmlDom.classList.add(tag.localName);\n let cc;\n if (Clazz) {\n cc = new Clazz(this.uku);\n cc._dom = htmlDom;\n cc.fire = (eventType: string, data: any, bubbles: boolean = false, cancelable: boolean = true) => {\n let event = new CustomEvent(eventType.toLowerCase(), { \"bubbles\": bubbles, \"cancelable\": cancelable });\n event['data'] = data;\n cc._dom.dispatchEvent(event);\n };\n this.uku.registerController(randomAlias, cc);\n for (let i = 0; i < attrs.length; i++) {\n let attr = attrs[i];\n //todo need Refactor\n if (UkuleleUtil.searchUkuAttrTag(attr.nodeName) !== 0\n || attr.nodeName.search(\"uku-on\") !== -1\n || attr.nodeName === \"uku-render\"\n || attr.nodeName === \"uku-visible\") {\n htmlDom.setAttribute(attr.nodeName, attr.nodeValue);\n } else {\n let tagName = UkuleleUtil.getAttrFromUkuTag(attr.nodeName, true);\n let controllerModels = this.defMgr.getControllerModelByName(attr.nodeValue);\n if (controllerModels && controllerModels.length > 0) {\n let boundItem = new BoundItemComponentAttribute(attr.nodeValue, tagName, cc, this.uku);\n let controllers = [];\n controllerModels.forEach(controllerModel => {\n controllerModel.addBoundItem(boundItem);\n controllers.push(controllerModel.controllerInstance);\n });\n \n boundItem.render(controllers);\n }else{\n //native value, not expression\n let boundItem = new BoundItemComponentAttribute(attr.nodeValue, tagName, cc, this.uku);\n boundItem.render([]);\n }\n }\n }\n } else {\n for (let i = 0; i < attrs.length; i++) {\n let attr = attrs[i];\n //todo:need Refactor\n if (UkuleleUtil.searchUkuAttrTag(attr.nodeName) !== 0\n || attr.nodeName.search(\"uku-on\") !== -1\n || attr.nodeName === \"uku-render\"\n || attr.nodeName === \"uku-visible\") {\n htmlDom.setAttribute(attr.nodeName, attr.nodeValue);\n }\n }\n }\n\n tag.parentNode.removeChild(tag);\n if (htmlDom.children && htmlDom.children.length > 0) {\n for (let j = 0; j < htmlDom.children.length; j++) {\n let child = htmlDom.children[j];\n await this.searchComponent(child);\n }\n if (cc && cc._initialized && typeof (cc._initialized) === 'function') {\n cc._initialized(randomAlias,cc._dom);\n }\n return htmlDom;\n } else {\n if (cc && cc._initialized && typeof (cc._initialized) === 'function') {\n cc._initialized(randomAlias,cc._dom);\n }\n return htmlDom;\n }\n }\n //todo: 处理 tag之间使用{{}}括起的表达式,用以显示文字\n private searchExpression(element: HTMLElement): void {\n if (UkuleleUtil.searchUkuExpTag(Selector.directText(element)) !== -1) {\n if (!UkuleleUtil.isRepeat(element) && !UkuleleUtil.isInRepeat(element)) {\n //normal expression\n this.dealWithExpression(element);\n }\n }\n for (let i = 0; i < element.children.length; i++) {\n this.searchExpression(element.children[i] as HTMLElement);\n }\n\n\n }\n\n private dealWithExpression(element) {\n //通常的花括号声明方式\n let expression = Selector.directText(element);\n if (UkuleleUtil.searchUkuExpTag(expression) !== -1) {\n let attr = expression.slice(2, -2);\n let controllerModels = this.defMgr.getControllerModelByName(attr);\n if (controllerModels && controllerModels.length > 0) {\n let boundItem = new BoundItemExpression(attr, expression, element, this.uku);\n let controllers = [];\n controllerModels.forEach(controllerModel => {\n controllerModel.addBoundItem(boundItem);\n controllers.push(controllerModel.controllerInstance);\n }); \n boundItem.render(controllers);\n }\n }\n }\n\n //处理绑定的attribute\n private dealWithAttribute: Function = function (element, tagName) {\n let attr = element.getAttribute(\"uku-\" + tagName);\n //let elementName = element.tagName;\n let controllerModels = this.defMgr.getControllerModelByName(attr);\n if (controllerModels && controllerModels.length > 0) {\n let boundItem = BoundItemAttributeFactory.getInstance().generateInstance(attr, tagName, element, this.uku);\n let controllers = [];\n controllerModels.forEach(controllerModel => {\n controllerModel.addBoundItem(boundItem);\n elementChangedBinder(element, tagName, controllerModel, this.uku.refresh, this.uku);\n controllers.push(controllerModel.controllerInstance)\n }); \n boundItem.render(controllers);\n \n }\n }\n\n //处理 uku-text\n private dealWithInnerText(element) {\n let attr = element.getAttribute(\"uku-text\");\n if (attr) {\n let controllerModels = this.defMgr.getControllerModelByName(attr);\n if (controllerModels && controllerModels.length > 0) {\n let boundItem = new BoundItemInnerText(attr, element, this.uku);\n let controllers = [];\n controllerModels.forEach(controllerModel => {\n controllerModel.addBoundItem(boundItem);\n controllers.push(controllerModel.controllerInstance);\n });\n boundItem.render(controllers);\n }\n }\n }\n\n\n //处理 事件 event\n private dealWithEvent(element, eventName) {\n let expression = element.getAttribute(\"uku-\" + eventName);\n let eventNameInListener = eventName.substring(2);\n eventNameInListener = eventNameInListener.toLowerCase();\n let controllerModels = this.defMgr.getControllerModelByName(expression);\n if(!controllerModels || controllerModels.length === 0){\n controllerModels = [];\n } \n EventListener.addEventListener(element, eventNameInListener, (event) => {\n let alias_list = [];\n controllerModels.forEach(controllerModel => {\n //this.defMgr.copyControllerInstance(controllerModel.controllerInstance, controllerModels.alias);\n alias_list.push(controllerModel.alias);\n });\n \n let index = UkuleleUtil.searchUkuFuncArg(expression);\n if(index === -1){\n // is an expression, not a function\n let handler = new Function(\"event\",\"return \" + expression);\n console.log(handler.toString());\n handler(event);\n }else{\n // is a function\n let i = expression.search(/\\(/);\n let arg = 'event';\n if(expression[i+1] !== ')'){\n // has argument\n arg = 'event,'\n }\n let arr = expression.split('(');\n arr[1] = arg + arr[1];\n let new_expression = arr.join(\"(\");\n (function(e){\n let tempScope = {};\n tempScope['event'] = e;\n eval(new_expression);\n tempScope = null;\n })(event);\n }\n this.uku.refresh(alias_list, element);\n });\n }\n //处理 repeat\n private dealWithRepeat(element) {\n let repeatExpression = element.getAttribute(\"uku-repeat\");\n let tempArr = repeatExpression.split(' in ');\n let itemName = tempArr[0];\n let attr = tempArr[1];\n let controllerModels = this.defMgr.getControllerModelByName(attr);\n if (controllerModels && controllerModels.length > 0) {\n let controllers = [];\n //let controllerInst = controllerModel.controllerInstance;\n let boundItem = new BoundItemRepeat(attr, itemName, element, this.uku);\n controllerModels.forEach(controllerModel => {\n controllerModel.addBoundItem(boundItem);\n controllers.push(controllerModel.controllerInstance);\n }); \n boundItem.render(controllers);\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/core/Analyzer.ts","import {BountItemAttrSelected} from \"../model/directive/BoundItemAttrSelected\";\nimport {BoundItemAttrDataItem} from \"../model/directive/BoundItemAttrDataItem\";\nimport {BoundItemAttrSrc} from \"../model/directive/BoundItemAttrSrc\";\nimport {BoundItemAttrDisabled} from \"../model/directive/BoundItemAttrDisabled\";\nimport {BoundItemAttrRender} from \"../model/directive/BoundItemAttrRender\";\nimport {BoundItemAttrStyle} from \"../model/directive/BoundItemAttrStyle\";\nimport {BoundItemAttrValue} from \"../model/directive/BoundItemAttrValue\";\nimport {BoundItemAttrVisible} from \"../model/directive/BoundItemAttrVisible\";\nimport {BoundItemAttribute} from \"../model/BoundItemAttribute\";\nexport class BoundItemAttributeFactory{\n private static _instance = new BoundItemAttributeFactory();\n constructor(){\n if(BoundItemAttributeFactory._instance){\n throw new Error(\"Error: Instantiation failed: Use BoundItemAttributeFactory.getInstance() instead of new.\"); \n }\n BoundItemAttributeFactory._instance = this;\n\n }\n static getInstance():BoundItemAttributeFactory{\n return BoundItemAttributeFactory._instance;\n }\n generateInstance(attr, tagName, element, uku){\n let instance;\n switch (tagName) {\n case \"selected\":\n instance = new BountItemAttrSelected(attr, tagName, element, uku);\n break;\n case \"data-item\":\n instance = new BoundItemAttrDataItem(attr, tagName, element, uku);\n break;\n case \"src\":\n instance = new BoundItemAttrSrc(attr, tagName, element, uku);\n break;\n case \"disabled\":\n instance = new BoundItemAttrDisabled(attr, tagName, element, uku);\n break;\n case \"render\":\n instance = new BoundItemAttrRender(attr, tagName, element, uku);\n break;\n case \"style\":\n instance = new BoundItemAttrStyle(attr, tagName, element, uku);\n break;\n case \"value\":\n instance = new BoundItemAttrValue(attr, tagName, element, uku);\n break;\n case \"visible\":\n instance = new BoundItemAttrVisible(attr, tagName, element, uku);\n break;\n default:\n instance = new BoundItemAttribute(attr, tagName, element, uku);\n }\n return instance;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/core/BoundItemAttributeFactory.ts","import {BoundItemAttribute} from \"../BoundItemAttribute\";\nimport {UkuleleUtil} from \"../../util/UkuleleUtil\";\n\nexport class BountItemAttrSelected extends BoundItemAttribute{\n constructor(attrName:string, ukuTag:string, element:HTMLElement, uku:any){\n if(ukuTag !== \"selected\"){\n throw new TypeError(\"it doesn't use uku-selected\");\n }\n super(attrName,ukuTag,element,uku);\n }\n render(controllers):void{\n let attr:string = this.attributeName;\n let key:string;\n let elementName:string = this.element.tagName;\n if(elementName === \"SELECT\"){\n let tempArr:Array<string> = this.attributeName.split(\"|\");\n attr = tempArr[0];\n key = tempArr[1];\n let finalValue = UkuleleUtil.getFinalValue(controllers,attr);\n let value;\n \tif(key){\n \t\tvalue = finalValue[key];\n \t}else{\n \t\tvalue = finalValue;\n \t}\n (this.element as HTMLSelectElement).value = value;\n }\n\n if(elementName === \"INPUT\" && this.element.getAttribute(\"type\") === \"radio\"){\n let finalValue = UkuleleUtil.getFinalValue(controllers,attr);\n if((this.element as HTMLInputElement).value === finalValue){\n (this.element as HTMLInputElement).setAttribute(\"checked\",\"true\");\n }\n } \n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/model/directive/BoundItemAttrSelected.ts","import {BoundItemAttribute} from \"../BoundItemAttribute\";\nimport {UkuleleUtil} from \"../../util/UkuleleUtil\";\n\nexport class BoundItemAttrDataItem extends BoundItemAttribute{\n constructor(attrName:string, ukuTag:string, element:HTMLElement, uku:any){\n if(ukuTag !== \"data-item\"){\n throw new TypeError(\"it doesn't use uku-item\");\n }\n super(attrName,ukuTag,element,uku);\n }\n render(controllers):void{\n let attr:string = this.attributeName;\n let elementName:string = this.element.tagName;\n let finalValue = UkuleleUtil.getFinalValue(controllers,attr);\n if(elementName === \"OPTION\"){\n \tfinalValue = JSON.stringify(finalValue);\n this.element.setAttribute('data-item',finalValue);\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/model/directive/BoundItemAttrDataItem.ts","import {BoundItemAttribute} from \"../BoundItemAttribute\";\nimport {UkuleleUtil} from \"../../util/UkuleleUtil\";\n\nexport class BoundItemAttrSrc extends BoundItemAttribute{\n constructor(attrName:string, ukuTag:string, element:HTMLElement, uku:any){\n if(ukuTag !== \"src\"){\n throw new TypeError(\"it doesn't use uku-src\");\n }\n super(attrName,ukuTag,element,uku);\n }\n render(controllers):void{\n let attr:string = this.attributeName;\n let elementName:string = this.element.tagName;\n let finalValue = UkuleleUtil.getFinalValue(controllers,attr);\n if(elementName === \"IMG\" || elementName === \"VIDEO\" || elementName === \"AUDIO\"){\n \t\tif(finalValue){\n this.element.setAttribute(this.ukuTag,finalValue);\n }\n \t}else{\n throw new Error(\"uku-src doesn't work with current dom\");\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/model/directive/BoundItemAttrSrc.ts","import {BoundItemAttribute} from \"../BoundItemAttribute\";\nimport {UkuleleUtil} from \"../../util/UkuleleUtil\";\n\nexport class BoundItemAttrDisabled extends BoundItemAttribute{\n constructor(attrName:string, ukuTag:string, element:HTMLElement, uku:any){\n if(ukuTag !== \"disabled\"){\n throw new TypeError(\"it doesn't use uku-disabled\");\n }\n super(attrName,ukuTag,element,uku);\n }\n render(controllers):void{\n let attr:string = this.attributeName;\n let elementName:string = this.element.tagName;\n let finalValue = UkuleleUtil.getFinalValue(controllers,attr);\n (this.element as HTMLInputElement).disabled = finalValue;\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/model/directive/BoundItemAttrDisabled.ts","import {BoundItemAttribute} from \"../BoundItemAttribute\";\nimport {UkuleleUtil} from \"../../util/UkuleleUtil\";\n\nexport class BoundItemAttrRender extends BoundItemAttribute{\n constructor(attrName:string, ukuTag:string, element:HTMLElement, uku:any){\n if(ukuTag !== \"render\"){\n throw new TypeError(\"it doesn't use uku-render\");\n }\n super(attrName,ukuTag,element,uku);\n }\n render(controllers):void{\n let attr:string = this.attributeName;\n let finalValue = UkuleleUtil.getFinalValue(controllers,attr);\n if(finalValue){\n let oldDisplaySetting = this.element.getAttribute(\"data-old-display\");\n if(oldDisplaySetting !== null){\n this.element.style.display = oldDisplaySetting;\n }\n }else{\n let oldDisplaySetting = this.element.getAttribute(\"data-old-display\");\n if(oldDisplaySetting === null){\n oldDisplaySetting = this.element.style.display;\n this.element.setAttribute(\"data-old-display\",oldDisplaySetting);\n }\n this.element.style.display = \"none\";\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/model/directive/BoundItemAttrRender.ts","import {BoundItemAttribute} from \"../BoundItemAttribute\";\nimport {UkuleleUtil} from \"../../util/UkuleleUtil\";\n\nexport class BoundItemAttrStyle extends BoundItemAttribute{\n constructor(attrName:string, ukuTag:string, element:HTMLElement, uku:any){\n if(ukuTag !== \"style\"){\n throw new TypeError(\"it doesn't use uku-style\");\n }\n super(attrName,ukuTag,element,uku);\n }\n render(controllers):void{\n let attr:string = this.attributeName;\n let elementName:string = this.element.tagName;\n let finalValue = UkuleleUtil.getFinalValue(controllers,attr);\n for(let cssName in finalValue){\n this.element.style[cssName] = finalValue[cssName];\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/model/directive/BoundItemAttrStyle.ts","import {BoundItemAttribute} from \"../BoundItemAttribute\";\nimport {UkuleleUtil} from \"../../util/UkuleleUtil\";\n\nexport class BoundItemAttrValue extends BoundItemAttribute{\n constructor(attrName:string, ukuTag:string, element:HTMLElement, uku:any){\n if(ukuTag !== \"value\"){\n throw new TypeError(\"it doesn't use uku-value\");\n }\n super(attrName,ukuTag,element,uku);\n }\n render(controllers):void{\n let attr:string = this.attributeName;\n let elementName:string = this.element.tagName;\n let finalValue = UkuleleUtil.getFinalValue(controllers,attr);\n if(elementName === \"INPUT\" && this.element.getAttribute(\"type\") === \"checkbox\"){\n \t\t(this.element as HTMLInputElement).checked = finalValue;\n \t}\n \telse{\n (this.element as HTMLInputElement).value = finalValue;\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/model/directive/BoundItemAttrValue.ts","import {BoundItemAttribute} from \"../BoundItemAttribute\";\nimport {UkuleleUtil} from \"../../util/UkuleleUtil\";\n\nexport class BoundItemAttrVisible extends BoundItemAttribute{\n constructor(attrName:string, ukuTag:string, element:HTMLElement, uku:any){\n if(ukuTag !== \"visible\"){\n throw new TypeError(\"it doesn't use uku-visible\");\n }\n super(attrName,ukuTag,element,uku);\n }\n render(controllers):void{\n let attr:string = this.attributeName;\n let elementName:string = this.element.tagName;\n let finalValue = UkuleleUtil.getFinalValue(controllers,attr);\n if(finalValue){\n this.element.style.visibility = \"visible\";\n }else{\n this.element.style.visibility = \"hidden\";\n }\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/model/directive/BoundItemAttrVisible.ts","import {BoundItemBase} from \"./BoundItemBase\";\nimport {UkuleleUtil} from \"../util/UkuleleUtil\";\nimport {Selector} from \"../extend/Selector\";\nimport {IUkulele} from \"../core/IUkulele\";\nexport class BoundItemExpression extends BoundItemBase{\n expression:string;\n constructor(attrName:string, expression:string, element:HTMLElement, uku:IUkulele){\n super(attrName,element,uku);\n this.expression = expression;\n }\n\n render(controllers) :void{\n let finalValue = UkuleleUtil.getFinalValue(controllers,this.attributeName);\n Selector.directText(this.element,finalValue);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/model/BoundItemExpression.ts","import {BoundItemBase} from \"./BoundItemBase\";\nimport {UkuleleUtil} from \"../util/UkuleleUtil\";\nimport {IUkulele} from \"../core/IUkulele\";\nexport class BoundItemInnerText extends BoundItemBase{\n tagName:string;\n constructor(attrName:string, element:HTMLElement, uku:IUkulele){\n super(attrName,element,uku);\n this.tagName = 'text';\n }\n\n render(controllers):void {\n let finalValue = UkuleleUtil.getFinalValue(controllers,this.attributeName);\n this.element.innerHTML = finalValue;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/model/BoundItemInnerText.ts","import {BoundItemBase} from \"./BoundItemBase\";\nimport {UkuleleUtil} from \"../util/UkuleleUtil\";\nimport {IUkulele} from \"../core/IUkulele\";\n\nexport class BoundItemRepeat extends BoundItemBase{\n expression:string;\n renderTemplate:string;\n parentElement:Node;\n beginCommentString:string;\n endCommentString:string;\n constructor(attrName, itemName, element, uku){\n super(attrName, element, uku);\n this.expression = itemName;\n this.renderTemplate = element.outerHTML;\n this.parentElement = element.parentNode;\n this.beginCommentString = undefined;\n this.endCommentString = undefined;\n }\n\n replaceVarible(element:HTMLElement, varName, alias){\n let pattern = new RegExp(\"\\\\b\"+ varName + \"(?!\\\\w)\",\"gm\");\n let attributes = element.attributes;\n for(let i=0; i<attributes.length; i++){\n let attr = attributes[i];\n if(UkuleleUtil.isUkuAttrTag(attr.nodeName)){\n attr.nodeValue = attr.nodeValue.replace(pattern, alias);\n }\n }\n let childTag = element.innerHTML.match(new RegExp(\"\\\\<\\\\w*.*\\\\>\",\"gm\"))\n let innerText = element.innerHTML.match(new RegExp(\"\\\\{{[\\\\w\\\\W]*\\\\}\\\\}\",\"gm\"));\n if(childTag === null\n && innerText !== null\n && innerText.length === 1){\n element.textContent = element.textContent.replace(pattern, alias);\n }\n if(element.children && element.children.length > 0){\n for(let j=0; j<element.children.length; j++){\n let child:HTMLElement = element.children[j] as HTMLElement;\n this.replaceVarible(child, varName, alias);\n } \n }\n }\n\n render(controllers) {\n let finalValue = UkuleleUtil.getFinalValue(controllers, this.attributeName);\n if (!finalValue) {\n return;\n }\n if(typeof finalValue === \"number\" && Math.floor(finalValue) === finalValue){\n //finalValue = \n let newFinalValue = [];\n for(let num=1; num <= finalValue; num++){\n //let item = {value: num};\n newFinalValue.push(num);\n }\n finalValue = newFinalValue;\n }\n\n let self = this;\n if (this.element && this.element.parentNode) {\n //create repeate begin comment\n this.beginCommentString = \"begin uku-repeat: \" + this.expression + \" in \" + this.attributeName;\n let beginComment = document.createComment(this.beginCommentString);\n this.element.parentNode.insertBefore(beginComment, this.element);\n //create repeate end comment\n this.endCommentString = \"end uku-repeat: \" + this.expression + \" in \" + this.attributeName;\n let endComment = document.createComment(this.endCommentString);\n this.element.parentNode.insertBefore(endComment, this.element.nextSibling);\n //remove definition dom\n this.element.parentNode.removeChild(this.element);\n }\n let filter:NodeFilter = {acceptNode: function(node){\n if (node.nodeValue === self.beginCommentString) {\n return NodeFilter.FILTER_ACCEPT;\n }\n return NodeFilter.FILTER_SKIP;\n }};\n let safeFilter:any = filter.acceptNode;\n safeFilter.acceptNode = filter.acceptNode;\n let treeWalker = document.createTreeWalker(this.parentElement,\n NodeFilter.SHOW_COMMENT,\n safeFilter,\n false);\n\n function generateTempContainer():HTMLElement{\n let index = UkuleleUtil.searchHtmlTag(self.renderTemplate,\"tr\");\n let index2 = UkuleleUtil.searchHtmlTag(self.renderTemplate,\"th\");\n if(index === -1 || index2 === -1 ){\n return document.createElement(\"tbody\");\n }else{\n return document.createElement(\"div\");\n }\n }\n\n while (treeWalker.nextNode()) {\n let commentNode = treeWalker.currentNode;\n if (commentNode && commentNode.nodeValue === this.beginCommentString) {\n //remove overtime dom.\n while (commentNode.nextSibling && commentNode.nextSibling.nodeValue !== this.endCommentString) {\n commentNode.parentNode.removeChild(commentNode.nextSibling);\n }\n //create new dom\n let tempDiv = generateTempContainer();\n let blankDiv = generateTempContainer();\n commentNode.parentNode.insertBefore(blankDiv, commentNode.nextSibling);\n for (let i = 0; i < finalValue.length; i++) {\n tempDiv.insertAdjacentHTML('beforeEnd' as InsertPosition, this.renderTemplate);\n if (i === finalValue.length - 1) {\n let childrenHTML = tempDiv.innerHTML;\n blankDiv.insertAdjacentHTML('beforeBegin' as InsertPosition, childrenHTML);\n commentNode.parentNode.removeChild(blankDiv);\n tempDiv = null;\n blankDiv = null;\n }\n }\n\n let child:HTMLElement = (commentNode as HTMLElement).nextElementSibling as HTMLElement;\n let time = new Date().getTime();\n for (let j = 0; j < finalValue.length; j++) {\n child.removeAttribute(\"uku-repeat\");\n let compDef = this.uku._internal_getDefinitionManager().getComponentsDefinition();\n let compPool = this.uku._internal_getDefinitionManager().getComponentsPool();\n this.uku._internal_getDefinitionManager().setComponentsDefinition(compDef);\n this.uku._internal_getDefinitionManager().setComponentsPool(compPool);\n let sibling:HTMLElement = child.nextSibling as HTMLElement;\n let itemType = typeof finalValue[j];\n let alias = \"repeatItem_\"+Math.floor(time * Math.random()).toString() + \"_\" + this.expression + \"$\";\n if(itemType === \"object\"){\n this.uku.registerController(alias, finalValue[j]);\n }else {\n this.uku.registerController(alias, {'value':finalValue[j]});\n alias = alias + \".value\";\n }\n this.replaceVarible(child,this.expression,alias);\n child.insertAdjacentHTML('afterend',child.outerHTML);\n let newItemDom:HTMLElement = child.nextSibling as HTMLElement;\n child.parentNode.removeChild(child);\n child = newItemDom;\n this.uku._internal_dealWithElement(child,(element)=>{\n if (this.element.tagName === \"OPTION\") {\n let expression = (this.parentElement as HTMLInputElement).getAttribute(\"uku-selected\");\n let tempArr = expression.split(\"|\");\n expression = tempArr[0];\n let key = tempArr[1];\n let value = this.uku._internal_getDefinitionManager().getFinalValueByExpression(expression);\n if (key) {\n (this.parentElement as HTMLInputElement).value = value[key];\n } else {\n (this.parentElement as HTMLInputElement).value = value;\n }\n }\n });\n child = sibling;\n }\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/model/BoundItemRepeat.ts","import {BoundItemBase} from \"./BoundItemBase\";\nimport {UkuleleUtil} from \"../util/UkuleleUtil\";\nimport {IUkulele} from \"../core/IUkulele\";\nexport class BoundItemComponentAttribute extends BoundItemBase{\n ukuTag:string;\n componentController:any;\n constructor(attrName:string, ukuTag:string, cc:any, uku:IUkulele){\n super(attrName,null,uku);\n this.ukuTag = ukuTag;\n this.componentController = cc;\n }\n render(controllers) :void{\n let finalValue = UkuleleUtil.getFinalValue(controllers,this.attributeName);\n this.componentController[this.ukuTag] = finalValue;\n this.uku.refresh(this.componentController._alias);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/model/BoundItemComponentAttribute.ts","import { UkuleleUtil } from '../util/UkuleleUtil';\nimport { EventListener } from '../extend/EventListener';\nimport { Selector } from '../extend/Selector';\n\nfunction elementChangedBinder(element, tagName, controllerModel, handler, host) {\n let elementStrategies = [inputTextCase, textareaCase, selectCase, checkboxCase, radioCase];\n for (let i = 0; i < elementStrategies.length; i++) {\n let func = elementStrategies[i];\n let goon = func.apply(this, arguments);\n if (goon) {\n break;\n }\n }\n}\n\n\nfunction inputTextCase(element, tagName, controllerModel, handler, host) {\n let elementName = element.tagName;\n if (elementName === \"INPUT\" && isSupportInputType(element) && tagName === \"value\") {\n let eventType = 'change';\n let inputType = element.getAttribute('type');\n if (inputType === \"text\"\n || inputType === \"text\"\n || inputType === \"password\"\n || inputType === \"tel\"\n || inputType === \"number\"\n || inputType === \"search\") {\n eventType = 'input';\n }\n EventListener.addEventListener(element, eventType, (e) => {\n let attr = element.getAttribute(\"uku-\" + tagName);\n UkuleleUtil.setFinalValue(controllerModel.controllerInstance, attr, element.value);\n if (handler) {\n handler.call(host, controllerModel.alias, element);\n }\n });\n return true;\n }\n return false;\n}\n\nfunction isSupportInputType(element) {\n let type = element.getAttribute(\"type\");\n if (type !== \"checkbox\" && type !== \"radio\") {\n return true;\n }\n return false;\n}\n\nfunction textareaCase(element, tagName, controllerModel, handler, host) {\n let elementName = element.tagName;\n if (elementName === \"TEXTAREA\" && tagName === \"value\") {\n EventListener.addEventListener(element, 'input', function (e) {\n let attr = element.getAttribute(\"uku-\" + tagName);\n UkuleleUtil.setFinalValue(controllerModel.controllerInstance, attr, element.value);\n if (handler) {\n handler.call(host, controllerModel.alias, element);\n }\n });\n return true;\n }\n return false;\n}\n\nfunction selectCase(element, tagName, controllerModel, handler, host) {\n let elementName = element.tagName;\n if ((elementName === \"SELECT\" && tagName === \"selected\")) {\n EventListener.addEventListener(element, 'change', function (e) {\n let attr = element.getAttribute(\"uku-\" + tagName);\n let key;\n let tmpArr = attr.split(\"|\");\n attr = tmpArr[0];\n\n let options = Selector.querySelectorAll(element, \"option\");\n for (let j = 0; j < options.length; j++) {\n let option: HTMLOptionElement = options[j] as HTMLOptionElement;\n if (option.selected) {\n let selectedItem = JSON.parse(option.getAttribute(\"data-item\"));\n UkuleleUtil.setFinalValue(controllerModel.controllerInstance, attr, selectedItem);\n\n }\n }\n if (handler) {\n handler.call(host, controllerModel.alias, element);\n }\n });\n return true;\n }\n return false;\n}\n\nfunction checkboxCase(element, tagName, controllerModel, handler, host) {\n let elementName = element.tagName;\n\n if (elementName === \"INPUT\" && tagName === \"value\" && element.getAttribute(\"type\") === \"checkbox\") {\n EventListener.addEventListener(element, 'change', function (e) {\n let attr = element.getAttribute(\"uku-\" + tagName);\n\n UkuleleUtil.setFinalValue(controllerModel.controllerInstance, attr, element.checked);\n if (handler) {\n handler.call(host, controllerModel.alias, element);\n }\n });\n return true;\n }\n return false;\n}\n\nfunction radioCase(element, tagName, controllerModel, handler, host) {\n let elementName = element.tagName;\n\n if (elementName === \"INPUT\" && tagName === \"selected\" && element.getAttribute(\"type\") === \"radio\") {\n EventListener.addEventListener(element, 'change', function (e) {\n let attr = element.getAttribute(\"uku-\" + tagName);\n\n if (element.checked) {\n UkuleleUtil.setFinalValue(controllerModel.controllerInstance, attr, element.value);\n if (handler) {\n handler.call(host, controllerModel.alias, element);\n }\n }\n });\n return true;\n }\n return false;\n}\n\nexport { elementChangedBinder };\n\n\n\n// WEBPACK FOOTER //\n// ./src/core/ElementActionBinder.ts"],"sourceRoot":""} \ No newline at end of file diff --git a/src/model/BoundItemRepeat.ts b/src/model/BoundItemRepeat.ts index c307368..7a3f001 100644 --- a/src/model/BoundItemRepeat.ts +++ b/src/model/BoundItemRepeat.ts @@ -17,6 +17,30 @@ export class BoundItemRepeat extends BoundItemBase{ this.endCommentString = undefined; } + replaceVarible(element:HTMLElement, varName, alias){ + let pattern = new RegExp("\\b"+ varName + "(?!\\w)","gm"); + let attributes = element.attributes; + for(let i=0; i<attributes.length; i++){ + let attr = attributes[i]; + if(UkuleleUtil.isUkuAttrTag(attr.nodeName)){ + attr.nodeValue = attr.nodeValue.replace(pattern, alias); + } + } + let childTag = element.innerHTML.match(new RegExp("\\<\\w*.*\\>","gm")) + let innerText = element.innerHTML.match(new RegExp("\\{{[\\w\\W]*\\}\\}","gm")); + if(childTag === null + && innerText !== null + && innerText.length === 1){ + element.textContent = element.textContent.replace(pattern, alias); + } + if(element.children && element.children.length > 0){ + for(let j=0; j<element.children.length; j++){ + let child:HTMLElement = element.children[j] as HTMLElement; + this.replaceVarible(child, varName, alias); + } + } + } + render(controllers) { let finalValue = UkuleleUtil.getFinalValue(controllers, this.attributeName); if (!finalValue) { @@ -57,13 +81,6 @@ export class BoundItemRepeat extends BoundItemBase{ NodeFilter.SHOW_COMMENT, safeFilter, false); - - /*function filter(node:Node) :any{ - if (node.nodeValue === self.beginCommentString) { - return (NodeFilter.FILTER_ACCEPT); - } - return (NodeFilter.FILTER_SKIP); - }*/ function generateTempContainer():HTMLElement{ let index = UkuleleUtil.searchHtmlTag(self.renderTemplate,"tr"); @@ -114,10 +131,8 @@ export class BoundItemRepeat extends BoundItemBase{ this.uku.registerController(alias, {'value':finalValue[j]}); alias = alias + ".value"; } - let pattern = new RegExp("\\b"+ this.expression + "(?!\\-|\\s|\\w|\\=)","gm"); - //let pattern = new RegExp(this.expression+"(?!\\w)","gm"); - let newOuterHtml = child.outerHTML.replace(pattern,alias); - child.insertAdjacentHTML('afterend',newOuterHtml); + this.replaceVarible(child,this.expression,alias); + child.insertAdjacentHTML('afterend',child.outerHTML); let newItemDom:HTMLElement = child.nextSibling as HTMLElement; child.parentNode.removeChild(child); child = newItemDom; diff --git a/src/util/UkuleleUtil.ts b/src/util/UkuleleUtil.ts index b79c4bd..3887072 100644 --- a/src/util/UkuleleUtil.ts +++ b/src/util/UkuleleUtil.ts @@ -66,6 +66,13 @@ export class UkuleleUtil { return index; } + static isUkuAttrTag(tagName:string): boolean{ + if(this.searchUkuAttrTag(tagName) > -1){ + return true; + } + return false; + } + static getAttrFromUkuTag(ukuTag: string, camelCase: boolean = false) { if (UkuleleUtil.searchUkuAttrTag(ukuTag) === 0) { ukuTag = ukuTag.replace('uku-', '');