Added: struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-bootstrap-prettify.min.js URL: http://svn.apache.org/viewvc/struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-bootstrap-prettify.min.js?rev=1521565&view=auto ============================================================================== --- struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-bootstrap-prettify.min.js (added) +++ struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-bootstrap-prettify.min.js Tue Sep 10 17:55:21 2013 @@ -0,0 +1,41 @@ +/* + AngularJS v1.0.8 + (c) 2010-2012 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(u,s,H){'use strict';function F(c){return c.replace(/\&/g,"&").replace(/\</g,"<").replace(/\>/g,">").replace(/"/g,""")}function A(c,e){var b=s.element("<pre>"+e+"</pre>");c.html("");c.append(b.contents());return c}var w={},x={value:{}},K={"angular.js":"http://code.angularjs.org/"+s.version.full+"/angular.min.js","angular-resource.js":"http://code.angularjs.org/"+s.version.full+"/angular-resource.min.js","angular-sanitize.js":"http://code.angularjs.org/"+s.version.full+"/angular-sanitize.min.js", +"angular-cookies.js":"http://code.angularjs.org/"+s.version.full+"/angular-cookies.min.js"};w.jsFiddle=function(c,e,b){return{terminal:!0,link:function(n,a,o){function d(a,b){return'<input type="hidden" name="'+a+'" value="'+e(b)+'">'}var p={html:"",css:"",js:""};s.forEach(o.jsFiddle.split(" "),function(a,b){var d=a.split(".")[1];p[d]+=d=="html"?b==0?"<div ng-app"+(o.module?'="'+o.module+'"':"")+">\n"+c(a,2):"\n\n\n <\!-- CACHE FILE: "+a+' --\>\n <script type="text/ng-template" id="'+a+'">\n'+c(a, +4)+" <\/script>\n":c(a)+"\n"});p.html+="</div>\n";A(a,'<form class="jsfiddle" method="post" action="http://jsfiddle.net/api/post/library/pure/" target="_blank">'+d("title","AngularJS Example: ")+d("css",'</style> <\!-- Ugly Hack due to jsFiddle issue: http://goo.gl/BUfGZ --\> \n<link rel="stylesheet" href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css">\n'+b.angular+(o.resource?b.resource:"")+"<style>\n"+p.css)+d("html",p.html)+d("js",p.js)+'<button class="btn btn-primary"><i class="icon-white icon-pencil"></i> Edit Me</button></form>')}}}; +w.code=function(){return{restrict:"E",terminal:!0}};w.prettyprint=["reindentCode",function(c){return{restrict:"C",terminal:!0,compile:function(e){e.html(u.prettyPrintOne(c(e.html()),H,!0))}}}];w.ngSetText=["getEmbeddedTemplate",function(c){return{restrict:"CA",priority:10,compile:function(e,b){A(e,F(c(b.ngSetText)))}}}];w.ngHtmlWrap=["reindentCode","templateMerge",function(c,e){return{compile:function(b,c){var a={head:"",module:"",body:b.text()};s.forEach((c.ngHtmlWrap||"").split(" "),function(b){if(b){var b= +K[b]||b,d=b.split(/\./).pop();d=="css"?a.head+='<link rel="stylesheet" href="'+b+'" type="text/css">\n':d=="js"?a.head+='<script src="'+b+'"><\/script>\n':a.module='="'+b+'"'}});A(b,F(e("<!doctype html>\n<html ng-app{{module}}>\n <head>\n{{head:4}} </head>\n <body>\n{{body:4}} </body>\n</html>",a)))}}}];w.ngSetHtml=["getEmbeddedTemplate",function(c){return{restrict:"CA",priority:10,compile:function(e,b){A(e,c(b.ngSetHtml))}}}];w.ngEvalJavascript=["getEmbeddedTemplate",function(c){return{compile:function(e, +b){var n=c(b.ngEvalJavascript);try{u.execScript?u.execScript(n||'""'):u.eval(n)}catch(a){u.console?u.console.log(n,"\n",a):u.alert(a)}}}}];w.ngEmbedApp=["$templateCache","$browser","$rootScope","$location",function(c,e,b,n){return{terminal:!0,link:function(a,o,d){var a=[],p,u;a.push(["$provide",function(a){a.value("$templateCache",c);a.value("$anchorScroll",s.noop);a.value("$browser",e);a.provider("$location",function(){this.$get=["$rootScope",function(a){b.$on("$locationChangeSuccess",function(b, +d,c){a.$broadcast("$locationChangeSuccess",d,c)});return n}];this.html5Mode=s.noop});a.decorator("$timeout",["$rootScope","$delegate",function(a,b){return s.extend(function(d,c){return c&&c>50?setTimeout(function(){a.$apply(d)},c):b.apply(this,arguments)},b)}]);a.decorator("$rootScope",["$delegate",function(a){p=a;u=b.$watch(function(){p.$digest()});return p}])}]);d.ngEmbedApp&&a.push(d.ngEmbedApp);o.bind("click",function(a){a.target.attributes.getNamedItem("ng-click")&&a.preventDefault()});o.bind("$destroy", +function(){u();p.$destroy()});s.bootstrap(o,a)}}}];x.reindentCode=function(){return function(c,e){if(!c)return c;for(var b=c.split(/\r?\n/),n=" ".substr(0,e||0),a;b.length&&b[0].match(/^\s*$/);)b.shift();for(;b.length&&b[b.length-1].match(/^\s*$/);)b.pop();var o=999;for(a=0;a<b.length;a++){var d=b[0],p=d.match(/^\s*/)[0];if(p!==d&&p.length<o)o=p.length}for(a=0;a<b.length;a++)b[a]=n+b[a].substring(o);b.push("");return b.join("\n")}};x.templateMerge=["reindentCode",function(c){return function(e, +b){return e.replace(/\{\{(\w+)(?:\:(\d+))?\}\}/g,function(e,a,o){e=b[a];o&&(e=c(e,o));return e==H?"":e})}}];x.getEmbeddedTemplate=["reindentCode",function(c){return function(e){e=document.getElementById(e);return!e?null:c(s.element(e).html(),0)}}];s.module("bootstrapPrettify",[]).directive(w).factory(x);u.PR_SHOULD_USE_CONTINUATION=!0;(function(){function c(a){function b(i){var a=i.charCodeAt(0);if(a!==92)return a;var k=i.charAt(1);return(a=t[k])?a:"0"<=k&&k<="7"?parseInt(i.substring(1),8):k==="u"|| +k==="x"?parseInt(i.substring(2),16):i.charCodeAt(1)}function C(i){if(i<32)return(i<16?"\\x0":"\\x")+i.toString(16);i=String.fromCharCode(i);return i==="\\"||i==="-"||i==="]"||i==="^"?"\\"+i:i}function L(i){var a=i.substring(1,i.length-1).match(/\\u[0-9A-Fa-f]{4}|\\x[0-9A-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\s\S]|-|[^-\\]/g),i=[],k=a[0]==="^",f=["["];k&&f.push("^");for(var k=k?1:0,g=a.length;k<g;++k){var j=a[k];if(/\\[bdsw]/i.test(j))f.push(j);else{var j=b(j),h;k+2<g&&"-"===a[k+1]?(h=b(a[k+ +2]),k+=2):h=j;i.push([j,h]);h<65||j>122||(h<65||j>90||i.push([Math.max(65,j)|32,Math.min(h,90)|32]),h<97||j>122||i.push([Math.max(97,j)&-33,Math.min(h,122)&-33]))}}i.sort(function(i,a){return i[0]-a[0]||a[1]-i[1]});a=[];g=[];for(k=0;k<i.length;++k)j=i[k],j[0]<=g[1]+1?g[1]=Math.max(g[1],j[1]):a.push(g=j);for(k=0;k<a.length;++k)j=a[k],f.push(C(j[0])),j[1]>j[0]&&(j[1]+1>j[0]&&f.push("-"),f.push(C(j[1])));f.push("]");return f.join("")}function c(i){for(var a=i.source.match(RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)", +"g")),f=a.length,b=[],g=0,j=0;g<f;++g){var h=a[g];h==="("?++j:"\\"===h.charAt(0)&&(h=+h.substring(1))&&(h<=j?b[h]=-1:a[g]=C(h))}for(g=1;g<b.length;++g)-1===b[g]&&(b[g]=++d);for(j=g=0;g<f;++g)h=a[g],h==="("?(++j,b[j]||(a[g]="(?:")):"\\"===h.charAt(0)&&(h=+h.substring(1))&&h<=j&&(a[g]="\\"+b[h]);for(g=0;g<f;++g)"^"===a[g]&&"^"!==a[g+1]&&(a[g]="");if(i.ignoreCase&&e)for(g=0;g<f;++g)h=a[g],i=h.charAt(0),h.length>=2&&i==="["?a[g]=L(h):i!=="\\"&&(a[g]=h.replace(/[a-zA-Z]/g,function(a){a=a.charCodeAt(0); +return"["+String.fromCharCode(a&-33,a|32)+"]"}));return a.join("")}for(var d=0,e=!1,m=!1,r=0,f=a.length;r<f;++r){var l=a[r];if(l.ignoreCase)m=!0;else if(/[a-z]/i.test(l.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){e=!0;m=!1;break}}for(var t={b:8,t:9,n:10,v:11,f:12,r:13},q=[],r=0,f=a.length;r<f;++r){l=a[r];if(l.global||l.multiline)throw Error(""+l);q.push("(?:"+c(l)+")")}return RegExp(q.join("|"),m?"gi":"g")}function e(a,b){function C(a){switch(a.nodeType){case 1:if(L.test(a.className))break; +for(var f=a.firstChild;f;f=f.nextSibling)C(f);f=a.nodeName.toLowerCase();if("br"===f||"li"===f)c[m]="\n",e[m<<1]=d++,e[m++<<1|1]=a;break;case 3:case 4:f=a.nodeValue,f.length&&(f=b?f.replace(/\r\n?/g,"\n"):f.replace(/[ \t\r\n]+/g," "),c[m]=f,e[m<<1]=d,d+=f.length,e[m++<<1|1]=a)}}var L=/(?:^|\s)nocode(?:\s|$)/,c=[],d=0,e=[],m=0;C(a);return{sourceCode:c.join("").replace(/\n$/,""),spans:e}}function b(a,b,c,d){b&&(a={sourceCode:b,basePos:a},c(a),d.push.apply(d,a.decorations))}function n(a,d){var C={}, +e;(function(){for(var b=a.concat(d),m=[],r={},f=0,l=b.length;f<l;++f){var t=b[f],q=t[3];if(q)for(var i=q.length;--i>=0;)C[q.charAt(i)]=t;t=t[1];q=""+t;r.hasOwnProperty(q)||(m.push(t),r[q]=null)}m.push(/[\0-\uffff]/);e=c(m)})();var o=d.length,s=function(a){for(var c=a.basePos,G=[c,"pln"],f=0,l=a.sourceCode.match(e)||[],t={},q=0,i=l.length;q<i;++q){var y=l[q],k=t[y],v=void 0,g;if(typeof k==="string")g=!1;else{var j=C[y.charAt(0)];if(j)v=y.match(j[1]),k=j[0];else{for(g=0;g<o;++g)if(j=d[g],v=y.match(j[1])){k= +j[0];break}v||(k="pln")}if((g=k.length>=5&&"lang-"===k.substring(0,5))&&!(v&&typeof v[1]==="string"))g=!1,k="src";g||(t[y]=k)}j=f;f+=y.length;if(g){g=v[1];var h=y.indexOf(g),E=h+g.length;v[2]&&(E=y.length-v[2].length,h=E-g.length);k=k.substring(5);b(c+j,y.substring(0,h),s,G);b(c+j+h,g,p(k,g),G);b(c+j+E,y.substring(E),s,G)}else G.push(c+j,k)}a.decorations=G};return s}function a(a){var b=[],c=[];a.tripleQuotedStrings?b.push(["str",/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/, +null,"'\""]):a.multiLineStrings?b.push(["str",/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"]):b.push(["str",/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"]);a.verbatimStrings&&c.push(["str",/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null]);var d=a.hashComments;d&&(a.cStyleComments?(d>1?b.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"]):b.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/, +null,"#"]),c.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,null])):b.push(["com",/^#[^\r\n]*/,null,"#"]));a.cStyleComments&&(c.push(["com",/^\/\/[^\r\n]*/,null]),c.push(["com",/^\/\*[\s\S]*?(?:\*\/|$)/,null]));a.regexLiterals&&c.push(["lang-regex",RegExp("^(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*(/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/)")]); +(d=a.types)&&c.push(["typ",d]);a=(""+a.keywords).replace(/^ | $/g,"");a.length&&c.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),null]);b.push(["pln",/^\s+/,null," \r\n\t\u00a0"]);c.push(["lit",/^@[a-z_$][a-z_$@0-9]*/i,null],["typ",/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],["pln",/^[a-z_$][a-z_$@0-9]*/i,null],["lit",/^(?:0x[a-f0-9]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+\-]?\d+)?)[a-z]*/i,null,"0123456789"],["pln",/^\\[\s\S]?/,null],["pun",/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]); +return n(b,c)}function o(a,b,c){function d(a){switch(a.nodeType){case 1:if(s.test(a.className))break;if("br"===a.nodeName)e(a),a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)d(a);break;case 3:case 4:if(c){var b=a.nodeValue,f=b.match(o);if(f){var l=b.substring(0,f.index);a.nodeValue=l;(b=b.substring(f.index+f[0].length))&&a.parentNode.insertBefore(m.createTextNode(b),a.nextSibling);e(a);l||a.parentNode.removeChild(a)}}}}function e(a){function b(a,f){var c=f?a.cloneNode(!1): +a,h=a.parentNode;if(h){var h=b(h,1),d=a.nextSibling;h.appendChild(c);for(var i=d;i;i=d)d=i.nextSibling,h.appendChild(i)}return c}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),c;(c=a.parentNode)&&c.nodeType===1;)a=c;f.push(a)}for(var s=/(?:^|\s)nocode(?:\s|$)/,o=/\r\n?|\n/,m=a.ownerDocument,r=m.createElement("li");a.firstChild;)r.appendChild(a.firstChild);for(var f=[r],l=0;l<f.length;++l)d(f[l]);b===(b|0)&&f[0].setAttribute("value",b);var t=m.createElement("ol");t.className= +"linenums";for(var b=Math.max(0,b-1|0)||0,l=0,q=f.length;l<q;++l)r=f[l],r.className="L"+(l+b)%10,r.firstChild||r.appendChild(m.createTextNode("\u00a0")),t.appendChild(r);a.appendChild(t)}function d(a,b){for(var c=b.length;--c>=0;){var d=b[c];I.hasOwnProperty(d)?w.console&&console.warn("cannot override language handler %s",d):I[d]=a}}function p(a,b){if(!a||!I.hasOwnProperty(a))a=/^\s*</.test(b)?"default-markup":"default-code";return I[a]}function s(a){var b=a.langExtension;try{var c=e(a.sourceNode, +a.pre),d=c.sourceCode;a.sourceCode=d;a.spans=c.spans;a.basePos=0;p(b,d)(a);var o=/\bMSIE\s(\d+)/.exec(navigator.userAgent),o=o&&+o[1]<=8,b=/\n/g,n=a.sourceCode,u=n.length,c=0,m=a.spans,r=m.length,d=0,f=a.decorations,l=f.length,t=0;f[l]=u;var q,i;for(i=q=0;i<l;)f[i]!==f[i+2]?(f[q++]=f[i++],f[q++]=f[i++]):i+=2;l=q;for(i=q=0;i<l;){for(var y=f[i],k=f[i+1],v=i+2;v+2<=l&&f[v+1]===k;)v+=2;f[q++]=y;f[q++]=k;i=v}f.length=q;var g=a.sourceNode,j;if(g)j=g.style.display,g.style.display="none";try{for(;d<r;){var h= +m[d+2]||u,E=f[t+2]||u,v=Math.min(h,E),D=m[d+1],J;if(D.nodeType!==1&&(J=n.substring(c,v))){o&&(J=J.replace(b,"\r"));D.nodeValue=J;var A=D.ownerDocument,x=A.createElement("span");x.className=f[t+1];var B=D.parentNode;B.replaceChild(x,D);x.appendChild(D);c<h&&(m[d+1]=D=A.createTextNode(n.substring(v,h)),B.insertBefore(D,x.nextSibling))}c=v;c>=h&&(d+=2);c>=E&&(t+=2)}}finally{if(g)g.style.display=j}}catch(z){w.console&&console.log(z&&z.stack?z.stack:z)}}var w=u,B=["break,continue,do,else,for,if,return,while"], +z=[[B,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],A=[z,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"], +x=[z,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],F=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],z=[z,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"], +M=[B,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],N=[B,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],B=[B,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],O=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/, +K=/\S/,P=a({keywords:[A,F,z,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+M,N,B],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),I={};d(P,["default-code"]);d(n([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-", +/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);d(n([["pln",/^[\s]+/,null," \t\r\n"],["atv",/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/], +["pun",/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);d(n([],[["atv",/^[\s\S]+/]]),["uq.val"]);d(a({keywords:A,hashComments:!0,cStyleComments:!0,types:O}),["c","cc","cpp","cxx","cyc","m"]);d(a({keywords:"null,true,false"}),["json"]);d(a({keywords:F,hashComments:!0,cStyleComments:!0, +verbatimStrings:!0,types:O}),["cs"]);d(a({keywords:x,cStyleComments:!0}),["java"]);d(a({keywords:B,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);d(a({keywords:M,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py"]);d(a({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl", +"pl","pm"]);d(a({keywords:N,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);d(a({keywords:z,cStyleComments:!0,regexLiterals:!0}),["js"]);d(a({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);d(n([],[["str",/^[\s\S]+/]]),["regex"]);var Q=w.PR={createSimpleLexer:n, +registerLangHandler:d,sourceDecorator:a,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ",prettyPrintOne:w.prettyPrintOne=function(a,b,c){var d=document.createElement("div");d.innerHTML="<pre>"+a+"</pre>";d=d.firstChild;c&&o(d,c,!0);s({langExtension:b,numberLines:c,sourceNode:d,pre:1});return d.innerHTML},prettyPrint:w.prettyPrint= +function(a){function b(){var v;for(var c=w.PR_SHOULD_USE_CONTINUATION?m.now()+250:Infinity;r<d.length&&m.now()<c;r++){var g=d[r],j=g.className;if(t.test(j)&&!q.test(j)){for(var h=!1,e=g.parentNode;e;e=e.parentNode)if(k.test(e.tagName)&&e.className&&t.test(e.className)){h=!0;break}if(!h){g.className+=" prettyprinted";var j=j.match(l),n;if(h=!j){for(var h=g,e=H,p=h.firstChild;p;p=p.nextSibling)var x=p.nodeType,e=x===1?e?h:p:x===3?K.test(p.nodeValue)?h:e:e;h=(n=e===h?H:e)&&u.test(n.tagName)}h&&(j=n.className.match(l)); +j&&(j=j[1]);v=i.test(g.tagName)?1:(h=(h=g.currentStyle)?h.whiteSpace:document.defaultView&&document.defaultView.getComputedStyle?document.defaultView.getComputedStyle(g,null).getPropertyValue("white-space"):0)&&"pre"===h.substring(0,3),h=v;(e=(e=g.className.match(/\blinenums\b(?::(\d+))?/))?e[1]&&e[1].length?+e[1]:!0:!1)&&o(g,e,h);f={langExtension:j,sourceNode:g,numberLines:e,pre:h};s(f)}}}r<d.length?setTimeout(b,250):a&&a()}for(var c=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"), +document.getElementsByTagName("xmp")],d=[],e=0;e<c.length;++e)for(var n=0,p=c[e].length;n<p;++n)d.push(c[e][n]);var c=null,m=Date;m.now||(m={now:function(){return+new Date}});var r=0,f,l=/\blang(?:uage)?-([\w.]+)(?!\S)/,t=/\bprettyprint\b/,q=/\bprettyprinted\b/,i=/pre|xmp/i,u=/^code$/i,k=/^(?:pre|code|xmp)$/i;b()}};typeof define==="function"&&define.amd&&define("google-code-prettify",[],function(){return Q})})()})(window,window.angular);angular.element(document).find("head").append('<style type="text/css">.com{color:#93a1a1;}.lit{color:#195f91;}.pun,.opn,.clo{color:#93a1a1;}.fun{color:#dc322f;}.str,.atv{color:#D14;}.kwd,.linenums .tag{color:#1e347b;}.typ,.atn,.dec,.var{color:teal;}.pln{color:#48484c;}.prettyprint{padding:8px;background-color:#f7f7f9;border:1px solid #e1e1e8;}.prettyprint.linenums{-webkit-box-shadow:inset 40px 0 0 #fbfbfc,inset 41px 0 0 #ececf0;-moz-box-shadow:inset 40px 0 0 #fbfbfc,inset 41px 0 0 #ececf0;box-shadow:inset 40px 0 0 #fbfbfc,inset 41px 0 0 #ececf0;}ol.l inenums{margin:0 0 0 33px;}ol.linenums li{padding-left:12px;color:#bebec5;line-height:18px;text-shadow:0 1px 0 #fff;}</style>');
Added: struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-bootstrap.js URL: http://svn.apache.org/viewvc/struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-bootstrap.js?rev=1521565&view=auto ============================================================================== --- struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-bootstrap.js (added) +++ struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-bootstrap.js Tue Sep 10 17:55:21 2013 @@ -0,0 +1,175 @@ +/** + * @license AngularJS v1.0.8 + * (c) 2010-2012 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) { +'use strict'; + +var directive = {}; + +directive.dropdownToggle = + ['$document', '$location', '$window', + function ($document, $location, $window) { + var openElement = null, close; + return { + restrict: 'C', + link: function(scope, element, attrs) { + scope.$watch(function dropdownTogglePathWatch(){return $location.path();}, function dropdownTogglePathWatchAction() { + close && close(); + }); + + element.parent().bind('click', function(event) { + close && close(); + }); + + element.bind('click', function(event) { + event.preventDefault(); + event.stopPropagation(); + + var iWasOpen = false; + + if (openElement) { + iWasOpen = openElement === element; + close(); + } + + if (!iWasOpen){ + element.parent().addClass('open'); + openElement = element; + + close = function (event) { + event && event.preventDefault(); + event && event.stopPropagation(); + $document.unbind('click', close); + element.parent().removeClass('open'); + close = null; + openElement = null; + } + + $document.bind('click', close); + } + }); + } + }; + }]; + + +directive.tabbable = function() { + return { + restrict: 'C', + compile: function(element) { + var navTabs = angular.element('<ul class="nav nav-tabs"></ul>'), + tabContent = angular.element('<div class="tab-content"></div>'); + + tabContent.append(element.contents()); + element.append(navTabs).append(tabContent); + }, + controller: ['$scope', '$element', function($scope, $element) { + var navTabs = $element.contents().eq(0), + ngModel = $element.controller('ngModel') || {}, + tabs = [], + selectedTab; + + ngModel.$render = function() { + var $viewValue = this.$viewValue; + + if (selectedTab ? (selectedTab.value != $viewValue) : $viewValue) { + if(selectedTab) { + selectedTab.paneElement.removeClass('active'); + selectedTab.tabElement.removeClass('active'); + selectedTab = null; + } + if($viewValue) { + for(var i = 0, ii = tabs.length; i < ii; i++) { + if ($viewValue == tabs[i].value) { + selectedTab = tabs[i]; + break; + } + } + if (selectedTab) { + selectedTab.paneElement.addClass('active'); + selectedTab.tabElement.addClass('active'); + } + } + + } + }; + + this.addPane = function(element, attr) { + var li = angular.element('<li><a href></a></li>'), + a = li.find('a'), + tab = { + paneElement: element, + paneAttrs: attr, + tabElement: li + }; + + tabs.push(tab); + + attr.$observe('value', update)(); + attr.$observe('title', function(){ update(); a.text(tab.title); })(); + + function update() { + tab.title = attr.title; + tab.value = attr.value || attr.title; + if (!ngModel.$setViewValue && (!ngModel.$viewValue || tab == selectedTab)) { + // we are not part of angular + ngModel.$viewValue = tab.value; + } + ngModel.$render(); + } + + navTabs.append(li); + li.bind('click', function(event) { + event.preventDefault(); + event.stopPropagation(); + if (ngModel.$setViewValue) { + $scope.$apply(function() { + ngModel.$setViewValue(tab.value); + ngModel.$render(); + }); + } else { + // we are not part of angular + ngModel.$viewValue = tab.value; + ngModel.$render(); + } + }); + + return function() { + tab.tabElement.remove(); + for(var i = 0, ii = tabs.length; i < ii; i++ ) { + if (tab == tabs[i]) { + tabs.splice(i, 1); + } + } + }; + } + }] + }; +}; + +directive.table = function() { + return { + restrict: 'E', + link: function(scope, element, attrs) { + element[0].className = 'table table-bordered table-striped code-table'; + } + }; +}; + +directive.tabPane = function() { + return { + require: '^tabbable', + restrict: 'C', + link: function(scope, element, attrs, tabsCtrl) { + element.bind('$remove', tabsCtrl.addPane(element, attrs)); + } + }; +}; + + +angular.module('bootstrap', []).directive(directive); + + +})(window, window.angular); Added: struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-bootstrap.min.js URL: http://svn.apache.org/viewvc/struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-bootstrap.min.js?rev=1521565&view=auto ============================================================================== --- struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-bootstrap.min.js (added) +++ struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-bootstrap.min.js Tue Sep 10 17:55:21 2013 @@ -0,0 +1,9 @@ +/* + AngularJS v1.0.8 + (c) 2010-2012 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(n,j){'use strict';j.module("bootstrap",[]).directive({dropdownToggle:["$document","$location","$window",function(g,d){var e=null,a;return{restrict:"C",link:function(h,b){h.$watch(function(){return d.path()},function(){a&&a()});b.parent().bind("click",function(){a&&a()});b.bind("click",function(i){i.preventDefault();i.stopPropagation();i=!1;e&&(i=e===b,a());i||(b.parent().addClass("open"),e=b,a=function(c){c&&c.preventDefault();c&&c.stopPropagation();g.unbind("click",a);b.parent().removeClass("open"); +e=a=null},g.bind("click",a))})}}}],tabbable:function(){return{restrict:"C",compile:function(g){var d=j.element('<ul class="nav nav-tabs"></ul>'),e=j.element('<div class="tab-content"></div>');e.append(g.contents());g.append(d).append(e)},controller:["$scope","$element",function(g,d){var e=d.contents().eq(0),a=d.controller("ngModel")||{},h=[],b;a.$render=function(){var a=this.$viewValue;if(b?b.value!=a:a)if(b&&(b.paneElement.removeClass("active"),b.tabElement.removeClass("active"),b=null),a){for(var c= +0,d=h.length;c<d;c++)if(a==h[c].value){b=h[c];break}b&&(b.paneElement.addClass("active"),b.tabElement.addClass("active"))}};this.addPane=function(d,c){function l(){f.title=c.title;f.value=c.value||c.title;if(!a.$setViewValue&&(!a.$viewValue||f==b))a.$viewValue=f.value;a.$render()}var k=j.element("<li><a href></a></li>"),m=k.find("a"),f={paneElement:d,paneAttrs:c,tabElement:k};h.push(f);c.$observe("value",l)();c.$observe("title",function(){l();m.text(f.title)})();e.append(k);k.bind("click",function(b){b.preventDefault(); +b.stopPropagation();a.$setViewValue?g.$apply(function(){a.$setViewValue(f.value);a.$render()}):(a.$viewValue=f.value,a.$render())});return function(){f.tabElement.remove();for(var a=0,b=h.length;a<b;a++)f==h[a]&&h.splice(a,1)}}}]}},table:function(){return{restrict:"E",link:function(g,d){d[0].className="table table-bordered table-striped code-table"}}},tabPane:function(){return{require:"^tabbable",restrict:"C",link:function(g,d,e,a){d.bind("$remove",a.addPane(d,e))}}}})})(window,window.angular); Added: struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-cookies.js URL: http://svn.apache.org/viewvc/struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-cookies.js?rev=1521565&view=auto ============================================================================== --- struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-cookies.js (added) +++ struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-cookies.js Tue Sep 10 17:55:21 2013 @@ -0,0 +1,196 @@ +/** + * @license AngularJS v1.0.8 + * (c) 2010-2012 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) { +'use strict'; + +/** + * @ngdoc overview + * @name ngCookies + */ + + +angular.module('ngCookies', ['ng']). + /** + * @ngdoc object + * @name ngCookies.$cookies + * @requires $browser + * + * @description + * Provides read/write access to browser's cookies. + * + * Only a simple Object is exposed and by adding or removing properties to/from + * this object, new cookies are created/deleted at the end of current $eval. + * + * # Installation + * To use $cookies make sure you have included the `angular-cookies.js` that comes in Angular + * package. You can also find this file on Google CDN, bower as well as at + * {@link http://code.angularjs.org/ code.angularjs.org}. + * + * Finally load the module in your application: + * + * angular.module('app', ['ngCookies']); + * + * and you are ready to get started! + * + * @example + <doc:example> + <doc:source> + <script> + function ExampleController($cookies) { + // Retrieving a cookie + var favoriteCookie = $cookies.myFavorite; + // Setting a cookie + $cookies.myFavorite = 'oatmeal'; + } + </script> + </doc:source> + </doc:example> + */ + factory('$cookies', ['$rootScope', '$browser', function ($rootScope, $browser) { + var cookies = {}, + lastCookies = {}, + lastBrowserCookies, + runEval = false, + copy = angular.copy, + isUndefined = angular.isUndefined; + + //creates a poller fn that copies all cookies from the $browser to service & inits the service + $browser.addPollFn(function() { + var currentCookies = $browser.cookies(); + if (lastBrowserCookies != currentCookies) { //relies on browser.cookies() impl + lastBrowserCookies = currentCookies; + copy(currentCookies, lastCookies); + copy(currentCookies, cookies); + if (runEval) $rootScope.$apply(); + } + })(); + + runEval = true; + + //at the end of each eval, push cookies + //TODO: this should happen before the "delayed" watches fire, because if some cookies are not + // strings or browser refuses to store some cookies, we update the model in the push fn. + $rootScope.$watch(push); + + return cookies; + + + /** + * Pushes all the cookies from the service to the browser and verifies if all cookies were stored. + */ + function push() { + var name, + value, + browserCookies, + updated; + + //delete any cookies deleted in $cookies + for (name in lastCookies) { + if (isUndefined(cookies[name])) { + $browser.cookies(name, undefined); + } + } + + //update all cookies updated in $cookies + for(name in cookies) { + value = cookies[name]; + if (!angular.isString(value)) { + if (angular.isDefined(lastCookies[name])) { + cookies[name] = lastCookies[name]; + } else { + delete cookies[name]; + } + } else if (value !== lastCookies[name]) { + $browser.cookies(name, value); + updated = true; + } + } + + //verify what was actually stored + if (updated){ + updated = false; + browserCookies = $browser.cookies(); + + for (name in cookies) { + if (cookies[name] !== browserCookies[name]) { + //delete or reset all cookies that the browser dropped from $cookies + if (isUndefined(browserCookies[name])) { + delete cookies[name]; + } else { + cookies[name] = browserCookies[name]; + } + updated = true; + } + } + } + } + }]). + + + /** + * @ngdoc object + * @name ngCookies.$cookieStore + * @requires $cookies + * + * @description + * Provides a key-value (string-object) storage, that is backed by session cookies. + * Objects put or retrieved from this storage are automatically serialized or + * deserialized by angular's toJson/fromJson. + * @example + */ + factory('$cookieStore', ['$cookies', function($cookies) { + + return { + /** + * @ngdoc method + * @name ngCookies.$cookieStore#get + * @methodOf ngCookies.$cookieStore + * + * @description + * Returns the value of given cookie key + * + * @param {string} key Id to use for lookup. + * @returns {Object} Deserialized cookie value. + */ + get: function(key) { + var value = $cookies[key]; + return value ? angular.fromJson(value) : value; + }, + + /** + * @ngdoc method + * @name ngCookies.$cookieStore#put + * @methodOf ngCookies.$cookieStore + * + * @description + * Sets a value for given cookie key + * + * @param {string} key Id for the `value`. + * @param {Object} value Value to be stored. + */ + put: function(key, value) { + $cookies[key] = angular.toJson(value); + }, + + /** + * @ngdoc method + * @name ngCookies.$cookieStore#remove + * @methodOf ngCookies.$cookieStore + * + * @description + * Remove given cookie + * + * @param {string} key Id of the key-value pair to delete. + */ + remove: function(key) { + delete $cookies[key]; + } + }; + + }]); + + +})(window, window.angular); Added: struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-cookies.min.js URL: http://svn.apache.org/viewvc/struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-cookies.min.js?rev=1521565&view=auto ============================================================================== --- struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-cookies.min.js (added) +++ struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-cookies.min.js Tue Sep 10 17:55:21 2013 @@ -0,0 +1,7 @@ +/* + AngularJS v1.0.8 + (c) 2010-2012 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(m,f,l){'use strict';f.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser",function(d,b){var c={},g={},h,i=!1,j=f.copy,k=f.isUndefined;b.addPollFn(function(){var a=b.cookies();h!=a&&(h=a,j(a,g),j(a,c),i&&d.$apply())})();i=!0;d.$watch(function(){var a,e,d;for(a in g)k(c[a])&&b.cookies(a,l);for(a in c)e=c[a],f.isString(e)?e!==g[a]&&(b.cookies(a,e),d=!0):f.isDefined(g[a])?c[a]=g[a]:delete c[a];if(d)for(a in e=b.cookies(),c)c[a]!==e[a]&&(k(e[a])?delete c[a]:c[a]=e[a])});return c}]).factory("$cookieStore", +["$cookies",function(d){return{get:function(b){return(b=d[b])?f.fromJson(b):b},put:function(b,c){d[b]=f.toJson(c)},remove:function(b){delete d[b]}}}])})(window,window.angular); Added: struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-loader.js URL: http://svn.apache.org/viewvc/struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-loader.js?rev=1521565&view=auto ============================================================================== --- struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-loader.js (added) +++ struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-loader.js Tue Sep 10 17:55:21 2013 @@ -0,0 +1,277 @@ +/** + * @license AngularJS v1.0.8 + * (c) 2010-2012 Google, Inc. http://angularjs.org + * License: MIT + */ + +( + +/** + * @ngdoc interface + * @name angular.Module + * @description + * + * Interface for configuring angular {@link angular.module modules}. + */ + +function setupModuleLoader(window) { + + function ensure(obj, name, factory) { + return obj[name] || (obj[name] = factory()); + } + + return ensure(ensure(window, 'angular', Object), 'module', function() { + /** @type {Object.<string, angular.Module>} */ + var modules = {}; + + /** + * @ngdoc function + * @name angular.module + * @description + * + * The `angular.module` is a global place for creating and registering Angular modules. All + * modules (angular core or 3rd party) that should be available to an application must be + * registered using this mechanism. + * + * + * # Module + * + * A module is a collection of services, directives, filters, and configuration information. + * `angular.module` is used to configure the {@link AUTO.$injector $injector}. + * + * <pre> + * // Create a new module + * var myModule = angular.module('myModule', []); + * + * // register a new service + * myModule.value('appName', 'MyCoolApp'); + * + * // configure existing services inside initialization blocks. + * myModule.config(function($locationProvider) { +'use strict'; + * // Configure existing providers + * $locationProvider.hashPrefix('!'); + * }); + * </pre> + * + * Then you can create an injector and load your modules like this: + * + * <pre> + * var injector = angular.injector(['ng', 'MyModule']) + * </pre> + * + * However it's more likely that you'll just use + * {@link ng.directive:ngApp ngApp} or + * {@link angular.bootstrap} to simplify this process for you. + * + * @param {!string} name The name of the module to create or retrieve. + * @param {Array.<string>=} requires If specified then new module is being created. If unspecified then the + * the module is being retrieved for further configuration. + * @param {Function} configFn Optional configuration function for the module. Same as + * {@link angular.Module#config Module#config()}. + * @returns {module} new module with the {@link angular.Module} api. + */ + return function module(name, requires, configFn) { + if (requires && modules.hasOwnProperty(name)) { + modules[name] = null; + } + return ensure(modules, name, function() { + if (!requires) { + throw Error('No module: ' + name); + } + + /** @type {!Array.<Array.<*>>} */ + var invokeQueue = []; + + /** @type {!Array.<Function>} */ + var runBlocks = []; + + var config = invokeLater('$injector', 'invoke'); + + /** @type {angular.Module} */ + var moduleInstance = { + // Private state + _invokeQueue: invokeQueue, + _runBlocks: runBlocks, + + /** + * @ngdoc property + * @name angular.Module#requires + * @propertyOf angular.Module + * @returns {Array.<string>} List of module names which must be loaded before this module. + * @description + * Holds the list of modules which the injector will load before the current module is loaded. + */ + requires: requires, + + /** + * @ngdoc property + * @name angular.Module#name + * @propertyOf angular.Module + * @returns {string} Name of the module. + * @description + */ + name: name, + + + /** + * @ngdoc method + * @name angular.Module#provider + * @methodOf angular.Module + * @param {string} name service name + * @param {Function} providerType Construction function for creating new instance of the service. + * @description + * See {@link AUTO.$provide#provider $provide.provider()}. + */ + provider: invokeLater('$provide', 'provider'), + + /** + * @ngdoc method + * @name angular.Module#factory + * @methodOf angular.Module + * @param {string} name service name + * @param {Function} providerFunction Function for creating new instance of the service. + * @description + * See {@link AUTO.$provide#factory $provide.factory()}. + */ + factory: invokeLater('$provide', 'factory'), + + /** + * @ngdoc method + * @name angular.Module#service + * @methodOf angular.Module + * @param {string} name service name + * @param {Function} constructor A constructor function that will be instantiated. + * @description + * See {@link AUTO.$provide#service $provide.service()}. + */ + service: invokeLater('$provide', 'service'), + + /** + * @ngdoc method + * @name angular.Module#value + * @methodOf angular.Module + * @param {string} name service name + * @param {*} object Service instance object. + * @description + * See {@link AUTO.$provide#value $provide.value()}. + */ + value: invokeLater('$provide', 'value'), + + /** + * @ngdoc method + * @name angular.Module#constant + * @methodOf angular.Module + * @param {string} name constant name + * @param {*} object Constant value. + * @description + * Because the constant are fixed, they get applied before other provide methods. + * See {@link AUTO.$provide#constant $provide.constant()}. + */ + constant: invokeLater('$provide', 'constant', 'unshift'), + + /** + * @ngdoc method + * @name angular.Module#filter + * @methodOf angular.Module + * @param {string} name Filter name. + * @param {Function} filterFactory Factory function for creating new instance of filter. + * @description + * See {@link ng.$filterProvider#register $filterProvider.register()}. + */ + filter: invokeLater('$filterProvider', 'register'), + + /** + * @ngdoc method + * @name angular.Module#controller + * @methodOf angular.Module + * @param {string} name Controller name. + * @param {Function} constructor Controller constructor function. + * @description + * See {@link ng.$controllerProvider#register $controllerProvider.register()}. + */ + controller: invokeLater('$controllerProvider', 'register'), + + /** + * @ngdoc method + * @name angular.Module#directive + * @methodOf angular.Module + * @param {string} name directive name + * @param {Function} directiveFactory Factory function for creating new instance of + * directives. + * @description + * See {@link ng.$compileProvider#directive $compileProvider.directive()}. + */ + directive: invokeLater('$compileProvider', 'directive'), + + /** + * @ngdoc method + * @name angular.Module#config + * @methodOf angular.Module + * @param {Function} configFn Execute this function on module load. Useful for service + * configuration. + * @description + * Use this method to register work which needs to be performed on module loading. + */ + config: config, + + /** + * @ngdoc method + * @name angular.Module#run + * @methodOf angular.Module + * @param {Function} initializationFn Execute this function after injector creation. + * Useful for application initialization. + * @description + * Use this method to register work which should be performed when the injector is done + * loading all modules. + */ + run: function(block) { + runBlocks.push(block); + return this; + } + }; + + if (configFn) { + config(configFn); + } + + return moduleInstance; + + /** + * @param {string} provider + * @param {string} method + * @param {String=} insertMethod + * @returns {angular.Module} + */ + function invokeLater(provider, method, insertMethod) { + return function() { + invokeQueue[insertMethod || 'push']([provider, method, arguments]); + return moduleInstance; + } + } + }); + }; + }); + +} + +)(window); + +/** + * Closure compiler type information + * + * @typedef { { + * requires: !Array.<string>, + * invokeQueue: !Array.<Array.<*>>, + * + * service: function(string, Function):angular.Module, + * factory: function(string, Function):angular.Module, + * value: function(string, *):angular.Module, + * + * filter: function(string, Function):angular.Module, + * + * init: function(Function):angular.Module + * } } + */ +angular.Module; + Added: struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-loader.min.js URL: http://svn.apache.org/viewvc/struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-loader.min.js?rev=1521565&view=auto ============================================================================== --- struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-loader.min.js (added) +++ struts/struts2/trunk/archetypes/struts2-archetype-angularjs/src/main/resources/archetype-resources/src/main/webapp/js/lib/angular/angular-loader.min.js Tue Sep 10 17:55:21 2013 @@ -0,0 +1,7 @@ +/* + AngularJS v1.0.8 + (c) 2010-2012 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(i){'use strict';function d(c,b,e){return c[b]||(c[b]=e())}return d(d(i,"angular",Object),"module",function(){var c={};return function(b,e,f){e&&c.hasOwnProperty(b)&&(c[b]=null);return d(c,b,function(){function a(a,b,d){return function(){c[d||"push"]([a,b,arguments]);return g}}if(!e)throw Error("No module: "+b);var c=[],d=[],h=a("$injector","invoke"),g={_invokeQueue:c,_runBlocks:d,requires:e,name:b,provider:a("$provide","provider"),factory:a("$provide","factory"),service:a("$provide","service"), +value:a("$provide","value"),constant:a("$provide","constant","unshift"),filter:a("$filterProvider","register"),controller:a("$controllerProvider","register"),directive:a("$compileProvider","directive"),config:h,run:function(a){d.push(a);return this}};f&&h(f);return g})}})})(window);