{"version":3,"sources":["Honeywell.ClientModel.DataService.ts"],"names":["DataService","useRootContext","listName","modelName","viewXml","context","startIndex","fields","this","prototype","getContext","SP","ClientContext","Honeywell_ClientModel_MainHelper_1","MainHelper","getRootSiteUrl","get_current","getListItems","ctx","web","get_web","list","get_lists","getByTitle","query","CamlQuery","position","ListItemCollectionPosition","set_pagingInfo","set_listItemCollectionPosition","set_viewXml","lst","getItems","load","model","items","Q","Promise","resolve","reject","executeQueryAsync","sender","args","console","log","get_message","userLanguageTerms","RequestFailedMessage","get_stackTrace","listItemsToArray","itemCollection","iterator","getEnumerator","moveNext","item","cls","window","d","push","getItemCount","get_count","listToDictionary","exports"],"mappings":"qJAKA,IAAAA,GAAA,WACI,QAAAA,GAAoBC,EAAgCC,EAAyBC,EAA0BC,EAAyBC,EAAyCC,EAAkCC,OAA3E,KAAAF,IAAAA,EAAA,UAAyC,KAAAC,IAAAA,EAAA,UAAkC,KAAAC,IAAAA,EAAA,MAAvLC,KAAAP,eAAAA,EAAgCO,KAAAN,SAAAA,EAAyBM,KAAAL,UAAAA,EAA0BK,KAAAJ,QAAAA,EAAyBI,KAAAH,QAAAA,EAAyCG,KAAAF,WAAAA,EAAkCE,KAAAD,OAAAA,EA8F/M,MAxFIP,GAAAS,UAAAC,WAAA,SAAWT,GACP,MAAIA,GACO,GAAIU,IAAGC,cAAcC,EAAAC,WAAWC,kBAElB,MAAhBP,KAAKH,QACHG,KAAKH,QAGLM,GAAGC,cAAcI,eAOhChB,EAAAS,UAAAQ,aAAA,WACI,GAAIC,GAAMV,KAAKE,WAAWF,KAAKP,gBAC3BkB,EAAMD,EAAIE,UACVC,EAAOF,EAAIG,YAAYC,WAAWf,KAAKN,UACvCsB,EAAQ,GAAIb,IAAGc,SACnB,IAAuB,MAAnBjB,KAAKF,WAAoB,CACzB,GAAIoB,GAAW,GAAIf,IAAGgB,0BACtBD,GAASE,eAAe,mBAAqBpB,KAAKF,YAClDkB,EAAMK,+BAA+BH,GAEzCF,EAAMM,YAAYtB,KAAKJ,QAEvB,IAAI2B,GAAMV,EAAKW,SAASR,EACJ,QAAhBhB,KAAKD,OACLW,EAAIe,KAAKF,GAETb,EAAIe,KAAKF,EAAKvB,KAAKD,OAIvB,IAAI2B,IAAiB/B,UAAWK,KAAKL,UAAWgC,MAAOJ,EAEvD,OAAOK,GAAEC,QAAe,SAACC,EAAmDC,GAExErB,EAAIsB,kBACA,SAAUC,EAAaC,GAEnBR,EAAMC,MAAQJ,EACdO,EAAQJ,IAEZ,SAAUO,EAAaC,GACnBC,QAAQC,IAAI,4BAA8BF,EAAKG,eAE/CN,EAAO1B,EAAAC,WAAWgC,kBAAkBC,qBAAuBL,EAAKG,cAC5D,KAAOH,EAAKM,uBAUhChD,EAAAS,UAAAwC,iBAAA,SAAiBf,GAIb,IAHA,GAAIgB,GAAiBhB,EAAMC,MACvBgB,EAAWD,EAAeE,gBAC1BjB,KACGgB,EAASE,YAAY,CACxB,GAAIC,GAAOH,EAASnC,cAChBuC,EAAMC,OAAe,OAAEtB,EAAM/B,WAC7BsD,EAAI,GAAIF,GAAID,EAChBnB,GAAMuB,KAAKD,GAEf,MAAOtB,IAGXnC,EAAAS,UAAAkD,aAAA,SAAazB,GACYA,EAAMC,KAC3B,OAAOD,GAAMC,MAAMyB,aAQvB5D,EAAAS,UAAAoD,iBAAA,SAAiB3B,GACb,GAAIgB,GAAiBhB,EAAMC,MACvBgB,EAAWD,EAAeE,eAE9B,OAAO,KAAIG,EADDC,OAAe,OAAEtB,EAAM/B,YAClBgD,IAEvBnD,IA/Fa8D,GAAA9D,YAAAA","file":"Honeywell.ClientModel.DataService.js","sourcesContent":["/// \r\n/// \r\nimport {MainHelper} from \"./Honeywell.ClientModel.MainHelper\";\r\nimport * as Q from \"q\";\r\nexport type ModelItems = { modelName: string, items: SP.ListItemCollection };\r\nexport class DataService {\r\n constructor(private useRootContext: boolean, public listName: string, public modelName: string, public viewXml: string, private context: SP.ClientContext = null, public startIndex: number = null, public fields: any = null) {\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 if (this.context != null) {\r\n return this.context;\r\n }\r\n else {\r\n return SP.ClientContext.get_current();\r\n }\r\n }\r\n\r\n /**\r\n * Make a query to SharePoint and get a promise for ListItemCollection\r\n */\r\n getListItems() {\r\n var ctx = this.getContext(this.useRootContext);\r\n var web = ctx.get_web(),//get_site().get_rootWeb(),\r\n list = web.get_lists().getByTitle(this.listName);\r\n var query = new SP.CamlQuery();\r\n if (this.startIndex != null) {\r\n var position = new SP.ListItemCollectionPosition();\r\n position.set_pagingInfo(\"Paged=TRUE&p_ID=\" + this.startIndex);\r\n query.set_listItemCollectionPosition(position);\r\n }\r\n query.set_viewXml(this.viewXml);\r\n\r\n var lst = list.getItems(query);\r\n if (this.fields === null) {\r\n ctx.load(lst);\r\n } else {\r\n ctx.load(lst, this.fields);\r\n }\r\n\r\n type Model = { modelName: string, items: SP.ListItemCollection };\r\n var model: Model = { modelName: this.modelName, items: lst };\r\n //Creating a deferred object\r\n return Q.Promise((resolve: (val: Model | Q.IPromise) => void, reject: (reason: any) => void) => {\r\n\r\n ctx.executeQueryAsync(\r\n function (sender: any, args: SP.ClientRequestSucceededEventArgs) {\r\n //Resolve if success. Pass items\r\n model.items = lst;\r\n resolve(model);\r\n },\r\n function (sender: any, args: SP.ClientRequestFailedEventArgs) {\r\n console.log('error at getListItems(): ' + args.get_message());\r\n //Detailed error message in the case of failure\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 /**\r\n * Reformat the ListItemCollection as an array of the corresponding model classes.\r\n * Please note that I think the methods like this should be moved to the model classes\r\n * That way we don't lose type information.\r\n */\r\n listItemsToArray(model: ModelItems) {\r\n var itemCollection = model.items;\r\n var iterator = itemCollection.getEnumerator();\r\n var items = [];\r\n while (iterator.moveNext()) {\r\n var item = iterator.get_current();\r\n var cls = window[\"Models\"][model.modelName];\r\n var d = new cls(item);\r\n items.push(d);\r\n }\r\n return items;\r\n }\r\n\r\n getItemCount(model: ModelItems) {\r\n var itemCollection = model.items;\r\n return model.items.get_count();\r\n }\r\n\r\n /**\r\n * Reformat the ListItemCollection as an dictionary\r\n * Please note that I think the methods like this should be moved to the model classes\r\n * That way we don't lose type information.\r\n */\r\n listToDictionary(model: ModelItems) {\r\n var itemCollection = model.items;\r\n var iterator = itemCollection.getEnumerator();\r\n var cls = window[\"Models\"][model.modelName];\r\n return new cls(iterator);\r\n }\r\n}\r\n "]}