{"version":3,"sources":["../LuV.LUMAS.Services/scripts/helpers/urlHelperService.ts"],"names":["UrlHelperService","getQueryParameterFromCurrentLocation","queryParameterKey","replace","results","RegExp","exec","location","search","decodeURIComponent","this","getUriParamFromQuery","queryJson","console","log","mapSimpleFilter","filter","i","Id","d","IsDisabled","mapValuedFilter","a","Value","mapRangedFilter","MinValue","b","MaxValue","minimizedQuery","k","Keyword","Brands","map","val","bp","BasePolymers","pl","ProductLines","pg","ProductGroups","r","Reinforcements","m","Modifiers","c","Colors","ct","ContinuosUseTemperatureRange","mt","MaximumUseTemperatureRange","ut","UseTemperatureRange","ts","TensileStrengthRange","tm","TensileModulusRange","cg","CapabilityGroups","Capabilities","rs","Resistances","pr","Properties","sp","SelectedProducts","s1","ISO","s2","ASTM","std","Standard","shrinkUrl","getQueryFromUriParam","queryString","unshrinkUrl","flattendQuery","JSONExtensions_1","default","flatten","flattendQueryReplacedJSONCharsString","JSON","stringify","encodeURIComponent","btoa","substring","length","decodedReplacedJSONCharsString","atob","unflattenQueryString","parse","unflatten","exports"],"mappings":"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","file":"urlHelperService.js","sourcesContent":["import json from '../JSONExtensions';\r\n\r\nexport class UrlHelperService {\r\n\r\n\tpublic static getQueryParameterFromCurrentLocation = function (queryParameterKey) {\r\n\t\tqueryParameterKey = queryParameterKey.replace(/[\\[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\r\n\t\tvar regex = new RegExp('[\\\\?&]' + queryParameterKey + '=([^&#]*)');\r\n\t\tvar results = regex.exec(location.search);\r\n\t\treturn results === null ? '' : decodeURIComponent(results[1].replace(/\\+/g, ' '));\r\n\t}\r\n\r\n\tpublic getUriParamFromQuery = function (queryJson) {\r\n\t\tconsole.log(queryJson);\r\n\t\tvar mapSimpleFilter = function (filter) { return { i: filter.Id, d: filter.IsDisabled ? 1 : 0 }; };\r\n\t\tvar mapArrayFilter = function (filter) { return { i: filter }; };\r\n\t\tvar mapValuedFilter = function (filter) { return { i: filter.Id, a: filter.Value, d: filter.IsDisabled ? 1 : 0 }; };\r\n\t\tvar mapRangedFilter = function (filter) { return { i: filter.Id, a: filter.MinValue, b: filter.MaxValue, d: filter.IsDisabled ? 1 : 0 }; };\r\n\t\tvar mapPropertyFilter = function (filter) { return { i: filter.Id, a: filter.MinValue, b: filter.MaxValue, d: filter.IsDisabled ? 1 : 0 }; };\r\n\t\tvar mapCapabilityGroupFilter = function (filter) { return { i: filter.Id, a: filter.Value, d: filter.IsDisabled ? 1 : 0, c: filter.Capabilities.map((val) => { return mapValuedFilter(val); }) }; };\r\n\t\tvar minimizedQuery = {\r\n\t\t\tk: queryJson.Keyword,\r\n\t\t\tb: queryJson.Brands.map((val) => { return mapSimpleFilter(val) }),\r\n\t\t\tbp: queryJson.BasePolymers.map((val) => { return mapSimpleFilter(val) }),\r\n\t\t\tpl: queryJson.ProductLines.map((val) => { return mapSimpleFilter(val) }),\r\n\t\t\tpg: queryJson.ProductGroups.map((val) => { return mapSimpleFilter(val) }),\r\n\t\t\tr: queryJson.Reinforcements.map((val) => { return mapRangedFilter(val) }),\r\n\t\t\tm: queryJson.Modifiers.map((val) => { return mapRangedFilter(val) }),\r\n\t\t\tc: queryJson.Colors.map((val) => { return mapSimpleFilter(val) }),\r\n\t\t\tct: queryJson.ContinuosUseTemperatureRange,\r\n\t\t\tmt: queryJson.MaximumUseTemperatureRange,\r\n\t\t\tut: queryJson.UseTemperatureRange,\r\n\t\t\tts: queryJson.TensileStrengthRange,\r\n\t\t\ttm: queryJson.TensileModulusRange,\r\n\t\t\tcg: queryJson.CapabilityGroups.map((val) => { return mapCapabilityGroupFilter(val) }),\r\n\t\t\trs: queryJson.Resistances.map((val) => { return mapValuedFilter(val) }),\r\n\t\t\tpr: queryJson.Properties.map((val) => { return mapPropertyFilter(val) }),\r\n\t\t\tsp: queryJson.SelectedProducts.map((val) => { return mapArrayFilter(val) }),\r\n\t\t\ts1: queryJson.ISO ? '1' : '0',\r\n\t\t\ts2: queryJson.ASTM ? '1' : '0',\r\n\t\t\tstd: queryJson.Standard\r\n\t\t};\r\n\t\tlet shrinkedUrl = this.shrinkUrl(minimizedQuery);\r\n\r\n\t\treturn shrinkedUrl;\r\n\t}\r\n\r\n\tpublic getQueryFromUriParam = function (queryString) {\r\n\t\tvar mapSimpleFilter = function (filter) { return { Id: filter.i, IsDisabled: (filter.d ? true : false) }; };\r\n\t\tvar mapArrayFilter = function (filter) { return filter.i };\r\n\t\tvar mapValuedFilter = function (filter) { return { Id: filter.i, Value: filter.a, IsDisabled: (filter.d ? true : false) }; };\r\n\t\tvar mapRangedFilter = function (filter) { return { Id: filter.i, MinValue: filter.a, MaxValue: filter.b, IsDisabled: (filter.d ? true : false) }; };\r\n\t\tvar mapPropertyFilter = function (filter) { return { Id: filter.i, MinValue: filter.a, MaxValue: filter.b, IsDisabled: (filter.d ? true : false) }; };\r\n\t\tvar mapCapabilityGroupFilter = function (filter) { return { Id: filter.i, Value: filter.a, IsDisabled: (filter.d ? true : false), Capabilities: filter.c.map((val) => { return mapValuedFilter(val); }) }; };\r\n\r\n\t\tvar minimizedQuery = this.unshrinkUrl(queryString);\r\n\r\n\t\tvar query = {\r\n\t\t\tKeyword: minimizedQuery.k,\r\n\t\t\tBrands: minimizedQuery.b.map((val) => { return mapSimpleFilter(val) }),\r\n\t\t\tBasePolymers: minimizedQuery.bp.map((val) => { return mapSimpleFilter(val) }),\r\n\t\t\tProductLines: minimizedQuery.pl.map((val) => { return mapSimpleFilter(val) }),\r\n\t\t\tProductGroups: minimizedQuery.pg.map((val) => { return mapSimpleFilter(val) }),\r\n\t\t\tReinforcements: minimizedQuery.r.map((val) => { return mapRangedFilter(val) }),\r\n\t\t\tModifiers: minimizedQuery.m.map((val) => { return mapRangedFilter(val) }),\r\n\t\t\tColors: minimizedQuery.c.map((val) => { return mapSimpleFilter(val) }),\r\n\t\t\tContinuosUseTemperatureRange: minimizedQuery.ct,\r\n\t\t\tMaximumUseTemperatureRange: minimizedQuery.mt,\r\n\t\t\tUseTemperatureRange: minimizedQuery.ut,\r\n\t\t\tTensileStrengthRange: minimizedQuery.ts,\r\n\t\t\tTensileModulusRange: minimizedQuery.tm,\r\n\t\t\tCapabilityGroups: minimizedQuery.cg.map((val) => { return mapCapabilityGroupFilter(val) }),\r\n\t\t\tResistances: minimizedQuery.rs.map((val) => { return mapValuedFilter(val) }),\r\n\t\t\tProperties: minimizedQuery.pr.map((val) => { return mapPropertyFilter(val) }),\r\n\t\t\tSelectedProducts: minimizedQuery.sp.map((val) => { return mapArrayFilter(val) }),\r\n\t\t\tISO: minimizedQuery.s1 == '1',\r\n\t\t\tASTM: minimizedQuery.s2 == '1',\r\n\t\t\tStandard: minimizedQuery.std\r\n\t\t};\r\n\r\n\t\treturn query;\r\n\t}\r\n\r\n\tprivate shrinkUrl = function (minimizedQuery) {\r\n\t\t/*\r\n\t\t\tthe next lines creating a json string of the minimizedQuery Object\r\n\t\t\tafter this, the string gets replace with url safe chars, e.g. : will be ~\r\n\t\t\tafter this, the starting { and the ending } will be trimmed\r\n\t\t\tafter this, the string will be base64 encoded and uri encoded\r\n\r\n\t\t\twe did this, to ensure a small query string in the browser address bar that also works in IE (IE can only handle 2500 chars)\r\n\r\n\t\t\tsample\r\n\t\t\t\t\t{\"k\":\"\",\"bp\":[],\"pl\":[],\"r\":[],\"m\":[],\"c\":[{\"i\":\"BK\",\"t\":\"BK\"}],\"ct\":0,\"mt\":0,\"ut\":0,\"ts\":0,\"tm\":0,\"cg\":[],\"rs\":[],\"pr\":[]}\r\n\t\t\t\tgets\r\n\t\t\t\t\t*k*~**!*bp*~()!*pl*~()!*r*~()!*m*~()!*c(0).i*~*BK*!*ct*~0!*mt*~0!*ut*~0!*ts*~0!*tm*~0!*cg*~()!*rs*~()!*pr*~()\r\n\t\t\t\tgets\r\n\t\t\t\t\tKmsqfioqISpicCp+KCkhKnBsKn4oKSEqcip+KCkhKm0qfigpISpjKDApLmkqfipCSyohKmN0Kn4wISptdCp+MCEqdXQqfjAhKnRzKn4wISp0bSp+MCEqY2cqfigpISpycyp+KCkhKnByKn4oKQ==\r\n\t\t\t\tgets\r\n\t\t\t\t\tKmsqfioqISpicCp%252BKCkhKnBsKn4oKSEqcip%252BKCkhKm0qfigpISpjKDApLmkqfipCSyohKmN0Kn4wISptdCp%252BMCEqdXQqfjAhKnRzKn4wISp0bSp%252BMCEqY2cqfigpISpycyp%252BKCkhKnByKn4oKQ%253D%253D\r\n\r\n\t\t\turl looks like this: http://os-sp15:45390/sites/s01/_layouts/15/luv/lumas/lumas.aspx#!/findProducts/KmsqfioqISpicCp%252BKCkhKnBsKn4oKSEqcip%252BKCkhKm0qfigpISpjKDApLmkqfipCSyohKmN0Kn4wISptdCp%252BMCEqdXQqfjAhKnRzKn4wISp0bSp%252BMCEqY2cqfigpISpycyp%252BKCkhKnByKn4oKQ%253D%253D\r\n\t\t*/\r\n\t\tvar flattendQuery = json.flatten(minimizedQuery);\r\n\t\tvar flattendQueryString = JSON.stringify(flattendQuery);\r\n\t\tvar flattendQueryReplacedJSONCharsString = flattendQueryString.replace(/\\*/g, \"@\").replace(/\"/g, \"*\").replace(/:/g, \"~\").replace(/,/g, \"!\").replace(/\\[/g, \"(\").replace(/\\]/g, \")\");\r\n\t\tvar uriParam = encodeURIComponent(btoa(flattendQueryReplacedJSONCharsString.substring(1, flattendQueryReplacedJSONCharsString.length - 1)));\r\n\r\n\t\treturn uriParam;\r\n\t}\r\n\r\n\tprivate unshrinkUrl = function (queryString) {\r\n\r\n\t\t/*\r\n\t\t\tread comments from method getUriParamFromQuery in reversed order\r\n\t\t*/\r\n\t\tvar decodedQueryString = atob(decodeURIComponent(queryString));\r\n\t\tvar decodedReplacedJSONCharsString = \"{\" + decodedQueryString.replace(/\\)/g, \"]\").replace(/\\(/g, \"[\").replace(/!/g, \",\").replace(/~/g, \":\").replace(/\\*/g, \"\\\"\").replace(/@/g, \"*\") + \"}\";\r\n\t\tvar unflattenQueryString = JSON.parse(decodedReplacedJSONCharsString);\r\n\t\tvar minimizedQuery = json.unflatten(unflattenQueryString);\r\n\r\n\t\treturn minimizedQuery;\r\n\t}\r\n}"]}