1!function(e,t){var n=t();"function"==typeof define&&define.amd?define([],n.Routing):"object"==typeof module&&module.exports?module.exports=n.Routing:(e.Routing=n.Routing,e.fos={Router:n.Router})}(this,function(){"use strict";function e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),r=function(){function r(t,n){e(this,r),this.context_=t||{base_url:"",prefix:"",host:"",port:"",scheme:""},this.setRoutes(n||{})}return o(r,[{key:"setRoutingData",value:function(e){this.setBaseUrl(e.base_url),this.setRoutes(e.routes),"prefix"in e&&this.setPrefix(e.prefix),"port"in e&&this.setPort(e.port),this.setHost(e.host),this.setScheme(e.scheme)}},{key:"setRoutes",value:function(e){this.routes_=Object.freeze(e)}},{key:"getRoutes",value:function(){return this.routes_}},{key:"setBaseUrl",value:function(e){this.context_.base_url=e}},{key:"getBaseUrl",value:function(){return this.context_.base_url}},{key:"setPrefix",value:function(e){this.context_.prefix=e}},{key:"setScheme",value:function(e){this.context_.scheme=e}},{key:"getScheme",value:function(){return this.context_.scheme}},{key:"setHost",value:function(e){this.context_.host=e}},{key:"getHost",value:function(){return this.context_.host}},{key:"setPort",value:function(e){this.context_.port=e}},{key:"getPort",value:function(){return this.context_.port}},{key:"buildQueryParams",value:function(e,t,o){var r=this,i=void 0,s=new RegExp(/\[\]$/);if(t instanceof Array)t.forEach(function(t,i){s.test(e)?o(e,t):r.buildQueryParams(e+"["+("object"===("undefined"==typeof t?"undefined":n(t))?i:"")+"]",t,o)});else if("object"===("undefined"==typeof t?"undefined":n(t)))for(i in t)this.buildQueryParams(e+"["+i+"]",t[i],o);else o(e,t)}},{key:"getRoute",value:function(e){var t=this.context_.prefix+e;if(t in this.routes_)e=t;else if(!(e in this.routes_))throw new Error('The route "'+e+'" does not exist.');return this.routes_[e]}},{key:"generate",value:function(e,n){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=this.getRoute(e),i=n||{},s=t({},i),u="",f=!0,a="",c="undefined"==typeof this.getPort()||null===this.getPort()?"":this.getPort();if(r.tokens.forEach(function(t){if("text"===t[0])return u=t[1]+u,void(f=!1);{if("variable"!==t[0])throw new Error('The token type "'+t[0]+'" is not supported.');var n=r.defaults&&t[3]in r.defaults;if(!1===f||!n||t[3]in i&&i[t[3]]!=r.defaults[t[3]]){var o=void 0;if(t[3]in i)o=i[t[3]],delete s[t[3]];else{if(!n){if(f)return;throw new Error('The route "'+e+'" requires the parameter "'+t[3]+'".')}o=r.defaults[t[3]]}var a=!0===o||!1===o||""===o;if(!a||!f){var c=encodeURIComponent(o).replace(/%2F/g,"/");"null"===c&&null===o&&(c=""),u=t[1]+c+u}f=!1}else n&&t[3]in s&&delete s[t[3]]}}),""===u&&(u="/"),r.hosttokens.forEach(function(e){var t=void 0;return"text"===e[0]?void(a=e[1]+a):void("variable"===e[0]&&(e[3]in i?(t=i[e[3]],delete s[e[3]]):r.defaults&&e[3]in r.defaults&&(t=r.defaults[e[3]]),a=e[1]+t+a))}),u=this.context_.base_url+u,r.requirements&&"_scheme"in r.requirements&&this.getScheme()!=r.requirements._scheme?u=r.requirements._scheme+"://"+(a||this.getHost())+u:"undefined"!=typeof r.schemes&&"undefined"!=typeof r.schemes[0]&&this.getScheme()!==r.schemes[0]?u=r.schemes[0]+"://"+(a||this.getHost())+u:a&&this.getHost()!==a+(""===c?"":":"+c)?u=this.getScheme()+"://"+a+(""===c?"":":"+c)+u:o===!0&&(u=this.getScheme()+"://"+this.getHost()+u),Object.keys(s).length>0){var h=void 0,l=[],y=function(e,t){t="function"==typeof t?t():t,t=null===t?"":t,l.push(encodeURIComponent(e)+"="+encodeURIComponent(t))};for(h in s)this.buildQueryParams(h,s[h],y);u=u+"?"+l.join("&").replace(/%20/g,"+")}return u}}],[{key:"getInstance",value:function(){return i}},{key:"setData",value:function(e){var t=r.getInstance();t.setRoutingData(e)}}]),r}();r.Route,r.Context;var i=new r;return{Router:r,Routing:i}});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.