{"version":3,"sources":["Honeywell.ClientModel.SearchService.ts"],"names":["SearchService","useRootContext","searchText","searchSource","modelName","this","prototype","getContext","SP","ClientContext","Honeywell_ClientModel_MainHelper_1","MainHelper","getRootSiteUrl","get_current","postGetSearchResults","qry","ctx","endpoint","get_url","Q","$","ajax","type","headers","accept","content-type","X-RequestDigest","val","data","JSON","stringify","url","then","results","getSearchResults","selproperties","rowLimit","startRow","refiners","sortProps","sortDir","setRefiners","useRanking","kwq","Microsoft","SharePoint","Client","Search","Query","KeywordQuery","set_queryText","set_trimDuplicates","properties","get_selectProperties","length","set_enableSorting","sortDirection","SortDirection","ascending","descending","ssl","get_sortList","each","ind","add","index","refProps","get_refinementFilters","Object","keys","value","set_refinementFilters","set_refiners","join","get_hitHighlightedProperties","set_rankingModelId","configSettings","set_safeQueryPropertiesTemplateUrl","set_ignoreSafeQueryPropertiesTemplateUrl","set_rowLimit","set_startRow","searchExecutor","SearchExecutor","items","executeQuery","model","Promise","resolve","reject","executeQueryAsync","s","a","sender","args","console","log","get_message","userLanguageTerms","RequestFailedMessage","get_stackTrace","searchPostResultsToArray","_model","hash","totalItems","d","postquery","PrimaryQueryResult","RelevantResults","cls","window","Table","Rows","push","TotalRows","RefinementResults","Refiners","refName","Name","Entries","elem","desc","toUpperCase","undefined","refinerTitle","indexOf","vals","refineName","split","refineDesc","refiner","Models","SearchResult","searchResultsToArray","m_value","ResultTables","table","TableType","ResultRows","exports"],"mappings":"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","file":"Honeywell.ClientModel.SearchService.js","sourcesContent":["import {MainHelper} from \"./Honeywell.ClientModel.MainHelper\";\r\n\r\nimport * as Q from \"q\";\r\nexport class SearchService {\r\n constructor(private useRootContext: boolean, public searchText: any,\r\n public searchSource: String, public modelName: String) {\r\n\r\n }\r\n\r\n /**\r\n * Get SharePoint client context\r\n */\r\n getContext(useRootContext: boolean): SP.ClientContext {\r\n if (useRootContext) {\r\n return new SP.ClientContext(MainHelper.getRootSiteUrl());\r\n }\r\n else {\r\n return SP.ClientContext.get_current();\r\n }\r\n }\r\n postGetSearchResults(qry, modelName) {\r\n var ctx = this.getContext(this.useRootContext);\r\n var endpoint = ctx.get_url() + \"/_api/search/postquery\";\r\n\r\n return Q($.ajax({\r\n type: \"POST\",\r\n headers: {\r\n \"accept\": \"application/json;odata=verbose;charset=utf-8\",\r\n \"content-type\": \"application/json;odata=verbose\",\r\n \"X-RequestDigest\": $(\"#__REQUESTDIGEST\").val()\r\n },\r\n data: JSON.stringify(qry),\r\n url: endpoint\r\n })).then(function (data) {\r\n return { modelName: modelName, results: data };\r\n });\r\n }\r\n\r\n getSearchResults(selproperties: string[], rowLimit: number, startRow: number = 0, refiners: string[] = null, sortProps: string[] = null, sortDir: string = null, setRefiners: any = null, useRanking: boolean = false) {\r\n var ctx = this.getContext(this.useRootContext);\r\n var kwq = new Microsoft.SharePoint.Client.Search.Query.KeywordQuery(ctx);\r\n\r\n kwq.set_queryText(this.searchText);\r\n kwq.set_trimDuplicates(false);\r\n //var instance = this;\r\n var properties = kwq.get_selectProperties();\r\n if (sortProps !== null && sortProps.length) {\r\n kwq.set_enableSorting(true);\r\n var sortDirection = sortDir === '1' ? Microsoft.SharePoint.Client.Search.Query.SortDirection.ascending : Microsoft.SharePoint.Client.Search.Query.SortDirection.descending;\r\n if (sortDir != null && (sortDir == '1' || sortDir === '2')) {\r\n var ssl = kwq.get_sortList();\r\n $.each(sortProps, function (ind, val) {\r\n ssl.add(val, sortDirection);\r\n });\r\n\r\n }\r\n }\r\n\r\n $.each(selproperties, function (index, val) {\r\n properties.add(val);\r\n });\r\n if (setRefiners !== null) {\r\n var refProps = kwq.get_refinementFilters();\r\n $.each(Object.keys(setRefiners), function (index, value) {\r\n $.each(setRefiners[value], function (ind, val) {\r\n refProps.add(value + ':\"' + val + '\"');\r\n });\r\n });\r\n kwq.set_refinementFilters(refProps);\r\n\r\n }\r\n if (refiners != null) {\r\n\r\n kwq.set_refiners(refiners.join(','));\r\n }\r\n\r\n\r\n kwq.get_hitHighlightedProperties();\r\n if (useRanking) {\r\n kwq.set_rankingModelId(MainHelper.configSettings['SearchRankingModelId']);\r\n }\r\n // kwq.set_trimDuplicates(false);\r\n // kwq.set_trimDuplicatesIncludeId(1);\r\n kwq.set_safeQueryPropertiesTemplateUrl('spfile://webroot/queryparameters.xml');\r\n kwq.set_ignoreSafeQueryPropertiesTemplateUrl(false);\r\n kwq.set_rowLimit(rowLimit);\r\n kwq.set_startRow(startRow);\r\n \r\n // kwq.get_totalRowsExactMinimum();\r\n \r\n var searchExecutor = new Microsoft.SharePoint.Client.Search.Query.SearchExecutor(ctx);\r\n\r\n var items = searchExecutor.executeQuery(kwq);\r\n var model = { modelName: this.modelName, results: items };\r\n\r\n if (refiners != null) {\r\n //kwq.get_refiners();\r\n }\r\n return Q.Promise<{ modelName: String, results: SP.JsonObjectResult }>((resolve: (val: { modelName: String, results: SP.JsonObjectResult }) => void, reject: (reason: any) => void) => {\r\n ctx.executeQueryAsync(function (s, a) {\r\n //instance.retrievedItems = items;\r\n //instance.OnListRetrieved(onSuccess); \r\n \r\n model.results = items;\r\n resolve(model);\r\n }, function (sender, args) {\r\n console.log('error at getSearchResults(): ' + args.get_message());\r\n reject(MainHelper.userLanguageTerms.RequestFailedMessage + args.get_message() +\r\n '\\n' + args.get_stackTrace());\r\n });\r\n });\r\n }\r\n\r\n searchPostResultsToArray(model: any) {\r\n var _model = model;\r\n var hash = {};\r\n var items = [];\r\n var refiners = [];\r\n var refines = [];\r\n var totalItems = 0;\r\n var refinerCount = 0;\r\n if (model.results.d.postquery.PrimaryQueryResult.RelevantResults) {\r\n\r\n var cls = window[\"Models\"][model.modelName];\r\n $.each(model.results.d.postquery.PrimaryQueryResult.RelevantResults.Table.Rows.results, function () {\r\n var d = new cls(this);\r\n items.push(d);\r\n });\r\n\r\n totalItems = model.results.d.postquery.PrimaryQueryResult.RelevantResults.TotalRows;\r\n\r\n var cls = window[\"Models\"][\"Refiner2\"];\r\n $.each(model.results.d.postquery.PrimaryQueryResult.RefinementResults.Refiners.results, function () {\r\n var refName = this.Name;\r\n $(this.Entries.results).each(function (index, elem) {\r\n var desc = '';\r\n if (elem['RefinerName'] === 'emearmlanguage') {\r\n desc = MainHelper.userLanguageTerms['RMLanguageCode_' + elem['RefinementName']];\r\n } else if (elem['RefinerName'] === 'emearmpicturesize') {\r\n desc = MainHelper.userLanguageTerms['SearchRefiner_' + elem['RefinerName']] + '-' + elem['RefinementName'];\r\n } else if (elem['RefinerName'] === 'emearmcategory') {\r\n desc = MainHelper.userLanguageTerms['LitCat_' + elem['RefinementName'].toUpperCase()];\r\n } else {\r\n desc = elem['RefinementName'];\r\n }\r\n var d = new cls(elem, refName, desc);\r\n if (hash[d.refinerTitle] === undefined) {\r\n hash[d.refinerTitle] = [];\r\n }\r\n\r\n if (d.refinerTitle.indexOf('emeapgfacetlevel') === 0 || d.refinerTitle.indexOf('emeapgarea') === 0) {\r\n var vals = d.refineName.split('=');\r\n if (vals.length === 1) {\r\n d.refineDesc = vals[0];\r\n }\r\n else if (vals.length === 2) {\r\n d.refineDesc = MainHelper.userLanguageTerms['SearchPropId_' + vals[0]] + ' ' + vals[1];\r\n }\r\n else {\r\n d.refineDesc = d.refineName;\r\n }\r\n }\r\n\r\n hash[d.refinerTitle].push(d);\r\n });\r\n });\r\n if (_model.results.d.postquery.PrimaryQueryResult.RefinementResults.Refiners.results.length > 0) {\r\n $.each(Object.keys(hash), function (index, value) {\r\n var refiner = new Models.Refiners(hash[value], hash[value].length, value);\r\n refiners.push(refiner);\r\n });\r\n }\r\n\r\n }\r\n var sr = new Models.SearchResult(totalItems, items, refiners);\r\n return sr;\r\n }\r\n searchResultsToArray(model: any) {\r\n var hash = {};\r\n var items = [];\r\n var refiners = [];\r\n var refines = [];\r\n var totalItems = 0;\r\n var refinerCount = 0;\r\n if (model.results.m_value.ResultTables) {\r\n $.each(model.results.m_value.ResultTables, function (index, table) {\r\n if (table.TableType == \"RelevantResults\") {\r\n var cls = window[\"Models\"][model.modelName];\r\n $.each(this.ResultRows, function () {\r\n if (model.modelName === 'WebPages') {\r\n var d = new cls(this, MainHelper.userLanguageTerms);\r\n items.push(d);\r\n }\r\n else {\r\n var d = new cls(this);\r\n items.push(d);\r\n }\r\n });\r\n\r\n totalItems = table.TotalRows;\r\n }\r\n else if (table.TableType = \"RefinementResults\") {\r\n var cls = window[\"Models\"][\"Refiner\"];\r\n $.each(this.ResultRows, function () {\r\n var desc = '';\r\n if (this['RefinerName'] === 'emearmlanguage') {\r\n desc = MainHelper.userLanguageTerms['RMLanguageCode_' + this['RefinementName']];\r\n }\r\n else if (this['RefinerName'] === 'emearmpicturesize') {\r\n desc = MainHelper.userLanguageTerms['SearchRefiner_' + this['RefinerName']] + '-' + this['RefinementName'];\r\n }\r\n else if (this['RefinerName'] === 'emearmcategory') {\r\n desc = MainHelper.userLanguageTerms['LitCat_' + this['RefinementName'].toUpperCase()];\r\n } else {\r\n desc = this['RefinementName'];\r\n }\r\n var d = new cls(this, desc);\r\n if (hash[d.refinerTitle] === undefined) {\r\n hash[d.refinerTitle] = [];\r\n }\r\n\r\n if (d.refinerTitle.indexOf('emeapgfacetlevel') === 0) {\r\n var vals = d.refineName.split('=');\r\n if (vals.length === 1) {\r\n d.refineDesc = vals[0];\r\n }\r\n else if (vals.length === 2) {\r\n d.refineDesc = MainHelper.userLanguageTerms['SearchPropId_' + vals[0]] + ' ' + vals[1];\r\n }\r\n else {\r\n d.refineDesc = d.refineName;\r\n }\r\n }\r\n\r\n hash[d.refinerTitle].push(d);\r\n });\r\n if (this.ResultRows.length > 0) {\r\n $.each(Object.keys(hash), function (index, value) {\r\n var refiner = new Models.Refiners(hash[value], hash[value].length, value);\r\n refiners.push(refiner);\r\n });\r\n }\r\n }\r\n });\r\n }\r\n var sr = new Models.SearchResult(totalItems, items, refiners);\r\n return sr;\r\n }\r\n\r\n}\r\n"]}