{"version":3,"sources":["Honeywell.ClientModel.SolutionDetails.ts"],"names":["finalSolutionsData","solutionsData","userTerms","viewMore","_","forEach","value","key","sortSolutions","solutionsForSorting","userTermsData","templateString","sortingType","$","val","sortByOrder","formatSolutions","solutionsLandingMapping","field","propertyName","getSolutionsData","utils","getCurrentWebListData","GenericHandler","loadTemplate","Honeywell_ClientModel_TemplateService_1","TemplateService","getTemplate","getUserTerms","Honeywell_ClientModel_UserTerms_1","getMultipleHonUserTerms","culture","_spPageContextInfo","currentCultureName","groups","template","model","html","prop","change","Honeywell_ClientModel_Events_1","spLoad","then","Q","all","spread"],"mappings":"gNAoDA,SAASA,GAAmBC,EAAoBC,GAO5C,MANKC,IACDC,EAAEC,QAAQJ,EAAe,SAACK,EAAOC,GAC7BD,EAAoB,aAAIJ,EAAgC,qBACxDC,GAAW,IAGZF,EAwBX,QAASO,GAAcC,EAA0BC,EAAoBC,GAOjE,OALAC,EAAcC,EAAE,eAAeC,MACX,KAAhBF,GAAsC,OAAhBA,IACtBA,EAAc,aAGVA,GACJ,IAAK,QACDH,EAAsBL,EAAEW,YAAYN,GAAsB,kBAAmB,OAC7E,MACJ,KAAK,QACDA,EAAsBL,EAAEW,YAAYN,GAAsB,kBAAmB,QAC7E,MACJ,KAAK,YACDA,EAAsBL,EAAEW,YAAYN,GAAsB,iBAAkB,QAIpFO,EAAgBP,EAAqBC,EAAeC,mDAxFxD,IAAIC,GAAc,GACdT,GAAW,EAoBXc,IACEC,MAAO,gBAAiBC,aAAc,kBACtCD,MAAO,UAAWC,aAAc,oBAChCD,MAAO,UAAWC,aAAc,YAChCD,MAAO,gBAAiBC,aAAc,kBACtCD,MAAO,eAAgBC,aAAc,iBAGvCC,EAAmB,WAAM,MAAAC,GAAMC,sBAAsB,SAAS,GAAID,GAAME,eAAeN,IA1B7E,yXA4BVO,EAAe,WAAM,MAAA,IAAIC,GAAAC,gBAAgB,qBAAqBC,eAE9DC,EAAe,WAAM,MAAAC,GAAAC,yBACrBC,QAASC,mBAAmBC,mBAC5B1B,KAAM,IAAK2B,QAAS,gBAalBlB,EAAkB,SAACf,EAGpBS,EAAoByB,GACrB,GAAIC,IACAnC,cAAeD,EAAmBC,EAAeS,GACjDR,UAAWQ,EAGfG,GAAE,cAAcwB,KAAKF,EAASC,IAEV,KAAhBxB,GACAC,EAAE,6BAA+BD,EAAc,MAAM0B,KAAK,YAAY,GAG1EzB,EAAE,eAAe0B,OAAO,WACpB/B,EAAcP,EAAeS,EAAeyB,KA2BpDK,GAAAC,SAASC,KAAK,WAEVC,EAAEC,KAAUxB,IAAoBQ,IAAgBJ,MAAiBqB,OAAO7B","file":"Honeywell.ClientModel.SolutionDetails.js","sourcesContent":["import {compose2, map} from \"Honeywell.ClientModel.Functional\";\r\nimport * as utils from \"Honeywell.ClientModel.Utilities\";\r\nimport * as Q from \"q\";\r\nimport {TemplateService} from \"Honeywell.ClientModel.TemplateService\";\r\nimport {spLoad} from \"Honeywell.ClientModel.Events\";\r\nimport {getMultipleHonUserTerms} from  \"Honeywell.ClientModel.UserTerms\";\r\n\r\n//Type SolutionDataModel\r\ntype SolutionDataModel = {\r\n    solutionTitle: string, solutionSummary: string, pageUrl: string,\r\n    solutionImage: HTMLImageElement, sortSolution: number, userTerms: any\r\n};\r\ntype FinalSolutionDataModel = SolutionDataModel[];\r\n\r\nvar sortingType = \"\";\r\nvar viewMore = false;\r\n\r\nvar camlAll = `<View><Query>\r\n<OrderBy>\r\n    <FieldRef Name = \"SortSolution\" Ascending = \"TRUE\"/>\r\n  </OrderBy>\r\n  <Where>\r\n    <And>\r\n      <Neq>\r\n        <FieldRef Name=\"SolutionTitle\"></FieldRef>\r\n        <Value Type=\"Text\">\"\"</Value>\r\n      </Neq>\r\n      <IsNotNull>\r\n        <FieldRef Name=\"SolutionTitle\"></FieldRef>\r\n      </IsNotNull>\r\n     </And>\r\n   </Where>\r\n</Query>\r\n</View>`;\r\n\r\nvar solutionsLandingMapping: utils.SPFieldMapping[] = [\r\n    { field: \"SolutionTitle\", propertyName: \"solutionTitle\" },\r\n    { field: \"Summary\", propertyName: \"solutionSummary\" },\r\n    { field: \"FileRef\", propertyName: \"pageUrl\" },\r\n    { field: \"SolutionImage\", propertyName: \"solutionImage\" },\r\n    { field: \"SortSolution\", propertyName: \"sortSolution\" }\r\n];\r\n\r\nvar getSolutionsData = () => utils.getCurrentWebListData('Pages')(new utils.GenericHandler(solutionsLandingMapping))(camlAll);\r\n\r\nvar loadTemplate = () => new TemplateService(\"tpl_Solution.html\").getTemplate();\r\n\r\nvar getUserTerms = () => getMultipleHonUserTerms({\r\n    culture: _spPageContextInfo.currentCultureName,\r\n    key: [\"\"], groups: [\"Solutions\"]\r\n});\r\n\r\nfunction finalSolutionsData(solutionsData: any, userTerms: any) {\r\n    if (!viewMore) {\r\n        _.forEach(solutionsData, (value, key) => {\r\n            value[\"viewMoreText\"] = userTerms[\"SolutionViewMoreText\"];\r\n            viewMore = true;\r\n        });\r\n    }\r\n    return solutionsData;\r\n}\r\n\r\nconst formatSolutions = (solutionsData: {\r\n    solutionTitle: string, solutionSummary: string, pageUrl: string,\r\n    solutionImage: HTMLImageElement, sortSolution: number, viewMoreText: string\r\n}[], userTermsData: any, template: any) => {\r\n    var model: FinalSolutionDataModel = <any>({\r\n        solutionsData: finalSolutionsData(solutionsData, userTermsData),\r\n        userTerms: userTermsData\r\n    });\r\n\r\n    $(\"#Solutions\").html(template(model));\r\n\r\n    if (sortingType !== \"\") {\r\n        $('#ddlSorting>option[value=\"' + sortingType + '\"]').prop('selected', true);\r\n    }\r\n\r\n    $('#ddlSorting').change(() => {\r\n        sortSolutions(solutionsData, userTermsData, template);\r\n    });\r\n\r\n}\r\n\r\nfunction sortSolutions(solutionsForSorting: any, userTermsData: any, templateString: any) {\r\n\r\n    sortingType = $('#ddlSorting').val();\r\n    if (sortingType === \"\" || sortingType === null) {\r\n        sortingType = \"Relevance\";\r\n    }\r\n\r\n    switch (sortingType) {\r\n        case \"A - Z\":\r\n            solutionsForSorting = _.sortByOrder(solutionsForSorting, ['solutionTitle'], ['asc']);;\r\n            break;\r\n        case \"Z - A\":\r\n            solutionsForSorting = _.sortByOrder(solutionsForSorting, ['solutionTitle'], ['desc']);\r\n            break;\r\n        case \"Relevance\":\r\n            solutionsForSorting = _.sortByOrder(solutionsForSorting, ['sortSolution'], ['asc']);\r\n            break;\r\n    }\r\n\r\n    formatSolutions(solutionsForSorting, userTermsData, templateString);\r\n}\r\n\r\nspLoad().then(() => {\r\n\r\n    Q.all(<any>[getSolutionsData(), getUserTerms(), loadTemplate()]).spread(formatSolutions);\r\n\r\n}); \r\n\r\n\r\n\r\n"]}