diff --git a/README.md b/README.md index 872c3df..7010eb1 100644 --- a/README.md +++ b/README.md @@ -389,7 +389,7 @@ In some cases you might want to load (e.g.) a CSS resource via ```demand``` (dir ## More about handlers -```demand``` comes with handlers for ```modules```, ```legacy```scripts, ```bundles```, ```text```, ```css``` and ```json```. Handlers have four objectives: +```demand``` comes with handlers for ```modules```, ```components```, ```legacy```scripts, ```bundles```, ```text```, ```html```, ```css``` and ```json```. Handlers have four objectives: - provide an optional function named ```onPreRequest``` that modifies the final URL (e.g. add a file extension like ```.js```) before requesting it via XHR/XDR - provide an optional function named ```onPostRequest``` that, if present, handles necessary conversion of the loaded source (e.g. CSS paths that are normally relative to the CSS-file path) diff --git a/bower.json b/bower.json index 249036f..cd0eb59 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "qoopido.demand", - "version": "4.1.5", + "version": "4.1.6", "homepage": "https://github.com/dlueth/qoopido.demand", "authors": [ "Dirk Lueth " diff --git a/demo/app/component/example.html b/demo/app/component/example.html new file mode 100644 index 0000000..a176992 --- /dev/null +++ b/demo/app/component/example.html @@ -0,0 +1,31 @@ + + + + + + + \ No newline at end of file diff --git a/demo/app/js/main.js b/demo/app/js/main.js index 89668cd..aaddef2 100644 --- a/demo/app/js/main.js +++ b/demo/app/js/main.js @@ -56,7 +56,7 @@ pattern: { '/nucleus': '//cdn.jsdelivr.net/qoopido.nucleus/2.0.1/', '/jquery': '//cdn.jsdelivr.net/jquery/1.11.3/jquery.min', - '/jquery/ui': '//cdn.jsdelivr.net/jquery.ui/1.11.4/jquery-ui.min', + '/jquery/ui': '//cdn.jsdelivr.net/jquery.ui/1.11.4/jquery-ui.min', '/velocity': '//cdn.jsdelivr.net/velocity/1.2.3/velocity.min.js', '/leaflet': '//cdn.jsdelivr.net/leaflet/0.7.3/leaflet.js', '/velocity+leaflet': '//cdn.jsdelivr.net/g/velocity@1.2.3,leaflet@0.7.3' @@ -180,11 +180,11 @@ log('demand', '/app/js/simple', 'rejected'); } ), - // load text (HTML in this case) - demand('text!../html/dummy.html') + // load html + demand('html!../html/dummy') .then( function(appHtmlDummy) { - log('demand', '/app/html/dummy', 'resolved', 'text, cookie, compress, sri'); + log('demand', '/app/html/dummy', 'resolved', 'html, cookie, compress, sri'); }, function() { log('demand', '/app/html/dummy', 'rejected'); @@ -243,6 +243,16 @@ log('demand', '/nucleus/dom/element', 'rejected'); log('demand', '/nucleus/dom/collection', 'rejected'); } + ), + // load components + demand('component!/app/component/example') + .then( + function(primaryModule, secondaryModule, primaryCss, primaryHtml) { + log('demand', '/app/component/example', 'resolved', 'component, 2 modules, CSS & HTML'); + }, + function() { + log('demand', '/app/component/example', 'rejected'); + } ) ]) }) diff --git a/demo/index.html b/demo/index.html index 8b8d2af..b37e192 100644 --- a/demo/index.html +++ b/demo/index.html @@ -33,7 +33,7 @@ target.parentNode.insertBefore(script, target); }(window, document, 'script')) - }('../dist/demand.js', 'app/js/main', { base: './', version: '4.1.5', cache: false })); + }('../dist/demand.js', 'app/js/main', { base: './', version: '4.1.6', cache: false })); \ No newline at end of file diff --git a/dist/cache/dispose.js b/dist/cache/dispose.js index 0ea3365..c66e8ab 100644 --- a/dist/cache/dispose.js +++ b/dist/cache/dispose.js @@ -1,3 +1,3 @@ -/**! Qoopido.demand 4.1.5 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ +/**! Qoopido.demand 4.1.6 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ !function(t){"use strict";function n(n){function r(n){var r,e=t.getItem(n);if(e&&(r=e.match(d)))return Array.prototype.slice.call(r,1)}function e(t){return"["+i+"]["+t+"]["+o+"]"}function a(t){var n,a=t.match(u);a&&(n=r(e(a[1])),n[5]=a[1],this.push(n))}function c(t,n){return t[4]n[4]?1:0}var i="demand",o="state",u=new RegExp("^\\["+i+"\\]\\[(.+?)\\]\\["+o+"\\]$"),d=/^(.+?),(\d+),(\d*),(.+?),(\d+)$/;return n(t,function(t){var n,a=t.match(u);a&&(n=r(e(a[1])),n[4]||demand.clear.path(a[1]))}),function(r){var e,i=[];for(n(t,a,i),i.sort(c);r>0&&i.length;)e=i.shift(),r-=e[1],demand.clear.path(e[5])}}provide(["/demand/function/iterate"],n)}(localStorage); //# sourceMappingURL=dispose.js.map diff --git a/dist/demand.js b/dist/demand.js index fad871f..5d9076b 100644 --- a/dist/demand.js +++ b/dist/demand.js @@ -1,3 +1,3 @@ -/**! Qoopido.demand 4.1.5 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ -!function(e,t,n,r,i){"use strict";function o(e,t,n,r){return{__proto__:Y,value:e,enumerable:!!r,configurable:!!n,writable:!!t}}function u(e,t){return typeof e===t}function a(e){return e&&u(e,oe)}function c(e){return u(e,ae)&&isFinite(e)&&Math.floor(e)===e&&e>=0}function s(e,t){return e instanceof t}function f(e,t,n){for(var r,i=$.keys(e),o=0;(r=i[o])!==Z&&t.call(n,r,e[r])!==ee;o++);return n}function d(e,t,n){return M.call(e,t,n)}function l(){return+new Date}function h(e){return X.href=e,X.href}function p(e,t){var n=e.replace(ze,"");return Ue.test(n)||Fe.test(n)||(n="/"+h((t&&h(t+"/../")||"/")+n).replace(Ge,"")),n}function v(e,t){var n=e.match(ze);return(n&&n[1]?"mock:":"")+(n&&n[3]||S.handler)+"!"+p(e,t)}function m(){return u(this.uuid,ne)&&H(this,"uuid",new o(Ne())),this}function g(){this.parent.constructor.call(this),O[this.uuid]={},e.storage=O[this.uuid]}function y(e,t,n){this.message=e,t&&(this.module=t),n&&(this.stack=d(n))}function w(e){function t(t,n){n&&e.handler.validate&&!e.handler.validate(n)?e.dfd.reject(new y($e+" (content-type)",e.id)):(e.source=t,_e.emit(Ee,e.type,e))}function n(t){e.dfd.reject(new y($e+(t?" (status)":""),e.id))}function r(e,t,n){var r;return X.href=e,X.search=(r=(X.search||"").replace(u,""))+(r?"&":"?")+t+"="+n,X.href}function i(u){u=u||0,e.url=o?h(o.process(e.path,u)):e.path,_e.emit(Re,e.type,e),new Ye(r(e.url,F,+new Date)).then(t,o?function(){u++,o.location[u]?i(u):n()}:n)}var o,u=/^\?/;Fe.test(e.path)||f(S.pattern,function(t,n){n.matches(e.path)&&(!o||o.weight>>0}function j(){this.parent.constructor.call(this),O[this.uuid]=[]}function q(e){var t=this.parent.constructor.call(this),n=O[t.uuid]={queue:e,current:Y};demand.on(Me+":"+e.uuid,function(){!n.current&&t.process()})}function k(e,t){for(var n,r;n=Be.exec(t);)X.href=e,Fe.test(n[2])?r=X.protocol+"//"+X.host+n[3]:(X.pathname+="/../"+n[3],r=X.protocol+"//"+X.host+X.pathname),t=t.replace(n[0],n[1]+" "+n[2]+"="+r+".map"+(n[4]?" "+n[4]:""));return t}function y(e,t,n){this.message=e,t&&(this.module=t),n&&(this.stack=d(n))}function R(e,t){provide(e,function(){return t})}var E,P,S={version:"1.0.0",cache:{},timeout:8e3,pattern:{},modules:{},handler:"module"},O={},C=Array.prototype,M=C.slice,A=C.concat,$=Object,D=$.prototype,I=D.toString,T=$.create,H=$.defineProperty,N=$.getOwnPropertyNames,L=$.getOwnPropertyDescriptor,_=Function.prototype,X=t.createElement("a"),F="demand",U="provide",B="path",G="/"+F+"/",J=G+"abstract/",z=G+"handler/",K=G+"plugin/",Q=G+"function/",V=G+"validator/",W="mock:",Y=null,Z=void 0,ee=!1,te=!0,ne="undefined",re="string",ie="boolean",oe="object",ue="function",ae="number",ce=function(){},se="pre",fe="post",de="Configure",le=se+de,he=fe+de,pe="cache",ve=pe+"Miss",me=pe+"Hit",ge=pe+"Clear",ye=pe+"Exceed",we=se+"Cache",xe=fe+"Cache",be="Resolve",je=se+be,qe=fe+be,ke="Request",Re=se+ke,Ee=fe+ke,Pe="Process",Se=se+Pe,Oe=fe+Pe,Ce="queue",Me=Ce+"Enqueue",Ae=Ce+"Dequeue",$e="error loading",De="error providing",Ie="error resolving",Te="unspecified anonymous provide";!function(){function e(e){var t,n=this,r=n.prototype,i={},u=N(r),a=0;for(e=e.prototype||e;t=u[a];a++)i[t]=L(r,t);return i.constructor=new o(n),i.parent=new o(e),n.prototype=T(e,i),n}H(_,"extends",new o(e))}();var He=function(){function e(e,t){var n,r=this[e];t!==Z&&(a(t)?(n=a(r),r=t.length!==Z?n&&r.length!==Z?r:[]:n&&r.length===Z?r:{},this[e]=He(r,t)):this[e]=t)}return function(){for(var t,n=arguments[0],r=1;(t=arguments[r])!==Z;r++)f(t,e,n);return n}}(),Ne=function(){function e(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}var t=new RegExp("[xy]","g"),n={};return function(){var r;do r="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(t,e);while(n[r]);return n[r]=1,r}}(),Le=function(){var n,i,o="setImmediate"in e;return"MutationObserver"in e?function(e){n=t.createElement("div"),new MutationObserver(function(){e()}).observe(n,{attributes:te}),n.setAttribute("i","1")}:!o&&"postMessage"in e&&!("importScripts"in e)&&"addEventListener"in e?function(){function t(t){t.source===e&&t.data&&O[t.data]&&(O[t.data](),delete O[t.data])}return e.addEventListener("message",t,ee),function(t){var n=Ne();O[n]=t,e.postMessage(n,"*")}}():!o&&"onreadystatechange"in(n=t.createElement("script"))?function(e){n.onreadystatechange=function(){n.onreadystatechange=Y,n.parentNode.removeChild(n),e()},t.body.appendChild(n)}:(i=o?setImmediate:r,function(e){i(e)})}(),_e=function(){function e(e,t,r){var a,c;if(u(t,re)&&u(r,ue))for(t=t.split(" ");a=t.shift();)a=a.split(":"),i.test(a[0])&&((o[a[0]]||(o[a[0]]={on:[],after:[]}))[e].push({callback:r,filter:a[1]}),e===n&&a[0]===he&&(c=S.modules[a[1]])&&r(c))}function t(){}var n="on",r="after",i=/^cache(Miss|Hit|Clear|Exceed)|queue(En|De)queue|(pre|post)(Resolve|Configure|Request|Process|Cache)$/,o={};return t.prototype={emit:function(e,t){var i,u,a,c=o[e];if(c){for(i=d(arguments,2),u=0;a=c[n][u];u++)a.filter&&a.filter!==t||a.callback.apply(Y,i);for(u=0;a=c[r][u];u++)a.filter&&a.filter!==t||a.callback.apply(Y,i)}return this},on:function(t,r){return e(n,t,r),this},after:function(t,n){return e(r,t,n),this}},new t}(),Xe=function(){var e=/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g;return function(t){return t.replace(e,"\\$&")}}(),Fe=/^(http(s?):)?\/\//i,Ue=/^\//,Be=/((?:\/\/|\/\*)#)\s*(sourceMappingURL)\s*=\s*(?!(?:http[s]?:)?\/\/)(.+?)\.map(?:\s+)?(\*\/)?/g,Ge=new RegExp("^"+Xe(h("/"))),Je=new RegExp("^"+F+"|"+U+"|"+B+"$"),ze=/^(mock:)?([+-])?((?:[-\w]+\/?)+)?(?:@(.+?))?(?:#(\d+))?!/,Ke=function(){function t(e){var t;return e.cache!==Y?e.cache:(f(S.cache,function(n,r){0===e.path.indexOf(n)&&(!t||r.weight>t.weight)&&(t=r)}),t?t.state:ee)}function n(e){return w.getItem(e)}function r(e,t){w[t?"setItem":"removeItem"](e,t)}function i(e){var t,r=n(e);if(r&&(t=r.match(g)))return d(t,1)}function o(e,t){t[4]=l(),r(e,t.join(","))}function u(e,t,n){_e.emit(e,t.id,t,n)}function a(){Le(this.clear.expired.bind(this.clear))}var c,s="["+F+"]",h="[state]",p="[value]",m=new RegExp("^"+Xe(s)+"\\[(.+?)\\]"+Xe(h)+"$"),g=/^(.+?),(\d+),(\d*),(.+?),(\d+)$/,y=function(){try{return"localStorage"in e&&e.localStorage}catch(e){return ee}}(),w=y?e.localStorage:Y,x=y&&"remainingSpace"in w,b={};return _e.on(ve,function(e){Le(function(){c.clear.path(e.id)})}).on(ye,function(e){demand("-!/"+F+"/cache/dispose").then(function(t){Le(function(){t(e.source.length),c.set(e)})})}).on(Ee,function(e){e.source&&t(e)&&(b[e.id]=te)}).after(Oe,function(e){b[e.id]&&Le(function(){c.set(e)})}),a.prototype={get:y?function(e){var r,u;if(t(e)&&(r=s+"["+e.id+"]",u=i(r+h),u&&u[0]===e.version&&(!u[2]&&!e.lifetime||u[2]>l())))return e.source=n(r+p),Le(function(){o(r+h,u)}),te}:ce,resolve:y?function(e){var t=this;t.get(e)?u(me,e):u(ve,e)}:function(e){u(ve,e)},set:y?function(e){var n,i,a;if(t(e)){n=[e.version,e.source.length,e.lifetime?l()+e.lifetime:Y,demand.version],i=s+"["+e.id+"]",u(we,e,n);try{if(a=x?w.remainingSpace:Y,r(i+p,e.source),o(i+h,n),a!==Y&&w.remainingSpace===a)throw new Error;u(xe,e,n)}catch(t){u(ye,e)}}}:ce,clear:{path:y?function(e){var t=v(e),i=s+"["+t+"]";n(i+h)&&(r(i+h),r(i+p),u(ge,Ve.get(t)||new Ve(t,Y,ee)))}:ce,all:y?function(){var e;f(w,function(t){e=t.match(m),e&&this.path(e[1])},this)}:ce,expired:y?function(){var e,t,n=this;f(w,function(r){e=r.match(m),e&&(t=i(s+"["+e[1]+"]"+h),t&&t[2]>0&&t[2]<=l()&&n.path(e[1]))},this)}:ce}},c=new a}(),Qe=function(){function e(){s[this.uuid].handle(a,arguments)}function t(){s[this.uuid].handle(c,arguments)}function n(e,t){var n,r,i=s[this.uuid];for(i.state===u&&(i.state=e,i.value=t);n=i[i.state].shift();)r=n.handler.apply(Y,i.value),r&&"function"==typeof r.then?r.then(n.dfd.resolve,n.dfd.reject):n.dfd[i.state===a?"resolve":"reject"].apply(Y,i.value);i[a].length=0,i[c].length=0}function r(e,t,n){e.then(function(){n.resolved[t]=d(arguments),n.count++,i(n)},function(){n.rejected.push(d(arguments)),i(n)})}function i(e){e.count===e.total?e.dfd.resolve.apply(Y,A.apply([],e.resolved)):e.rejected.length+e.count===e.total&&e.dfd.reject.apply(Y,A.apply([],e.rejected))}function o(r){var i=this.parent.constructor.call(this);s[i.uuid]={state:u,handle:n.bind(i),value:Y,resolved:[],rejected:[],count:0},r(e.bind(i),t.bind(i))}var u="pending",a="resolved",c="rejected",s={};return o.prototype={catch:function(e){return this.then(ce,e)},always:function(e){return this.then(e,e)},then:function(e,t){var n=s[this.uuid],r=o.defer();return e&&n[a].push({handler:e,dfd:r}),t&&n[c].push({handler:t,dfd:r}),n.state!==u&&Le(n.handle),r.pledge},isPending:function(){return s[this.uuid].state===u},isResolved:function(){return s[this.uuid].state===a},isRejected:function(){return s[this.uuid].state===c}},o.defer=function(){var e={};return e.pledge=new o(function(t,n){e.resolve=t,e.reject=n}),e},o.all=function(e){var t,n,i=o.defer(),u=0;if(e.length)for(t=s[Ne()]={dfd:i,resolved:[],rejected:[],total:e.length,count:0};n=e[u];u++)r(n,u,t);else i.resolve();return i.pledge},o.race=function(e){for(var t,n=o.defer(),r=0;t=e[r];r++)t.then(n.resolve,n.reject);return e.length||n.resolve(),n.pledge},o.extends(m)}();g.prototype={get:function(e){return e?O[this.uuid][e]:O[this.uuid]},set:function(e,t){O[this.uuid][e]=t},remove:function(e){delete O[this.uuid][e]}},g.extends(m),y.prototype={toString:function(){var e=this,t=F+": "+e.message+" "+(e.module?'"'+e.module+'"':"");return e.stack&&(t=y.traverse(e.stack,t,1)),t}},y.traverse=function(e,t,n){for(var r,i=new Array(n+1).join(" "),o=0;r=e[o];o++)t+="\n"+i+"> "+r.message+" "+(r.module?'"'+r.module+'"':""),r.stack&&(t=y.traverse(r.stack,t,n+1));return t};var Ve=function(){function e(e,t){this[e]=t}function n(e,t){t.pledge.isPending()&&this.push(e)}function r(e,t){t.pledge.isResolved()&&this.push(e)}function i(e,t){t.pledge.isRejected()&&this.push(e)}function o(e,t,n){var r=this,i=e.match(ze)||s;return r.path=p(e,t),r.mock=i[1]?te:ee,r.cache=i[2]?"+"===i[1]:Y,r.type=i[3]||S.handler,r.version=i[4]||S.version,r.lifetime=i[5]&&1e3*i[5]||S.lifetime,r.id=(r.mock?W:"")+r.type+"!"+r.path,r.uri=(r.mock?W:"")+r.type+"@"+r.version+(c(r.lifetime)&&r.lifetime>0?"#"+r.lifetime:"")+"!"+r.path,r.dfd=Qe.defer(),r.pledge=r.dfd.pledge,n!==ee&&a.set(r.id,r),r}var u="internal!",a=new g,s=[];return o.prototype={enqueue:!0},o.get=function(e,t){return a.get(v(e,t))},o.resolve=function(t,n){var r=n&&Je.test(t),i=r?this.get(u+n+"/"+t):this.get(t,n);if(!i)if(r)switch(i=new o(u+n+"/"+t),t){case F:i.dfd.resolve(function(){return f(demand,e,demand.bind(n))}());break;case U:i.dfd.resolve(provide.bind(n));break;case B:i.dfd.resolve(n)}else i=new o(t,n),demand(z+i.type).then(function(e){i.handler=e,i.mock?i.dfd.resolve(e):Ke.resolve(i)},function(){i.dfd.reject(new y($e+" (handler)",self.id))});return i},o.remove=function(e,n,r){var i=v(e,n),o=t.querySelector("["+F+'-id="'+i+'"]');a.remove(i),a.remove(W+i),o&&o.parentNode.removeChild(o),r!==ee&&Ke.clear.path(i)},o.list={all:function(){return $.keys(a.get())},pending:function(){return f(a.get(),n,[])},resolved:function(){return f(a.get(),r,[])},rejected:function(){return f(a.get(),i,[])}},o}(),We=function(){function e(e,t){this[e]={url:h(t).replace(n,"$1"),match:new RegExp("^"+Xe(t))}}function t(t,n){var r=this;r.weight=t.length,r.match=new RegExp("^"+Xe(t)),r.location=[].concat(n),f(r.location,e,r.location)}var n=/(.+)\/$/;return t.prototype={matches:function(e){return this.match.test(e)},process:function(e,t){var n=this.location[t];if(n)return e.replace(this.match,n.url)}},t}(),Ye=function(t){function n(){this.readyState<4&&this.abort()}var o="XDomainRequest"in e&&e.XDomainRequest||t;return function(e){var u,a=Qe.defer(),c=Ge.test(e)?new t:new o,s=n.bind(c),f=S.timeout;return c.ontimeout=c.onerror=c.onabort=function(){a.reject(c.status)},c.onprogress=c.onreadystatechange=function(){i(u),u=r(s,f)},c.onload=function(){u=i(u),"status"in c&&200!==c.status?a.reject(c.status):a.resolve(c.responseText,c.getResponseHeader&&c.getResponseHeader("content-type"))},c.open("GET",e,te),c.send(),u=r(s,f),a.pledge}}(XMLHttpRequest);e.demand=function(){function t(e,t){this[e]={weight:e.length,state:t}}function n(e,t){"base"!==e&&(this[e]=new We(e,t))}function r(e,t){var n=this[e]=this[e]||{};_e.emit(le,e,n),He(n,t),_e.emit(he,e,n)}function i(){var t,n,r,i=d(arguments),o=this!==e?this:Y,a=0;for(_e.emit(je,Y,i,o);t=i[a];a++)u(t,re)?i[a]=Ve.resolve(t,o).pledge:(i[a]=(n=Qe.defer()).pledge,n.resolve(t));return r=i.length>1?Qe.all(i):i[0],r.always(function(){_e.emit(qe,Y,i,o)})}return i.configure=function(e){var o=e.cache,s=e.version,d=e.timeout,l=e.lifetime,h=e.base,p=e.pattern,v=e.modules,m=S.modules;return u(o,ie)?S.cache[""]={weight:0,state:o}:a(o)&&f(o,t,S.cache),u(s,re)&&(S.version=s),c(d)&&(S.timeout=1e3*Math.min(Math.max(d,2),12)),c(l)&&l>0&&(S.lifetime=1e3*l),u(h,re)&&""!==h&&(S.pattern.base=new We("",h)),a(p)&&f(p,n,S.pattern),a(v)&&f(v,r,m),i},i.version="4.1.5",i.on=_e.on.bind(i),i.remove=Ve.remove,i.list=Ve.list,i.clear=Ke.clear,_e.after(ve,function(e){new w(e)}).after(me+" "+Ee,function(e){_e.emit(Se,e.id,e)}).after(Re,function(e){var t=e.handler.onPreRequest;t&&t(e)}).after(Ee,function(e){var t=e.handler.onPostRequest;t&&t(e)}).after(Se,function(e){var t=e.handler.onPreProcess;t&&t(e),e.pledge.then(function(){_e.emit(Oe,e.id,e)}),e.enqueue===!0?E.enqueue(e):s(e.enqueue,Qe)&&e.enqueue.then(function(){E.enqueue(e)})}),i}(),e.provide=function(){var t,n,r=u(arguments[0],re)?arguments[0]:Y,i=this!==e?this:Y,o=x(arguments[r?1:0])?arguments[r?1:0]:Y,a=o?arguments[r?2:1]:arguments[r?1:0];!r&&P.current&&(t=P.current,r=t.uri,P.process()),r?(t=t||new Ve(r,i),n=u(a,ue),o?demand.apply(t.path,o).then(function(){t.dfd.resolve(n?a.apply(Y,arguments):a)},function(){t.dfd.reject(new y(De,t.id,arguments))}):t.dfd.resolve(n?a():a)):!u(console,ne)&&console.error(new y(Te))},demand.configure({cache:te,base:"/",pattern:{"/demand":h((n&&n.url||location.href)+"/../").slice(0,-1)}}),n&&n.settings&&demand.configure(n.settings),j.prototype={enqueue:function(){O[this.uuid]=O[this.uuid].concat(d(arguments)),_e.emit(Me,this.uuid)},dequeue:function(){return _e.emit(Ae,this.uuid),O[this.uuid].shift()},get current(){return O[this.uuid][0]},get length(){return O[this.uuid].length}},j.extends(m),q.prototype={process:function(){var e,t=O[this.uuid];t.queue.length?(e=t.current=t.queue.dequeue(),e.handler.process&&e.handler.process(e)):t.current=Y},get current(){return O[this.uuid].current}},q.extends(m);var Ze=function(){function e(){}return e.prototype={validate:Y,onPreRequest:Y,onPostRequest:Y,onPreProcess:Y,process:Y},new e}(),et=function(){function e(){}var n=t.getElementsByTagName("head")[0],r=/^(application|text)\/(x-)?javascript/;return e.prototype={validate:function(e){return r.test(e)},onPreRequest:function(e){var t=e.url;e.url=".js"!==t.slice(-3)?t+".js":t},onPostRequest:function(e){e.source=k(e.url,e.source)},process:function(e){var r;e.source&&(r=t.createElement("script"),r.async=te,r.text=e.source,r.setAttribute(F+"-id",e.id),n.appendChild(r))}},new(e.extends(Ze))}();y.prototype={toString:function(){var e=this,t=F+": "+e.message+" "+(e.module?'"'+e.module+'"':"");return e.stack&&(t=y.traverse(e.stack,t,1)),t}},y.traverse=function(e,t,n){for(var r,i=new Array(n+1).join(" "),o=0;r=e[o];o++)t+="\n"+i+"> "+r.message+" "+(r.module?'"'+r.module+'"':""),r.stack&&(t=y.traverse(r.stack,t,n+1));return t};var tt=function(){function e(e,t){var n,r;for(n=0;r=t[n];n++)u(r,re)&&(t[n]=v(r))}function t(e){for(var t,n,r=0;n=e[r];r++)if(n=n.match(ze),n=n&&n[3]||i.handler,t){if(n!==t)return ee}else t=n;return t}function n(){}var r=z+"bundle",i={};return demand.on(he+":"+r,function(t){a(t)&&(i=t,f(i,e))}),n.prototype={validate:et.validate,onPreProcess:function(e){function n(){f.reject(new y(Ie,e.id,arguments))}var r,o,u,a,c,s=e.source,f=e.dfd,d=i[e.path];if(e.enqueue=!1,d&&(r=t(d))){for(;o=Be.exec(s);)s=s.replace(o[0],"");for(e.source=s,u=[],c=0;a=d[c];c++)u.push(Ve.resolve(W+a).pledge);Qe.all(u).then(function(){for(u.length=0,c=0;a=d[c];c++)a=d[c]=Ve.get(a)||new Ve(a),a.handler=arguments[c],u.push(a.pledge);"module"===r?(E.enqueue.apply(E,d),et.process(e)):(et.process(e),E.enqueue.apply(E,d)),Qe.all(u).then(f.resolve,n)},n)}else n()}},new(n.extends(Ze))}(),nt=function(){function e(e){for(var t,n,r=0;t=s[r];r++)0===e.indexOf(t.prefix)&&(!n||t.weight>n.weight)&&(n=t);return n}function t(e){var t,n,r=e.matches,i={pattern:{},modules:{"/demand/handler/bundle":{}}},o=0;for(i.pattern[e.id]=e.fn(r),i.modules[z+"bundle"][e.id]=t=[];n=r[o];o++)t.push(n.path);return i}function n(){for(var e,t=0;e=this[t];t++)e.dfd.resolve(arguments[t])}function r(){for(var e,t=0;e=this[t];t++)e.dfd.reject(new y(Ie,e.id))}function i(e,t){s.push({prefix:e,weight:e.length,fn:t})}function o(e,i){var o,u=i.matches,a=0;if(u.length>1){for(i.id=c+"/"+b(JSON.stringify(i.matches));o=u[a];a++)u[a]=new Ve(o.uri);demand.configure(t(i)),demand("bundle!"+i.id).then(n.bind(u),r.bind(u))}}var c=K+"genie",s=[];return demand.on(he+":"+c,function(e){a(e)&&(s.length=0,f(e,i))}).on(je,function(t,n){for(var r,i,a={},c=0;r=t[c];c++)!u(r,re)||Je.test(r)||Ve.get(r,n)||(r=new Ve(r,n,ee),"module"===r.type&&(i=e(r.path))&&!Ke.get(r)&&(a[i.prefix]||(a[i.prefix]={fn:i.fn,matches:[]})).matches.push(r));f(a,o)}),te}();if(E=new j,P=new q(E),R(J+"uuid",m),R(J+"handler",Ze),R(z+"module",et),R(z+"bundle",tt),R(K+"genie",nt),R(V+"isTypeOf",u),R(V+"isArray",x),R(V+"isObject",a),R(V+"isInstanceOf",s),R(Q+"resolveUrl",h),R(Q+"resolveSourcemaps",k),R(Q+"merge",He),R(Q+"iterate",f),R(Q+"hash",b),R(Q+"defer",Le),R(G+"descriptor",o),R(G+"pledge",Qe),R(G+"queue",j),R(G+"xhr",Ye),R(G+"failure",y),n&&n.main)switch(typeof n.main){case re:demand(n.main);break;case ue:provide("main",n.main())}}(this,document,"demand"in this&&demand,setTimeout,clearTimeout); +/**! Qoopido.demand 4.1.6 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ +!function(e,t,n,r,i){"use strict";function o(e,t,n,r){return{__proto__:Y,value:e,enumerable:!!r,configurable:!!n,writable:!!t}}function u(e,t){return typeof e===t}function a(e){return e&&u(e,oe)}function c(e){return u(e,ae)&&isFinite(e)&&Math.floor(e)===e&&e>=0}function s(e,t){return e instanceof t}function f(e,t,n){for(var r,i=$.keys(e),o=0;(r=i[o])!==Z&&t.call(n,r,e[r])!==ee;o++);return n}function d(e,t,n){return M.call(e,t,n)}function l(){return+new Date}function h(e){return X.href=e,X.href}function p(e,t){var n=e.replace(ze,"");return Ue.test(n)||Fe.test(n)||(n="/"+h((t&&h(t+"/../")||"/")+n).replace(Ge,"")),n}function v(e,t){var n=e.match(ze);return(n&&n[1]?"mock:":"")+(n&&n[3]||C.handler)+"!"+p(e,t)}function m(){return u(this.uuid,ne)&&I(this,"uuid",new o(Ne())),this}function g(){this.parent.constructor.call(this),S[this.uuid]={},e.storage=S[this.uuid]}function y(e,t,n){this.message=e,t&&(this.module=t),n&&(this.stack=d(n))}function w(e){function t(t,n){n&&e.handler.validate&&!e.handler.validate(n)?e.dfd.reject(new y($e+" (content-type)",e.id)):(e.source=t,_e.emit(Pe,e.type,e))}function n(t){e.dfd.reject(new y($e+(t?" (status)":""),e.id))}function r(e,t,n){var r;return X.href=e,X.search=(r=(X.search||"").replace(u,""))+(r?"&":"?")+t+"="+n,X.href}function i(u){u=u||0,e.url=o?h(o.process(e.path,u)):e.path,_e.emit(Re,e.type,e),new Ye(r(e.url,F,+new Date)).then(t,o?function(){u++,o.location[u]?i(u):n()}:n)}var o,u=/^\?/;Fe.test(e.path)||f(C.pattern,function(t,n){n.matches(e.path)&&(!o||o.weight>>0}function j(){this.parent.constructor.call(this),S[this.uuid]=[]}function q(e){var t=this.parent.constructor.call(this),n=S[t.uuid]={queue:e,current:Y};demand.on(Me+":"+e.uuid,function(){!n.current&&t.process()})}function k(e,t){for(var n,r;n=Be.exec(t);)X.href=e,Fe.test(n[2])?r=X.protocol+"//"+X.host+n[3]:(X.pathname+="/../"+n[3],r=X.protocol+"//"+X.host+X.pathname),t=t.replace(n[0],n[1]+" "+n[2]+"="+r+".map"+(n[4]?" "+n[4]:""));return t}function y(e,t,n){this.message=e,t&&(this.module=t),n&&(this.stack=d(n))}function R(e,t){provide(e,function(){return t})}var P,E,C={version:"1.0.0",cache:{},timeout:8e3,pattern:{},modules:{},handler:"module"},S={},O=Array.prototype,M=O.slice,A=O.concat,$=Object,D=$.prototype,T=D.toString,H=$.create,I=$.defineProperty,N=$.getOwnPropertyNames,L=$.getOwnPropertyDescriptor,_=Function.prototype,X=t.createElement("a"),F="demand",U="provide",B="path",G="/"+F+"/",J=G+"abstract/",z=G+"handler/",K=G+"plugin/",Q=G+"function/",V=G+"validator/",W="mock:",Y=null,Z=void 0,ee=!1,te=!0,ne="undefined",re="string",ie="boolean",oe="object",ue="function",ae="number",ce=function(){},se="pre",fe="post",de="Configure",le=se+de,he=fe+de,pe="cache",ve=pe+"Miss",me=pe+"Hit",ge=pe+"Clear",ye=pe+"Exceed",we=se+"Cache",xe=fe+"Cache",be="Resolve",je=se+be,qe=fe+be,ke="Request",Re=se+ke,Pe=fe+ke,Ee="Process",Ce=se+Ee,Se=fe+Ee,Oe="queue",Me=Oe+"Enqueue",Ae=Oe+"Dequeue",$e="error loading",De="error providing",Te="error resolving",He="unspecified anonymous provide";!function(){function e(e){var t,n=this,r=n.prototype,i={},u=N(r),a=0;for(e=e.prototype||e;t=u[a];a++)i[t]=L(r,t);return i.constructor=new o(n),i.parent=new o(e),n.prototype=H(e,i),n}I(_,"extends",new o(e))}();var Ie=function(){function e(e,t){var n,r=this[e];t!==Z&&(a(t)?(n=a(r),r=t.length!==Z?n&&r.length!==Z?r:[]:n&&r.length===Z?r:{},this[e]=Ie(r,t)):this[e]=t)}return function(){for(var t,n=arguments[0],r=1;(t=arguments[r])!==Z;r++)f(t,e,n);return n}}(),Ne=function(){function e(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}var t=new RegExp("[xy]","g"),n={};return function(){var r;do r="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(t,e);while(n[r]);return n[r]=1,r}}(),Le=function(){var n,i,o="setImmediate"in e;return"MutationObserver"in e?function(e){n=t.createElement("div"),new MutationObserver(function(){e()}).observe(n,{attributes:te}),n.setAttribute("i","1")}:!o&&"postMessage"in e&&!("importScripts"in e)&&"addEventListener"in e?function(){function t(t){t.source===e&&t.data&&S[t.data]&&(S[t.data](),delete S[t.data])}return e.addEventListener("message",t,ee),function(t){var n=Ne();S[n]=t,e.postMessage(n,"*")}}():!o&&"onreadystatechange"in(n=t.createElement("script"))?function(e){n.onreadystatechange=function(){n.onreadystatechange=Y,n.parentNode.removeChild(n),e()},t.body.appendChild(n)}:(i=o?setImmediate:r,function(e){i(e)})}(),_e=function(){function e(e,t,r){var a,c;if(u(t,re)&&u(r,ue))for(t=t.split(" ");a=t.shift();)a=a.split(":"),i.test(a[0])&&((o[a[0]]||(o[a[0]]={on:[],after:[]}))[e].push({callback:r,filter:a[1]}),e===n&&a[0]===he&&(c=C.modules[a[1]])&&r(c))}function t(){}var n="on",r="after",i=/^cache(Miss|Hit|Clear|Exceed)|queue(En|De)queue|(pre|post)(Resolve|Configure|Request|Process|Cache)$/,o={};return t.prototype={emit:function(e,t){var i,u,a,c=o[e];if(c){for(i=d(arguments,2),u=0;a=c[n][u];u++)a.filter&&a.filter!==t||a.callback.apply(Y,i);for(u=0;a=c[r][u];u++)a.filter&&a.filter!==t||a.callback.apply(Y,i)}return this},on:function(t,r){return e(n,t,r),this},after:function(t,n){return e(r,t,n),this}},new t}(),Xe=function(){var e=/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g;return function(t){return t.replace(e,"\\$&")}}(),Fe=/^(http(s?):)?\/\//i,Ue=/^\//,Be=/((?:\/\/|\/\*)#)\s*(sourceMappingURL)\s*=\s*(?!(?:http[s]?:)?\/\/)(.+?)\.map(?:\s+)?(\*\/)?/g,Ge=new RegExp("^"+Xe(h("/"))),Je=new RegExp("^"+F+"|"+U+"|"+B+"$"),ze=/^(mock:)?([+-])?((?:[-\w]+\/?)+)?(?:@(.+?))?(?:#(\d+))?!/,Ke=function(){function t(e){var t;return e.cache!==Y?e.cache:(f(C.cache,function(n,r){0===e.path.indexOf(n)&&(!t||r.weight>t.weight)&&(t=r)}),t?t.state:ee)}function n(e){return w.getItem(e)}function r(e,t){w[t?"setItem":"removeItem"](e,t)}function i(e){var t,r=n(e);if(r&&(t=r.match(g)))return d(t,1)}function o(e,t){t[4]=l(),r(e,t.join(","))}function u(e,t,n){_e.emit(e,t.id,t,n)}function a(){Le(this.clear.expired.bind(this.clear))}var c,s="["+F+"]",h="[state]",p="[value]",m=new RegExp("^"+Xe(s)+"\\[(.+?)\\]"+Xe(h)+"$"),g=/^(.+?),(\d+),(\d*),(.+?),(\d+)$/,y=function(){try{return"localStorage"in e&&e.localStorage}catch(e){return ee}}(),w=y?e.localStorage:Y,x=y&&"remainingSpace"in w,b={};return _e.on(ve,function(e){Le(function(){c.clear.path(e.id)})}).on(ye,function(e){demand("-!/"+F+"/cache/dispose").then(function(t){Le(function(){t(e.source.length),c.set(e)})})}).on(Pe,function(e){e.source&&t(e)&&(b[e.id]=te)}).after(Se,function(e){b[e.id]&&Le(function(){c.set(e)})}),a.prototype={get:y?function(e){var r,u;if(t(e)&&(r=s+"["+e.id+"]",u=i(r+h),u&&u[0]===e.version&&(!u[2]&&!e.lifetime||u[2]>l())))return e.source=n(r+p),Le(function(){o(r+h,u)}),te}:ce,resolve:y?function(e){var t=this;t.get(e)?u(me,e):u(ve,e)}:function(e){u(ve,e)},set:y?function(e){var n,i,a;if(t(e)){n=[e.version,e.source.length,e.lifetime?l()+e.lifetime:Y,demand.version],i=s+"["+e.id+"]",u(we,e,n);try{if(a=x?w.remainingSpace:Y,r(i+p,e.source),o(i+h,n),a!==Y&&w.remainingSpace===a)throw new Error;u(xe,e,n)}catch(t){u(ye,e)}}}:ce,clear:{path:y?function(e){var t=v(e),i=s+"["+t+"]";n(i+h)&&(r(i+h),r(i+p),u(ge,Ve.get(t)||new Ve(t,Y,ee)))}:ce,all:y?function(){var e;f(w,function(t){e=t.match(m),e&&this.path(e[1])},this)}:ce,expired:y?function(){var e,t,n=this;f(w,function(r){e=r.match(m),e&&(t=i(s+"["+e[1]+"]"+h),t&&t[2]>0&&t[2]<=l()&&n.path(e[1]))},this)}:ce}},c=new a}(),Qe=function(){function e(){s[this.uuid].handle(a,arguments)}function t(){s[this.uuid].handle(c,arguments)}function n(e,t){var n,r,i=s[this.uuid];for(i.state===u&&(i.state=e,i.value=t);n=i[i.state].shift();)r=n.handler.apply(Y,i.value),r&&"function"==typeof r.then?r.then(n.dfd.resolve,n.dfd.reject):n.dfd[i.state===a?"resolve":"reject"].apply(Y,i.value);i[a].length=0,i[c].length=0}function r(e,t,n){e.then(function(){n.resolved[t]=d(arguments),n.count++,i(n)},function(){n.rejected.push(d(arguments)),i(n)})}function i(e){e.count===e.total?e.dfd.resolve.apply(Y,A.apply([],e.resolved)):e.rejected.length+e.count===e.total&&e.dfd.reject.apply(Y,A.apply([],e.rejected))}function o(r){var i=this.parent.constructor.call(this);s[i.uuid]={state:u,handle:n.bind(i),value:Y,resolved:[],rejected:[],count:0},r(e.bind(i),t.bind(i))}var u="pending",a="resolved",c="rejected",s={};return o.prototype={catch:function(e){return this.then(ce,e)},always:function(e){return this.then(e,e)},then:function(e,t){var n=s[this.uuid],r=o.defer();return e&&n[a].push({handler:e,dfd:r}),t&&n[c].push({handler:t,dfd:r}),n.state!==u&&Le(n.handle),r.pledge},isPending:function(){return s[this.uuid].state===u},isResolved:function(){return s[this.uuid].state===a},isRejected:function(){return s[this.uuid].state===c}},o.defer=function(){var e={};return e.pledge=new o(function(t,n){e.resolve=t,e.reject=n}),e},o.all=function(e){var t,n,i=o.defer(),u=0;if(e.length)for(t=s[Ne()]={dfd:i,resolved:[],rejected:[],total:e.length,count:0};n=e[u];u++)r(n,u,t);else i.resolve();return i.pledge},o.race=function(e){for(var t,n=o.defer(),r=0;t=e[r];r++)t.then(n.resolve,n.reject);return e.length||n.resolve(),n.pledge},o.extends(m)}();g.prototype={get:function(e){return e?S[this.uuid][e]:S[this.uuid]},set:function(e,t){S[this.uuid][e]=t},remove:function(e){delete S[this.uuid][e]}},g.extends(m),y.prototype={toString:function(){var e=this,t=F+": "+e.message+" "+(e.module?'"'+e.module+'"':"");return e.stack&&(t=y.traverse(e.stack,t,1)),t}},y.traverse=function(e,t,n){for(var r,i=new Array(n+1).join(" "),o=0;r=e[o];o++)t+="\n"+i+"> "+r.message+" "+(r.module?'"'+r.module+'"':""),r.stack&&(t=y.traverse(r.stack,t,n+1));return t};var Ve=function(){function e(e,t){this[e]=t}function n(e,t){t.pledge.isPending()&&this.push(e)}function r(e,t){t.pledge.isResolved()&&this.push(e)}function i(e,t){t.pledge.isRejected()&&this.push(e)}function o(e,t,n){var r=this,i=e.match(ze)||s;return r.path=p(e,t),r.mock=i[1]?te:ee,r.cache=i[2]?"+"===i[1]:Y,r.type=i[3]||C.handler,r.version=i[4]||C.version,r.lifetime=i[5]&&1e3*i[5]||C.lifetime,r.id=(r.mock?W:"")+r.type+"!"+r.path,r.uri=(r.mock?W:"")+r.type+"@"+r.version+(c(r.lifetime)&&r.lifetime>0?"#"+r.lifetime:"")+"!"+r.path,r.dfd=Qe.defer(),r.pledge=r.dfd.pledge,n!==ee&&a.set(r.id,r),r}var u="internal!",a=new g,s=[];return o.prototype={enqueue:!0},o.get=function(e,t){return a.get(v(e,t))},o.resolve=function(t,n){var r,i=n&&Je.test(t),a=i?this.get(u+n+"/"+t):this.get(t,n);if(!a)if(i){switch(a=new o(u+n+"/"+t),t){case F:r=function(){return f(demand,e,demand.bind(n))}();break;case U:r=provide.bind(n);break;case B:r=n}a.dfd.resolve(r)}else a=new o(t,n),demand(z+a.type).then(function(e){a.handler=e,a.mock?a.dfd.resolve(e):Ke.resolve(a)},function(){a.dfd.reject(new y($e+" (handler)",self.id))});return a},o.remove=function(e,n,r){var i=v(e,n),o=t.querySelector("["+F+'-id="'+i+'"]');a.remove(i),a.remove(W+i),o&&o.parentNode.removeChild(o),r!==ee&&Ke.clear.path(i)},o.list={all:function(){return $.keys(a.get())},pending:function(){return f(a.get(),n,[])},resolved:function(){return f(a.get(),r,[])},rejected:function(){return f(a.get(),i,[])}},o}(),We=function(){function e(e,t){this[e]={url:h(t).replace(n,"$1"),match:new RegExp("^"+Xe(t))}}function t(t,n){var r=this;r.weight=t.length,r.match=new RegExp("^"+Xe(t)),r.location=[].concat(n),f(r.location,e,r.location)}var n=/(.+)\/$/;return t.prototype={matches:function(e){return this.match.test(e)},process:function(e,t){var n=this.location[t];if(n)return e.replace(this.match,n.url)}},t}(),Ye=function(t){function n(){this.readyState<4&&this.abort()}var o="XDomainRequest"in e&&e.XDomainRequest||t;return function(e){var u,a=Qe.defer(),c=Ge.test(e)?new t:new o,s=n.bind(c),f=C.timeout;return c.ontimeout=c.onerror=c.onabort=function(){a.reject(c.status)},c.onprogress=c.onreadystatechange=function(){i(u),u=r(s,f)},c.onload=function(){u=i(u),"status"in c&&200!==c.status?a.reject(c.status):a.resolve(c.responseText,c.getResponseHeader&&c.getResponseHeader("content-type"))},c.open("GET",e,te),c.send(),u=r(s,f),a.pledge}}(XMLHttpRequest);e.demand=function(){function t(e,t){this[e]={weight:e.length,state:t}}function n(e,t){"base"!==e&&(this[e]=new We(e,t))}function r(e,t){var n=this[e]=this[e]||{};_e.emit(le,e,n),Ie(n,t),_e.emit(he,e,n)}function i(){var t,n,r,i=d(arguments),o=this!==e?this:Y,a=0;for(_e.emit(je,Y,i,o);t=i[a];a++)u(t,re)?i[a]=Ve.resolve(t,o).pledge:(i[a]=(n=Qe.defer()).pledge,n.resolve(t));return r=i.length>1?Qe.all(i):i[0],r.always(function(){_e.emit(qe,Y,i,o)})}return i.configure=function(e){var o=e.cache,s=e.version,d=e.timeout,l=e.lifetime,h=e.base,p=e.pattern,v=e.modules,m=C.modules;return u(o,ie)?C.cache[""]={weight:0,state:o}:a(o)&&f(o,t,C.cache),u(s,re)&&(C.version=s),c(d)&&(C.timeout=1e3*Math.min(Math.max(d,2),12)),c(l)&&l>0&&(C.lifetime=1e3*l),u(h,re)&&""!==h&&(C.pattern.base=new We("",h)),a(p)&&f(p,n,C.pattern),a(v)&&f(v,r,m),i},i.version="4.1.6",i.on=_e.on.bind(i),i.get=function(e,t){var n=Ve.get(e,t);return n&&n.value},i.remove=Ve.remove,i.list=Ve.list,i.clear=Ke.clear,_e.after(ve,function(e){new w(e)}).after(me+" "+Pe,function(e){_e.emit(Ce,e.id,e)}).after(Re,function(e){var t=e.handler.onPreRequest;t&&t(e)}).after(Pe,function(e){var t=e.handler.onPostRequest;t&&t(e)}).after(Ce,function(e){var t=e.handler.onPreProcess;t&&t(e),e.pledge.then(function(){_e.emit(Se,e.id,e)}),e.enqueue===!0?P.enqueue(e):s(e.enqueue,Qe)&&e.enqueue.then(function(){P.enqueue(e)})}),i}(),e.provide=function(){var t,n,r=u(arguments[0],re)?arguments[0]:Y,i=this!==e?this:Y,o=x(arguments[r?1:0])?arguments[r?1:0]:Y,a=o?arguments[r?2:1]:arguments[r?1:0];!r&&E.current&&(t=E.current,r=t.uri,E.process()),r?(t=t||new Ve(r,i),n=u(a,ue),o?demand.apply(t.path,o).then(function(){t.dfd.resolve(n?a.apply(Y,arguments):a)},function(){t.dfd.reject(new y(De,t.id,arguments))}):t.dfd.resolve(n?a():a),t.pledge.then(function(e){t.value=e})):!u(console,ne)&&console.error(new y(He))},demand.configure({cache:te,base:"/",pattern:{"/demand":h((n&&n.url||location.href)+"/../").slice(0,-1)}}),n&&n.settings&&demand.configure(n.settings),j.prototype={enqueue:function(){S[this.uuid]=S[this.uuid].concat(d(arguments)),_e.emit(Me,this.uuid)},dequeue:function(){return _e.emit(Ae,this.uuid),S[this.uuid].shift()},get current(){return S[this.uuid][0]},get length(){return S[this.uuid].length}},j.extends(m),q.prototype={process:function(){var e,t=S[this.uuid];t.queue.length?(e=t.current=t.queue.dequeue(),e.handler.process&&e.handler.process(e)):t.current=Y},get current(){return S[this.uuid].current}},q.extends(m);var Ze=function(){function e(){}return e.prototype={validate:Y,onPreRequest:Y,onPostRequest:Y,onPreProcess:Y,process:Y},new e}(),et=function(){function e(){}var n=t.getElementsByTagName("head")[0],r=/^(application|text)\/(x-)?javascript/;return e.prototype={validate:function(e){return r.test(e)},onPreRequest:function(e){var t=e.url;e.url=".js"!==t.slice(-3)?t+".js":t},onPostRequest:function(e){e.source=k(e.url,e.source)},process:function(e){var r;e.source&&(r=t.createElement("script"),r.async=te,r.text=e.source,r.setAttribute(F+"-id",e.id),n.appendChild(r))}},new(e.extends(Ze))}();y.prototype={toString:function(){var e=this,t=F+": "+e.message+" "+(e.module?'"'+e.module+'"':"");return e.stack&&(t=y.traverse(e.stack,t,1)),t}},y.traverse=function(e,t,n){for(var r,i=new Array(n+1).join(" "),o=0;r=e[o];o++)t+="\n"+i+"> "+r.message+" "+(r.module?'"'+r.module+'"':""),r.stack&&(t=y.traverse(r.stack,t,n+1));return t};var tt=function(){function e(e,t){var n,r;for(n=0;r=t[n];n++)u(r,re)&&(t[n]=v(r))}function t(e){for(var t,n,r=0;n=e[r];r++)if(n=n.match(ze),n=n&&n[3]||i.handler,t){if(n!==t)return ee}else t=n;return t}function n(){}var r=z+"bundle",i={};return demand.on(he+":"+r,function(t){a(t)&&(i=t,f(i,e))}),n.prototype={validate:et.validate,onPreProcess:function(e){function n(){f.reject(new y(Te,e.id,arguments))}var r,o,u,a,c,s=e.source,f=e.dfd,d=i[e.path];if(e.enqueue=ee,d&&(r=t(d))){for(;o=Be.exec(s);)s=s.replace(o[0],"");for(e.source=s,u=[],c=0;a=d[c];c++)u.push(Ve.resolve(W+a).pledge);Qe.all(u).then(function(){for(u.length=0,c=0;a=d[c];c++)a=d[c]=Ve.get(a)||new Ve(a),a.handler=arguments[c],u.push(a.pledge);"module"===r?(P.enqueue.apply(P,d),et.process(e)):(et.process(e),P.enqueue.apply(P,d)),Qe.all(u).then(f.resolve,n)},n)}else n()}},new(n.extends(Ze))}(),nt=function(){function e(){}var n=/^text\/.+$/;return e.prototype={validate:function(e){return n.test(e)},onPreRequest:function(e){var t=e.url;e.url=".html"!==t.slice(-5)?t+".html":t},onPreProcess:function(e){function n(){c.reject(new y(Te,e.id,arguments))}var r,i,o,u,a=e.path,c=e.dfd,s=t.createElement("body"),f=[],d=[];for(e.enqueue=ee,s.innerHTML=e.source;r=s.firstElementChild;)(i=r.getAttribute("type"))&&(o=r.getAttribute("path"),u=i+"!"+a+(o?"/"+o:""),r.parentNode.removeChild(r),f.push({source:r.textContent,uri:u}),d.push(Ve.resolve("mock:"+u).pledge));Qe.all(d).then(function(){var e,t,r=0;for(d.length=0;e=f[r];r++)t=Ve.get(e.uri)||new Ve(e.uri),t.source=e.source,t.handler=arguments[r],d.push(t.pledge),P.enqueue(t);Qe.all(d).then(c.resolve,n)},n)}},new(e.extends(Ze))}(),rt=function(){function e(e){for(var t,n,r=0;t=s[r];r++)0===e.indexOf(t.prefix)&&(!n||t.weight>n.weight)&&(n=t);return n}function t(e){var t,n,r=e.matches,i={pattern:{},modules:{"/demand/handler/bundle":{}}},o=0;for(i.pattern[e.id]=e.fn(r),i.modules[z+"bundle"][e.id]=t=[];n=r[o];o++)t.push(n.path);return i}function n(){for(var e,t=0;e=this[t];t++)e.dfd.resolve(arguments[t])}function r(){for(var e,t=0;e=this[t];t++)e.dfd.reject(new y(Te,e.id))}function i(e,t){s.push({prefix:e,weight:e.length,fn:t})}function o(e,i){var o,u=i.matches,a=0;if(u.length>1){for(i.id=c+"/"+b(JSON.stringify(i.matches));o=u[a];a++)u[a]=new Ve(o.uri);demand.configure(t(i)),demand("bundle!"+i.id).then(n.bind(u),r.bind(u))}}var c=K+"genie",s=[];return demand.on(he+":"+c,function(e){a(e)&&(s.length=0,f(e,i))}).on(je,function(t,n){for(var r,i,a={},c=0;r=t[c];c++)!u(r,re)||Je.test(r)||Ve.get(r,n)||(r=new Ve(r,n,ee),"module"===r.type&&(i=e(r.path))&&!Ke.get(r)&&(a[i.prefix]||(a[i.prefix]={fn:i.fn,matches:[]})).matches.push(r));f(a,o)}),te}();if(P=new j,E=new q(P),R(J+"uuid",m),R(J+"handler",Ze),R(z+"module",et),R(z+"bundle",tt),R(z+"component",nt),R(K+"genie",rt),R(V+"isTypeOf",u),R(V+"isArray",x),R(V+"isObject",a),R(V+"isInstanceOf",s),R(Q+"resolveUrl",h),R(Q+"resolveSourcemaps",k),R(Q+"merge",Ie),R(Q+"iterate",f),R(Q+"hash",b),R(Q+"defer",Le),R(G+"descriptor",o),R(G+"pledge",Qe),R(G+"queue",j),R(G+"xhr",Ye),R(G+"failure",y),n&&n.main)switch(typeof n.main){case re:demand(n.main);break;case ue:provide("main",n.main())}}(this,document,"demand"in this&&demand,setTimeout,clearTimeout); //# sourceMappingURL=demand.js.map diff --git a/dist/demand.js.map b/dist/demand.js.map index 19efd72..efaaa94 100644 --- a/dist/demand.js.map +++ b/dist/demand.js.map @@ -1 +1 @@ -{"version":3,"sources":["demand.js","class/descriptor.js","validator/isTypeOf.js","validator/isObject.js","validator/isPositive.js","validator/isInstanceOf.js","function/iterate.js","function/toArray.js","function/getTimestamp.js","function/resolveUrl.js","function/resolvePath.js","function/resolveId.js","abstract/uuid.js","class/registry.js","class/failure.js","class/loader.js","validator/isArray.js","function/hash.js","class/queue.js","class/processor.js","function/resolveSourcemaps.js","class/Failure.js","shortcuts.js","constants.js","inheritance.js","function/merge.js","function/uuid.js","function/defer.js","singleton/event.js","function/escapeRegex.js","variables.js","singleton/cache.js","class/pledge.js","class/dependency.js","class/pattern.js","class/xhr.js","function/demand.js","function/provide.js","abstract/handler.js","handler/module.js","handler/bundle.js","plugin/genie.js"],"names":["global","document","options","setTimeout","clearTimeout","ClassDescriptor","value","writable","configurable","enumerable","__proto__","NULL","validatorIsTypeOf","object","type","validatorIsObject","STRING_OBJECT","validatorIsPositive","STRING_NUMBER","isFinite","Math","floor","validatorIsInstanceOf","module","functionIterate","source","callback","context","property","properties","keys","i","UNDEFINED","call","FALSE","functionToArray","arrayLikeObject","start","end","arrayPrototypeSlice","functionGetTimestamp","Date","functionResolveUrl","url","linkElement","href","functionResolvePath","uri","path","replace","regexMatchParameter","regexIsAbsolutePath","test","regexIsAbsoluteUri","regexMatchBaseUrl","functionResolveId","parameter","match","settings","handler","AbstractUuid","this","uuid","STRING_UNDEFINED","objectDefineProperty","functionUuid","ClassRegistry","parent","constructor","storage","ClassFailure","message","stack","ClassLoader","dependency","resolve","response","validate","dfd","reject","ERROR_LOAD","id","singletonEvent","emit","EVENT_POST_REQUEST","status","addUrlParam","param","query","search","regexCleanupSearch","load","location","pattern","process","EVENT_PRE_REQUEST","ClassXhr","DEMAND_ID","then","matches","weight","validatorIsArray","objectPrototypeToString","functionHash","input","length","charCodeAt","ClassQueue","ClassProcessor","queue","self","pointer","current","demand","on","EVENT_QUEUE_ENQUEUE","functionResolveSourcemaps","replacement","regexMatchSourcemap","exec","protocol","host","pathname","assignModule","provide","processor","version","cache","timeout","modules","arrayPrototype","Array","prototype","slice","arrayPrototypeConcat","concat","Object","objectPrototype","toString","objectCreate","create","defineProperty","objectGetOwnPropertyNames","getOwnPropertyNames","objectGetOwnPropertyDescriptor","getOwnPropertyDescriptor","functionPrototype","Function","createElement","PROVIDE_ID","PATH_ID","MODULE_PREFIX","MODULE_PREFIX_ABSTRACT","MODULE_PREFIX_HANDLER","MODULE_PREFIX_PLUGIN","MODULE_PREFIX_FUNCTION","MODULE_PREFIX_VALIDATOR","MOCK_PREFIX","undefined","TRUE","STRING_STRING","STRING_BOOLEAN","STRING_FUNCTION","FUNCTION_EMPTY","EVENT_PREFIX","EVENT_POSTFIX","EVENT_CONFIGURE","EVENT_PRE_CONFIGURE","EVENT_POST_CONFIGURE","EVENT_CACHE","EVENT_CACHE_MISS","EVENT_CACHE_HIT","EVENT_CACHE_CLEAR","EVENT_CACHE_EXCEED","EVENT_PRE_CACHE","EVENT_POST_CACHE","EVENT_RESOLVE","EVENT_PRE_RESOLVE","EVENT_POST_RESOLVE","EVENT_REQUEST","EVENT_PROCESS","EVENT_PRE_PROCESS","EVENT_POST_PROCESS","EVENT_QUEUE","EVENT_QUEUE_DEQUEUE","ERROR_PROVIDE","ERROR_RESOLVE","ERROR_PROVIDE_ANONYMOUS","extend","names","functionMerge","mergeProperties","targetPropertyIsObject","targetProperty","target","arguments","randomize","character","r","random","regex","RegExp","functionDefer","element","fallback","hasSetImmediate","fn","MutationObserver","observe","attributes","setAttribute","onMessage","event","data","addEventListener","postMessage","onreadystatechange","parentNode","removeChild","body","appendChild","setImmediate","addListener","events","split","shift","regexMatchEvent","listener","after","push","filter","TYPE_ON","Event","TYPE_AFTER","item","apply","functionEscapeRegex","regexMatchRegex","regexMatchInternal","singletonCache","enabled","indexOf","state","getKey","key","localStorage","getItem","setKey","getState","regexMatchProperties","setState","join","Cache","clear","expired","bind","STORAGE_PREFIX","STORAGE_SUFFIX_STATE","STORAGE_SUFFIX_VALUE","regexMatchState","supportsLocalStorage","exception","supportsRemainingSpace","cacheDispose","set","get","lifetime","spaceBefore","remainingSpace","Error","error","ClassDependency","all","ClassPledge","handle","PLEDGE_RESOLVED","PLEDGE_REJECTED","result","PLEDGE_PENDING","pledge","index","resolved","count","check","rejected","total","executor","catch","always","alwaysListener","resolveListener","rejectListener","defer","isPending","isResolved","isRejected","pledges","race","extends","remove","traverse","depth","indention","setProperty","addPending","addResolved","addRejected","register","placeholder","mock","registry","PREFIX_INTERNAL","enqueue","isInternal","node","querySelector","list","pending","ClassPattern","regexMatchTrailingSlash","XMLHttpRequest","checkState","readyState","abort","XDomainRequest","xhr","boundCheckState","ontimeout","onerror","onabort","onprogress","onload","responseText","getResponseHeader","open","send","updateCacheSettings","updatePatternSettings","updateModuleSettings","temp","dependencies","configure","base","min","max","onPreRequest","onPostRequest","onPreProcess","isFunction","definition","console","/demand","dequeue","abstractHandler","AbstractHandler","handlerModule","HandlerModule","getElementsByTagName","regexMatchType","script","async","text","handlerBundle","updateDependencies","getType","HandlerBundle","pluginGenie","matchPattern","prefix","generateConfiguration","bundle","configuration","/demand/handler/bundle","resolveDependencies","rejectDependencies","addPattern","resolveBundles","JSON","stringify","bundles","main"],"mappings":"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","file":"demand.js","sourcesContent":["/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tMODULE_PREFIX, MODULE_PREFIX_HANDLER, MODULE_PREFIX_VALIDATOR, MODULE_PREFIX_PLUGIN, MODULE_PREFIX_FUNCTION, MODULE_PREFIX_ABSTRACT, STRING_STRING, STRING_FUNCTION, TRUE,\n\tvalidatorIsTypeOf, validatorIsArray, validatorIsObject, validatorIsInstanceOf,\n\tfunctionResolveUrl, functionResolveSourcemaps, functionMerge, functionIterate, functionDefer, functionHash, functionUuid,\n\tAbstractUuid, abstractHandler,\n \tClassQueue, ClassProcessor, ClassPledge, ClassXhr, ClassFailure, ClassDescriptor\n\thandlerModule, handlerBundle,\n \tpluginGenie\n*/\n\n/*eslint no-unused-vars: [2, { \"vars\": \"local\", \"args\": \"none\" }]*/\n(function(global, document, options, setTimeout, clearTimeout) {\n\t'use strict';\n\n\t/* eslint-disable no-unused-vars */\n\tvar settings = { version: '1.0.0', cache: {}, timeout: 8000, pattern: {}, modules: {}, handler: 'module' },\n\t\tstorage = {},\n\t\tqueue, processor;\n\t/* eslint-enable no-unused-vars */\n\n\t// include inheritance\n\t\t//=require inheritance.js\n\n\t// include main components\n\t\t//=require function/demand.js\n\t\t//=require function/provide.js\n\n\t// process initial configuration\n\t\tdemand.configure({ cache: TRUE, base: '/', pattern: { '/demand': functionResolveUrl(((options && options.url) || location.href) + '/../').slice(0, -1)} });\n\t\toptions && options.settings && demand.configure(options.settings);\n\n\t// include additional components\n\t\t//=require function/hash.js\n\t\t//=require class/queue.js\n\t\t//=require class/processor.js\n\t\t//=require handler/module.js\n\t\t//=require handler/bundle.js\n\t\t//=require plugin/genie.js\n\n\t// initialize\n\t\tqueue = new ClassQueue();\n\t\tprocessor = new ClassProcessor(queue);\n\n\t\tfunction assignModule(id, module) {\n\t\t\tprovide(id, function() { return module; });\n\t\t}\n\n\t\tassignModule(MODULE_PREFIX_ABSTRACT + 'uuid', AbstractUuid);\n\t\tassignModule(MODULE_PREFIX_ABSTRACT + 'handler', abstractHandler);\n\t\tassignModule(MODULE_PREFIX_HANDLER + 'module', handlerModule);\n\t\tassignModule(MODULE_PREFIX_HANDLER + 'bundle', handlerBundle);\n\t\tassignModule(MODULE_PREFIX_PLUGIN + 'genie', pluginGenie);\n\t\tassignModule(MODULE_PREFIX_VALIDATOR + 'isTypeOf', validatorIsTypeOf);\n\t\tassignModule(MODULE_PREFIX_VALIDATOR + 'isArray', validatorIsArray);\n\t\tassignModule(MODULE_PREFIX_VALIDATOR + 'isObject', validatorIsObject);\n\t\tassignModule(MODULE_PREFIX_VALIDATOR + 'isInstanceOf', validatorIsInstanceOf);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'resolveUrl', functionResolveUrl);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'resolveSourcemaps', functionResolveSourcemaps);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'merge', functionMerge);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'iterate', functionIterate);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'hash', functionHash);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'defer', functionDefer);\n\t\tassignModule(MODULE_PREFIX + 'descriptor', ClassDescriptor);\n\t\tassignModule(MODULE_PREFIX + 'pledge', ClassPledge);\n\t\tassignModule(MODULE_PREFIX + 'queue', ClassQueue);\n\t\tassignModule(MODULE_PREFIX + 'xhr', ClassXhr);\n\t\tassignModule(MODULE_PREFIX + 'failure', ClassFailure);\n\n\t\tif(options && options.main) {\n\t\t\tswitch(typeof options.main) {\n\t\t\t\tcase STRING_STRING:\n\t\t\t\t\tdemand(options.main);\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase STRING_FUNCTION:\n\t\t\t\t\tprovide('main', options.main());\n\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n}(this, document, 'demand' in this && demand, setTimeout, clearTimeout));","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tNULL\n*/\n\n//=require constants.js\n\nfunction ClassDescriptor(value, writable, configurable, enumerable) {\n\treturn {\n\t\t__proto__: NULL,\n\t\tvalue: value,\n\t\tenumerable: !!enumerable,\n\t\tconfigurable: !!configurable,\n\t\twritable: !!writable\n\t};\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\n/**\n * isTypeOf\n *\n * Check whether a given object is of specified type\n *\n * @param object\n * @param {string} type\n *\n * @return {boolean}\n */\n\nfunction validatorIsTypeOf(object, type) {\n\treturn typeof object === type;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tSTRING_OBJECT,\n\tvalidatorIsTypeOf\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n\n/**\n * isObject\n *\n * Check whether a given object is of type object\n *\n * @param object\n *\n * @return {boolean}\n */\n\nfunction validatorIsObject(object) {\n\treturn object && validatorIsTypeOf(object, STRING_OBJECT);\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tSTRING_NUMBER,\n\tvalidatorIsTypeOf\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n\n/**\n * isPositive\n *\n * Check whether a given value is a positive integer\n *\n * @param value\n *\n * @return {boolean}\n */\n\nfunction validatorIsPositive(value) {\n\treturn validatorIsTypeOf(value, STRING_NUMBER) && isFinite(value) && Math.floor(value) === value && value >= 0;\n}","/**\n * isInstanceOf\n *\n * Check whether a given object is an instance of specified type\n *\n * @param object\n * @param module\n *\n * @return {boolean}\n */\nfunction validatorIsInstanceOf(object, module) {\n\treturn object instanceof module;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tUNDEFINED, FALSE,\n\tobject\n*/\n\n//=require constants.js\n//=require shortcuts.js\n\n/**\n * iterate\n *\n * Iterate over enumerable & own properties of a given\n * object and pass current property as well as its value\n * to a callback function\n *\n * @param {object} object\n * @param {function} callback\n * @param context\n *\n * @return mixed\n */\n\nfunction functionIterate(source, callback, context) {\n\tvar properties = object.keys(source),\n\t\ti = 0, property;\n\n\tfor(; (property = properties[i]) !== UNDEFINED; i++) {\n\t\tif(callback.call(context, property, source[property]) === FALSE) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn context;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tarrayPrototypeSlice\n*/\n\n//=require shortcuts.js\n\nfunction functionToArray(arrayLikeObject, start, end) {\n\treturn arrayPrototypeSlice.call(arrayLikeObject, start, end);\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\nfunction functionGetTimestamp() {\n\treturn +new Date();\n}\n","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tlinkElement\n*/\n\n//=require shortcuts.js\n\nfunction functionResolveUrl(url) {\n\tlinkElement.href = url;\n\n\treturn linkElement.href;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tregexMatchParameter, regexMatchBaseUrl, regexIsAbsolutePath, regexIsAbsoluteUri,\n\tfunctionResolveUrl\n*/\n\n//=require variables.js\n//=require function/resolveUrl.js\n\nfunction functionResolvePath(uri, context) {\n\tvar path = uri.replace(regexMatchParameter, '');\n\n\tif(!regexIsAbsolutePath.test(path) && !regexIsAbsoluteUri.test(path)) {\n\t\tpath = '/' + functionResolveUrl(((context && functionResolveUrl(context + '/../')) || '/') + path).replace(regexMatchBaseUrl, '');\n\t}\n\n\treturn path;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tregexMatchParameter,\n\tfunctionResolvePath\n*/\n\n//=require variables.js\n//=require function/resolvePath.js\n\nfunction functionResolveId(uri, context) {\n\tvar parameter = uri.match(regexMatchParameter);\n\n\treturn ((parameter && parameter[1]) ? 'mock:' : '') + ((parameter && parameter[3]) || settings.handler) + '!' + functionResolvePath(uri, context);\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tSTRING_UNDEFINED,\n\tobjectDefineProperty,\n\tvalidatorIsTypeOf,\n\tfunctionUuid,\n\tClassDescriptor\n*/\n\n//=require constants.js\n//=require shortcuts.js\n//=require validator/isTypeOf.js\n//=require function/uuid.js\n//=require class/descriptor.js\n\nfunction AbstractUuid() {\n\tif(validatorIsTypeOf(this.uuid, STRING_UNDEFINED)) {\n\t\tobjectDefineProperty(this, 'uuid', new ClassDescriptor(functionUuid()));\n\t}\n\n\treturn this;\n}\n","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tAbstractUuid\n*/\n\n//=require abstract/uuid.js\n\nfunction ClassRegistry() {\n\tthis.parent.constructor.call(this);\n\n\tstorage[this.uuid] = {};\n\n\tglobal.storage = storage[this.uuid];\n}\n\nClassRegistry.prototype = {\n\tget: function(key) {\n\t\treturn key ? storage[this.uuid][key] : storage[this.uuid];\n\t},\n\tset: function(key, value) {\n\t\tstorage[this.uuid][key] = value;\n\t},\n\tremove: function(key) {\n\t\tdelete storage[this.uuid][key];\n\t}\n};\n\nClassRegistry.extends(AbstractUuid);","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID,\n\tfunctionToArray\n*/\n\n//=require constants.js\n//=require function/toArray.js\n\nfunction ClassFailure(message, module, stack) {\n\tthis.message = message;\n\t\t\n\tmodule && (this.module = module);\n\tstack && (this.stack = functionToArray(stack));\n}\n\t\nClassFailure.prototype = {\n\t/* only for reference\n\t message: NULL,\n\t module: NULL,\n\t stack: NULL,\n\t */\n\ttoString: function() {\n\t\tvar self = this,\n\t\t\tresult = DEMAND_ID + ': ' + self.message + ' ' + (self.module ? '\"' + self.module + '\"' : '');\n\n\t\tif(self.stack) {\n\t\t\tresult = ClassFailure.traverse(self.stack, result, 1);\n\t\t}\n\t\t\t\n\t\treturn result;\n\t}\n};\n\t\nClassFailure.traverse = function(stack, value, depth) {\n\tvar indention = new Array(depth + 1).join(' '),\n\t\ti = 0, item;\n\t\t\n\tfor(; item = stack[i]; i++) {\n\t\tvalue += '\\n' + indention + '> ' + item.message + ' ' + (item.module ? '\"' + item.module + '\"' : '');\n\t\t\t\n\t\tif(item.stack) {\n\t\t\tvalue = ClassFailure.traverse(item.stack, value, depth + 1);\n\t\t}\n\t}\n\t\t\n\treturn value;\n};","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID, EVENT_PRE_REQUEST, EVENT_POST_REQUEST, ERROR_LOAD,\n\tregexIsAbsoluteUri,\n\tlinkElement,\n\tfunctionIterate, functionResolveUrl,\n\tClassXhr, ClassFailure,\n\tsingletonEvent\n*/\n\n//=require constants.js\n//=require variables.js\n//=require shortcuts.js\n//=require function/resolveUrl.js\n//=require function/iterate.js\n//=require singleton/event.js\n//=require class/xhr.js\n//=require class/failure.js\n\nfunction ClassLoader(dependency) {\n\tvar regexCleanupSearch = /^\\?/,\n\t\tpattern;\n\n\tfunction resolve(response, type) {\n\t\tif(!type || !dependency.handler.validate || dependency.handler.validate(type)) {\n\t\t\tdependency.source = response;\n\n\t\t\tsingletonEvent.emit(EVENT_POST_REQUEST, dependency.type, dependency);\n\t\t} else {\n\t\t\tdependency.dfd.reject(new ClassFailure(ERROR_LOAD + ' (content-type)', dependency.id));\n\t\t}\n\t}\n\n\tfunction reject(status) {\n\t\tdependency.dfd.reject(new ClassFailure(ERROR_LOAD + (status ? ' (status)' : ''), dependency.id));\n\t}\n\t\n\tfunction addUrlParam(url, param, value) {\n\t\tvar query;\n\t\t\n\t\tlinkElement.href = url;\n\t\tlinkElement.search = (query = (linkElement.search || '').replace(regexCleanupSearch, '')) + (query ? '&' : '?') + param + '=' + value;\n\t\t\n\t\treturn linkElement.href;\n\t}\n\n\tfunction load(location) {\n\t\tlocation = location || 0;\n\t\tdependency.url = pattern ? functionResolveUrl(pattern.process(dependency.path, location)) : dependency.path;\n\n\t\tsingletonEvent.emit(EVENT_PRE_REQUEST, dependency.type, dependency);\n\n\t\tnew ClassXhr(addUrlParam(dependency.url, DEMAND_ID, +new Date())).then(\n\t\t\tresolve,\n\t\t\t(\n\t\t\t\tpattern ?\n\t\t\t\tfunction() {\n\t\t\t\t\tlocation++;\n\n\t\t\t\t\tif(pattern.location[location]) {\n\t\t\t\t\t\tload(location);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treject();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t:\n\t\t\t\treject\n\t\t\t)\n\t\t);\n\t}\n\n\tif(!regexIsAbsoluteUri.test(dependency.path)) {\n\t\tfunctionIterate(settings.pattern, function(property, value) {\n\t\t\tvalue.matches(dependency.path) && (!pattern || pattern.weight < value.weight) && (pattern = value);\n\t\t});\n\t}\n\n\tload();\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tobjectPrototypeToString\n*/\n\n//=require shortcuts.js\n\n/**\n * isArray\n *\n * Check whether a given value is of type array\n *\n * @param value\n *\n * @return {boolean}\n */\n\nfunction validatorIsArray(value) {\n\treturn objectPrototypeToString.call(value) === '[object Array]';\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\n/**\n * hash\n *\n * Generate a hash for a given string\n *\n * @param {string} input\n *\n * @return {number}\n */\nfunction functionHash(input){\n\tvar value = 5381,\n\t\ti = input.length;\n\n\twhile(i) {\n\t\tvalue = (value * 33) ^ input.charCodeAt(--i);\n\t}\n\n\treturn value >>> 0;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tEVENT_QUEUE_ENQUEUE, EVENT_QUEUE_DEQUEUE,\n\tfunctionToArray,\n\tsingletonEvent,\n\tAbstractUuid\n*/\n\n//=require constants.js\n//=require function/toArray.js\n//=require singleton/event.js\n//=require abstract/uuid.js\n\nfunction ClassQueue() {\n\tthis.parent.constructor.call(this);\n\n\tstorage[this.uuid] = [];\n}\n\t\nClassQueue.prototype = {\n\tenqueue: function() {\n\t\tstorage[this.uuid] = storage[this.uuid].concat(functionToArray(arguments));\n\n\t\tsingletonEvent.emit(EVENT_QUEUE_ENQUEUE, this.uuid);\n\t},\n\tdequeue: function() {\n\t\tsingletonEvent.emit(EVENT_QUEUE_DEQUEUE, this.uuid);\n\n\t\treturn storage[this.uuid].shift();\n\t},\n\tget current() {\n\t\treturn storage[this.uuid][0];\n\t},\n\tget length() {\n\t\treturn storage[this.uuid].length;\n\t}\n};\n\t\nClassQueue.extends(AbstractUuid);","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tEVENT_QUEUE_ENQUEUE, NULL,\n\tsingletonEvent,\n\tAbstractUuid\n*/\n\n//=require constants.js\n//=require abstract/uuid.js\n\nfunction ClassProcessor(queue) {\n\tvar self = this.parent.constructor.call(this),\n\t\tpointer = storage[self.uuid] = { queue: queue, current: NULL };\n\n\tdemand\n\t\t.on(EVENT_QUEUE_ENQUEUE + ':' + queue.uuid, function() {\n\t\t\t!pointer.current && self.process();\n\t\t});\n}\n\nClassProcessor.prototype = {\n\tprocess: function() {\n\t\tvar pointer = storage[this.uuid],\n\t\t\tcurrent;\n\n\t\tif(pointer.queue.length) {\n\t\t\tcurrent = pointer.current = pointer.queue.dequeue();\n\n\t\t\tcurrent.handler.process && current.handler.process(current);\n\t\t} else {\n\t\t\tpointer.current = NULL;\n\t\t}\n\t},\n\tget current() {\n\t\treturn storage[this.uuid].current;\n\t}\n};\n\t\nClassProcessor.extends(AbstractUuid);","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tregexMatchSourcemap, regexIsAbsoluteUri\n\tlinkElement\n*/\n\n//=require variables.js\n//=require shortcuts.js\n\nfunction functionResolveSourcemaps(url, source) {\n\tvar match, replacement;\n\t\n\twhile(match = regexMatchSourcemap.exec(source)) {\n\t\tlinkElement.href = url;\n\t\t\n\t\tif(regexIsAbsoluteUri.test(match[2])) {\n\t\t\treplacement = linkElement.protocol + '//' + linkElement.host + match[3];\n\t\t} else {\n\t\t\tlinkElement.pathname += '/../' + match[3];\n\t\t\t\n\t\t\treplacement = linkElement.protocol + '//' + linkElement.host + linkElement.pathname;\n\t\t}\n\t\t\n\t\tsource = source.replace(match[0], match[1] + ' ' + match[2] + '=' + replacement + '.map' + (match[4] ? ' ' + match[4] : ''));\n\t}\n\t\n\treturn source;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID,\n\tfunctionToArray\n*/\n\n//=require constants.js\n//=require function/toArray.js\n\nfunction ClassFailure(message, module, stack) {\n\tthis.message = message;\n\t\t\n\tmodule && (this.module = module);\n\tstack && (this.stack = functionToArray(stack));\n}\n\t\nClassFailure.prototype = {\n\t/* only for reference\n\t message: NULL,\n\t module: NULL,\n\t stack: NULL,\n\t */\n\ttoString: function() {\n\t\tvar self = this,\n\t\t\tresult = DEMAND_ID + ': ' + self.message + ' ' + (self.module ? '\"' + self.module + '\"' : '');\n\n\t\tif(self.stack) {\n\t\t\tresult = ClassFailure.traverse(self.stack, result, 1);\n\t\t}\n\t\t\t\n\t\treturn result;\n\t}\n};\n\t\nClassFailure.traverse = function(stack, value, depth) {\n\tvar indention = new Array(depth + 1).join(' '),\n\t\ti = 0, item;\n\t\t\n\tfor(; item = stack[i]; i++) {\n\t\tvalue += '\\n' + indention + '> ' + item.message + ' ' + (item.module ? '\"' + item.module + '\"' : '');\n\t\t\t\n\t\tif(item.stack) {\n\t\t\tvalue = ClassFailure.traverse(item.stack, value, depth + 1);\n\t\t}\n\t}\n\t\t\n\treturn value;\n};","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\nvar arrayPrototype = Array.prototype,\n\tarrayPrototypeSlice = arrayPrototype.slice,\n\tarrayPrototypeConcat = arrayPrototype.concat,\n\tobject = Object,\n\tobjectPrototype = object.prototype,\n\tobjectPrototypeToString = objectPrototype.toString,\n\tobjectCreate = object.create,\n\tobjectDefineProperty = object.defineProperty,\n\tobjectGetOwnPropertyNames = object.getOwnPropertyNames,\n\tobjectGetOwnPropertyDescriptor = object.getOwnPropertyDescriptor,\n\tfunctionPrototype = Function.prototype,\n\tlinkElement = document.createElement('a');","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\nvar DEMAND_ID = 'demand',\n\tPROVIDE_ID = 'provide',\n\tPATH_ID = 'path',\n\tMODULE_PREFIX = '/' + DEMAND_ID + '/',\n\tMODULE_PREFIX_ABSTRACT = MODULE_PREFIX + 'abstract/',\n\tMODULE_PREFIX_HANDLER = MODULE_PREFIX + 'handler/',\n\tMODULE_PREFIX_PLUGIN = MODULE_PREFIX + 'plugin/',\n\tMODULE_PREFIX_FUNCTION = MODULE_PREFIX + 'function/',\n\tMODULE_PREFIX_VALIDATOR = MODULE_PREFIX + 'validator/',\n\tMOCK_PREFIX = 'mock:',\n\tNULL = null,\n\tUNDEFINED = undefined,\n\tFALSE = false,\n\tTRUE = true,\n\tSTRING_UNDEFINED = 'undefined',\n\tSTRING_STRING = 'string',\n\tSTRING_BOOLEAN = 'boolean',\n\tSTRING_OBJECT = 'object',\n\tSTRING_FUNCTION = 'function',\n\tSTRING_NUMBER = 'number',\n\tFUNCTION_EMPTY = function() {},\n\tEVENT_PREFIX = 'pre',\n\tEVENT_POSTFIX = 'post',\n\tEVENT_CONFIGURE = 'Configure',\n\tEVENT_PRE_CONFIGURE = EVENT_PREFIX + EVENT_CONFIGURE,\n\tEVENT_POST_CONFIGURE = EVENT_POSTFIX + EVENT_CONFIGURE,\n\tEVENT_CACHE = 'cache',\n\tEVENT_CACHE_MISS = EVENT_CACHE + 'Miss',\n\tEVENT_CACHE_HIT = EVENT_CACHE + 'Hit',\n\tEVENT_CACHE_CLEAR = EVENT_CACHE + 'Clear',\n\tEVENT_CACHE_EXCEED = EVENT_CACHE + 'Exceed',\n\tEVENT_PRE_CACHE = EVENT_PREFIX + 'Cache',\n\tEVENT_POST_CACHE = EVENT_POSTFIX + 'Cache',\n\tEVENT_RESOLVE = 'Resolve',\n\tEVENT_PRE_RESOLVE = EVENT_PREFIX + EVENT_RESOLVE,\n\tEVENT_POST_RESOLVE = EVENT_POSTFIX + EVENT_RESOLVE,\n\tEVENT_REQUEST = 'Request',\n\tEVENT_PRE_REQUEST = EVENT_PREFIX + EVENT_REQUEST,\n\tEVENT_POST_REQUEST = EVENT_POSTFIX + EVENT_REQUEST,\n\tEVENT_PROCESS = 'Process',\n\tEVENT_PRE_PROCESS = EVENT_PREFIX + EVENT_PROCESS,\n\tEVENT_POST_PROCESS = EVENT_POSTFIX + EVENT_PROCESS,\n\tEVENT_QUEUE = 'queue',\n\tEVENT_QUEUE_ENQUEUE = EVENT_QUEUE + 'Enqueue',\n\tEVENT_QUEUE_DEQUEUE = EVENT_QUEUE + 'Dequeue',\n\tERROR_LOAD = 'error loading',\n\tERROR_PROVIDE = 'error providing',\n\tERROR_RESOLVE = 'error resolving',\n\tERROR_PROVIDE_ANONYMOUS = 'unspecified anonymous provide';","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tobjectCreate, objectDefineProperty, objectGetOwnPropertyNames, objectGetOwnPropertyDescriptor, functionPrototype,\n\tClassDescriptor\n*/\n\n//=require shortcuts.js\n//=require class/descriptor.js\n\n(function() {\n\tfunction extend(parent) {\n\t\tvar self = this,\n\t\t\tprototype = self.prototype,\n\t\t\tproperties = {},\n\t\t\tnames = objectGetOwnPropertyNames(prototype),\n\t\t\ti = 0, property;\n\n\t\tparent = parent.prototype || parent;\n\n\t\tfor(; (property = names[i]); i++) {\n\t\t\tproperties[property] = objectGetOwnPropertyDescriptor(prototype, property);\n\t\t}\n\n\t\tproperties.constructor = new ClassDescriptor(self);\n\t\tproperties.parent = new ClassDescriptor(parent);\n\n\t\tself.prototype = objectCreate(parent, properties);\n\n\t\treturn self;\n\t}\n\n\tobjectDefineProperty(functionPrototype, 'extends', new ClassDescriptor(extend));\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tUNDEFINED,\n\tvalidatorIsObject,\n\tfunctionIterate\n*/\n\n//=require constants.js\n//=require validator/isObject.js\n//=require function/iterate.js\n\n/**\n * merge\n *\n * Merge two or more objects into the first one passed in\n *\n * @param {...object} object\n *\n * @return {object}\n */\nvar functionMerge = (function() {\n\tfunction mergeProperties(property, value) {\n\t\tvar targetProperty = this[property],\n\t\t\ttargetPropertyIsObject;\n\n\t\tif(value !== UNDEFINED) {\n\t\t\tif(validatorIsObject(value)) {\n\t\t\t\ttargetPropertyIsObject = validatorIsObject(targetProperty);\n\n\t\t\t\tif(value.length !== UNDEFINED) {\n\t\t\t\t\ttargetProperty = (targetPropertyIsObject && targetProperty.length !== UNDEFINED) ? targetProperty : [];\n\t\t\t\t} else {\n\t\t\t\t\ttargetProperty = (targetPropertyIsObject && targetProperty.length === UNDEFINED) ? targetProperty : {};\n\t\t\t\t}\n\n\t\t\t\tthis[property] = functionMerge(targetProperty, value);\n\t\t\t} else {\n\t\t\t\tthis[property] = value;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn function functionMerge() {\n\t\tvar target = arguments[0],\n\t\t\ti = 1, properties;\n\n\t\tfor(; (properties = arguments[i]) !== UNDEFINED; i++) {\n\t\t\tfunctionIterate(properties, mergeProperties, target);\n\t\t}\n\n\t\treturn target;\n\t};\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\nvar functionUuid = (function() {\n\tvar regex = new RegExp('[xy]', 'g'),\n\t\tstorage = {};\n\n\tfunction randomize(character) {\n\t\tvar r = Math.random() * 16 | 0;\n\n\t\treturn ((character === 'x') ? r : (r & 0x3 | 0x8)).toString(16);\n\t}\n\n\treturn function functionUuid() {\n\t\tvar uuid;\n\n\t\tdo {\n\t\t\tuuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(regex, randomize);\n\t\t} while(storage[uuid]);\n\n\t\tstorage[uuid] = 1;\n\n\t\treturn uuid;\n\t};\n}());","/**\n * Based on setAsap:\n * Repo: https://github.com/taylorhakes/setAsap\n * License: https://github.com/taylorhakes/setAsap/blob/master/LICENSE\n */\n\n/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tNULL, TRUE, FALSE,\n\tfunctionUuid\n*/\n\n//=require constants.js\n//=require shortcuts.js\n//=require function/uuid.js\n\n/**\n * defer\n *\n * delay function execution like setImmediate does\n *\n * @param {function} function\n */\nvar functionDefer = (function() {\n\tvar hasSetImmediate = 'setImmediate' in global,\n\t\telement, fallback;\n\n\tif('MutationObserver' in global) {\n\t\treturn function functionDefer(fn) {\n\t\t\telement = document.createElement('div');\n\n\t\t\tnew MutationObserver(function() { fn(); })\n\t\t\t\t.observe(element, { attributes: TRUE });\n\n\t\t\telement.setAttribute('i', '1');\n\t\t};\n\t}\n\n\tif(!hasSetImmediate && 'postMessage' in global && !('importScripts' in global) && 'addEventListener' in global) {\n\t\treturn (function() {\n\t\t\tfunction onMessage(event) {\n\t\t\t\tif(event.source === global && event.data && storage[event.data]) {\n\t\t\t\t\tstorage[event.data]();\n\n\t\t\t\t\tdelete storage[event.data];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tglobal.addEventListener('message', onMessage, FALSE);\n\n\t\t\treturn function functionDefer(fn) {\n\t\t\t\tvar uuid = functionUuid();\n\n\t\t\t\tstorage[uuid] = fn;\n\n\t\t\t\tglobal.postMessage(uuid, '*');\n\t\t\t};\n\t\t}());\n\t}\n\n\tif(!hasSetImmediate && 'onreadystatechange' in (element = document.createElement('script'))) {\n\t\treturn function functionDefer(fn) {\n\t\t\telement.onreadystatechange = function onreadystatechange() {\n\t\t\t\telement.onreadystatechange = NULL;\n\t\t\t\telement.parentNode.removeChild(element);\n\n\t\t\t\tfn();\n\t\t\t};\n\n\t\t\tdocument.body.appendChild(element);\n\t\t};\n\t}\n\n\t/* eslint-disable no-undef */\n\tfallback = hasSetImmediate ? setImmediate : setTimeout;\n\t/* eslint-enable no-undef */\n\n\treturn function functionDefer(fn) {\n\t\tfallback(fn);\n\t};\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tNULL, STRING_STRING, STRING_FUNCTION, EVENT_POST_CONFIGURE,\n\tvalidatorIsTypeOf,\n\tfunctionToArray\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n//=require function/toArray.js\n\nvar singletonEvent = (function() {\n\tvar TYPE_ON = 'on',\n\t\tTYPE_AFTER = 'after',\n\t\tregexMatchEvent = /^cache(Miss|Hit|Clear|Exceed)|queue(En|De)queue|(pre|post)(Resolve|Configure|Request|Process|Cache)$/,\n\t\tlistener = {};\n\n\tfunction addListener(type, events, callback) {\n\t\tvar event, pointer;\n\n\t\tif(validatorIsTypeOf(events, STRING_STRING) && validatorIsTypeOf(callback, STRING_FUNCTION)) {\n\t\t\tevents = events.split(' ');\n\n\t\t\twhile(event = events.shift()) {\n\t\t\t\tevent = event.split(':');\n\n\t\t\t\tif(regexMatchEvent.test(event[0])) {\n\t\t\t\t\t(listener[event[0]] || (listener[event[0]] = { on: [], after: [] }))[type].push({ callback: callback, filter: event[1] });\n\n\t\t\t\t\tif(type === TYPE_ON && event[0] === EVENT_POST_CONFIGURE && (pointer = settings.modules[event[1]])) {\n\t\t\t\t\t\tcallback(pointer);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction Event() {}\n\n\tEvent.prototype = {\n\t\temit: function (event, filter) {\n\t\t\tvar pointer = listener[event],\n\t\t\t\tparameter, i, item;\n\n\t\t\tif(pointer) {\n\t\t\t\tparameter = functionToArray(arguments, 2);\n\n\t\t\t\tfor(i = 0; (item = pointer[TYPE_ON][i]); i++) {\n\t\t\t\t\tif(!item.filter || item.filter === filter) {\n\t\t\t\t\t\titem.callback.apply(NULL, parameter);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor(i = 0; (item = pointer[TYPE_AFTER][i]); i++) {\n\t\t\t\t\tif(!item.filter || item.filter === filter) {\n\t\t\t\t\t\titem.callback.apply(NULL, parameter);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\t\ton: function(events, callback) {\n\t\t\taddListener(TYPE_ON, events,callback);\n\n\t\t\treturn this;\n\t\t},\n\t\tafter: function(events, callback) {\n\t\t\taddListener(TYPE_AFTER, events,callback);\n\n\t\t\treturn this;\n\t\t}\n\t};\n\n\treturn new Event();\n}());\n","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\nvar functionEscapeRegex = (function() {\n\tvar regexMatchRegex = /[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g;\n\n\treturn function functionEscapeRegex(value) {\n\t\treturn value.replace(regexMatchRegex, '\\\\$&');\n\t};\n}());","/* global \n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID, PROVIDE_ID, PATH_ID,\n\tfunctionEscapeRegex, functionResolveUrl\n*/\n\n//=require constants.js\n//=require function/escapeRegex.js\n//=require function/resolveUrl.js\n\nvar regexIsAbsoluteUri = /^(http(s?):)?\\/\\//i,\n\tregexIsAbsolutePath = /^\\//,\n\tregexMatchSourcemap = /((?:\\/\\/|\\/\\*)#)\\s*(sourceMappingURL)\\s*=\\s*(?!(?:http[s]?:)?\\/\\/)(.+?)\\.map(?:\\s+)?(\\*\\/)?/g,\n\tregexMatchBaseUrl = new RegExp('^' + functionEscapeRegex(functionResolveUrl('/'))),\n\tregexMatchInternal = new RegExp('^' + DEMAND_ID + '|' + PROVIDE_ID + '|' + PATH_ID + '$'),\n\tregexMatchParameter = /^(mock:)?([+-])?((?:[-\\w]+\\/?)+)?(?:@(.+?))?(?:#(\\d+))?!/;","/* global \n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID, FUNCTION_EMPTY, EVENT_POST_REQUEST, EVENT_POST_PROCESS, EVENT_CACHE_HIT, EVENT_CACHE_MISS, EVENT_CACHE_EXCEED, EVENT_CACHE_CLEAR, EVENT_PRE_CACHE, EVENT_PRE_CACHE, EVENT_POST_CACHE, STRING_STRING, NULL, FALSE, TRUE,\n\tvalidatorIsTypeOf,\n\tfunctionGetTimestamp, functionEscapeRegex, functionIterate, functionDefer, functionResolveId, functionToArray,\n\tClassDependency,\n\tsingletonEvent\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n//=require function/getTimestamp.js\n//=require function/escapeRegex.js\n//=require function/iterate.js\n//=require function/defer.js\n//=require function/resolveId.js\n//=require function/toArray.js\n//=require singleton/event.js\n\nvar singletonCache = (function() {\n\tvar STORAGE_PREFIX = '[' + DEMAND_ID + ']',\n\t\tSTORAGE_SUFFIX_STATE = '[state]',\n\t\tSTORAGE_SUFFIX_VALUE = '[value]',\n\t\tregexMatchState = new RegExp('^' + functionEscapeRegex(STORAGE_PREFIX) + '\\\\[(.+?)\\\\]' + functionEscapeRegex(STORAGE_SUFFIX_STATE) + '$'),\n\t\tregexMatchProperties = /^(.+?),(\\d+),(\\d*),(.+?),(\\d+)$/,\n\t\tsupportsLocalStorage = (function() { try { return 'localStorage' in global && global.localStorage; } catch(exception) { return FALSE; } }()),\n\t\tlocalStorage = supportsLocalStorage ? global.localStorage : NULL,\n\t\tsupportsRemainingSpace = supportsLocalStorage && 'remainingSpace' in localStorage,\n\t\tstorage = {},\n\t\tcache;\n\n\tsingletonEvent\n\t\t.on(EVENT_CACHE_MISS, function(dependency) {\n\t\t\tfunctionDefer(function() {\n\t\t\t\tcache.clear.path(dependency.id);\n\t\t\t});\n\t\t})\n\t\t.on(EVENT_CACHE_EXCEED, function(dependency) {\n\t\t\tdemand('-!/' + DEMAND_ID + '/cache/dispose').then(function(cacheDispose) {\n\t\t\t\tfunctionDefer(function() {\n\t\t\t\t\tcacheDispose(dependency.source.length);\n\n\t\t\t\t\tcache.set(dependency);\n\t\t\t\t});\n\t\t\t});\n\t\t})\n\t\t.on(EVENT_POST_REQUEST, function(dependency) {\n\t\t\tif(dependency.source && enabled(dependency)) {\n\t\t\t\tstorage[dependency.id] = TRUE;\n\t\t\t}\n\t\t})\n\t\t.after(EVENT_POST_PROCESS, function(dependency) {\n\t\t\tif(storage[dependency.id]) {\n\t\t\t\tfunctionDefer(function() {\n\t\t\t\t\tcache.set(dependency);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\tfunction enabled(dependency) {\n\t\tvar match;\n\n\t\tif(dependency.cache !== NULL) {\n\t\t\treturn dependency.cache;\n\t\t}\n\n\t\tfunctionIterate(settings.cache, function(property, value) {\n\t\t\tif(dependency.path.indexOf(property) === 0 && (!match || value.weight > match.weight)) {\n\t\t\t\tmatch = value;\n\t\t\t}\n\t\t});\n\n\t\treturn match ? match.state : FALSE;\n\t}\n\t\n\tfunction getKey(key) {\n\t\treturn localStorage.getItem(key);\n\t}\n\t\n\tfunction setKey(key, value) {\n\t\tlocalStorage[value ? 'setItem' : 'removeItem'](key, value);\n\t}\n\t\n\tfunction getState(key) {\n\t\tvar state = getKey(key),\n\t\t\tmatches;\n\n\t\tif(state && (matches = state.match(regexMatchProperties))) {\n\t\t\treturn functionToArray(matches, 1);\n\t\t}\n\t}\n\t\n\tfunction setState(key, state) {\n\t\tstate[4] = functionGetTimestamp();\n\n\t\tsetKey(key, state.join(','));\n\t}\n\n\tfunction emit(event, dependency, state) {\n\t\tsingletonEvent.emit(event, dependency.id, dependency, state);\n\t}\n\n\tfunction Cache() {\n\t\tfunctionDefer(this.clear.expired.bind(this.clear));\n\t}\n\n\tCache.prototype = {\n\t\tget: supportsLocalStorage ? function(dependency) {\n\t\t\t\t\t\t\t\t\t\t\tvar id, state;\n\n\t\t\t\t\t\t\t\t\t\t\tif(enabled(dependency)) {\n\t\t\t\t\t\t\t\t\t\t\t\tid = STORAGE_PREFIX + '[' + dependency.id + ']';\n\t\t\t\t\t\t\t\t\t\t\t\tstate = getState(id + STORAGE_SUFFIX_STATE);\n\n\t\t\t\t\t\t\t\t\t\t\t\tif(state && state[0] === dependency.version && ((!state[2] && !dependency.lifetime) || state[2] > functionGetTimestamp())) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdependency.source = getKey(id + STORAGE_SUFFIX_VALUE);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tfunctionDefer(function() {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetState(id + STORAGE_SUFFIX_STATE, state);\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn TRUE;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} : FUNCTION_EMPTY,\n\t\tresolve: supportsLocalStorage ? function(dependency) {\n\t\t\t\t\t\t\t\t\t\t\tvar self = this;\n\n\t\t\t\t\t\t\t\t\t\t\tif(self.get(dependency)) {\n\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_CACHE_HIT, dependency);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_CACHE_MISS, dependency);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} : function(dependency) { emit(EVENT_CACHE_MISS, dependency); },\n\t\tset: supportsLocalStorage ? function(dependency) {\n\t\t\t\t\t\t\t\t\t\t\tvar state, id, spaceBefore;\n\n\t\t\t\t\t\t\t\t\t\t\tif(enabled(dependency)) {\n\t\t\t\t\t\t\t\t\t\t\t\tstate = [ dependency.version, dependency.source.length, dependency.lifetime ? functionGetTimestamp() + dependency.lifetime : NULL, demand.version ];\n\t\t\t\t\t\t\t\t\t\t\t\tid = STORAGE_PREFIX + '[' + dependency.id + ']';\n\n\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_PRE_CACHE, dependency, state);\n\n\t\t\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\t\t\tspaceBefore = supportsRemainingSpace ? localStorage.remainingSpace : NULL;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetKey(id + STORAGE_SUFFIX_VALUE, dependency.source);\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetState(id + STORAGE_SUFFIX_STATE, state);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t// strict equality check with \"===\" is required due to spaceBefore might be \"0\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tif(spaceBefore !== NULL && localStorage.remainingSpace === spaceBefore) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthrow new Error();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_POST_CACHE, dependency, state);\n\t\t\t\t\t\t\t\t\t\t\t\t} catch(error) {\n\t\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_CACHE_EXCEED, dependency);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} : FUNCTION_EMPTY,\n\t\tclear: {\n\t\t\tpath: supportsLocalStorage ? function(path) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar id = functionResolveId(path),\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey = STORAGE_PREFIX + '[' + id + ']';\n\n\t\t\t\t\t\t\t\t\t\t\t\tif(getKey(key + STORAGE_SUFFIX_STATE)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetKey(key + STORAGE_SUFFIX_STATE);\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetKey(key + STORAGE_SUFFIX_VALUE);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_CACHE_CLEAR, ClassDependency.get(id) || new ClassDependency(id, NULL, FALSE));\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t} : FUNCTION_EMPTY,\n\t\t\tall: supportsLocalStorage ? function() {\n\t\t\t\t\t\t\t\t\t\t\t\tvar match;\n\n\t\t\t\t\t\t\t\t\t\t\t\tfunctionIterate(localStorage, function(property) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmatch = property.match(regexMatchState);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tmatch && this.path(match[1]);\n\t\t\t\t\t\t\t\t\t\t\t\t}, this);\n\t\t\t\t\t\t\t\t\t\t\t} : FUNCTION_EMPTY,\n\t\t\texpired: supportsLocalStorage ? function() {\n\t\t\t\t\t\t\t\t\t\t\t\tvar self = this,\n\t\t\t\t\t\t\t\t\t\t\t\t\tmatch, state;\n\n\t\t\t\t\t\t\t\t\t\t\t\tfunctionIterate(localStorage, function(property) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmatch = property.match(regexMatchState);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tif(match) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate = getState(STORAGE_PREFIX + '[' + match[1] + ']' + STORAGE_SUFFIX_STATE);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif(state && state[2] > 0 && state[2] <= functionGetTimestamp()) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tself.path(match[1]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}, this);\n\t\t\t\t\t\t\t\t\t\t\t} : FUNCTION_EMPTY\n\t\t}\n\t};\n\n\treturn (cache = new Cache());\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n \tFUNCTION_EMPTY, NULL,\n\tarrayPrototypeConcat,\n\tfunctionDefer, functionUuid, functionToArray,\n\tAbstractUuid\n*/\n\n//=require constants.js\n//=require shortcuts.js\n//=require function/defer.js\n//=require function/uuid.js\n//=require function/toArray.js\n//=require abstract/uuid.js\n\nvar ClassPledge = (function() {\n\tvar PLEDGE_PENDING = 'pending',\n\t\tPLEDGE_RESOLVED = 'resolved',\n\t\tPLEDGE_REJECTED = 'rejected',\n\t\tstorage = {};\n\n\tfunction resolve() {\n\t\tstorage[this.uuid].handle(PLEDGE_RESOLVED, arguments);\n\t}\n\n\tfunction reject() {\n\t\tstorage[this.uuid].handle(PLEDGE_REJECTED, arguments);\n\t}\n\n\tfunction handle(state, parameter) {\n\t\tvar properties = storage[this.uuid],\n\t\t\tpointer, result;\n\n\t\tif(properties.state === PLEDGE_PENDING) {\n\t\t\tproperties.state = state;\n\t\t\tproperties.value = parameter;\n\t\t}\n\n\t\twhile(pointer = properties[properties.state].shift()) {\n\t\t\tresult = pointer.handler.apply(NULL, properties.value);\n\n\t\t\tif(result && typeof result.then === 'function') {\n\t\t\t\tresult.then(pointer.dfd.resolve, pointer.dfd.reject);\n\t\t\t} else {\n\t\t\t\tpointer.dfd[properties.state === PLEDGE_RESOLVED ? 'resolve' : 'reject'].apply(NULL, properties.value);\n\t\t\t}\n\t\t}\n\n\t\tproperties[PLEDGE_RESOLVED].length = 0;\n\t\tproperties[PLEDGE_REJECTED].length = 0;\n\t}\n\n\tfunction observe(pledge, index, properties) {\n\t\tpledge.then(\n\t\t\tfunction() {\n\t\t\t\tproperties.resolved[index] = functionToArray(arguments);\n\n\t\t\t\tproperties.count++;\n\n\t\t\t\tcheck(properties);\n\t\t\t},\n\t\t\tfunction() {\n\t\t\t\tproperties.rejected.push(functionToArray(arguments));\n\n\t\t\t\tcheck(properties);\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction check(properties) {\n\t\tif(properties.count === properties.total) {\n\t\t\tproperties.dfd.resolve.apply(NULL, arrayPrototypeConcat.apply([], properties.resolved));\n\t\t} else if(properties.rejected.length + properties.count === properties.total) {\n\t\t\tproperties.dfd.reject.apply(NULL, arrayPrototypeConcat.apply([], properties.rejected));\n\t\t}\n\t}\n\n\tfunction ClassPledge(executor) {\n\t\tvar self = this.parent.constructor.call(this);\n\n\t\tstorage[self.uuid] = { state: PLEDGE_PENDING, handle: handle.bind(self), value: NULL, resolved: [], rejected: [], count: 0 };\n\n\t\texecutor(resolve.bind(self), reject.bind(self));\n\t}\n\n\tClassPledge.prototype = {\n\t\t'catch': function(listener) {\n\t\t\treturn this.then(FUNCTION_EMPTY, listener);\n\t\t},\n\t\talways: function(alwaysListener) {\n\t\t\treturn this.then(alwaysListener, alwaysListener);\n\t\t},\n\t\tthen: function(resolveListener, rejectListener) {\n\t\t\tvar properties = storage[this.uuid],\n\t\t\t\tdfd = ClassPledge.defer();\n\n\t\t\tresolveListener && properties[PLEDGE_RESOLVED].push({ handler: resolveListener, dfd: dfd });\n\t\t\trejectListener && properties[PLEDGE_REJECTED].push({ handler: rejectListener, dfd: dfd });\n\n\t\t\tif(properties.state !== PLEDGE_PENDING) {\n\t\t\t\tfunctionDefer(properties.handle);\n\t\t\t}\n\n\t\t\treturn dfd.pledge;\n\t\t},\n\t\tisPending: function() {\n\t\t\treturn storage[this.uuid].state === PLEDGE_PENDING;\n\t\t},\n\t\tisResolved: function() {\n\t\t\treturn storage[this.uuid].state === PLEDGE_RESOLVED;\n\t\t},\n\t\tisRejected: function() {\n\t\t\treturn storage[this.uuid].state === PLEDGE_REJECTED;\n\t\t}\n\t};\n\n\tClassPledge.defer = function() {\n\t\tvar self = {};\n\n\t\tself.pledge = new ClassPledge(function(resolveListener, rejectListener) {\n\t\t\tself.resolve = resolveListener;\n\t\t\tself.reject = rejectListener;\n\t\t});\n\n\t\treturn self;\n\t};\n\n\tClassPledge.all = function(pledges) {\n\t\tvar dfd = ClassPledge.defer(),\n\t\t\tproperties, i = 0, pledge;\n\t\t\n\t\tif(pledges.length) {\n\t\t\tproperties = (storage[functionUuid()] = { dfd: dfd, resolved: [], rejected: [], total: pledges.length, count: 0 })\n\t\t\t\n\t\t\tfor(; pledge = pledges[i]; i++) {\n\t\t\t\tobserve(pledge, i, properties)\n\t\t\t}\n\t\t} else {\n\t\t\tdfd.resolve();\n\t\t}\n\n\t\treturn dfd.pledge;\n\t};\n\n\tClassPledge.race = function(pledges) {\n\t\tvar dfd = ClassPledge.defer(),\n\t\t\ti = 0, pledge;\n\n\t\tfor(; pledge = pledges[i]; i++) {\n\t\t\tpledge.then(dfd.resolve, dfd.reject);\n\t\t}\n\t\t\n\t\tif(!pledges.length) {\n\t\t\tdfd.resolve();\n\t\t}\n\n\t\treturn dfd.pledge;\n\t};\n\n\treturn ClassPledge.extends(AbstractUuid);\n}());","/* global \n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID, MODULE_PREFIX_HANDLER, ERROR_LOAD, DEMAND_ID, PROVIDE_ID, PATH_ID, MOCK_PREFIX, NULL, TRUE, FALSE,\n\tobject,\n\tregexMatchInternal, regexMatchParameter,\n\tvalidatorIsPositive,\n\tfunctionResolvePath, functionResolveId, functionResolveUrl, functionIterate,\n\tClassRegistry, ClassPledge, ClassFailure,\n\tsingletonCache\n*/\n\n//=require constants.js\n//=require shortcuts.js\n//=require variables.js\n//=require validator/isPositive.js\n//=require function/resolvePath.js\n//=require function/resolveId.js\n//=require function/resolveUrl.js\n//=require function/iterate.js\n//=require class/registry.js\n//=require class/pledge.js\n//=require class/failure.js\n//=require singleton/cache.js\n\nvar ClassDependency = (function() {\n\tvar PREFIX_INTERNAL = 'internal!',\n\t\tregistry = new ClassRegistry(),\n\t\tplaceholder = [];\n\n\tfunction setProperty(property, value) {\n\t\tthis[property] = value;\n\t}\n\n\tfunction addPending(id, dependency) {\n\t\tif(dependency.pledge.isPending()) {\n\t\t\tthis.push(id);\n\t\t}\n\t}\n\n\tfunction addResolved(id, dependency) {\n\t\tif(dependency.pledge.isResolved()) {\n\t\t\tthis.push(id);\n\t\t}\n\t}\n\n\tfunction addRejected(id, dependency) {\n\t\tif(dependency.pledge.isRejected()) {\n\t\t\tthis.push(id);\n\t\t}\n\t}\n\n\tfunction ClassDependency(uri, context, register) {\n\t\tvar self = this,\n\t\t\tparameter = uri.match(regexMatchParameter) || placeholder;\n\n\t\tself.path = functionResolvePath(uri, context);\n\t\tself.mock = parameter[1] ? TRUE : FALSE;\n\t\tself.cache = parameter[2] ? parameter[1] === '+' : NULL;\n\t\tself.type = parameter[3] || settings.handler;\n\t\tself.version = parameter[4] || settings.version;\n\t\tself.lifetime = (parameter[5] && parameter[5] * 1000) || settings.lifetime;\n\t\tself.id = (self.mock ? MOCK_PREFIX : '' ) + self.type + '!' + self.path;\n\t\tself.uri = (self.mock ? MOCK_PREFIX : '' ) + self.type + '@' + self.version + (validatorIsPositive(self.lifetime) && self.lifetime > 0 ? '#' + self.lifetime : '' ) + '!' + self.path;\n\t\tself.dfd = ClassPledge.defer();\n\t\tself.pledge = self.dfd.pledge;\n\n\t\t(register !== FALSE) && registry.set(self.id, self);\n\n\t\treturn self;\n\t}\n\n\tClassDependency.prototype = {\n\t\tenqueue: true // handled by handler\n\t\t/* only for reference\n\t \tpath: NULL,\n\t \tmock: NULL,\n\t\tcache: NULL,\n\t\ttype: NULL,\n\t\tversion: NULL,\n\t\tlifetime: NULL,\n\t \tid: NULL,\n\t \turi: NULL,\n\t\tdfd: NULL,\n\t\tpledge: NULL,\n\t\thandler: NULL, // set by Dependency.resolve\n\t \tsource: NULL, // set by Cache or Loader\n\t \turl: NULL // optional, set by Loader\n\t\t*/\n\t};\n\n\tClassDependency.get = function(uri, context) {\n\t\treturn registry.get(functionResolveId(uri, context));\n\t};\n\n\tClassDependency.resolve = function(uri, context) {\n\t\tvar isInternal = context && regexMatchInternal.test(uri),\n\t\t\tdependency = isInternal ? this.get(PREFIX_INTERNAL + context + '/' + uri) : this.get(uri, context);\n\n\t\tif(!dependency) {\n\t\t\tif(isInternal) {\n\t\t\t\tdependency = new ClassDependency(PREFIX_INTERNAL + context + '/' + uri);\n\n\t\t\t\tswitch(uri) {\n\t\t\t\t\tcase DEMAND_ID:\n\t\t\t\t\t\tdependency.dfd.resolve((function() {\n\t\t\t\t\t\t\treturn functionIterate(demand, setProperty, demand.bind(context));\n\t\t\t\t\t\t}()));\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase PROVIDE_ID:\n\t\t\t\t\t\tdependency.dfd.resolve(provide.bind(context));\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase PATH_ID:\n\t\t\t\t\t\tdependency.dfd.resolve(context);\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdependency = new ClassDependency(uri, context);\n\n\t\t\t\tdemand(MODULE_PREFIX_HANDLER + dependency.type)\n\t\t\t\t\t.then(\n\t\t\t\t\t\tfunction(handler) {\n\t\t\t\t\t\t\tdependency.handler = handler;\n\n\t\t\t\t\t\t\tif(dependency.mock) {\n\t\t\t\t\t\t\t\tdependency.dfd.resolve(handler);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsingletonCache.resolve(dependency);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tdependency.dfd.reject(new ClassFailure(ERROR_LOAD + ' (handler)', self.id));\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t}\n\t\t}\n\n\t\treturn dependency;\n\t};\n\n\tClassDependency.remove = function(uri, context, cache) {\n\t\tvar id = functionResolveId(uri, context),\n\t\t\tnode = document.querySelector('[' + DEMAND_ID + '-id=\"' + id + '\"]');\n\n\t\tregistry.remove(id);\n\t\tregistry.remove(MOCK_PREFIX + id);\n\n\t\tnode && node.parentNode.removeChild(node);\n\n\t\t(cache !== FALSE) && singletonCache.clear.path(id);\n\t};\n\n\tClassDependency.list = {\n\t\tall: function() {\n\t\t\treturn object.keys(registry.get());\n\t\t},\n\t\tpending: function() {\n\t\t\treturn functionIterate(registry.get(), addPending, []);\n\t\t},\n\t\tresolved: function() {\n\t\t\treturn functionIterate(registry.get(), addResolved, []);\n\t\t},\n\t\trejected: function() {\n\t\t\treturn functionIterate(registry.get(), addRejected, []);\n\t\t}\n\t};\n\n\treturn ClassDependency;\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tfunctionResolveUrl, functionEscapeRegex, functionIterate\n*/\n\n//=require function/resolveUrl.js\n//=require function/escapeRegex.js\n//=require function/iterate.js\n\nvar ClassPattern = (function() {\n\tvar regexMatchTrailingSlash = /(.+)\\/$/;\n\n\tfunction setProperty(property, value) {\n\t\tthis[property] = {\n\t\t\turl: functionResolveUrl(value).replace(regexMatchTrailingSlash, '$1'),\n\t\t\tmatch: new RegExp('^' + functionEscapeRegex(value))\n\t\t};\n\t}\n\n\tfunction ClassPattern(pattern, url) {\n\t\tvar self = this;\n\n\t\tself.weight = pattern.length;\n\t\tself.match = new RegExp('^' + functionEscapeRegex(pattern));\n\t\tself.location = [].concat(url);\n\n\t\tfunctionIterate(self.location, setProperty, self.location);\n\t}\n\n\tClassPattern.prototype = {\n\t\t/* only for reference\n\t\t weight: 0,\n\t\t match: NULL,\n\t\t location: NULL,\n\t\t */\n\t\tmatches: function(path) {\n\t\t\treturn this.match.test(path);\n\t\t},\n\t\tprocess: function(path, index) {\n\t\t\tvar current = this.location[index];\n\n\t\t\tif(current) {\n\t\t\t\treturn path.replace(this.match, current.url);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn ClassPattern;\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tTRUE,\n\tregexMatchBaseUrl,\n\tClassPledge\n*/\n\n//=require constants.js\n//=require shortcuts.js\n//=require variables.js\n//=require class/pledge.js\n\nvar ClassXhr = (function(XMLHttpRequest) {\n\tvar XDomainRequest = 'XDomainRequest' in global && global.XDomainRequest || XMLHttpRequest;\n\t\n\tfunction checkState() {\n\t\tif(this.readyState < 4) {\n\t\t\tthis.abort();\n\t\t}\n\t}\n\t\n\treturn function ClassXhr(url) {\n\t\tvar dfd = ClassPledge.defer(),\n\t\t\txhr = regexMatchBaseUrl.test(url) ? new XMLHttpRequest() : new XDomainRequest(),\n\t\t\tboundCheckState = checkState.bind(xhr),\n\t\t\ttimeout = settings.timeout,\n\t\t\tpointer;\n\n\t\txhr.ontimeout = xhr.onerror = xhr.onabort = function() {\n\t\t\tdfd.reject(xhr.status);\n\t\t};\n\t\txhr.onprogress = xhr.onreadystatechange = function() {\n\t\t\tclearTimeout(pointer);\n\n\t\t\tpointer = setTimeout(boundCheckState, timeout);\n\t\t};\n\t\txhr.onload = function() {\n\t\t\tpointer = clearTimeout(pointer);\n\n\t\t\tif(!('status' in xhr) || xhr.status === 200) {\n\t\t\t\tdfd.resolve(xhr.responseText, xhr.getResponseHeader && xhr.getResponseHeader('content-type'));\n\t\t\t} else {\n\t\t\t\tdfd.reject(xhr.status);\n\t\t\t}\n\t\t};\n\n\t\txhr.open('GET', url, TRUE);\n\t\txhr.send();\n\t\t\n\t\tpointer = setTimeout(boundCheckState, timeout);\n\t\t\n\t\treturn dfd.pledge;\n\t};\n}(XMLHttpRequest));","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tSTRING_BOOLEAN, STRING_STRING, EVENT_PRE_RESOLVE, EVENT_POST_RESOLVE, EVENT_PRE_CONFIGURE, EVENT_POST_CONFIGURE, EVENT_CACHE_MISS, EVENT_CACHE_HIT, EVENT_PRE_REQUEST, EVENT_POST_REQUEST, EVENT_PRE_PROCESS, EVENT_POST_PROCESS, NULL, FALSE,\n\tvalidatorIsTypeOf, validatorIsObject, validatorIsPositive, validatorIsInstanceOf,\n\tfunctionIterate, functionMerge, functionDefer, functionToArray,\n\tClassPledge, ClassDependency, ClassPattern, ClassLoader, \n\tsingletonEvent, singletonCache\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n//=require validator/isObject.js\n//=require validator/isPositive.js\n//=require validator/isInstanceOf.js\n//=require function/iterate.js\n//=require function/merge.js\n//=require function/defer.js\n//=require function/toArray.js\n//=require singleton/event.js\n//=require singleton/cache.js\n//=require class/pledge.js\n//=require class/dependency.js\n//=require class/pattern.js\n//=require class/loader.js\n\nglobal.demand = (function() {\n\tfunction updateCacheSettings(property, value) {\n\t\tthis[property] = { weight: property.length, state: value };\n\t}\n\n\tfunction updatePatternSettings(property, value) {\n\t\tproperty !== 'base' && (this[property] = new ClassPattern(property, value));\n\t}\n\n\tfunction updateModuleSettings(property, value) {\n\t\tvar temp = this[property] = this[property] || {};\n\n\t\tsingletonEvent.emit(EVENT_PRE_CONFIGURE, property, temp);\n\n\t\tfunctionMerge(temp, value);\n\n\t\tsingletonEvent.emit(EVENT_POST_CONFIGURE, property, temp);\n\t}\n\n\tfunction demand() {\n\t\tvar dependencies = functionToArray(arguments),\n\t\t\tcontext = this !== global ? this : NULL,\n\t\t\ti = 0, uri, dfd, result;\n\t\t\n\t\tsingletonEvent.emit(EVENT_PRE_RESOLVE, NULL, dependencies, context);\n\t\t\n\t\tfor(; (uri = dependencies[i]); i++) {\n\t\t\tif(validatorIsTypeOf(uri, STRING_STRING)) {\n\t\t\t\tdependencies[i] = ClassDependency.resolve(uri, context).pledge;\n\t\t\t} else {\n\t\t\t\tdependencies[i] = (dfd = ClassPledge.defer()).pledge;\n\n\t\t\t\tdfd.resolve(uri);\n\t\t\t}\n\t\t}\n\t\t\n\t\tif(dependencies.length > 1) {\n\t\t\tresult = ClassPledge.all(dependencies);\n\t\t} else {\n\t\t\tresult = dependencies[0];\n\t\t}\n\t\t\n\t\treturn result.always(function() {\n\t\t\tsingletonEvent.emit(EVENT_POST_RESOLVE, NULL, dependencies, context);\n\t\t});\n\t}\n\n\tdemand.configure = function(options) {\n\t\tvar cache = options.cache,\n\t\t\tversion = options.version,\n\t\t\ttimeout = options.timeout,\n\t\t\tlifetime = options.lifetime,\n\t\t\tbase = options.base,\n\t\t\tpattern = options.pattern,\n\t\t\tmodules = options.modules,\n\t\t\tpointer = settings.modules;\n\n\t\tif(validatorIsTypeOf(cache, STRING_BOOLEAN)) {\n\t\t\tsettings.cache[''] = { weight: 0, state: cache };\n\t\t} else if(validatorIsObject(cache)) {\n\t\t\tfunctionIterate(cache, updateCacheSettings, settings.cache);\n\t\t}\n\n\t\tif(validatorIsTypeOf(version, STRING_STRING)) {\n\t\t\tsettings.version = version;\n\t\t}\n\n\t\tif(validatorIsPositive(timeout)) {\n\t\t\tsettings.timeout = Math.min(Math.max(timeout, 2), 12) * 1000;\n\t\t}\n\n\t\tif(validatorIsPositive(lifetime) && lifetime > 0) {\n\t\t\tsettings.lifetime = lifetime * 1000;\n\t\t}\n\n\t\tif(validatorIsTypeOf(base, STRING_STRING) && base !== '') {\n\t\t\tsettings.pattern.base = new ClassPattern('', base);\n\t\t}\n\n\t\tif(validatorIsObject(pattern)) {\n\t\t\tfunctionIterate(pattern, updatePatternSettings, settings.pattern);\n\t\t}\n\n\t\tif(validatorIsObject(modules)) {\n\t\t\tfunctionIterate(modules, updateModuleSettings, pointer);\n\t\t}\n\n\t\treturn demand;\n\t};\n\n\tdemand.version = '{{gulp:package.version}}';\n\tdemand.on = singletonEvent.on.bind(demand);\n\tdemand.remove = ClassDependency.remove;\n\tdemand.list = ClassDependency.list;\n\tdemand.clear = singletonCache.clear;\n\n\tsingletonEvent\n\t\t.after(EVENT_CACHE_MISS, function(dependency) {\n\t\t\tnew ClassLoader(dependency);\n\t\t})\n\t\t.after(EVENT_CACHE_HIT + ' ' + EVENT_POST_REQUEST, function(dependency) {\n\t\t\tsingletonEvent.emit(EVENT_PRE_PROCESS, dependency.id, dependency);\n\t\t})\n\t\t.after(EVENT_PRE_REQUEST, function(dependency) {\n\t\t\tvar pointer = dependency.handler.onPreRequest;\n\t\n\t\t\tpointer && pointer(dependency);\n\t\t})\n\t\t.after(EVENT_POST_REQUEST, function(dependency) {\n\t\t\tvar pointer = dependency.handler.onPostRequest;\n\t\n\t\t\tpointer && pointer(dependency);\n\t\t})\n\t\t.after(EVENT_PRE_PROCESS, function(dependency) {\n\t\t\tvar pointer = dependency.handler.onPreProcess;\n\t\t\t\n\t\t\tpointer && pointer(dependency);\n\t\t\t\n\t\t\tdependency.pledge.then(function() {\n\t\t\t\tsingletonEvent.emit(EVENT_POST_PROCESS, dependency.id, dependency);\n\t\t\t});\n\n\t\t\tif(dependency.enqueue === true) {\n\t\t\t\tqueue.enqueue(dependency);\n\t\t\t} else if(validatorIsInstanceOf(dependency.enqueue, ClassPledge)) {\n\t\t\t\tdependency.enqueue.then(function() { queue.enqueue(dependency); });\n\t\t\t}\n\t\t});\n\n\treturn demand;\n}());","/* global \n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tSTRING_STRING, STRING_UNDEFINED, STRING_FUNCTION, ERROR_PROVIDE, ERROR_PROVIDE_ANONYMOUS, NULL,\n\tvalidatorIsTypeOf, validatorIsArray,\n\tClassDependency, ClassFailure\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n//=require validator/isArray.js\n//=require class/dependency.js\n//=require class/failure.js\n\nglobal.provide = function provide() {\n\tvar uri = validatorIsTypeOf(arguments[0], STRING_STRING) ? arguments[0] : NULL,\n\t\tcontext = this !== global ? this : NULL,\n\t\tdependencies = validatorIsArray(arguments[uri ? 1 : 0]) ? arguments[uri ? 1 : 0] : NULL,\n\t\tdefinition = dependencies ? arguments[uri ? 2 : 1] : arguments[uri ? 1 : 0],\n\t\tmodule, isFunction;\n\n\tif(!uri && processor.current) {\n\t\tmodule = processor.current;\n\t\turi = module.uri;\n\n\t\tprocessor.process();\n\t}\n\t\n\tif(uri) {\n\t\tmodule = module || new ClassDependency(uri, context);\n\t\tisFunction = validatorIsTypeOf(definition, STRING_FUNCTION);\n\n\t\tif(dependencies) {\n\t\t\tdemand\n\t\t\t\t.apply(module.path, dependencies)\n\t\t\t\t.then(\n\t\t\t\t\tfunction() { module.dfd.resolve(isFunction ? definition.apply(NULL, arguments) : definition); },\n\t\t\t\t\tfunction() { module.dfd.reject(new ClassFailure(ERROR_PROVIDE, module.id, arguments)); }\n\t\t\t\t);\n\t\t} else {\n\t\t\tmodule.dfd.resolve(isFunction ? definition() : definition);\n\t\t}\n\t} else {\n\t\t/* eslint-disable no-console */\n\t\t!validatorIsTypeOf(console, STRING_UNDEFINED) && console.error(new ClassFailure(ERROR_PROVIDE_ANONYMOUS));\n\t\t/* eslint-enable no-console */\n\t}\n};","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tNULL\n*/\n\n//=require constants.js\n\nvar abstractHandler = (function() {\n\tfunction AbstractHandler() {\n\n\t}\n\n\tAbstractHandler.prototype = {\n\t\tvalidate: NULL,\n\t\tonPreRequest: NULL,\n\t\tonPostRequest: NULL,\n\t\tonPreProcess: NULL,\n\t\tprocess: NULL\n\t};\n\n\treturn new AbstractHandler();\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID, EVENT_PRE_REQUEST, EVENT_POST_REQUEST, TRUE,\n\tfunctionResolveSourcemaps,\n\tabstractHandler\n*/\n\n//=require constants.js\n//=require function/resolveSourcemaps.js\n//=require abstract/handler.js\n\nvar handlerModule = (function() {\n\tvar target = document.getElementsByTagName('head')[0],\n\t\tregexMatchType = /^(application|text)\\/(x-)?javascript/;\n\n\tfunction HandlerModule() {}\n\n\tHandlerModule.prototype = {\n\t\tvalidate: function(type) {\n\t\t\treturn regexMatchType.test(type);\n\t\t},\n\t\tonPreRequest: function(dependency) {\n\t\t\tvar url = dependency.url;\n\n\t\t\tdependency.url = url.slice(-3) !== '.js' ? url + '.js' : url;\n\t\t},\n\t\tonPostRequest: function(dependency) {\n\t\t\tdependency.source = functionResolveSourcemaps(dependency.url, dependency.source);\n\t\t},\n\t\tprocess: function(dependency) {\n\t\t\tvar script;\n\n\t\t\tif(dependency.source) {\n\t\t\t\tscript = document.createElement('script');\n\t\t\t\tscript.async = TRUE;\n\t\t\t\tscript.text = dependency.source;\n\n\t\t\t\tscript.setAttribute(DEMAND_ID + '-id', dependency.id);\n\n\t\t\t\ttarget.appendChild(script);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn new (HandlerModule.extends(abstractHandler));\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tMODULE_PREFIX_HANDLER, EVENT_POST_CONFIGURE, ERROR_RESOLVE, MOCK_PREFIX, STRING_STRING, FALSE, TRUE,\n\tregexMatchParameter, regexMatchSourcemap,\n\tvalidatorIsTypeOf, validatorIsObject,\n\tfunctionIterate, functionResolveId,\n\tabstractHandler,\n\tClassDependency, ClassPledge, ClassFailure,\n\thandlerModule\n*/\n\n//=require constants.js\n//=require variables.js\n//=require validator/isTypeOf.js\n//=require validator/isObject.js\n//=require function/iterate.js\n//=require function/resolveId.js\n//=require abstract/handler.js\n//=require class/dependency.js\n//=require class/pledge.js\n//=require class/Failure.js\n//=require handler/module.js\n\nvar handlerBundle = (function() {\n\tvar path = MODULE_PREFIX_HANDLER + 'bundle',\n\t\tsettings = {};\n\n\tdemand\n\t\t.on(EVENT_POST_CONFIGURE + ':' + path, function(options) {\n\t\t\tif(validatorIsObject(options)) {\n\t\t\t\tsettings = options;\n\n\t\t\t\tfunctionIterate(settings, updateDependencies);\n\t\t\t}\n\t\t});\n\n\tfunction updateDependencies(uri, dependencies) {\n\t\tvar i, dependency;\n\n\t\tfor(i = 0; (dependency = dependencies[i]); i++) {\n\t\t\tif(validatorIsTypeOf(dependency, STRING_STRING)) {\n\t\t\t\tdependencies[i] = functionResolveId(dependency);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction getType(dependencies) {\n\t\tvar type, i = 0, temp;\n\n\t\tfor(; (temp = dependencies[i]); i++) {\n\t\t\ttemp = temp.match(regexMatchParameter);\n\t\t\ttemp = (temp && temp[3]) || settings.handler;\n\n\t\t\tif(type) {\n\t\t\t\tif(temp !== type) {\n\t\t\t\t\treturn FALSE;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttype = temp;\n\t\t\t}\n\t\t}\n\n\t\treturn type;\n\t}\n\n\tfunction HandlerBundle() {}\n\n\tHandlerBundle.prototype = {\n\t\tvalidate: handlerModule.validate,\n\t\tonPreProcess: function(dependency) {\n\t\t\tvar source = dependency.source,\n\t\t\t\tdfd = dependency.dfd,\n\t\t\t\tdependencies = settings[dependency.path],\n\t\t\t\ttype, match, pledges, temp, i;\n\n\t\t\tdependency.enqueue = false;\n\n\t\t\tfunction reject() {\n\t\t\t\tdfd.reject(new ClassFailure(ERROR_RESOLVE, dependency.id, arguments));\n\t\t\t}\n\n\t\t\tif(dependencies && (type = getType(dependencies))) {\n\t\t\t\twhile(match = regexMatchSourcemap.exec(source)) {\n\t\t\t\t\tsource = source.replace(match[0], '');\n\t\t\t\t}\n\n\t\t\t\tdependency.source = source;\n\t\t\t\tpledges = [];\n\n\t\t\t\tfor(i = 0; (temp = dependencies[i]); i++) {\n\t\t\t\t\tpledges.push(ClassDependency.resolve(MOCK_PREFIX + temp).pledge);\n\t\t\t\t}\n\n\t\t\t\tClassPledge.all(pledges).then(\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tpledges.length = 0;\n\n\t\t\t\t\t\tfor(i = 0; (temp = dependencies[i]); i++) {\n\t\t\t\t\t\t\ttemp = dependencies[i] = ClassDependency.get(temp) || new ClassDependency(temp);\n\t\t\t\t\t\t\ttemp.handler = arguments[i];\n\n\t\t\t\t\t\t\tpledges.push(temp.pledge);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(type === 'module') {\n\t\t\t\t\t\t\tqueue.enqueue.apply(queue, dependencies);\n\t\t\t\t\t\t\thandlerModule.process(dependency);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\thandlerModule.process(dependency);\n\t\t\t\t\t\t\tqueue.enqueue.apply(queue, dependencies);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tClassPledge.all(pledges).then(dfd.resolve, reject);\n\t\t\t\t\t},\n\t\t\t\t\treject\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treject();\n\t\t\t}\n\t\t}\n\t};\n\n\treturn new (HandlerBundle.extends(abstractHandler));\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tMODULE_PREFIX_PLUGIN, MODULE_PREFIX_HANDLER, EVENT_POST_CONFIGURE, EVENT_PRE_RESOLVE, STRING_STRING, ERROR_RESOLVE, FALSE, TRUE,\n\tregexMatchInternal,\n\tvalidatorIsObject, validatorIsTypeOf,\n\tfunctionIterate, functionHash,\n\tClassDependency, ClassFailure,\n\tsingletonCache\n*/\n\n//=require constants.js\n//=require variables.js\n//=require validator/isTypeOf.js\n//=require validator/isObject.js\n//=require function/iterate.js\n//=require function/hash.js\n//=require class/dependency.js\n//=require class/failure.js\n//=require singleton/cache.js\n\nvar pluginGenie = (function() {\n\tvar path = MODULE_PREFIX_PLUGIN + 'genie',\n\t\tpattern = [];\n\n\tfunction matchPattern(path) {\n\t\tvar i = 0, pointer, match;\n\n\t\tfor(; (pointer = pattern[i]); i++) {\n\t\t\tif(path.indexOf(pointer.prefix) === 0 && (!match || pointer.weight > match.weight)) {\n\t\t\t\tmatch = pointer;\n\t\t\t}\n\t\t}\n\n\t\treturn match;\n\t}\n\n\tfunction generateConfiguration(bundle) {\n\t\tvar matches = bundle.matches,\n\t\t\tconfiguration = { pattern: {}, modules: { '/demand/handler/bundle': {} } },\n\t\t\ti = 0, pointer, dependency;\n\n\t\tconfiguration.pattern[bundle.id] = bundle.fn(matches);\n\t\tconfiguration.modules[MODULE_PREFIX_HANDLER + 'bundle'][bundle.id] = pointer = [];\n\n\t\tfor(; (dependency = matches[i]); i++) {\n\t\t\tpointer.push(dependency.path);\n\t\t}\n\n\t\treturn configuration;\n\t}\n\n\tfunction resolveDependencies() {\n\t\tvar i = 0, dependency;\n\n\t\tfor(; (dependency = this[i]); i++) {\n\t\t\tdependency.dfd.resolve(arguments[i]);\n\t\t}\n\t}\n\n\tfunction rejectDependencies() {\n\t\tvar i = 0, dependency;\n\n\t\tfor(; (dependency = this[i]); i++) {\n\t\t\tdependency.dfd.reject(new ClassFailure(ERROR_RESOLVE, dependency.id));\n\t\t}\n\t}\n\n\tfunction addPattern(property, value) {\n\t\tpattern.push({ prefix: property, weight: property.length, fn: value });\n\t}\n\n\tfunction resolveBundles(property, value) {\n\t\tvar matches = value.matches,\n\t\t\ti = 0, dependency;\n\n\t\tif(matches.length > 1) {\n\t\t\tvalue.id = path + '/' + functionHash(JSON.stringify(value.matches));\n\n\t\t\tfor(; (dependency = matches[i]); i++) {\n\t\t\t\tmatches[i] = new ClassDependency(dependency.uri);\n\t\t\t}\n\n\t\t\tdemand.configure(generateConfiguration(value));\n\t\t\tdemand('bundle!' + value.id)\n\t\t\t\t.then(\n\t\t\t\t\tresolveDependencies.bind(matches),\n\t\t\t\t\trejectDependencies.bind(matches)\n\t\t\t\t);\n\t\t}\n\t}\n\n\tdemand\n\t\t.on(EVENT_POST_CONFIGURE + ':' + path, function(options) {\n\t\t\tif(validatorIsObject(options)) {\n\t\t\t\tpattern.length = 0;\n\n\t\t\t\tfunctionIterate(options, addPattern);\n\t\t\t}\n\t\t})\n\t\t.on(EVENT_PRE_RESOLVE, function(dependencies, context) {\n\t\t\tvar bundles = {},\n\t\t\t\ti = 0, dependency, pattern;\n\n\t\t\tfor(; (dependency = dependencies[i]); i++) {\n\t\t\t\tif(validatorIsTypeOf(dependency, STRING_STRING) && !regexMatchInternal.test(dependency) && !ClassDependency.get(dependency, context)) {\n\t\t\t\t\tdependency = new ClassDependency(dependency, context, FALSE);\n\n\t\t\t\t\tif(dependency.type === 'module' && (pattern = matchPattern(dependency.path)) && !singletonCache.get(dependency)) {\n\t\t\t\t\t\t(bundles[pattern.prefix] || (bundles[pattern.prefix] = { fn: pattern.fn, matches: [] })).matches.push(dependency);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunctionIterate(bundles, resolveBundles);\n\t\t});\n\n\treturn TRUE;\n}());"]} \ No newline at end of file +{"version":3,"sources":["demand.js","class/descriptor.js","validator/isTypeOf.js","validator/isObject.js","validator/isPositive.js","validator/isInstanceOf.js","function/iterate.js","function/toArray.js","function/getTimestamp.js","function/resolveUrl.js","function/resolvePath.js","function/resolveId.js","abstract/uuid.js","class/registry.js","class/failure.js","class/loader.js","validator/isArray.js","function/hash.js","class/queue.js","class/processor.js","function/resolveSourcemaps.js","class/Failure.js","shortcuts.js","constants.js","inheritance.js","function/merge.js","function/uuid.js","function/defer.js","singleton/event.js","function/escapeRegex.js","variables.js","singleton/cache.js","class/pledge.js","class/dependency.js","class/pattern.js","class/xhr.js","function/demand.js","function/provide.js","abstract/handler.js","handler/module.js","handler/bundle.js","handler/component.js","plugin/genie.js"],"names":["global","document","options","setTimeout","clearTimeout","ClassDescriptor","value","writable","configurable","enumerable","__proto__","NULL","validatorIsTypeOf","object","type","validatorIsObject","STRING_OBJECT","validatorIsPositive","STRING_NUMBER","isFinite","Math","floor","validatorIsInstanceOf","module","functionIterate","source","callback","context","property","properties","keys","i","UNDEFINED","call","FALSE","functionToArray","arrayLikeObject","start","end","arrayPrototypeSlice","functionGetTimestamp","Date","functionResolveUrl","url","linkElement","href","functionResolvePath","uri","path","replace","regexMatchParameter","regexIsAbsolutePath","test","regexIsAbsoluteUri","regexMatchBaseUrl","functionResolveId","parameter","match","settings","handler","AbstractUuid","this","uuid","STRING_UNDEFINED","objectDefineProperty","functionUuid","ClassRegistry","parent","constructor","storage","ClassFailure","message","stack","ClassLoader","dependency","resolve","response","validate","dfd","reject","ERROR_LOAD","id","singletonEvent","emit","EVENT_POST_REQUEST","status","addUrlParam","param","query","search","regexCleanupSearch","load","location","pattern","process","EVENT_PRE_REQUEST","ClassXhr","DEMAND_ID","then","matches","weight","validatorIsArray","objectPrototypeToString","functionHash","input","length","charCodeAt","ClassQueue","ClassProcessor","queue","self","pointer","current","demand","on","EVENT_QUEUE_ENQUEUE","functionResolveSourcemaps","replacement","regexMatchSourcemap","exec","protocol","host","pathname","assignModule","provide","processor","version","cache","timeout","modules","arrayPrototype","Array","prototype","slice","arrayPrototypeConcat","concat","Object","objectPrototype","toString","objectCreate","create","defineProperty","objectGetOwnPropertyNames","getOwnPropertyNames","objectGetOwnPropertyDescriptor","getOwnPropertyDescriptor","functionPrototype","Function","createElement","PROVIDE_ID","PATH_ID","MODULE_PREFIX","MODULE_PREFIX_ABSTRACT","MODULE_PREFIX_HANDLER","MODULE_PREFIX_PLUGIN","MODULE_PREFIX_FUNCTION","MODULE_PREFIX_VALIDATOR","MOCK_PREFIX","undefined","TRUE","STRING_STRING","STRING_BOOLEAN","STRING_FUNCTION","FUNCTION_EMPTY","EVENT_PREFIX","EVENT_POSTFIX","EVENT_CONFIGURE","EVENT_PRE_CONFIGURE","EVENT_POST_CONFIGURE","EVENT_CACHE","EVENT_CACHE_MISS","EVENT_CACHE_HIT","EVENT_CACHE_CLEAR","EVENT_CACHE_EXCEED","EVENT_PRE_CACHE","EVENT_POST_CACHE","EVENT_RESOLVE","EVENT_PRE_RESOLVE","EVENT_POST_RESOLVE","EVENT_REQUEST","EVENT_PROCESS","EVENT_PRE_PROCESS","EVENT_POST_PROCESS","EVENT_QUEUE","EVENT_QUEUE_DEQUEUE","ERROR_PROVIDE","ERROR_RESOLVE","ERROR_PROVIDE_ANONYMOUS","extend","names","functionMerge","mergeProperties","targetPropertyIsObject","targetProperty","target","arguments","randomize","character","r","random","regex","RegExp","functionDefer","element","fallback","hasSetImmediate","fn","MutationObserver","observe","attributes","setAttribute","onMessage","event","data","addEventListener","postMessage","onreadystatechange","parentNode","removeChild","body","appendChild","setImmediate","addListener","events","split","shift","regexMatchEvent","listener","after","push","filter","TYPE_ON","Event","TYPE_AFTER","item","apply","functionEscapeRegex","regexMatchRegex","regexMatchInternal","singletonCache","enabled","indexOf","state","getKey","key","localStorage","getItem","setKey","getState","regexMatchProperties","setState","join","Cache","clear","expired","bind","STORAGE_PREFIX","STORAGE_SUFFIX_STATE","STORAGE_SUFFIX_VALUE","regexMatchState","supportsLocalStorage","exception","supportsRemainingSpace","cacheDispose","set","get","lifetime","spaceBefore","remainingSpace","Error","error","ClassDependency","all","ClassPledge","handle","PLEDGE_RESOLVED","PLEDGE_REJECTED","result","PLEDGE_PENDING","pledge","index","resolved","count","check","rejected","total","executor","catch","always","alwaysListener","resolveListener","rejectListener","defer","isPending","isResolved","isRejected","pledges","race","extends","remove","traverse","depth","indention","setProperty","addPending","addResolved","addRejected","register","placeholder","mock","registry","PREFIX_INTERNAL","enqueue","isInternal","node","querySelector","list","pending","ClassPattern","regexMatchTrailingSlash","XMLHttpRequest","checkState","readyState","abort","XDomainRequest","xhr","boundCheckState","ontimeout","onerror","onabort","onprogress","onload","responseText","getResponseHeader","open","send","updateCacheSettings","updatePatternSettings","updateModuleSettings","temp","dependencies","configure","base","min","max","onPreRequest","onPostRequest","onPreProcess","isFunction","definition","console","/demand","dequeue","abstractHandler","AbstractHandler","handlerModule","HandlerModule","getElementsByTagName","regexMatchType","script","async","text","handlerBundle","updateDependencies","getType","HandlerBundle","handlerComponent","HandlerComponent","container","innerHTML","firstElementChild","getAttribute","textContent","pluginGenie","matchPattern","prefix","generateConfiguration","bundle","configuration","/demand/handler/bundle","resolveDependencies","rejectDependencies","addPattern","resolveBundles","JSON","stringify","bundles","main"],"mappings":"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","file":"demand.js","sourcesContent":["/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tMODULE_PREFIX, MODULE_PREFIX_HANDLER, MODULE_PREFIX_VALIDATOR, MODULE_PREFIX_PLUGIN, MODULE_PREFIX_FUNCTION, MODULE_PREFIX_ABSTRACT, STRING_STRING, STRING_FUNCTION, TRUE,\n\tvalidatorIsTypeOf, validatorIsArray, validatorIsObject, validatorIsInstanceOf,\n\tfunctionResolveUrl, functionResolveSourcemaps, functionMerge, functionIterate, functionDefer, functionHash, functionUuid,\n\tAbstractUuid, abstractHandler,\n\tClassDependency, ClassQueue, ClassProcessor, ClassPledge, ClassXhr, ClassFailure, ClassDescriptor,\n\thandlerModule, handlerBundle, handlerComponent,\n \tpluginGenie\n*/\n\n/*eslint no-unused-vars: [2, { \"vars\": \"local\", \"args\": \"none\" }]*/\n(function(global, document, options, setTimeout, clearTimeout) {\n\t'use strict';\n\n\t/* eslint-disable no-unused-vars */\n\tvar settings = { version: '1.0.0', cache: {}, timeout: 8000, pattern: {}, modules: {}, handler: 'module' },\n\t\tstorage = {},\n\t\tqueue, processor;\n\t/* eslint-enable no-unused-vars */\n\n\t// include inheritance\n\t\t//=require inheritance.js\n\n\t// include main components\n\t\t//=require function/demand.js\n\t\t//=require function/provide.js\n\n\t// process initial configuration\n\t\tdemand.configure({ cache: TRUE, base: '/', pattern: { '/demand': functionResolveUrl(((options && options.url) || location.href) + '/../').slice(0, -1)} });\n\t\toptions && options.settings && demand.configure(options.settings);\n\n\t// include additional components\n\t\t//=require function/hash.js\n\t\t//=require class/queue.js\n\t\t//=require class/processor.js\n\t\t//=require handler/module.js\n\t\t//=require handler/bundle.js\n\t\t//=require handler/component.js\n\t\t//=require plugin/genie.js\n\n\t// initialize\n\t\tqueue = new ClassQueue();\n\t\tprocessor = new ClassProcessor(queue);\n\n\t\tfunction assignModule(id, module) {\n\t\t\tprovide(id, function() { return module; });\n\t\t}\n\n\t\tassignModule(MODULE_PREFIX_ABSTRACT + 'uuid', AbstractUuid);\n\t\tassignModule(MODULE_PREFIX_ABSTRACT + 'handler', abstractHandler);\n\t\tassignModule(MODULE_PREFIX_HANDLER + 'module', handlerModule);\n\t\tassignModule(MODULE_PREFIX_HANDLER + 'bundle', handlerBundle);\n\t\tassignModule(MODULE_PREFIX_HANDLER + 'component', handlerComponent);\n\t\tassignModule(MODULE_PREFIX_PLUGIN + 'genie', pluginGenie);\n\t\tassignModule(MODULE_PREFIX_VALIDATOR + 'isTypeOf', validatorIsTypeOf);\n\t\tassignModule(MODULE_PREFIX_VALIDATOR + 'isArray', validatorIsArray);\n\t\tassignModule(MODULE_PREFIX_VALIDATOR + 'isObject', validatorIsObject);\n\t\tassignModule(MODULE_PREFIX_VALIDATOR + 'isInstanceOf', validatorIsInstanceOf);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'resolveUrl', functionResolveUrl);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'resolveSourcemaps', functionResolveSourcemaps);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'merge', functionMerge);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'iterate', functionIterate);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'hash', functionHash);\n\t\tassignModule(MODULE_PREFIX_FUNCTION + 'defer', functionDefer);\n\t\tassignModule(MODULE_PREFIX + 'descriptor', ClassDescriptor);\n\t\tassignModule(MODULE_PREFIX + 'pledge', ClassPledge);\n\t\tassignModule(MODULE_PREFIX + 'queue', ClassQueue);\n\t\tassignModule(MODULE_PREFIX + 'xhr', ClassXhr);\n\t\tassignModule(MODULE_PREFIX + 'failure', ClassFailure);\n\n\t\tif(options && options.main) {\n\t\t\tswitch(typeof options.main) {\n\t\t\t\tcase STRING_STRING:\n\t\t\t\t\tdemand(options.main);\n\n\t\t\t\t\tbreak;\n\t\t\t\tcase STRING_FUNCTION:\n\t\t\t\t\tprovide('main', options.main());\n\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n}(this, document, 'demand' in this && demand, setTimeout, clearTimeout));","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tNULL\n*/\n\n//=require constants.js\n\nfunction ClassDescriptor(value, writable, configurable, enumerable) {\n\treturn {\n\t\t__proto__: NULL,\n\t\tvalue: value,\n\t\tenumerable: !!enumerable,\n\t\tconfigurable: !!configurable,\n\t\twritable: !!writable\n\t};\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\n/**\n * isTypeOf\n *\n * Check whether a given object is of specified type\n *\n * @param object\n * @param {string} type\n *\n * @return {boolean}\n */\n\nfunction validatorIsTypeOf(object, type) {\n\treturn typeof object === type;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tSTRING_OBJECT,\n\tvalidatorIsTypeOf\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n\n/**\n * isObject\n *\n * Check whether a given object is of type object\n *\n * @param object\n *\n * @return {boolean}\n */\n\nfunction validatorIsObject(object) {\n\treturn object && validatorIsTypeOf(object, STRING_OBJECT);\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tSTRING_NUMBER,\n\tvalidatorIsTypeOf\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n\n/**\n * isPositive\n *\n * Check whether a given value is a positive integer\n *\n * @param value\n *\n * @return {boolean}\n */\n\nfunction validatorIsPositive(value) {\n\treturn validatorIsTypeOf(value, STRING_NUMBER) && isFinite(value) && Math.floor(value) === value && value >= 0;\n}","/**\n * isInstanceOf\n *\n * Check whether a given object is an instance of specified type\n *\n * @param object\n * @param module\n *\n * @return {boolean}\n */\nfunction validatorIsInstanceOf(object, module) {\n\treturn object instanceof module;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tUNDEFINED, FALSE,\n\tobject\n*/\n\n//=require constants.js\n//=require shortcuts.js\n\n/**\n * iterate\n *\n * Iterate over enumerable & own properties of a given\n * object and pass current property as well as its value\n * to a callback function\n *\n * @param {object} object\n * @param {function} callback\n * @param context\n *\n * @return mixed\n */\n\nfunction functionIterate(source, callback, context) {\n\tvar properties = object.keys(source),\n\t\ti = 0, property;\n\n\tfor(; (property = properties[i]) !== UNDEFINED; i++) {\n\t\tif(callback.call(context, property, source[property]) === FALSE) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn context;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tarrayPrototypeSlice\n*/\n\n//=require shortcuts.js\n\nfunction functionToArray(arrayLikeObject, start, end) {\n\treturn arrayPrototypeSlice.call(arrayLikeObject, start, end);\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\nfunction functionGetTimestamp() {\n\treturn +new Date();\n}\n","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tlinkElement\n*/\n\n//=require shortcuts.js\n\nfunction functionResolveUrl(url) {\n\tlinkElement.href = url;\n\n\treturn linkElement.href;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tregexMatchParameter, regexMatchBaseUrl, regexIsAbsolutePath, regexIsAbsoluteUri,\n\tfunctionResolveUrl\n*/\n\n//=require variables.js\n//=require function/resolveUrl.js\n\nfunction functionResolvePath(uri, context) {\n\tvar path = uri.replace(regexMatchParameter, '');\n\n\tif(!regexIsAbsolutePath.test(path) && !regexIsAbsoluteUri.test(path)) {\n\t\tpath = '/' + functionResolveUrl(((context && functionResolveUrl(context + '/../')) || '/') + path).replace(regexMatchBaseUrl, '');\n\t}\n\n\treturn path;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tregexMatchParameter,\n\tfunctionResolvePath\n*/\n\n//=require variables.js\n//=require function/resolvePath.js\n\nfunction functionResolveId(uri, context) {\n\tvar parameter = uri.match(regexMatchParameter);\n\n\treturn ((parameter && parameter[1]) ? 'mock:' : '') + ((parameter && parameter[3]) || settings.handler) + '!' + functionResolvePath(uri, context);\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tSTRING_UNDEFINED,\n\tobjectDefineProperty,\n\tvalidatorIsTypeOf,\n\tfunctionUuid,\n\tClassDescriptor\n*/\n\n//=require constants.js\n//=require shortcuts.js\n//=require validator/isTypeOf.js\n//=require function/uuid.js\n//=require class/descriptor.js\n\nfunction AbstractUuid() {\n\tif(validatorIsTypeOf(this.uuid, STRING_UNDEFINED)) {\n\t\tobjectDefineProperty(this, 'uuid', new ClassDescriptor(functionUuid()));\n\t}\n\n\treturn this;\n}\n","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tAbstractUuid\n*/\n\n//=require abstract/uuid.js\n\nfunction ClassRegistry() {\n\tthis.parent.constructor.call(this);\n\n\tstorage[this.uuid] = {};\n\n\tglobal.storage = storage[this.uuid];\n}\n\nClassRegistry.prototype = {\n\tget: function(key) {\n\t\treturn key ? storage[this.uuid][key] : storage[this.uuid];\n\t},\n\tset: function(key, value) {\n\t\tstorage[this.uuid][key] = value;\n\t},\n\tremove: function(key) {\n\t\tdelete storage[this.uuid][key];\n\t}\n};\n\nClassRegistry.extends(AbstractUuid);","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID,\n\tfunctionToArray\n*/\n\n//=require constants.js\n//=require function/toArray.js\n\nfunction ClassFailure(message, module, stack) {\n\tthis.message = message;\n\t\t\n\tmodule && (this.module = module);\n\tstack && (this.stack = functionToArray(stack));\n}\n\t\nClassFailure.prototype = {\n\t/* only for reference\n\t message: NULL,\n\t module: NULL,\n\t stack: NULL,\n\t */\n\ttoString: function() {\n\t\tvar self = this,\n\t\t\tresult = DEMAND_ID + ': ' + self.message + ' ' + (self.module ? '\"' + self.module + '\"' : '');\n\n\t\tif(self.stack) {\n\t\t\tresult = ClassFailure.traverse(self.stack, result, 1);\n\t\t}\n\t\t\t\n\t\treturn result;\n\t}\n};\n\t\nClassFailure.traverse = function(stack, value, depth) {\n\tvar indention = new Array(depth + 1).join(' '),\n\t\ti = 0, item;\n\t\t\n\tfor(; item = stack[i]; i++) {\n\t\tvalue += '\\n' + indention + '> ' + item.message + ' ' + (item.module ? '\"' + item.module + '\"' : '');\n\t\t\t\n\t\tif(item.stack) {\n\t\t\tvalue = ClassFailure.traverse(item.stack, value, depth + 1);\n\t\t}\n\t}\n\t\t\n\treturn value;\n};","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID, EVENT_PRE_REQUEST, EVENT_POST_REQUEST, ERROR_LOAD,\n\tregexIsAbsoluteUri,\n\tlinkElement,\n\tfunctionIterate, functionResolveUrl,\n\tClassXhr, ClassFailure,\n\tsingletonEvent\n*/\n\n//=require constants.js\n//=require variables.js\n//=require shortcuts.js\n//=require function/resolveUrl.js\n//=require function/iterate.js\n//=require singleton/event.js\n//=require class/xhr.js\n//=require class/failure.js\n\nfunction ClassLoader(dependency) {\n\tvar regexCleanupSearch = /^\\?/,\n\t\tpattern;\n\n\tfunction resolve(response, type) {\n\t\tif(!type || !dependency.handler.validate || dependency.handler.validate(type)) {\n\t\t\tdependency.source = response;\n\n\t\t\tsingletonEvent.emit(EVENT_POST_REQUEST, dependency.type, dependency);\n\t\t} else {\n\t\t\tdependency.dfd.reject(new ClassFailure(ERROR_LOAD + ' (content-type)', dependency.id));\n\t\t}\n\t}\n\n\tfunction reject(status) {\n\t\tdependency.dfd.reject(new ClassFailure(ERROR_LOAD + (status ? ' (status)' : ''), dependency.id));\n\t}\n\t\n\tfunction addUrlParam(url, param, value) {\n\t\tvar query;\n\t\t\n\t\tlinkElement.href = url;\n\t\tlinkElement.search = (query = (linkElement.search || '').replace(regexCleanupSearch, '')) + (query ? '&' : '?') + param + '=' + value;\n\t\t\n\t\treturn linkElement.href;\n\t}\n\n\tfunction load(location) {\n\t\tlocation = location || 0;\n\t\tdependency.url = pattern ? functionResolveUrl(pattern.process(dependency.path, location)) : dependency.path;\n\n\t\tsingletonEvent.emit(EVENT_PRE_REQUEST, dependency.type, dependency);\n\n\t\tnew ClassXhr(addUrlParam(dependency.url, DEMAND_ID, +new Date())).then(\n\t\t\tresolve,\n\t\t\t(\n\t\t\t\tpattern ?\n\t\t\t\tfunction() {\n\t\t\t\t\tlocation++;\n\n\t\t\t\t\tif(pattern.location[location]) {\n\t\t\t\t\t\tload(location);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treject();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t:\n\t\t\t\treject\n\t\t\t)\n\t\t);\n\t}\n\n\tif(!regexIsAbsoluteUri.test(dependency.path)) {\n\t\tfunctionIterate(settings.pattern, function(property, value) {\n\t\t\tvalue.matches(dependency.path) && (!pattern || pattern.weight < value.weight) && (pattern = value);\n\t\t});\n\t}\n\n\tload();\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tobjectPrototypeToString\n*/\n\n//=require shortcuts.js\n\n/**\n * isArray\n *\n * Check whether a given value is of type array\n *\n * @param value\n *\n * @return {boolean}\n */\n\nfunction validatorIsArray(value) {\n\treturn objectPrototypeToString.call(value) === '[object Array]';\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\n/**\n * hash\n *\n * Generate a hash for a given string\n *\n * @param {string} input\n *\n * @return {number}\n */\nfunction functionHash(input){\n\tvar value = 5381,\n\t\ti = input.length;\n\n\twhile(i) {\n\t\tvalue = (value * 33) ^ input.charCodeAt(--i);\n\t}\n\n\treturn value >>> 0;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tEVENT_QUEUE_ENQUEUE, EVENT_QUEUE_DEQUEUE,\n\tfunctionToArray,\n\tsingletonEvent,\n\tAbstractUuid\n*/\n\n//=require constants.js\n//=require function/toArray.js\n//=require singleton/event.js\n//=require abstract/uuid.js\n\nfunction ClassQueue() {\n\tthis.parent.constructor.call(this);\n\n\tstorage[this.uuid] = [];\n}\n\t\nClassQueue.prototype = {\n\tenqueue: function() {\n\t\tstorage[this.uuid] = storage[this.uuid].concat(functionToArray(arguments));\n\n\t\tsingletonEvent.emit(EVENT_QUEUE_ENQUEUE, this.uuid);\n\t},\n\tdequeue: function() {\n\t\tsingletonEvent.emit(EVENT_QUEUE_DEQUEUE, this.uuid);\n\n\t\treturn storage[this.uuid].shift();\n\t},\n\tget current() {\n\t\treturn storage[this.uuid][0];\n\t},\n\tget length() {\n\t\treturn storage[this.uuid].length;\n\t}\n};\n\t\nClassQueue.extends(AbstractUuid);","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tEVENT_QUEUE_ENQUEUE, NULL,\n\tsingletonEvent,\n\tAbstractUuid\n*/\n\n//=require constants.js\n//=require abstract/uuid.js\n\nfunction ClassProcessor(queue) {\n\tvar self = this.parent.constructor.call(this),\n\t\tpointer = storage[self.uuid] = { queue: queue, current: NULL };\n\n\tdemand\n\t\t.on(EVENT_QUEUE_ENQUEUE + ':' + queue.uuid, function() {\n\t\t\t!pointer.current && self.process();\n\t\t});\n}\n\nClassProcessor.prototype = {\n\tprocess: function() {\n\t\tvar pointer = storage[this.uuid],\n\t\t\tcurrent;\n\n\t\tif(pointer.queue.length) {\n\t\t\tcurrent = pointer.current = pointer.queue.dequeue();\n\n\t\t\tcurrent.handler.process && current.handler.process(current);\n\t\t} else {\n\t\t\tpointer.current = NULL;\n\t\t}\n\t},\n\tget current() {\n\t\treturn storage[this.uuid].current;\n\t}\n};\n\t\nClassProcessor.extends(AbstractUuid);","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tregexMatchSourcemap, regexIsAbsoluteUri\n\tlinkElement\n*/\n\n//=require variables.js\n//=require shortcuts.js\n\nfunction functionResolveSourcemaps(url, source) {\n\tvar match, replacement;\n\t\n\twhile(match = regexMatchSourcemap.exec(source)) {\n\t\tlinkElement.href = url;\n\t\t\n\t\tif(regexIsAbsoluteUri.test(match[2])) {\n\t\t\treplacement = linkElement.protocol + '//' + linkElement.host + match[3];\n\t\t} else {\n\t\t\tlinkElement.pathname += '/../' + match[3];\n\t\t\t\n\t\t\treplacement = linkElement.protocol + '//' + linkElement.host + linkElement.pathname;\n\t\t}\n\t\t\n\t\tsource = source.replace(match[0], match[1] + ' ' + match[2] + '=' + replacement + '.map' + (match[4] ? ' ' + match[4] : ''));\n\t}\n\t\n\treturn source;\n}","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID,\n\tfunctionToArray\n*/\n\n//=require constants.js\n//=require function/toArray.js\n\nfunction ClassFailure(message, module, stack) {\n\tthis.message = message;\n\t\t\n\tmodule && (this.module = module);\n\tstack && (this.stack = functionToArray(stack));\n}\n\t\nClassFailure.prototype = {\n\t/* only for reference\n\t message: NULL,\n\t module: NULL,\n\t stack: NULL,\n\t */\n\ttoString: function() {\n\t\tvar self = this,\n\t\t\tresult = DEMAND_ID + ': ' + self.message + ' ' + (self.module ? '\"' + self.module + '\"' : '');\n\n\t\tif(self.stack) {\n\t\t\tresult = ClassFailure.traverse(self.stack, result, 1);\n\t\t}\n\t\t\t\n\t\treturn result;\n\t}\n};\n\t\nClassFailure.traverse = function(stack, value, depth) {\n\tvar indention = new Array(depth + 1).join(' '),\n\t\ti = 0, item;\n\t\t\n\tfor(; item = stack[i]; i++) {\n\t\tvalue += '\\n' + indention + '> ' + item.message + ' ' + (item.module ? '\"' + item.module + '\"' : '');\n\t\t\t\n\t\tif(item.stack) {\n\t\t\tvalue = ClassFailure.traverse(item.stack, value, depth + 1);\n\t\t}\n\t}\n\t\t\n\treturn value;\n};","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\nvar arrayPrototype = Array.prototype,\n\tarrayPrototypeSlice = arrayPrototype.slice,\n\tarrayPrototypeConcat = arrayPrototype.concat,\n\tobject = Object,\n\tobjectPrototype = object.prototype,\n\tobjectPrototypeToString = objectPrototype.toString,\n\tobjectCreate = object.create,\n\tobjectDefineProperty = object.defineProperty,\n\tobjectGetOwnPropertyNames = object.getOwnPropertyNames,\n\tobjectGetOwnPropertyDescriptor = object.getOwnPropertyDescriptor,\n\tfunctionPrototype = Function.prototype,\n\tlinkElement = document.createElement('a');","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\nvar DEMAND_ID = 'demand',\n\tPROVIDE_ID = 'provide',\n\tPATH_ID = 'path',\n\tMODULE_PREFIX = '/' + DEMAND_ID + '/',\n\tMODULE_PREFIX_ABSTRACT = MODULE_PREFIX + 'abstract/',\n\tMODULE_PREFIX_HANDLER = MODULE_PREFIX + 'handler/',\n\tMODULE_PREFIX_PLUGIN = MODULE_PREFIX + 'plugin/',\n\tMODULE_PREFIX_FUNCTION = MODULE_PREFIX + 'function/',\n\tMODULE_PREFIX_VALIDATOR = MODULE_PREFIX + 'validator/',\n\tMOCK_PREFIX = 'mock:',\n\tNULL = null,\n\tUNDEFINED = undefined,\n\tFALSE = false,\n\tTRUE = true,\n\tSTRING_UNDEFINED = 'undefined',\n\tSTRING_STRING = 'string',\n\tSTRING_BOOLEAN = 'boolean',\n\tSTRING_OBJECT = 'object',\n\tSTRING_FUNCTION = 'function',\n\tSTRING_NUMBER = 'number',\n\tFUNCTION_EMPTY = function() {},\n\tEVENT_PREFIX = 'pre',\n\tEVENT_POSTFIX = 'post',\n\tEVENT_CONFIGURE = 'Configure',\n\tEVENT_PRE_CONFIGURE = EVENT_PREFIX + EVENT_CONFIGURE,\n\tEVENT_POST_CONFIGURE = EVENT_POSTFIX + EVENT_CONFIGURE,\n\tEVENT_CACHE = 'cache',\n\tEVENT_CACHE_MISS = EVENT_CACHE + 'Miss',\n\tEVENT_CACHE_HIT = EVENT_CACHE + 'Hit',\n\tEVENT_CACHE_CLEAR = EVENT_CACHE + 'Clear',\n\tEVENT_CACHE_EXCEED = EVENT_CACHE + 'Exceed',\n\tEVENT_PRE_CACHE = EVENT_PREFIX + 'Cache',\n\tEVENT_POST_CACHE = EVENT_POSTFIX + 'Cache',\n\tEVENT_RESOLVE = 'Resolve',\n\tEVENT_PRE_RESOLVE = EVENT_PREFIX + EVENT_RESOLVE,\n\tEVENT_POST_RESOLVE = EVENT_POSTFIX + EVENT_RESOLVE,\n\tEVENT_REQUEST = 'Request',\n\tEVENT_PRE_REQUEST = EVENT_PREFIX + EVENT_REQUEST,\n\tEVENT_POST_REQUEST = EVENT_POSTFIX + EVENT_REQUEST,\n\tEVENT_PROCESS = 'Process',\n\tEVENT_PRE_PROCESS = EVENT_PREFIX + EVENT_PROCESS,\n\tEVENT_POST_PROCESS = EVENT_POSTFIX + EVENT_PROCESS,\n\tEVENT_QUEUE = 'queue',\n\tEVENT_QUEUE_ENQUEUE = EVENT_QUEUE + 'Enqueue',\n\tEVENT_QUEUE_DEQUEUE = EVENT_QUEUE + 'Dequeue',\n\tERROR_LOAD = 'error loading',\n\tERROR_PROVIDE = 'error providing',\n\tERROR_RESOLVE = 'error resolving',\n\tERROR_PROVIDE_ANONYMOUS = 'unspecified anonymous provide';","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tobjectCreate, objectDefineProperty, objectGetOwnPropertyNames, objectGetOwnPropertyDescriptor, functionPrototype,\n\tClassDescriptor\n*/\n\n//=require shortcuts.js\n//=require class/descriptor.js\n\n(function() {\n\tfunction extend(parent) {\n\t\tvar self = this,\n\t\t\tprototype = self.prototype,\n\t\t\tproperties = {},\n\t\t\tnames = objectGetOwnPropertyNames(prototype),\n\t\t\ti = 0, property;\n\n\t\tparent = parent.prototype || parent;\n\n\t\tfor(; (property = names[i]); i++) {\n\t\t\tproperties[property] = objectGetOwnPropertyDescriptor(prototype, property);\n\t\t}\n\n\t\tproperties.constructor = new ClassDescriptor(self);\n\t\tproperties.parent = new ClassDescriptor(parent);\n\n\t\tself.prototype = objectCreate(parent, properties);\n\n\t\treturn self;\n\t}\n\n\tobjectDefineProperty(functionPrototype, 'extends', new ClassDescriptor(extend));\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tUNDEFINED,\n\tvalidatorIsObject,\n\tfunctionIterate\n*/\n\n//=require constants.js\n//=require validator/isObject.js\n//=require function/iterate.js\n\n/**\n * merge\n *\n * Merge two or more objects into the first one passed in\n *\n * @param {...object} object\n *\n * @return {object}\n */\nvar functionMerge = (function() {\n\tfunction mergeProperties(property, value) {\n\t\tvar targetProperty = this[property],\n\t\t\ttargetPropertyIsObject;\n\n\t\tif(value !== UNDEFINED) {\n\t\t\tif(validatorIsObject(value)) {\n\t\t\t\ttargetPropertyIsObject = validatorIsObject(targetProperty);\n\n\t\t\t\tif(value.length !== UNDEFINED) {\n\t\t\t\t\ttargetProperty = (targetPropertyIsObject && targetProperty.length !== UNDEFINED) ? targetProperty : [];\n\t\t\t\t} else {\n\t\t\t\t\ttargetProperty = (targetPropertyIsObject && targetProperty.length === UNDEFINED) ? targetProperty : {};\n\t\t\t\t}\n\n\t\t\t\tthis[property] = functionMerge(targetProperty, value);\n\t\t\t} else {\n\t\t\t\tthis[property] = value;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn function functionMerge() {\n\t\tvar target = arguments[0],\n\t\t\ti = 1, properties;\n\n\t\tfor(; (properties = arguments[i]) !== UNDEFINED; i++) {\n\t\t\tfunctionIterate(properties, mergeProperties, target);\n\t\t}\n\n\t\treturn target;\n\t};\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\nvar functionUuid = (function() {\n\tvar regex = new RegExp('[xy]', 'g'),\n\t\tstorage = {};\n\n\tfunction randomize(character) {\n\t\tvar r = Math.random() * 16 | 0;\n\n\t\treturn ((character === 'x') ? r : (r & 0x3 | 0x8)).toString(16);\n\t}\n\n\treturn function functionUuid() {\n\t\tvar uuid;\n\n\t\tdo {\n\t\t\tuuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(regex, randomize);\n\t\t} while(storage[uuid]);\n\n\t\tstorage[uuid] = 1;\n\n\t\treturn uuid;\n\t};\n}());","/**\n * Based on setAsap:\n * Repo: https://github.com/taylorhakes/setAsap\n * License: https://github.com/taylorhakes/setAsap/blob/master/LICENSE\n */\n\n/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tNULL, TRUE, FALSE,\n\tfunctionUuid\n*/\n\n//=require constants.js\n//=require shortcuts.js\n//=require function/uuid.js\n\n/**\n * defer\n *\n * delay function execution like setImmediate does\n *\n * @param {function} function\n */\nvar functionDefer = (function() {\n\tvar hasSetImmediate = 'setImmediate' in global,\n\t\telement, fallback;\n\n\tif('MutationObserver' in global) {\n\t\treturn function functionDefer(fn) {\n\t\t\telement = document.createElement('div');\n\n\t\t\tnew MutationObserver(function() { fn(); })\n\t\t\t\t.observe(element, { attributes: TRUE });\n\n\t\t\telement.setAttribute('i', '1');\n\t\t};\n\t}\n\n\tif(!hasSetImmediate && 'postMessage' in global && !('importScripts' in global) && 'addEventListener' in global) {\n\t\treturn (function() {\n\t\t\tfunction onMessage(event) {\n\t\t\t\tif(event.source === global && event.data && storage[event.data]) {\n\t\t\t\t\tstorage[event.data]();\n\n\t\t\t\t\tdelete storage[event.data];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tglobal.addEventListener('message', onMessage, FALSE);\n\n\t\t\treturn function functionDefer(fn) {\n\t\t\t\tvar uuid = functionUuid();\n\n\t\t\t\tstorage[uuid] = fn;\n\n\t\t\t\tglobal.postMessage(uuid, '*');\n\t\t\t};\n\t\t}());\n\t}\n\n\tif(!hasSetImmediate && 'onreadystatechange' in (element = document.createElement('script'))) {\n\t\treturn function functionDefer(fn) {\n\t\t\telement.onreadystatechange = function onreadystatechange() {\n\t\t\t\telement.onreadystatechange = NULL;\n\t\t\t\telement.parentNode.removeChild(element);\n\n\t\t\t\tfn();\n\t\t\t};\n\n\t\t\tdocument.body.appendChild(element);\n\t\t};\n\t}\n\n\t/* eslint-disable no-undef */\n\tfallback = hasSetImmediate ? setImmediate : setTimeout;\n\t/* eslint-enable no-undef */\n\n\treturn function functionDefer(fn) {\n\t\tfallback(fn);\n\t};\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tNULL, STRING_STRING, STRING_FUNCTION, EVENT_POST_CONFIGURE,\n\tvalidatorIsTypeOf,\n\tfunctionToArray\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n//=require function/toArray.js\n\nvar singletonEvent = (function() {\n\tvar TYPE_ON = 'on',\n\t\tTYPE_AFTER = 'after',\n\t\tregexMatchEvent = /^cache(Miss|Hit|Clear|Exceed)|queue(En|De)queue|(pre|post)(Resolve|Configure|Request|Process|Cache)$/,\n\t\tlistener = {};\n\n\tfunction addListener(type, events, callback) {\n\t\tvar event, pointer;\n\n\t\tif(validatorIsTypeOf(events, STRING_STRING) && validatorIsTypeOf(callback, STRING_FUNCTION)) {\n\t\t\tevents = events.split(' ');\n\n\t\t\twhile(event = events.shift()) {\n\t\t\t\tevent = event.split(':');\n\n\t\t\t\tif(regexMatchEvent.test(event[0])) {\n\t\t\t\t\t(listener[event[0]] || (listener[event[0]] = { on: [], after: [] }))[type].push({ callback: callback, filter: event[1] });\n\n\t\t\t\t\tif(type === TYPE_ON && event[0] === EVENT_POST_CONFIGURE && (pointer = settings.modules[event[1]])) {\n\t\t\t\t\t\tcallback(pointer);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction Event() {}\n\n\tEvent.prototype = {\n\t\temit: function (event, filter) {\n\t\t\tvar pointer = listener[event],\n\t\t\t\tparameter, i, item;\n\n\t\t\tif(pointer) {\n\t\t\t\tparameter = functionToArray(arguments, 2);\n\n\t\t\t\tfor(i = 0; (item = pointer[TYPE_ON][i]); i++) {\n\t\t\t\t\tif(!item.filter || item.filter === filter) {\n\t\t\t\t\t\titem.callback.apply(NULL, parameter);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor(i = 0; (item = pointer[TYPE_AFTER][i]); i++) {\n\t\t\t\t\tif(!item.filter || item.filter === filter) {\n\t\t\t\t\t\titem.callback.apply(NULL, parameter);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\t\ton: function(events, callback) {\n\t\t\taddListener(TYPE_ON, events,callback);\n\n\t\t\treturn this;\n\t\t},\n\t\tafter: function(events, callback) {\n\t\t\taddListener(TYPE_AFTER, events,callback);\n\n\t\t\treturn this;\n\t\t}\n\t};\n\n\treturn new Event();\n}());\n","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage\n*/\n\nvar functionEscapeRegex = (function() {\n\tvar regexMatchRegex = /[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g;\n\n\treturn function functionEscapeRegex(value) {\n\t\treturn value.replace(regexMatchRegex, '\\\\$&');\n\t};\n}());","/* global \n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID, PROVIDE_ID, PATH_ID,\n\tfunctionEscapeRegex, functionResolveUrl\n*/\n\n//=require constants.js\n//=require function/escapeRegex.js\n//=require function/resolveUrl.js\n\nvar regexIsAbsoluteUri = /^(http(s?):)?\\/\\//i,\n\tregexIsAbsolutePath = /^\\//,\n\tregexMatchSourcemap = /((?:\\/\\/|\\/\\*)#)\\s*(sourceMappingURL)\\s*=\\s*(?!(?:http[s]?:)?\\/\\/)(.+?)\\.map(?:\\s+)?(\\*\\/)?/g,\n\tregexMatchBaseUrl = new RegExp('^' + functionEscapeRegex(functionResolveUrl('/'))),\n\tregexMatchInternal = new RegExp('^' + DEMAND_ID + '|' + PROVIDE_ID + '|' + PATH_ID + '$'),\n\tregexMatchParameter = /^(mock:)?([+-])?((?:[-\\w]+\\/?)+)?(?:@(.+?))?(?:#(\\d+))?!/;","/* global \n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID, FUNCTION_EMPTY, EVENT_POST_REQUEST, EVENT_POST_PROCESS, EVENT_CACHE_HIT, EVENT_CACHE_MISS, EVENT_CACHE_EXCEED, EVENT_CACHE_CLEAR, EVENT_PRE_CACHE, EVENT_PRE_CACHE, EVENT_POST_CACHE, STRING_STRING, NULL, FALSE, TRUE,\n\tvalidatorIsTypeOf,\n\tfunctionGetTimestamp, functionEscapeRegex, functionIterate, functionDefer, functionResolveId, functionToArray,\n\tClassDependency,\n\tsingletonEvent\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n//=require function/getTimestamp.js\n//=require function/escapeRegex.js\n//=require function/iterate.js\n//=require function/defer.js\n//=require function/resolveId.js\n//=require function/toArray.js\n//=require singleton/event.js\n\nvar singletonCache = (function() {\n\tvar STORAGE_PREFIX = '[' + DEMAND_ID + ']',\n\t\tSTORAGE_SUFFIX_STATE = '[state]',\n\t\tSTORAGE_SUFFIX_VALUE = '[value]',\n\t\tregexMatchState = new RegExp('^' + functionEscapeRegex(STORAGE_PREFIX) + '\\\\[(.+?)\\\\]' + functionEscapeRegex(STORAGE_SUFFIX_STATE) + '$'),\n\t\tregexMatchProperties = /^(.+?),(\\d+),(\\d*),(.+?),(\\d+)$/,\n\t\tsupportsLocalStorage = (function() { try { return 'localStorage' in global && global.localStorage; } catch(exception) { return FALSE; } }()),\n\t\tlocalStorage = supportsLocalStorage ? global.localStorage : NULL,\n\t\tsupportsRemainingSpace = supportsLocalStorage && 'remainingSpace' in localStorage,\n\t\tstorage = {},\n\t\tcache;\n\n\tsingletonEvent\n\t\t.on(EVENT_CACHE_MISS, function(dependency) {\n\t\t\tfunctionDefer(function() {\n\t\t\t\tcache.clear.path(dependency.id);\n\t\t\t});\n\t\t})\n\t\t.on(EVENT_CACHE_EXCEED, function(dependency) {\n\t\t\tdemand('-!/' + DEMAND_ID + '/cache/dispose').then(function(cacheDispose) {\n\t\t\t\tfunctionDefer(function() {\n\t\t\t\t\tcacheDispose(dependency.source.length);\n\n\t\t\t\t\tcache.set(dependency);\n\t\t\t\t});\n\t\t\t});\n\t\t})\n\t\t.on(EVENT_POST_REQUEST, function(dependency) {\n\t\t\tif(dependency.source && enabled(dependency)) {\n\t\t\t\tstorage[dependency.id] = TRUE;\n\t\t\t}\n\t\t})\n\t\t.after(EVENT_POST_PROCESS, function(dependency) {\n\t\t\tif(storage[dependency.id]) {\n\t\t\t\tfunctionDefer(function() {\n\t\t\t\t\tcache.set(dependency);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\tfunction enabled(dependency) {\n\t\tvar match;\n\n\t\tif(dependency.cache !== NULL) {\n\t\t\treturn dependency.cache;\n\t\t}\n\n\t\tfunctionIterate(settings.cache, function(property, value) {\n\t\t\tif(dependency.path.indexOf(property) === 0 && (!match || value.weight > match.weight)) {\n\t\t\t\tmatch = value;\n\t\t\t}\n\t\t});\n\n\t\treturn match ? match.state : FALSE;\n\t}\n\t\n\tfunction getKey(key) {\n\t\treturn localStorage.getItem(key);\n\t}\n\t\n\tfunction setKey(key, value) {\n\t\tlocalStorage[value ? 'setItem' : 'removeItem'](key, value);\n\t}\n\t\n\tfunction getState(key) {\n\t\tvar state = getKey(key),\n\t\t\tmatches;\n\n\t\tif(state && (matches = state.match(regexMatchProperties))) {\n\t\t\treturn functionToArray(matches, 1);\n\t\t}\n\t}\n\t\n\tfunction setState(key, state) {\n\t\tstate[4] = functionGetTimestamp();\n\n\t\tsetKey(key, state.join(','));\n\t}\n\n\tfunction emit(event, dependency, state) {\n\t\tsingletonEvent.emit(event, dependency.id, dependency, state);\n\t}\n\n\tfunction Cache() {\n\t\tfunctionDefer(this.clear.expired.bind(this.clear));\n\t}\n\n\tCache.prototype = {\n\t\tget: supportsLocalStorage ? function(dependency) {\n\t\t\t\t\t\t\t\t\t\t\tvar id, state;\n\n\t\t\t\t\t\t\t\t\t\t\tif(enabled(dependency)) {\n\t\t\t\t\t\t\t\t\t\t\t\tid = STORAGE_PREFIX + '[' + dependency.id + ']';\n\t\t\t\t\t\t\t\t\t\t\t\tstate = getState(id + STORAGE_SUFFIX_STATE);\n\n\t\t\t\t\t\t\t\t\t\t\t\tif(state && state[0] === dependency.version && ((!state[2] && !dependency.lifetime) || state[2] > functionGetTimestamp())) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdependency.source = getKey(id + STORAGE_SUFFIX_VALUE);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tfunctionDefer(function() {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetState(id + STORAGE_SUFFIX_STATE, state);\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn TRUE;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} : FUNCTION_EMPTY,\n\t\tresolve: supportsLocalStorage ? function(dependency) {\n\t\t\t\t\t\t\t\t\t\t\tvar self = this;\n\n\t\t\t\t\t\t\t\t\t\t\tif(self.get(dependency)) {\n\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_CACHE_HIT, dependency);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_CACHE_MISS, dependency);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} : function(dependency) { emit(EVENT_CACHE_MISS, dependency); },\n\t\tset: supportsLocalStorage ? function(dependency) {\n\t\t\t\t\t\t\t\t\t\t\tvar state, id, spaceBefore;\n\n\t\t\t\t\t\t\t\t\t\t\tif(enabled(dependency)) {\n\t\t\t\t\t\t\t\t\t\t\t\tstate = [ dependency.version, dependency.source.length, dependency.lifetime ? functionGetTimestamp() + dependency.lifetime : NULL, demand.version ];\n\t\t\t\t\t\t\t\t\t\t\t\tid = STORAGE_PREFIX + '[' + dependency.id + ']';\n\n\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_PRE_CACHE, dependency, state);\n\n\t\t\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\t\t\tspaceBefore = supportsRemainingSpace ? localStorage.remainingSpace : NULL;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetKey(id + STORAGE_SUFFIX_VALUE, dependency.source);\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetState(id + STORAGE_SUFFIX_STATE, state);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t// strict equality check with \"===\" is required due to spaceBefore might be \"0\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tif(spaceBefore !== NULL && localStorage.remainingSpace === spaceBefore) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthrow new Error();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_POST_CACHE, dependency, state);\n\t\t\t\t\t\t\t\t\t\t\t\t} catch(error) {\n\t\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_CACHE_EXCEED, dependency);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} : FUNCTION_EMPTY,\n\t\tclear: {\n\t\t\tpath: supportsLocalStorage ? function(path) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar id = functionResolveId(path),\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey = STORAGE_PREFIX + '[' + id + ']';\n\n\t\t\t\t\t\t\t\t\t\t\t\tif(getKey(key + STORAGE_SUFFIX_STATE)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetKey(key + STORAGE_SUFFIX_STATE);\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetKey(key + STORAGE_SUFFIX_VALUE);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\temit(EVENT_CACHE_CLEAR, ClassDependency.get(id) || new ClassDependency(id, NULL, FALSE));\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t} : FUNCTION_EMPTY,\n\t\t\tall: supportsLocalStorage ? function() {\n\t\t\t\t\t\t\t\t\t\t\t\tvar match;\n\n\t\t\t\t\t\t\t\t\t\t\t\tfunctionIterate(localStorage, function(property) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmatch = property.match(regexMatchState);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tmatch && this.path(match[1]);\n\t\t\t\t\t\t\t\t\t\t\t\t}, this);\n\t\t\t\t\t\t\t\t\t\t\t} : FUNCTION_EMPTY,\n\t\t\texpired: supportsLocalStorage ? function() {\n\t\t\t\t\t\t\t\t\t\t\t\tvar self = this,\n\t\t\t\t\t\t\t\t\t\t\t\t\tmatch, state;\n\n\t\t\t\t\t\t\t\t\t\t\t\tfunctionIterate(localStorage, function(property) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmatch = property.match(regexMatchState);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tif(match) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate = getState(STORAGE_PREFIX + '[' + match[1] + ']' + STORAGE_SUFFIX_STATE);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif(state && state[2] > 0 && state[2] <= functionGetTimestamp()) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tself.path(match[1]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}, this);\n\t\t\t\t\t\t\t\t\t\t\t} : FUNCTION_EMPTY\n\t\t}\n\t};\n\n\treturn (cache = new Cache());\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n \tFUNCTION_EMPTY, NULL,\n\tarrayPrototypeConcat,\n\tfunctionDefer, functionUuid, functionToArray,\n\tAbstractUuid\n*/\n\n//=require constants.js\n//=require shortcuts.js\n//=require function/defer.js\n//=require function/uuid.js\n//=require function/toArray.js\n//=require abstract/uuid.js\n\nvar ClassPledge = (function() {\n\tvar PLEDGE_PENDING = 'pending',\n\t\tPLEDGE_RESOLVED = 'resolved',\n\t\tPLEDGE_REJECTED = 'rejected',\n\t\tstorage = {};\n\n\tfunction resolve() {\n\t\tstorage[this.uuid].handle(PLEDGE_RESOLVED, arguments);\n\t}\n\n\tfunction reject() {\n\t\tstorage[this.uuid].handle(PLEDGE_REJECTED, arguments);\n\t}\n\n\tfunction handle(state, parameter) {\n\t\tvar properties = storage[this.uuid],\n\t\t\tpointer, result;\n\n\t\tif(properties.state === PLEDGE_PENDING) {\n\t\t\tproperties.state = state;\n\t\t\tproperties.value = parameter;\n\t\t}\n\n\t\twhile(pointer = properties[properties.state].shift()) {\n\t\t\tresult = pointer.handler.apply(NULL, properties.value);\n\n\t\t\tif(result && typeof result.then === 'function') {\n\t\t\t\tresult.then(pointer.dfd.resolve, pointer.dfd.reject);\n\t\t\t} else {\n\t\t\t\tpointer.dfd[properties.state === PLEDGE_RESOLVED ? 'resolve' : 'reject'].apply(NULL, properties.value);\n\t\t\t}\n\t\t}\n\n\t\tproperties[PLEDGE_RESOLVED].length = 0;\n\t\tproperties[PLEDGE_REJECTED].length = 0;\n\t}\n\n\tfunction observe(pledge, index, properties) {\n\t\tpledge.then(\n\t\t\tfunction() {\n\t\t\t\tproperties.resolved[index] = functionToArray(arguments);\n\n\t\t\t\tproperties.count++;\n\n\t\t\t\tcheck(properties);\n\t\t\t},\n\t\t\tfunction() {\n\t\t\t\tproperties.rejected.push(functionToArray(arguments));\n\n\t\t\t\tcheck(properties);\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction check(properties) {\n\t\tif(properties.count === properties.total) {\n\t\t\tproperties.dfd.resolve.apply(NULL, arrayPrototypeConcat.apply([], properties.resolved));\n\t\t} else if(properties.rejected.length + properties.count === properties.total) {\n\t\t\tproperties.dfd.reject.apply(NULL, arrayPrototypeConcat.apply([], properties.rejected));\n\t\t}\n\t}\n\n\tfunction ClassPledge(executor) {\n\t\tvar self = this.parent.constructor.call(this);\n\n\t\tstorage[self.uuid] = { state: PLEDGE_PENDING, handle: handle.bind(self), value: NULL, resolved: [], rejected: [], count: 0 };\n\n\t\texecutor(resolve.bind(self), reject.bind(self));\n\t}\n\n\tClassPledge.prototype = {\n\t\t'catch': function(listener) {\n\t\t\treturn this.then(FUNCTION_EMPTY, listener);\n\t\t},\n\t\talways: function(alwaysListener) {\n\t\t\treturn this.then(alwaysListener, alwaysListener);\n\t\t},\n\t\tthen: function(resolveListener, rejectListener) {\n\t\t\tvar properties = storage[this.uuid],\n\t\t\t\tdfd = ClassPledge.defer();\n\n\t\t\tresolveListener && properties[PLEDGE_RESOLVED].push({ handler: resolveListener, dfd: dfd });\n\t\t\trejectListener && properties[PLEDGE_REJECTED].push({ handler: rejectListener, dfd: dfd });\n\n\t\t\tif(properties.state !== PLEDGE_PENDING) {\n\t\t\t\tfunctionDefer(properties.handle);\n\t\t\t}\n\n\t\t\treturn dfd.pledge;\n\t\t},\n\t\tisPending: function() {\n\t\t\treturn storage[this.uuid].state === PLEDGE_PENDING;\n\t\t},\n\t\tisResolved: function() {\n\t\t\treturn storage[this.uuid].state === PLEDGE_RESOLVED;\n\t\t},\n\t\tisRejected: function() {\n\t\t\treturn storage[this.uuid].state === PLEDGE_REJECTED;\n\t\t}\n\t};\n\n\tClassPledge.defer = function() {\n\t\tvar self = {};\n\n\t\tself.pledge = new ClassPledge(function(resolveListener, rejectListener) {\n\t\t\tself.resolve = resolveListener;\n\t\t\tself.reject = rejectListener;\n\t\t});\n\n\t\treturn self;\n\t};\n\n\tClassPledge.all = function(pledges) {\n\t\tvar dfd = ClassPledge.defer(),\n\t\t\tproperties, i = 0, pledge;\n\t\t\n\t\tif(pledges.length) {\n\t\t\tproperties = (storage[functionUuid()] = { dfd: dfd, resolved: [], rejected: [], total: pledges.length, count: 0 })\n\t\t\t\n\t\t\tfor(; pledge = pledges[i]; i++) {\n\t\t\t\tobserve(pledge, i, properties)\n\t\t\t}\n\t\t} else {\n\t\t\tdfd.resolve();\n\t\t}\n\n\t\treturn dfd.pledge;\n\t};\n\n\tClassPledge.race = function(pledges) {\n\t\tvar dfd = ClassPledge.defer(),\n\t\t\ti = 0, pledge;\n\n\t\tfor(; pledge = pledges[i]; i++) {\n\t\t\tpledge.then(dfd.resolve, dfd.reject);\n\t\t}\n\t\t\n\t\tif(!pledges.length) {\n\t\t\tdfd.resolve();\n\t\t}\n\n\t\treturn dfd.pledge;\n\t};\n\n\treturn ClassPledge.extends(AbstractUuid);\n}());","/* global \n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID, MODULE_PREFIX_HANDLER, ERROR_LOAD, DEMAND_ID, PROVIDE_ID, PATH_ID, MOCK_PREFIX, NULL, TRUE, FALSE,\n\tobject,\n\tregexMatchInternal, regexMatchParameter,\n\tvalidatorIsPositive,\n\tfunctionResolvePath, functionResolveId, functionResolveUrl, functionIterate,\n\tClassRegistry, ClassPledge, ClassFailure,\n\tsingletonCache\n*/\n\n//=require constants.js\n//=require shortcuts.js\n//=require variables.js\n//=require validator/isPositive.js\n//=require function/resolvePath.js\n//=require function/resolveId.js\n//=require function/resolveUrl.js\n//=require function/iterate.js\n//=require class/registry.js\n//=require class/pledge.js\n//=require class/failure.js\n//=require singleton/cache.js\n\nvar ClassDependency = (function() {\n\tvar PREFIX_INTERNAL = 'internal!',\n\t\tregistry = new ClassRegistry(),\n\t\tplaceholder = [];\n\n\tfunction setProperty(property, value) {\n\t\tthis[property] = value;\n\t}\n\n\tfunction addPending(id, dependency) {\n\t\tif(dependency.pledge.isPending()) {\n\t\t\tthis.push(id);\n\t\t}\n\t}\n\n\tfunction addResolved(id, dependency) {\n\t\tif(dependency.pledge.isResolved()) {\n\t\t\tthis.push(id);\n\t\t}\n\t}\n\n\tfunction addRejected(id, dependency) {\n\t\tif(dependency.pledge.isRejected()) {\n\t\t\tthis.push(id);\n\t\t}\n\t}\n\n\tfunction ClassDependency(uri, context, register) {\n\t\tvar self = this,\n\t\t\tparameter = uri.match(regexMatchParameter) || placeholder;\n\n\t\tself.path = functionResolvePath(uri, context);\n\t\tself.mock = parameter[1] ? TRUE : FALSE;\n\t\tself.cache = parameter[2] ? parameter[1] === '+' : NULL;\n\t\tself.type = parameter[3] || settings.handler;\n\t\tself.version = parameter[4] || settings.version;\n\t\tself.lifetime = (parameter[5] && parameter[5] * 1000) || settings.lifetime;\n\t\tself.id = (self.mock ? MOCK_PREFIX : '' ) + self.type + '!' + self.path;\n\t\tself.uri = (self.mock ? MOCK_PREFIX : '' ) + self.type + '@' + self.version + (validatorIsPositive(self.lifetime) && self.lifetime > 0 ? '#' + self.lifetime : '' ) + '!' + self.path;\n\t\tself.dfd = ClassPledge.defer();\n\t\tself.pledge = self.dfd.pledge;\n\n\t\t(register !== FALSE) && registry.set(self.id, self);\n\n\t\treturn self;\n\t}\n\n\tClassDependency.prototype = {\n\t\tenqueue: true // handled by handler\n\t\t/* only for reference\n\t \tpath: NULL,\n\t \tmock: NULL,\n\t\tcache: NULL,\n\t\ttype: NULL,\n\t\tversion: NULL,\n\t\tlifetime: NULL,\n\t \tid: NULL,\n\t \turi: NULL,\n\t\tdfd: NULL,\n\t\tpledge: NULL,\n\t\tvalue: NULL, // set by provide\n\t\thandler: NULL, // set by Dependency.resolve\n\t \tsource: NULL, // set by Cache or Loader\n\t \turl: NULL // optional, set by Loader\n\t\t*/\n\t};\n\n\tClassDependency.get = function(uri, context) {\n\t\treturn registry.get(functionResolveId(uri, context));\n\t};\n\n\tClassDependency.resolve = function(uri, context) {\n\t\tvar isInternal = context && regexMatchInternal.test(uri),\n\t\t\tdependency = isInternal ? this.get(PREFIX_INTERNAL + context + '/' + uri) : this.get(uri, context),\n\t\t\tvalue;\n\n\t\tif(!dependency) {\n\t\t\tif(isInternal) {\n\t\t\t\tdependency = new ClassDependency(PREFIX_INTERNAL + context + '/' + uri);\n\n\t\t\t\tswitch(uri) {\n\t\t\t\t\tcase DEMAND_ID:\n\t\t\t\t\t\tvalue = (function() {\n\t\t\t\t\t\t\treturn functionIterate(demand, setProperty, demand.bind(context));\n\t\t\t\t\t\t}());\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase PROVIDE_ID:\n\t\t\t\t\t\tvalue = provide.bind(context);\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase PATH_ID:\n\t\t\t\t\t\tvalue = context;\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tdependency.dfd.resolve(value);\n\t\t\t} else {\n\t\t\t\tdependency = new ClassDependency(uri, context);\n\n\t\t\t\tdemand(MODULE_PREFIX_HANDLER + dependency.type)\n\t\t\t\t\t.then(\n\t\t\t\t\t\tfunction(handler) {\n\t\t\t\t\t\t\tdependency.handler = handler;\n\n\t\t\t\t\t\t\tif(dependency.mock) {\n\t\t\t\t\t\t\t\tdependency.dfd.resolve(handler);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsingletonCache.resolve(dependency);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tdependency.dfd.reject(new ClassFailure(ERROR_LOAD + ' (handler)', self.id));\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t}\n\t\t}\n\n\t\treturn dependency;\n\t};\n\n\tClassDependency.remove = function(uri, context, cache) {\n\t\tvar id = functionResolveId(uri, context),\n\t\t\tnode = document.querySelector('[' + DEMAND_ID + '-id=\"' + id + '\"]');\n\n\t\tregistry.remove(id);\n\t\tregistry.remove(MOCK_PREFIX + id);\n\n\t\tnode && node.parentNode.removeChild(node);\n\n\t\t(cache !== FALSE) && singletonCache.clear.path(id);\n\t};\n\n\tClassDependency.list = {\n\t\tall: function() {\n\t\t\treturn object.keys(registry.get());\n\t\t},\n\t\tpending: function() {\n\t\t\treturn functionIterate(registry.get(), addPending, []);\n\t\t},\n\t\tresolved: function() {\n\t\t\treturn functionIterate(registry.get(), addResolved, []);\n\t\t},\n\t\trejected: function() {\n\t\t\treturn functionIterate(registry.get(), addRejected, []);\n\t\t}\n\t};\n\n\treturn ClassDependency;\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tfunctionResolveUrl, functionEscapeRegex, functionIterate\n*/\n\n//=require function/resolveUrl.js\n//=require function/escapeRegex.js\n//=require function/iterate.js\n\nvar ClassPattern = (function() {\n\tvar regexMatchTrailingSlash = /(.+)\\/$/;\n\n\tfunction setProperty(property, value) {\n\t\tthis[property] = {\n\t\t\turl: functionResolveUrl(value).replace(regexMatchTrailingSlash, '$1'),\n\t\t\tmatch: new RegExp('^' + functionEscapeRegex(value))\n\t\t};\n\t}\n\n\tfunction ClassPattern(pattern, url) {\n\t\tvar self = this;\n\n\t\tself.weight = pattern.length;\n\t\tself.match = new RegExp('^' + functionEscapeRegex(pattern));\n\t\tself.location = [].concat(url);\n\n\t\tfunctionIterate(self.location, setProperty, self.location);\n\t}\n\n\tClassPattern.prototype = {\n\t\t/* only for reference\n\t\t weight: 0,\n\t\t match: NULL,\n\t\t location: NULL,\n\t\t */\n\t\tmatches: function(path) {\n\t\t\treturn this.match.test(path);\n\t\t},\n\t\tprocess: function(path, index) {\n\t\t\tvar current = this.location[index];\n\n\t\t\tif(current) {\n\t\t\t\treturn path.replace(this.match, current.url);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn ClassPattern;\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tTRUE,\n\tregexMatchBaseUrl,\n\tClassPledge\n*/\n\n//=require constants.js\n//=require shortcuts.js\n//=require variables.js\n//=require class/pledge.js\n\nvar ClassXhr = (function(XMLHttpRequest) {\n\tvar XDomainRequest = 'XDomainRequest' in global && global.XDomainRequest || XMLHttpRequest;\n\t\n\tfunction checkState() {\n\t\tif(this.readyState < 4) {\n\t\t\tthis.abort();\n\t\t}\n\t}\n\t\n\treturn function ClassXhr(url) {\n\t\tvar dfd = ClassPledge.defer(),\n\t\t\txhr = regexMatchBaseUrl.test(url) ? new XMLHttpRequest() : new XDomainRequest(),\n\t\t\tboundCheckState = checkState.bind(xhr),\n\t\t\ttimeout = settings.timeout,\n\t\t\tpointer;\n\n\t\txhr.ontimeout = xhr.onerror = xhr.onabort = function() {\n\t\t\tdfd.reject(xhr.status);\n\t\t};\n\t\txhr.onprogress = xhr.onreadystatechange = function() {\n\t\t\tclearTimeout(pointer);\n\n\t\t\tpointer = setTimeout(boundCheckState, timeout);\n\t\t};\n\t\txhr.onload = function() {\n\t\t\tpointer = clearTimeout(pointer);\n\n\t\t\tif(!('status' in xhr) || xhr.status === 200) {\n\t\t\t\tdfd.resolve(xhr.responseText, xhr.getResponseHeader && xhr.getResponseHeader('content-type'));\n\t\t\t} else {\n\t\t\t\tdfd.reject(xhr.status);\n\t\t\t}\n\t\t};\n\n\t\txhr.open('GET', url, TRUE);\n\t\txhr.send();\n\t\t\n\t\tpointer = setTimeout(boundCheckState, timeout);\n\t\t\n\t\treturn dfd.pledge;\n\t};\n}(XMLHttpRequest));","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tSTRING_BOOLEAN, STRING_STRING, EVENT_PRE_RESOLVE, EVENT_POST_RESOLVE, EVENT_PRE_CONFIGURE, EVENT_POST_CONFIGURE, EVENT_CACHE_MISS, EVENT_CACHE_HIT, EVENT_PRE_REQUEST, EVENT_POST_REQUEST, EVENT_PRE_PROCESS, EVENT_POST_PROCESS, NULL, FALSE,\n\tvalidatorIsTypeOf, validatorIsObject, validatorIsPositive, validatorIsInstanceOf,\n\tfunctionIterate, functionMerge, functionDefer, functionToArray,\n\tClassPledge, ClassDependency, ClassPattern, ClassLoader, \n\tsingletonEvent, singletonCache\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n//=require validator/isObject.js\n//=require validator/isPositive.js\n//=require validator/isInstanceOf.js\n//=require function/iterate.js\n//=require function/merge.js\n//=require function/defer.js\n//=require function/toArray.js\n//=require singleton/event.js\n//=require singleton/cache.js\n//=require class/pledge.js\n//=require class/dependency.js\n//=require class/pattern.js\n//=require class/loader.js\n\nglobal.demand = (function() {\n\tfunction updateCacheSettings(property, value) {\n\t\tthis[property] = { weight: property.length, state: value };\n\t}\n\n\tfunction updatePatternSettings(property, value) {\n\t\tproperty !== 'base' && (this[property] = new ClassPattern(property, value));\n\t}\n\n\tfunction updateModuleSettings(property, value) {\n\t\tvar temp = this[property] = this[property] || {};\n\n\t\tsingletonEvent.emit(EVENT_PRE_CONFIGURE, property, temp);\n\n\t\tfunctionMerge(temp, value);\n\n\t\tsingletonEvent.emit(EVENT_POST_CONFIGURE, property, temp);\n\t}\n\n\tfunction demand() {\n\t\tvar dependencies = functionToArray(arguments),\n\t\t\tcontext = this !== global ? this : NULL,\n\t\t\ti = 0, uri, dfd, result;\n\t\t\n\t\tsingletonEvent.emit(EVENT_PRE_RESOLVE, NULL, dependencies, context);\n\t\t\n\t\tfor(; (uri = dependencies[i]); i++) {\n\t\t\tif(validatorIsTypeOf(uri, STRING_STRING)) {\n\t\t\t\tdependencies[i] = ClassDependency.resolve(uri, context).pledge;\n\t\t\t} else {\n\t\t\t\tdependencies[i] = (dfd = ClassPledge.defer()).pledge;\n\n\t\t\t\tdfd.resolve(uri);\n\t\t\t}\n\t\t}\n\t\t\n\t\tif(dependencies.length > 1) {\n\t\t\tresult = ClassPledge.all(dependencies);\n\t\t} else {\n\t\t\tresult = dependencies[0];\n\t\t}\n\t\t\n\t\treturn result.always(function() {\n\t\t\tsingletonEvent.emit(EVENT_POST_RESOLVE, NULL, dependencies, context);\n\t\t});\n\t}\n\n\tdemand.configure = function(options) {\n\t\tvar cache = options.cache,\n\t\t\tversion = options.version,\n\t\t\ttimeout = options.timeout,\n\t\t\tlifetime = options.lifetime,\n\t\t\tbase = options.base,\n\t\t\tpattern = options.pattern,\n\t\t\tmodules = options.modules,\n\t\t\tpointer = settings.modules;\n\n\t\tif(validatorIsTypeOf(cache, STRING_BOOLEAN)) {\n\t\t\tsettings.cache[''] = { weight: 0, state: cache };\n\t\t} else if(validatorIsObject(cache)) {\n\t\t\tfunctionIterate(cache, updateCacheSettings, settings.cache);\n\t\t}\n\n\t\tif(validatorIsTypeOf(version, STRING_STRING)) {\n\t\t\tsettings.version = version;\n\t\t}\n\n\t\tif(validatorIsPositive(timeout)) {\n\t\t\tsettings.timeout = Math.min(Math.max(timeout, 2), 12) * 1000;\n\t\t}\n\n\t\tif(validatorIsPositive(lifetime) && lifetime > 0) {\n\t\t\tsettings.lifetime = lifetime * 1000;\n\t\t}\n\n\t\tif(validatorIsTypeOf(base, STRING_STRING) && base !== '') {\n\t\t\tsettings.pattern.base = new ClassPattern('', base);\n\t\t}\n\n\t\tif(validatorIsObject(pattern)) {\n\t\t\tfunctionIterate(pattern, updatePatternSettings, settings.pattern);\n\t\t}\n\n\t\tif(validatorIsObject(modules)) {\n\t\t\tfunctionIterate(modules, updateModuleSettings, pointer);\n\t\t}\n\n\t\treturn demand;\n\t};\n\n\tdemand.version = '{{gulp:package.version}}';\n\tdemand.on = singletonEvent.on.bind(demand);\n\tdemand.get = function(uri, context) { var dependency = ClassDependency.get(uri, context); return dependency && dependency.value; };\n\tdemand.remove = ClassDependency.remove;\n\tdemand.list = ClassDependency.list;\n\tdemand.clear = singletonCache.clear;\n\n\tsingletonEvent\n\t\t.after(EVENT_CACHE_MISS, function(dependency) {\n\t\t\tnew ClassLoader(dependency);\n\t\t})\n\t\t.after(EVENT_CACHE_HIT + ' ' + EVENT_POST_REQUEST, function(dependency) {\n\t\t\tsingletonEvent.emit(EVENT_PRE_PROCESS, dependency.id, dependency);\n\t\t})\n\t\t.after(EVENT_PRE_REQUEST, function(dependency) {\n\t\t\tvar pointer = dependency.handler.onPreRequest;\n\t\n\t\t\tpointer && pointer(dependency);\n\t\t})\n\t\t.after(EVENT_POST_REQUEST, function(dependency) {\n\t\t\tvar pointer = dependency.handler.onPostRequest;\n\t\n\t\t\tpointer && pointer(dependency);\n\t\t})\n\t\t.after(EVENT_PRE_PROCESS, function(dependency) {\n\t\t\tvar pointer = dependency.handler.onPreProcess;\n\t\t\t\n\t\t\tpointer && pointer(dependency);\n\t\t\t\n\t\t\tdependency.pledge.then(function() {\n\t\t\t\tsingletonEvent.emit(EVENT_POST_PROCESS, dependency.id, dependency);\n\t\t\t});\n\n\t\t\tif(dependency.enqueue === true) {\n\t\t\t\tqueue.enqueue(dependency);\n\t\t\t} else if(validatorIsInstanceOf(dependency.enqueue, ClassPledge)) {\n\t\t\t\tdependency.enqueue.then(function() { queue.enqueue(dependency); });\n\t\t\t}\n\t\t});\n\n\treturn demand;\n}());","/* global \n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tSTRING_STRING, STRING_UNDEFINED, STRING_FUNCTION, ERROR_PROVIDE, ERROR_PROVIDE_ANONYMOUS, NULL,\n\tvalidatorIsTypeOf, validatorIsArray,\n\tClassDependency, ClassFailure\n*/\n\n//=require constants.js\n//=require validator/isTypeOf.js\n//=require validator/isArray.js\n//=require class/dependency.js\n//=require class/failure.js\n\nglobal.provide = function provide() {\n\tvar uri = validatorIsTypeOf(arguments[0], STRING_STRING) ? arguments[0] : NULL,\n\t\tcontext = this !== global ? this : NULL,\n\t\tdependencies = validatorIsArray(arguments[uri ? 1 : 0]) ? arguments[uri ? 1 : 0] : NULL,\n\t\tdefinition = dependencies ? arguments[uri ? 2 : 1] : arguments[uri ? 1 : 0],\n\t\tmodule, isFunction;\n\n\tif(!uri && processor.current) {\n\t\tmodule = processor.current;\n\t\turi = module.uri;\n\n\t\tprocessor.process();\n\t}\n\t\n\tif(uri) {\n\t\tmodule = module || new ClassDependency(uri, context);\n\t\tisFunction = validatorIsTypeOf(definition, STRING_FUNCTION);\n\n\t\tif(dependencies) {\n\t\t\tdemand\n\t\t\t\t.apply(module.path, dependencies)\n\t\t\t\t.then(\n\t\t\t\t\tfunction() { module.dfd.resolve(isFunction ? definition.apply(NULL, arguments) : definition); },\n\t\t\t\t\tfunction() { module.dfd.reject(new ClassFailure(ERROR_PROVIDE, module.id, arguments)); }\n\t\t\t\t);\n\t\t} else {\n\t\t\tmodule.dfd.resolve(isFunction ? definition() : definition);\n\t\t}\n\n\t\tmodule.pledge.then(function(value) {\n\t\t\tmodule.value = value;\n\t\t});\n\t} else {\n\t\t/* eslint-disable no-console */\n\t\t!validatorIsTypeOf(console, STRING_UNDEFINED) && console.error(new ClassFailure(ERROR_PROVIDE_ANONYMOUS));\n\t\t/* eslint-enable no-console */\n\t}\n};","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tNULL\n*/\n\n//=require constants.js\n\nvar abstractHandler = (function() {\n\tfunction AbstractHandler() {\n\n\t}\n\n\tAbstractHandler.prototype = {\n\t\tvalidate: NULL,\n\t\tonPreRequest: NULL,\n\t\tonPostRequest: NULL,\n\t\tonPreProcess: NULL,\n\t\tprocess: NULL\n\t};\n\n\treturn new AbstractHandler();\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tDEMAND_ID, EVENT_PRE_REQUEST, EVENT_POST_REQUEST, TRUE,\n\tfunctionResolveSourcemaps,\n\tabstractHandler\n*/\n\n//=require constants.js\n//=require function/resolveSourcemaps.js\n//=require abstract/handler.js\n\nvar handlerModule = (function() {\n\tvar target = document.getElementsByTagName('head')[0],\n\t\tregexMatchType = /^(application|text)\\/(x-)?javascript/;\n\n\tfunction HandlerModule() {}\n\n\tHandlerModule.prototype = {\n\t\tvalidate: function(type) {\n\t\t\treturn regexMatchType.test(type);\n\t\t},\n\t\tonPreRequest: function(dependency) {\n\t\t\tvar url = dependency.url;\n\n\t\t\tdependency.url = url.slice(-3) !== '.js' ? url + '.js' : url;\n\t\t},\n\t\tonPostRequest: function(dependency) {\n\t\t\tdependency.source = functionResolveSourcemaps(dependency.url, dependency.source);\n\t\t},\n\t\tprocess: function(dependency) {\n\t\t\tvar script;\n\n\t\t\tif(dependency.source) {\n\t\t\t\tscript = document.createElement('script');\n\t\t\t\tscript.async = TRUE;\n\t\t\t\tscript.text = dependency.source;\n\n\t\t\t\tscript.setAttribute(DEMAND_ID + '-id', dependency.id);\n\n\t\t\t\ttarget.appendChild(script);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn new (HandlerModule.extends(abstractHandler));\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tMODULE_PREFIX_HANDLER, EVENT_POST_CONFIGURE, ERROR_RESOLVE, MOCK_PREFIX, STRING_STRING, FALSE, TRUE,\n\tregexMatchParameter, regexMatchSourcemap,\n\tvalidatorIsTypeOf, validatorIsObject,\n\tfunctionIterate, functionResolveId,\n\tabstractHandler,\n\tClassDependency, ClassPledge, ClassFailure,\n\thandlerModule\n*/\n\n//=require constants.js\n//=require variables.js\n//=require validator/isTypeOf.js\n//=require validator/isObject.js\n//=require function/iterate.js\n//=require function/resolveId.js\n//=require abstract/handler.js\n//=require class/dependency.js\n//=require class/pledge.js\n//=require class/Failure.js\n//=require handler/module.js\n\nvar handlerBundle = (function() {\n\tvar path = MODULE_PREFIX_HANDLER + 'bundle',\n\t\tsettings = {};\n\n\tdemand\n\t\t.on(EVENT_POST_CONFIGURE + ':' + path, function(options) {\n\t\t\tif(validatorIsObject(options)) {\n\t\t\t\tsettings = options;\n\n\t\t\t\tfunctionIterate(settings, updateDependencies);\n\t\t\t}\n\t\t});\n\n\tfunction updateDependencies(uri, dependencies) {\n\t\tvar i, dependency;\n\n\t\tfor(i = 0; (dependency = dependencies[i]); i++) {\n\t\t\tif(validatorIsTypeOf(dependency, STRING_STRING)) {\n\t\t\t\tdependencies[i] = functionResolveId(dependency);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction getType(dependencies) {\n\t\tvar type, i = 0, temp;\n\n\t\tfor(; (temp = dependencies[i]); i++) {\n\t\t\ttemp = temp.match(regexMatchParameter);\n\t\t\ttemp = (temp && temp[3]) || settings.handler;\n\n\t\t\tif(type) {\n\t\t\t\tif(temp !== type) {\n\t\t\t\t\treturn FALSE;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttype = temp;\n\t\t\t}\n\t\t}\n\n\t\treturn type;\n\t}\n\n\tfunction HandlerBundle() {}\n\n\tHandlerBundle.prototype = {\n\t\tvalidate: handlerModule.validate,\n\t\tonPreProcess: function(dependency) {\n\t\t\tvar source = dependency.source,\n\t\t\t\tdfd = dependency.dfd,\n\t\t\t\tdependencies = settings[dependency.path],\n\t\t\t\ttype, match, pledges, temp, i;\n\n\t\t\tdependency.enqueue = FALSE;\n\n\t\t\tfunction reject() {\n\t\t\t\tdfd.reject(new ClassFailure(ERROR_RESOLVE, dependency.id, arguments));\n\t\t\t}\n\n\t\t\tif(dependencies && (type = getType(dependencies))) {\n\t\t\t\twhile(match = regexMatchSourcemap.exec(source)) {\n\t\t\t\t\tsource = source.replace(match[0], '');\n\t\t\t\t}\n\n\t\t\t\tdependency.source = source;\n\t\t\t\tpledges = [];\n\n\t\t\t\tfor(i = 0; (temp = dependencies[i]); i++) {\n\t\t\t\t\tpledges.push(ClassDependency.resolve(MOCK_PREFIX + temp).pledge);\n\t\t\t\t}\n\n\t\t\t\tClassPledge.all(pledges).then(\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tpledges.length = 0;\n\n\t\t\t\t\t\tfor(i = 0; (temp = dependencies[i]); i++) {\n\t\t\t\t\t\t\ttemp = dependencies[i] = ClassDependency.get(temp) || new ClassDependency(temp);\n\t\t\t\t\t\t\ttemp.handler = arguments[i];\n\n\t\t\t\t\t\t\tpledges.push(temp.pledge);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(type === 'module') {\n\t\t\t\t\t\t\tqueue.enqueue.apply(queue, dependencies);\n\t\t\t\t\t\t\thandlerModule.process(dependency);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\thandlerModule.process(dependency);\n\t\t\t\t\t\t\tqueue.enqueue.apply(queue, dependencies);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tClassPledge.all(pledges).then(dfd.resolve, reject);\n\t\t\t\t\t},\n\t\t\t\t\treject\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treject();\n\t\t\t}\n\t\t}\n\t};\n\n\treturn new (HandlerBundle.extends(abstractHandler));\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tFALSE, EVENT_POST_REQUEST, ERROR_RESOLVE,\n\tabstractHandler,\n\tClassDependency, ClassPledge, ClassFailure\n*/\n\n//=require constants.js\n//=require abstract/handler.js\n//=require class/dependency.js\n//=require class/pledge.js\n//=require class/Failure.js\n\nvar handlerComponent = (function() {\n\tvar regexMatchType = /^text\\/.+$/;\n\n\tfunction HandlerComponent() {}\n\n\tHandlerComponent.prototype = {\n\t\tvalidate: function(type) {\n\t\t\treturn regexMatchType.test(type);\n\t\t},\n\t\tonPreRequest: function(dependency) {\n\t\t\tvar url = dependency.url;\n\n\t\t\tdependency.url = url.slice(-5) !== '.html' ? url + '.html' : url;\n\t\t},\n\t\tonPreProcess: function(dependency) {\n\t\t\tvar context = dependency.path,\n\t\t\t\tdfd = dependency.dfd,\n\t\t\t\tcontainer = document.createElement('body'),\n\t\t\t\tmodules = [],\n\t\t\t\tpledges = [],\n\t\t\t\tnode, handler, path, uri;\n\n\t\t\tdependency.enqueue = FALSE;\n\t\t\tcontainer.innerHTML = dependency.source;\n\n\t\t\tfunction reject() {\n\t\t\t\tdfd.reject(new ClassFailure(ERROR_RESOLVE, dependency.id, arguments));\n\t\t\t}\n\n\t\t\twhile(node = container.firstElementChild) {\n\t\t\t\tif(handler = node.getAttribute('type')) {\n\t\t\t\t\tpath = node.getAttribute('path');\n\t\t\t\t\turi = handler + '!' + context + (path ? '/' + path : '');\n\n\t\t\t\t\tnode.parentNode.removeChild(node);\n\t\t\t\t\tmodules.push({ source: node.textContent, uri: uri });\n\t\t\t\t\tpledges.push(ClassDependency.resolve('mock:' + uri).pledge);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tClassPledge.all(pledges).then(\n\t\t\t\tfunction() {\n\t\t\t\t\tvar i = 0, module, dependency;\n\n\t\t\t\t\tpledges.length = 0;\n\n\t\t\t\t\tfor(; (module = modules[i]); i++) {\n\t\t\t\t\t\tdependency = ClassDependency.get(module.uri) || new ClassDependency(module.uri);\n\t\t\t\t\t\tdependency.source = module.source;\n\t\t\t\t\t\tdependency.handler = arguments[i];\n\n\t\t\t\t\t\tpledges.push(dependency.pledge);\n\n\t\t\t\t\t\tqueue.enqueue(dependency);\n\t\t\t\t\t}\n\n\t\t\t\t\tClassPledge.all(pledges).then(dfd.resolve, reject);\n\t\t\t\t},\n\t\t\t\treject\n\t\t\t);\n\t\t}\n\t};\n\n\treturn new (HandlerComponent.extends(abstractHandler));\n}());","/* global\n\tglobal, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage,\n\tMODULE_PREFIX_PLUGIN, MODULE_PREFIX_HANDLER, EVENT_POST_CONFIGURE, EVENT_PRE_RESOLVE, STRING_STRING, ERROR_RESOLVE, FALSE, TRUE,\n\tregexMatchInternal,\n\tvalidatorIsObject, validatorIsTypeOf,\n\tfunctionIterate, functionHash,\n\tClassDependency, ClassFailure,\n\tsingletonCache\n*/\n\n//=require constants.js\n//=require variables.js\n//=require validator/isTypeOf.js\n//=require validator/isObject.js\n//=require function/iterate.js\n//=require function/hash.js\n//=require class/dependency.js\n//=require class/failure.js\n//=require singleton/cache.js\n\nvar pluginGenie = (function() {\n\tvar path = MODULE_PREFIX_PLUGIN + 'genie',\n\t\tpattern = [];\n\n\tfunction matchPattern(path) {\n\t\tvar i = 0, pointer, match;\n\n\t\tfor(; (pointer = pattern[i]); i++) {\n\t\t\tif(path.indexOf(pointer.prefix) === 0 && (!match || pointer.weight > match.weight)) {\n\t\t\t\tmatch = pointer;\n\t\t\t}\n\t\t}\n\n\t\treturn match;\n\t}\n\n\tfunction generateConfiguration(bundle) {\n\t\tvar matches = bundle.matches,\n\t\t\tconfiguration = { pattern: {}, modules: { '/demand/handler/bundle': {} } },\n\t\t\ti = 0, pointer, dependency;\n\n\t\tconfiguration.pattern[bundle.id] = bundle.fn(matches);\n\t\tconfiguration.modules[MODULE_PREFIX_HANDLER + 'bundle'][bundle.id] = pointer = [];\n\n\t\tfor(; (dependency = matches[i]); i++) {\n\t\t\tpointer.push(dependency.path);\n\t\t}\n\n\t\treturn configuration;\n\t}\n\n\tfunction resolveDependencies() {\n\t\tvar i = 0, dependency;\n\n\t\tfor(; (dependency = this[i]); i++) {\n\t\t\tdependency.dfd.resolve(arguments[i]);\n\t\t}\n\t}\n\n\tfunction rejectDependencies() {\n\t\tvar i = 0, dependency;\n\n\t\tfor(; (dependency = this[i]); i++) {\n\t\t\tdependency.dfd.reject(new ClassFailure(ERROR_RESOLVE, dependency.id));\n\t\t}\n\t}\n\n\tfunction addPattern(property, value) {\n\t\tpattern.push({ prefix: property, weight: property.length, fn: value });\n\t}\n\n\tfunction resolveBundles(property, value) {\n\t\tvar matches = value.matches,\n\t\t\ti = 0, dependency;\n\n\t\tif(matches.length > 1) {\n\t\t\tvalue.id = path + '/' + functionHash(JSON.stringify(value.matches));\n\n\t\t\tfor(; (dependency = matches[i]); i++) {\n\t\t\t\tmatches[i] = new ClassDependency(dependency.uri);\n\t\t\t}\n\n\t\t\tdemand.configure(generateConfiguration(value));\n\t\t\tdemand('bundle!' + value.id)\n\t\t\t\t.then(\n\t\t\t\t\tresolveDependencies.bind(matches),\n\t\t\t\t\trejectDependencies.bind(matches)\n\t\t\t\t);\n\t\t}\n\t}\n\n\tdemand\n\t\t.on(EVENT_POST_CONFIGURE + ':' + path, function(options) {\n\t\t\tif(validatorIsObject(options)) {\n\t\t\t\tpattern.length = 0;\n\n\t\t\t\tfunctionIterate(options, addPattern);\n\t\t\t}\n\t\t})\n\t\t.on(EVENT_PRE_RESOLVE, function(dependencies, context) {\n\t\t\tvar bundles = {},\n\t\t\t\ti = 0, dependency, pattern;\n\n\t\t\tfor(; (dependency = dependencies[i]); i++) {\n\t\t\t\tif(validatorIsTypeOf(dependency, STRING_STRING) && !regexMatchInternal.test(dependency) && !ClassDependency.get(dependency, context)) {\n\t\t\t\t\tdependency = new ClassDependency(dependency, context, FALSE);\n\n\t\t\t\t\tif(dependency.type === 'module' && (pattern = matchPattern(dependency.path)) && !singletonCache.get(dependency)) {\n\t\t\t\t\t\t(bundles[pattern.prefix] || (bundles[pattern.prefix] = { fn: pattern.fn, matches: [] })).matches.push(dependency);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunctionIterate(bundles, resolveBundles);\n\t\t});\n\n\treturn TRUE;\n}());"]} \ No newline at end of file diff --git a/dist/handler/css.js b/dist/handler/css.js index 83e7ea3..435e0d2 100644 --- a/dist/handler/css.js +++ b/dist/handler/css.js @@ -1,3 +1,3 @@ -/**! Qoopido.demand 4.1.5 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ +/**! Qoopido.demand 4.1.6 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ !function(e){"use strict";function t(t,r){function n(e){return c.href=e,c}function s(e,t,r){return l.test(t[1])||(e=e.replace(t[0],r)),e}function o(){}var u=e.getElementsByTagName("head")[0],c=e.createElement("a"),i=/url\s*\(\s*["']?(.+?)["']?\s*\)/gi,a=/@import\s+["'](.+?)["']/gi,d=/^\//i,l=/^data:|http(s?):|\/\//i,f=/^text\/css/;return o.prototype={validate:function(e){return f.test(e)},onPreRequest:function(e){var t=e.url;e.url=".css"!==t.slice(-4)?t+".css":t},onPostRequest:function(e){for(var t,o=n(e.url+"/.."),u=o.href,c="//"+o.host,l=e.source;t=i.exec(l);)l=s(l,t,'url("'+n(d.test(t[1])?c+t[1]:u+t[1]).href+'")');for(;t=a.exec(l);)l=s(l,t,'@import "'+n(d.test(t[1])?c+t[1]:u+t[1]).href+'"');e.source=r(e.url,l)},process:function(t){var r=e.querySelector('[demand-id="'+t.id+'"]');r||(r=e.createElement("style"),r.type="text/css",r.setAttribute("demand-id",t.id),u.appendChild(r)),"STYLE"===r.tagName&&(r.styleSheet?r.styleSheet.cssText=t.source:r.textContent=t.source),provide(function(){return r})}},new(o.extends(t))}provide(["/demand/abstract/handler","/demand/function/resolveSourcemaps"],t)}(document); //# sourceMappingURL=css.js.map diff --git a/dist/handler/html.js b/dist/handler/html.js new file mode 100644 index 0000000..b42324c --- /dev/null +++ b/dist/handler/html.js @@ -0,0 +1,3 @@ +/**! Qoopido.demand 4.1.6 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ +!function(){"use strict";function t(t){function e(t){var e,n=document.createDocumentFragment();for(o.innerHTML=t;e=o.firstElementChild;)n.appendChild(e);return n}function n(){}var r=/^text\/html/,o=document.createElement("body");return n.prototype={validate:function(t){return r.test(t)},onPreRequest:function(t){var e=t.url;t.url=".html"!==e.slice(-5)?e+".html":e},process:function(t){provide(function(){return e(t.source)})}},new(n.extends(t))}provide(["/demand/abstract/handler"],t)}(); +//# sourceMappingURL=html.js.map diff --git a/dist/handler/html.js.map b/dist/handler/html.js.map new file mode 100644 index 0000000..fead61b --- /dev/null +++ b/dist/handler/html.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["handler/html.js"],"names":["definition","abstractHandler","parseHtml","source","node","fragment","document","createDocumentFragment","container","innerHTML","firstElementChild","appendChild","HandlerHtml","regexMatchType","createElement","prototype","validate","type","test","onPreRequest","dependency","url","slice","process","provide","extends"],"mappings":";CAAC,WACA,YAEA,SAASA,GAAWC,GAInB,QAASC,GAAUC,GAClB,GACCC,GADGC,EAAWC,SAASC,wBAKxB,KAFAC,EAAUC,UAAYN,EAEhBC,EAAOI,EAAUE,mBACtBL,EAASM,YAAYP,EAGtB,OAAOC,GAGR,QAASO,MAhBT,GAAIC,GAAiB,cACpBL,EAAiBF,SAASQ,cAAc,OA+BzC,OAdAF,GAAYG,WACXC,SAAU,SAASC,GAClB,MAAOJ,GAAeK,KAAKD,IAE5BE,aAAc,SAASC,GACtB,GAAIC,GAAOD,EAAWC,GAEtBD,GAAWC,IAAwB,UAAlBA,EAAIC,OAAM,GAAkBD,EAAM,QAAUA,GAE9DE,QAAS,SAASH,GACjBI,QAAQ,WAAa,MAAOtB,GAAUkB,EAAWjB,YAI5C,IAAKS,EAAYa,QAAQxB,IAGjCuB,SAAU,4BAA8BxB","file":"html.js","sourcesContent":["(function() {\n\t'use strict';\n\n\tfunction definition(abstractHandler) {\n\t\tvar regexMatchType = /^text\\/html/,\n\t\t\tcontainer = document.createElement('body');\n\n\t\tfunction parseHtml(source) {\n\t\t\tvar fragment = document.createDocumentFragment(),\n\t\t\t\tnode;\n\n\t\t\tcontainer.innerHTML = source;\n\n\t\t\twhile(node = container.firstElementChild) {\n\t\t\t\tfragment.appendChild(node);\n\t\t\t}\n\n\t\t\treturn fragment;\n\t\t}\n\n\t\tfunction HandlerHtml() {}\n\n\t\tHandlerHtml.prototype = {\n\t\t\tvalidate: function(type) {\n\t\t\t\treturn regexMatchType.test(type);\n\t\t\t},\n\t\t\tonPreRequest: function(dependency) {\n\t\t\t\tvar url = dependency.url;\n\n\t\t\t\tdependency.url = url.slice(-5) !== '.html' ? url + '.html' : url;\n\t\t\t},\n\t\t\tprocess: function(dependency) {\n\t\t\t\tprovide(function() { return parseHtml(dependency.source); });\n\t\t\t}\n\t\t};\n\n\t\treturn new (HandlerHtml.extends(abstractHandler));\n\t}\n\n\tprovide([ '/demand/abstract/handler' ], definition);\n}());"]} \ No newline at end of file diff --git a/dist/handler/json.js b/dist/handler/json.js index 679599a..1b602c9 100644 --- a/dist/handler/json.js +++ b/dist/handler/json.js @@ -1,3 +1,3 @@ -/**! Qoopido.demand 4.1.5 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ +/**! Qoopido.demand 4.1.6 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ !function(){"use strict";function n(n){function t(){}var e=/^application\/json/;return t.prototype={validate:function(n){return e.test(n)},onPreRequest:function(n){var t=n.url;n.url=".json"!==t.slice(-5)?t+".json":t},process:function(n){var t=JSON.parse(n.source);provide(function(){return t})}},new(t.extends(n))}provide(["/demand/abstract/handler"],n)}(); //# sourceMappingURL=json.js.map diff --git a/dist/handler/legacy.js b/dist/handler/legacy.js index 69a1750..0cacab7 100644 --- a/dist/handler/legacy.js +++ b/dist/handler/legacy.js @@ -1,3 +1,3 @@ -/**! Qoopido.demand 4.1.5 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ +/**! Qoopido.demand 4.1.6 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ !function(){"use strict";function e(e,n,t,r){function o(){var e,r=this,o=r.dfd,u=a[r.path]&&a[r.path].probe;t.process(r),u&&(e=u())?provide(function(){return e}):o.reject(new n("error probing",r.path))}function u(){}var a={};return demand.on("postConfigure:"+e,function(e){a=r(e)?e:{}}),u.prototype={onPreRequest:function(e){var n=a[e.path]&&a[e.path].dependencies;t.onPreRequest(e),n&&(e.enqueue=demand.apply(null,n))},onPreProcess:function(e){var n=a[e.path]&&a[e.path].dependencies;n&&"boolean"==typeof e.enqueue&&(e.enqueue=demand.apply(null,n))},process:function(e){var t=o.bind(e);e.enqueue===!0?t():e.enqueue.then(t,function(){e.dfd.reject(new n("error resolving",e.path,arguments))})}},new(u.extends(t))}provide(["path","/demand/failure","/demand/handler/module","/demand/validator/isObject"],e)}(); //# sourceMappingURL=legacy.js.map diff --git a/dist/handler/text.js b/dist/handler/text.js index a39bfba..79a95d1 100644 --- a/dist/handler/text.js +++ b/dist/handler/text.js @@ -1,3 +1,3 @@ -/**! Qoopido.demand 4.1.5 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ +/**! Qoopido.demand 4.1.6 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ !function(){"use strict";function t(t){function n(){}var e=/^text\/.+/;return n.prototype={validate:function(t){return e.test(t)},process:function(t){provide(function(){return t.source})}},new(n.extends(t))}provide(["/demand/abstract/handler"],t)}(); //# sourceMappingURL=text.js.map diff --git a/dist/plugin/cookie.js b/dist/plugin/cookie.js index 8f295a5..4c21618 100644 --- a/dist/plugin/cookie.js +++ b/dist/plugin/cookie.js @@ -1,3 +1,3 @@ -/**! Qoopido.demand 4.1.5 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ +/**! Qoopido.demand 4.1.6 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ !function(n){"use strict";function t(t,e,o,i){function a(t,e,o){(r||c(t.path))&&(n.cookie="demand["+t.type+"]["+t.path+"]="+encodeURIComponent(e)+"; expires="+o+"; path=/")}function c(n){for(var t,e,o=0;t=f[o];o++)0===n.indexOf(t.pattern)&&(!e||t.weight>e.weight)&&(e=t);return!!e&&e.state}var r,u="Thu, 01 Jan 1970 00:00:00 GMT",d="Fri, 31 Dec 9999 23:59:59 GMT",f=[];return demand.on("postConfigure:"+t,function(n){o(n)?(f.length=0,e(n,function(n,t){f.push({pattern:n,weight:n.length,state:t})})):i(n,"boolean")&&(r=n)}).on("cacheMiss",function(n){a(n,"",u)}).on("cacheClear",function(n){a(n,"",u)}).on("postCache",function(n,t){a(n,JSON.stringify(t),d)}),!0}provide(["path","/demand/function/iterate","/demand/validator/isObject","/demand/validator/isTypeOf"],t)}(document); //# sourceMappingURL=cookie.js.map diff --git a/dist/plugin/lzstring.js b/dist/plugin/lzstring.js index b1a27fb..3c9b9e3 100644 --- a/dist/plugin/lzstring.js +++ b/dist/plugin/lzstring.js @@ -1,3 +1,3 @@ -/**! Qoopido.demand 4.1.5 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ +/**! Qoopido.demand 4.1.6 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ !function(){"use strict";function t(t,e,n,o){function r(t,e){function n(){b===e?(g.push(i(v)),b=0,v=0):b++}function o(){if(p.call(s,h)){if(h.charCodeAt(0)<256){for(r=0;r>=1}else{for(a=1,r=0;r>=1}d--,0===d&&(d=Math.pow(2,w),w++),delete s[h]}else for(a=c[h],r=0;r>=1;d--}var r,a,c={},s={},u="",f="",h="",d=2,l=3,w=2,g=[],v=0,b=0,C=0;for(e-=1;t[C];C++)u=t.charAt(C),p.call(c,u)||(c[u]=l++,s[u]=!0),f=h+u,p.call(c,f)?h=f:(o(),0===d&&(d=Math.pow(2,w),w++),c[f]=l++,h=String(u));for(""!==h&&(o(),0===d&&w++),a=2,r=0;r>=1;for(;;){if(v<<=1,b===e){g.push(i(v));break}b++}return g.join("")}function a(t,e,n){function o(e){for(m=0,k=1;k!==e;)s=M.val&M.position,M.position>>=1,0===M.position&&(M.position=n,M.val=c(t,M.index++)),m|=(s>0?1:0)*k,k<<=1}var r,a,i,s,u,f=[],p=4,g=4,v=3,b="",C=[],M={val:c(t,0),position:n,index:1},m=0,A=d,k=1;for(a=0;a<3;a++)f[a]=a;switch(o(A),r=m){case 0:o(l),u=h(m);break;case 1:o(w),u=h(m);break;case 2:return""}for(f[3]=u,i=u,C.push(u);;){if(M.index>e)return"";switch(o(Math.pow(2,v)),u=m){case 0:o(l),f[g++]=h(m),u=g-1,p--;break;case 1:o(w),f[g++]=h(m),u=g-1,p--;break;case 2:return C.join("")}if(0===p&&(p=Math.pow(2,v),v++),f[u])b=f[u];else{if(u!==g)return null;b=i+i.charAt(0)}C.push(b),f[g++]=i+b.charAt(0),p--,i=b,0===p&&(p=Math.pow(2,v),v++)}}function i(t){return h(t+32)}function c(t,e){return t.charCodeAt(e)-32}function s(t){return t?r(t,15)+" ":""}function u(t){return t?a(t,t.length,16384):""}function f(t){for(var e,n,o=0;e=g[o];o++)0===t.indexOf(e.pattern)&&(!n||e.weight>n.weight)&&(n=e);return!!n&&n.state}var h=String.fromCharCode,p=Object.prototype.hasOwnProperty,d=Math.pow(2,2),l=Math.pow(2,8),w=Math.pow(2,16),g=[{pattern:t,weight:t.length,state:!1}],v={};return demand.on("postConfigure:"+t,function(t){n(t)?(g.length=0,e(t,function(t,e){g.push({pattern:t,weight:t.length,state:e})})):o(t,"boolean")&&g.push({pattern:"",weight:0,state:t})}).on("cacheHit",function(t){f(t.path)&&(v[t.id]=!0)}).on("preCache",function(t){f(t.path)&&(t.source=s(t.source))}).on("preProcess",function(t){v[t.id]&&(t.source=u(t.source))}),{compress:s,decompress:u}}provide(["path","/demand/function/iterate","/demand/validator/isObject","/demand/validator/isTypeOf"],t)}(); //# sourceMappingURL=lzstring.js.map diff --git a/dist/plugin/sri.js b/dist/plugin/sri.js index 038bfdd..13ad6e7 100644 --- a/dist/plugin/sri.js +++ b/dist/plugin/sri.js @@ -1,3 +1,3 @@ -/**! Qoopido.demand 4.1.5 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ +/**! Qoopido.demand 4.1.6 | https://github.com/dlueth/qoopido.demand | (c) 2017 Dirk Lueth */ !function(){"use strict";function n(n,e){this.h=n,this.l=e}function e(n,e){var r=(n&H)+(e&H),w=(n>>>16)+(e>>>16)+(r>>>16);return(w&H)<<16|r&H}function r(n,e,r,w){var h=(n&H)+(e&H)+(r&H)+(w&H),t=(n>>>16)+(e>>>16)+(r>>>16)+(w>>>16)+(h>>>16);return(t&H)<<16|h&H}function w(n,e,r,w,h){var t=(n&H)+(e&H)+(r&H)+(w&H)+(h&H),l=(n>>>16)+(e>>>16)+(r>>>16)+(w>>>16)+(h>>>16)+(t>>>16);return(l&H)<<16|t&H}function h(e,r){var w,h,t,l;return w=(e.l&H)+(r.l&H),h=(e.l>>>16)+(r.l>>>16)+(w>>>16),t=(h&H)<<16|w&H,w=(e.h&H)+(r.h&H)+(h>>>16),h=(e.h>>>16)+(r.h>>>16)+(w>>>16),l=(h&H)<<16|w&H,new n(l,t)}function t(e,r,w,h){var t,l,u,a;return t=(e.l&H)+(r.l&H)+(w.l&H)+(h.l&H),l=(e.l>>>16)+(r.l>>>16)+(w.l>>>16)+(h.l>>>16)+(t>>>16),u=(l&H)<<16|t&H,t=(e.h&H)+(r.h&H)+(w.h&H)+(h.h&H)+(l>>>16),l=(e.h>>>16)+(r.h>>>16)+(w.h>>>16)+(h.h>>>16)+(t>>>16),a=(l&H)<<16|t&H,new n(a,u)}function l(e,r,w,h,t){var l,u,a,c;return l=(e.l&H)+(r.l&H)+(w.l&H)+(h.l&H)+(t.l&H),u=(e.l>>>16)+(r.l>>>16)+(w.l>>>16)+(h.l>>>16)+(t.l>>>16)+(l>>>16),a=(u&H)<<16|l&H,l=(e.h&H)+(r.h&H)+(w.h&H)+(h.h&H)+(t.h&H)+(u>>>16),u=(e.h>>>16)+(r.h>>>16)+(w.h>>>16)+(h.h>>>16)+(t.h>>>16)+(l>>>16),c=(u&H)<<16|l&H,new n(c,a)}function u(n){return k(n,7)^k(n,18)^m(n,3)}function a(n){return k(n,17)^k(n,19)^m(n,10)}function c(e){var r=A(e,1),w=A(e,8),h=R(e,7);return new n(r.h^w.h^h.h,r.l^w.l^h.l)}function o(e){var r=A(e,19),w=A(e,61),h=R(e,6);return new n(r.h^w.h^h.h,r.l^w.l^h.l)}function i(n){return k(n,2)^k(n,13)^k(n,22)}function s(n){return k(n,6)^k(n,11)^k(n,25)}function f(e){var r=A(e,28),w=A(e,34),h=A(e,39);return new n(r.h^w.h^h.h,r.l^w.l^h.l)}function v(e){var r=A(e,14),w=A(e,18),h=A(e,41);return new n(r.h^w.h^h.h,r.l^w.l^h.l)}function d(n,e,r){return n&e^n&r^e&r}function p(e,r,w){return new n(e.h&r.h^e.h&w.h^r.h&w.h,e.l&r.l^e.l&w.l^r.l&w.l)}function b(n,e,r){return n&e^~n&r}function g(e,r,w){return new n(e.h&r.h^~e.h&w.h,e.l&r.l^~e.l&w.l)}function k(n,e){return n>>>e|n<<32-e}function A(e,r){var w=null,h=new n(e.h,e.l);return w=32>=r?new n(h.h>>>r|h.l<<32-r&I,h.l>>>r|h.h<<32-r&I):new n(h.l>>>r-32|h.h<<64-r&I,h.h>>>r-32|h.l<<64-r&I)}function m(n,e){return n>>>e}function R(e,r){var w=null;return w=32>=r?new n(e.h>>>r,e.l>>>r|e.h<<32-r&I):new n(0,e.h>>>r-32)}function C(n,e,r){var w,h,t,l,u,a,c,o,i,s=0,f=n.length,v=0;for(h=e||[0],r=r||0,u=r>>>3;sa?w.push(a):2048>a?(w.push(192|a>>>6),w.push(128|63&a)):55296>a||57344<=a?w.push(224|a>>>12,128|a>>>6&63,128|63&a):(s++,a=65536+((1023&a)<<10|1023&n.charCodeAt(s)),w.push(240|a>>>18,128|a>>>12&63,128|a>>>6&63,128|63&a)),t=h.length,l=w.length,c=0;c>>2;t<=o;)h.push(0),t++;h[o]|=w[c]<<8*(3-i%4),v++}return{value:h,length:8*v+r}}function j(n){for(var e,r,w,h,t,l,u="",a=4*n.length,c=0;c>>2,h=e<=w?0:n[w],w=c+2>>>2,t=e<=w?0:n[w],r=(n[c>>>2]>>>8*(3-c%4)&255)<<16|(h>>>8*(3-(c+1)%4)&255)<<8|t>>>8*(3-(c+2)%4)&255,l=0;l<4;l++)u+=8*c+6*l<=32*e?S.charAt(r>>>6*(3-l)&63):"=";return u}function N(e){var r,w=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428];switch(e){case"sha256":r=w;break;case"sha384":r=[new n(3418070365,h[0]),new n(1654270250,h[1]),new n(2438529370,h[2]),new n(355462360,h[3]),new n(1731405415,h[4]),new n(41048885895,h[5]),new n(3675008525,h[6]),new n(1203062813,h[7])];break;case"sha512":r=[new n(w[0],4089235720),new n(w[1],2227873595),new n(w[2],4271175723),new n(w[3],1595750129),new n(w[4],2917565137),new n(w[5],725511199),new n(w[6],4215389547),new n(w[7],327033209)]}return r}function O(k,A,m){var R,C,j,N,O,q,y,E,H,I,S,_,x,z,B,D,F,G,J,K,L,M,P,Q,U,W,X=k.length,Y=0,Z=[];switch(m){case"sha256":S=64,_=1,M=Number,x=e,z=r,B=w,D=u,F=a,G=i,J=s,L=d,K=b,W=T;break;case"sha384":case"sha512":S=80,_=2,M=n,x=h,z=t,B=l,D=c,F=o,G=f,J=v,L=p,K=g,W=V}for(R=A[0],C=A[1],j=A[2],N=A[3],O=A[4],q=A[5],y=A[6],E=A[7];Y>>9<<4)+15,a=16;break;case"sha384":case"sha512":l=(e+129>>>10<<5)+31,a=32}for(;c<=l;)n.push(0),c++;for(n[e>>>5]|=128<<24-e%32,n[l]=e+r,t=c;o>>5,a=r>>>5;i>>5),o=t%r,w=q(c,o,f,w,n),j(w)}function E(n,e,r,w){function h(n){var e;return r(t,function(r,w){if(r===n)return e=w,!1}),e||!1}var t;return demand.on("postConfigure:"+n,function(n){w(n)&&(t=n)}).on("postRequest",function(n){var r;(r=h(n.path))&&y(r.type,n.source)!==r.hash&&n.dfd.reject(new e("error resolving (sri)",n.id))}),!0}var H=65535,I=4294967295,S="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",T=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],V=[new n(T[0],3609767458),new n(T[1],602891725),new n(T[2],3964484399),new n(T[3],2173295548),new n(T[4],4081628472),new n(T[5],3053834265),new n(T[6],2937671579),new n(T[7],3664609560),new n(T[8],2734883394),new n(T[9],1164996542),new n(T[10],1323610764),new n(T[11],3590304994),new n(T[12],4068182383),new n(T[13],991336113),new n(T[14],633803317),new n(T[15],3479774868),new n(T[16],2666613458),new n(T[17],944711139),new n(T[18],2341262773),new n(T[19],2007800933),new n(T[20],1495990901),new n(T[21],1856431235),new n(T[22],3175218132),new n(T[23],2198950837),new n(T[24],3999719339),new n(T[25],766784016),new n(T[26],2566594879),new n(T[27],3203337956),new n(T[28],1034457026),new n(T[29],2466948901),new n(T[30],3758326383),new n(T[31],168717936),new n(T[32],1188179964),new n(T[33],1546045734),new n(T[34],1522805485),new n(T[35],2643833823),new n(T[36],2343527390),new n(T[37],1014477480),new n(T[38],1206759142),new n(T[39],344077627),new n(T[40],1290863460),new n(T[41],3158454273),new n(T[42],3505952657),new n(T[43],106217008),new n(T[44],3606008344),new n(T[45],1432725776),new n(T[46],1467031594),new n(T[47],851169720),new n(T[48],3100823752),new n(T[49],1363258195),new n(T[50],3750685593),new n(T[51],3785050280),new n(T[52],3318307427),new n(T[53],3812723403),new n(T[54],2003034995),new n(T[55],3602036899),new n(T[56],1575990012),new n(T[57],1125592928),new n(T[58],2716904306),new n(T[59],442776044),new n(T[60],593698344),new n(T[61],3733110249),new n(T[62],2999351573),new n(T[63],3815920427),new n(3391569614,3928383900),new n(3515267271,566280711),new n(3940187606,3454069534),new n(4118630271,4000239992),new n(116418474,1914138554),new n(174292421,2731055270),new n(289380356,3203993006),new n(460393269,320620315),new n(685471733,587496836),new n(852142971,1086792851),new n(1017036298,365543100),new n(1126000580,2618297676),new n(1288033470,3409855158),new n(1501505948,4234509866),new n(1607167915,987167468),new n(1816402316,1246189591)];provide(["path","/demand/failure","/demand/function/iterate","/demand/validator/isObject"],E)}(); //# sourceMappingURL=sri.js.map diff --git a/extras/handler/html.js b/extras/handler/html.js new file mode 100644 index 0000000..0cf87d3 --- /dev/null +++ b/extras/handler/html.js @@ -0,0 +1,41 @@ +(function() { + 'use strict'; + + function definition(abstractHandler) { + var regexMatchType = /^text\/html/, + container = document.createElement('body'); + + function parseHtml(source) { + var fragment = document.createDocumentFragment(), + node; + + container.innerHTML = source; + + while(node = container.firstElementChild) { + fragment.appendChild(node); + } + + return fragment; + } + + function HandlerHtml() {} + + HandlerHtml.prototype = { + validate: function(type) { + return regexMatchType.test(type); + }, + onPreRequest: function(dependency) { + var url = dependency.url; + + dependency.url = url.slice(-5) !== '.html' ? url + '.html' : url; + }, + process: function(dependency) { + provide(function() { return parseHtml(dependency.source); }); + } + }; + + return new (HandlerHtml.extends(abstractHandler)); + } + + provide([ '/demand/abstract/handler' ], definition); +}()); \ No newline at end of file diff --git a/package.json b/package.json index 113e49b..4b6b9ad 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "qoopido.demand", "title": "Qoopido.demand", "description": "Promise like module loader using XHR requests and localStorage caching to dynamically load JavaScript and CSS + dynamic dependency resolution + support for custom handlers", - "version": "4.1.5", + "version": "4.1.6", "homepage": "https://github.com/dlueth/qoopido.demand", "author": { "name": "Dirk Lueth", diff --git a/src/class/dependency.js b/src/class/dependency.js index 6ffeec0..e841407 100644 --- a/src/class/dependency.js +++ b/src/class/dependency.js @@ -82,6 +82,7 @@ var ClassDependency = (function() { uri: NULL, dfd: NULL, pledge: NULL, + value: NULL, // set by provide handler: NULL, // set by Dependency.resolve source: NULL, // set by Cache or Loader url: NULL // optional, set by Loader @@ -94,7 +95,8 @@ var ClassDependency = (function() { ClassDependency.resolve = function(uri, context) { var isInternal = context && regexMatchInternal.test(uri), - dependency = isInternal ? this.get(PREFIX_INTERNAL + context + '/' + uri) : this.get(uri, context); + dependency = isInternal ? this.get(PREFIX_INTERNAL + context + '/' + uri) : this.get(uri, context), + value; if(!dependency) { if(isInternal) { @@ -102,20 +104,22 @@ var ClassDependency = (function() { switch(uri) { case DEMAND_ID: - dependency.dfd.resolve((function() { + value = (function() { return functionIterate(demand, setProperty, demand.bind(context)); - }())); + }()); break; case PROVIDE_ID: - dependency.dfd.resolve(provide.bind(context)); + value = provide.bind(context); break; case PATH_ID: - dependency.dfd.resolve(context); + value = context; break; } + + dependency.dfd.resolve(value); } else { dependency = new ClassDependency(uri, context); diff --git a/src/demand.js b/src/demand.js index 531a55b..9a115da 100644 --- a/src/demand.js +++ b/src/demand.js @@ -4,8 +4,8 @@ validatorIsTypeOf, validatorIsArray, validatorIsObject, validatorIsInstanceOf, functionResolveUrl, functionResolveSourcemaps, functionMerge, functionIterate, functionDefer, functionHash, functionUuid, AbstractUuid, abstractHandler, - ClassQueue, ClassProcessor, ClassPledge, ClassXhr, ClassFailure, ClassDescriptor - handlerModule, handlerBundle, + ClassDependency, ClassQueue, ClassProcessor, ClassPledge, ClassXhr, ClassFailure, ClassDescriptor, + handlerModule, handlerBundle, handlerComponent, pluginGenie */ @@ -36,6 +36,7 @@ //=require class/processor.js //=require handler/module.js //=require handler/bundle.js + //=require handler/component.js //=require plugin/genie.js // initialize @@ -50,6 +51,7 @@ assignModule(MODULE_PREFIX_ABSTRACT + 'handler', abstractHandler); assignModule(MODULE_PREFIX_HANDLER + 'module', handlerModule); assignModule(MODULE_PREFIX_HANDLER + 'bundle', handlerBundle); + assignModule(MODULE_PREFIX_HANDLER + 'component', handlerComponent); assignModule(MODULE_PREFIX_PLUGIN + 'genie', pluginGenie); assignModule(MODULE_PREFIX_VALIDATOR + 'isTypeOf', validatorIsTypeOf); assignModule(MODULE_PREFIX_VALIDATOR + 'isArray', validatorIsArray); diff --git a/src/function/demand.js b/src/function/demand.js index 8a24884..348d72d 100644 --- a/src/function/demand.js +++ b/src/function/demand.js @@ -115,6 +115,7 @@ global.demand = (function() { demand.version = '{{gulp:package.version}}'; demand.on = singletonEvent.on.bind(demand); + demand.get = function(uri, context) { var dependency = ClassDependency.get(uri, context); return dependency && dependency.value; }; demand.remove = ClassDependency.remove; demand.list = ClassDependency.list; demand.clear = singletonCache.clear; diff --git a/src/function/provide.js b/src/function/provide.js index 151d897..d7f7722 100644 --- a/src/function/provide.js +++ b/src/function/provide.js @@ -39,6 +39,10 @@ global.provide = function provide() { } else { module.dfd.resolve(isFunction ? definition() : definition); } + + module.pledge.then(function(value) { + module.value = value; + }); } else { /* eslint-disable no-console */ !validatorIsTypeOf(console, STRING_UNDEFINED) && console.error(new ClassFailure(ERROR_PROVIDE_ANONYMOUS)); diff --git a/src/handler/bundle.js b/src/handler/bundle.js index c5ba694..d53a5e6 100644 --- a/src/handler/bundle.js +++ b/src/handler/bundle.js @@ -73,7 +73,7 @@ var handlerBundle = (function() { dependencies = settings[dependency.path], type, match, pledges, temp, i; - dependency.enqueue = false; + dependency.enqueue = FALSE; function reject() { dfd.reject(new ClassFailure(ERROR_RESOLVE, dependency.id, arguments)); diff --git a/src/handler/component.js b/src/handler/component.js new file mode 100644 index 0000000..eb62bb2 --- /dev/null +++ b/src/handler/component.js @@ -0,0 +1,78 @@ +/* global + global, document, demand, provide, queue, processor, settings, setTimeout, clearTimeout, storage, + FALSE, EVENT_POST_REQUEST, ERROR_RESOLVE, + abstractHandler, + ClassDependency, ClassPledge, ClassFailure +*/ + +//=require constants.js +//=require abstract/handler.js +//=require class/dependency.js +//=require class/pledge.js +//=require class/Failure.js + +var handlerComponent = (function() { + var regexMatchType = /^text\/.+$/; + + function HandlerComponent() {} + + HandlerComponent.prototype = { + validate: function(type) { + return regexMatchType.test(type); + }, + onPreRequest: function(dependency) { + var url = dependency.url; + + dependency.url = url.slice(-5) !== '.html' ? url + '.html' : url; + }, + onPreProcess: function(dependency) { + var context = dependency.path, + dfd = dependency.dfd, + container = document.createElement('body'), + modules = [], + pledges = [], + node, handler, path, uri; + + dependency.enqueue = FALSE; + container.innerHTML = dependency.source; + + function reject() { + dfd.reject(new ClassFailure(ERROR_RESOLVE, dependency.id, arguments)); + } + + while(node = container.firstElementChild) { + if(handler = node.getAttribute('type')) { + path = node.getAttribute('path'); + uri = handler + '!' + context + (path ? '/' + path : ''); + + node.parentNode.removeChild(node); + modules.push({ source: node.textContent, uri: uri }); + pledges.push(ClassDependency.resolve('mock:' + uri).pledge); + } + } + + ClassPledge.all(pledges).then( + function() { + var i = 0, module, dependency; + + pledges.length = 0; + + for(; (module = modules[i]); i++) { + dependency = ClassDependency.get(module.uri) || new ClassDependency(module.uri); + dependency.source = module.source; + dependency.handler = arguments[i]; + + pledges.push(dependency.pledge); + + queue.enqueue(dependency); + } + + ClassPledge.all(pledges).then(dfd.resolve, reject); + }, + reject + ); + } + }; + + return new (HandlerComponent.extends(abstractHandler)); +}()); \ No newline at end of file