{"version":3,"sources":["assets/src/js/Services/QueryStringProcessorService.js"],"names":["QueryStringProcessor","getUrlParams","url","queryString","split","window","location","search","slice","obj","arr","i","length","key","index","a","paramName","paramValue","toLowerCase","match","replace","exec","push"],"mappings":"AAAA,IAAIA,qBAAuB,WACvB,MAAO,CACHC,aAAc,SAAUC,GAGhB,IAAIC,EAAcD,EAAMA,EAAIE,MAAM,KAAK,GAAKC,OAAOC,SAASC,OAAOC,MAAM,GAGrEC,EAAM,GAGV,GAAIN,EAQA,IAFA,IAAIO,GAAMP,EAHIA,EAAYC,MAAM,KAAK,IAGfA,MAAM,KAEnBO,EAAI,EAAGA,EAAID,EAAIE,OAAQD,IAAK,CAEjC,IAcQE,EAMIC,EApBRC,EAAIL,EAAIC,GAAGP,MAAM,KAGjBY,EAAYD,EAAE,GACdE,OAA+B,IAAVF,EAAE,IAA6BA,EAAE,GAG1DC,EAAYA,EAAUE,cACI,iBAAfD,IAAyBA,EAAaA,EAAWC,eAGxDF,EAAUG,MAAM,gBAIXV,EADDI,EAAMG,EAAUI,QAAQ,aAAc,OAC3BX,EAAII,GAAO,IAGtBG,EAAUG,MAAM,aAEZL,EAAQ,YAAYO,KAAKL,GAAW,GACxCP,EAAII,GAAKC,GAASG,GAGlBR,EAAII,GAAKS,KAAKL,IAIbR,EAAIO,IAGEP,EAAIO,IAAwC,iBAAnBP,EAAIO,KAEpCP,EAAIO,GAAa,CAACP,EAAIO,KACtBP,EAAIO,GAAWM,KAAKL,IAJpBR,EAAIO,GAAaC,EAYjC,OAAOR","file":"QueryStringProcessorService.js","sourcesContent":["var QueryStringProcessor = function () {\r\n return {\r\n getUrlParams: function (url) {\r\n\r\n // get query string from url (optional) or window\r\n var queryString = url ? url.split('?')[1] : window.location.search.slice(1);\r\n\r\n // we'll store the parameters here\r\n var obj = {};\r\n\r\n // if query string exists\r\n if (queryString) {\r\n\r\n // stuff after # is not part of query string, so get rid of it\r\n queryString = queryString.split('#')[0];\r\n\r\n // split our query string into its component parts\r\n var arr = queryString.split('&');\r\n\r\n for (var i = 0; i < arr.length; i++) {\r\n // separate the keys and the values\r\n var a = arr[i].split('=');\r\n\r\n // set parameter name and value (use 'true' if empty)\r\n var paramName = a[0];\r\n var paramValue = typeof (a[1]) === 'undefined' ? true : a[1];\r\n\r\n // (optional) keep case consistent\r\n paramName = paramName.toLowerCase();\r\n if (typeof paramValue === 'string') paramValue = paramValue.toLowerCase();\r\n\r\n // if the paramName ends with square brackets, e.g. colors[] or colors[2]\r\n if (paramName.match(/\\[(\\d+)?\\]$/)) {\r\n\r\n // create key if it doesn't exist\r\n var key = paramName.replace(/\\[(\\d+)?\\]/, '');\r\n if (!obj[key]) obj[key] = [];\r\n\r\n // if it's an indexed array e.g. colors[2]\r\n if (paramName.match(/\\[\\d+\\]$/)) {\r\n // get the index value and add the entry at the appropriate position\r\n var index = /\\[(\\d+)\\]/.exec(paramName)[1];\r\n obj[key][index] = paramValue;\r\n } else {\r\n // otherwise add the value to the end of the array\r\n obj[key].push(paramValue);\r\n }\r\n } else {\r\n // we're dealing with a string\r\n if (!obj[paramName]) {\r\n // if it doesn't exist, create property\r\n obj[paramName] = paramValue;\r\n } else if (obj[paramName] && typeof obj[paramName] === 'string') {\r\n // if property does exist and it's a string, convert it to an array\r\n obj[paramName] = [obj[paramName]];\r\n obj[paramName].push(paramValue);\r\n } else {\r\n // otherwise add the property\r\n obj[paramName].push(paramValue);\r\n }\r\n }\r\n }\r\n }\r\n return obj;\r\n }\r\n }\r\n};"]}