{"version":3,"sources":["webpack:///./node_modules/@abaco/treatment-register-module/src/modules/treatment-register-module/api/TreatmentPlotApi.ts"],"names":["DEBOUNCE_TIME","TIME_TO_UPDATE","TreatmentPlotApi","http","apiRoot","state","lastUpdate","lastIncludeSupplyChain","this","pkCuaa","campaign","withWKT","include_supply_chain","Date","getTime","neverLoaded","plots","length","cacheExpired","subjectChanged","plot_subject_id","campaignChanged","wktParamChanged","inlcudeSupplyChainChanged","count","res","totalcount","getPlots","offset","curPage","records","paging","filter","resFilter","council_label","push","toUpperCase","plot_name","crop_label","crop_code","rotation","showOnlyBio","fullTextSearch","get","params","include_graphic","undefined","propsToDatePaged","data"],"mappings":"qPA6BMA,EAAgB,IAChBC,EAAiB,IAEFC,E,WAQjB,WAAYC,EAAkBC,EAAiBC,GAA4B,uBALnE,KAAAC,WAAa,EAEb,KAAAC,wBAAyB,EAI7BC,KAAKL,KAAOA,EACZK,KAAKJ,QAAUA,EACfI,KAAKH,MAAQA,E,4GAIV,WAAmBI,EAAgBC,EAAkBC,EAAkBC,GAAvE,+GACC,IAAIC,MAAOC,UAAYN,KAAKF,WAAaN,GAD1C,oDAIGe,EAA0C,IAA5BP,KAAKH,MAAMW,MAAMC,OAC/BC,GAAe,IAAIL,MAAOC,UAAYN,KAAKF,WAAaL,EACxDkB,GAAkBJ,GAAeP,KAAKH,MAAMW,MAAM,GAAGI,kBAAoBX,EACzEY,GAAmBN,GAAeP,KAAKH,MAAMW,MAAM,GAAGN,WAAaA,EACnEY,EAAkBX,GAAWA,IAAYA,EACzCY,EAA4BX,IAAyBJ,KAAKD,uBAChEC,KAAKD,uBAAyBK,IAAwB,IAClDG,GAAeG,GAAgBC,GAAkBE,GAAmBC,GAAmBC,GAXxF,iBAYCf,KAAKH,MAAMW,MAAQ,GACnBR,KAAKF,YAAa,IAAIO,MAAOC,UACzBU,EAAQ,EACRC,EAAc,GACdC,EAAa,EAhBlB,yBAmB2BlB,KAAKmB,SAASlB,EAAQC,EAAUC,EAASC,EAAsB,CAAEgB,OAAQJ,EAAOA,MAAO,MAnBlH,QAmBWK,EAnBX,OAoBKL,GAASK,EAAQL,MACjBE,EAAaG,EAAQH,WACrBD,EAAM,GAAH,sBAAOA,GAAP,eAAeI,EAAQC,UAtB/B,WAuBUN,EAAQE,EAvBlB,yBAyBClB,KAAKH,MAAMW,MAAQS,EAzBpB,iD,+IA8BA,WAAehB,EAAgBC,EAAkBC,EAAkBC,EAA+BmB,EAAsBC,GAAxH,gGACGC,EAAY,GAClB,OAAID,QAAJ,IAAIA,KAAQE,eACRD,EAAUE,KAAV,8BAAsCH,EAAOE,cAAcE,gBAE/D,OAAIJ,QAAJ,IAAIA,KAAQK,WACRJ,EAAUE,KAAV,0BAAkCH,EAAOK,UAAUD,gBAEvD,OAAIJ,QAAJ,IAAIA,KAAQM,YACRL,EAAUE,KAAV,2BAAmCH,EAAOM,WAAWF,gBAEzD,OAAIJ,QAAJ,IAAIA,KAAQO,WACRN,EAAUE,KAAV,yBAAiCH,EAAOO,UAAUH,gBAEtD,OAAIJ,QAAJ,IAAIA,KAAQQ,UACRP,EAAUE,KAAV,sBAA8BH,EAAOQ,WAEzC,OAAIR,QAAJ,IAAIA,KAAQS,aACRR,EAAUE,KAAV,eAEJ,OAAGH,QAAH,IAAGA,KAAQU,gBACPT,EAAUE,KAAV,iCAAyCH,EAAOU,eAAeN,gBArBhE,UAuBe5B,KAAKL,KAAKwC,IAAV,yDAAgElC,EAAhE,YAA0EC,EAA1E,UAA4F,CAC1GkC,OAAQ,CACJC,gBAAiBlC,EACjBC,qBAAsBA,EACtBgB,OAAQG,EAAOH,OACfJ,MAAOO,EAAOP,MACdQ,OAAQC,EAAUhB,OAASgB,OAAYa,KA7B5C,eAuBGrB,EAvBH,OAiCHsB,eAAiBtB,EAAIuB,KAAM,CAAC,eAjCzB,kBAkCIvB,EAAIuB,MAlCR,iD","file":"js/chunk-2d20fae8.5a688bdc.js","sourcesContent":["import { FilterPlot, Plot } from '@abaco/portal-global-state/src/modules/global-state/models/Plot';\nimport { HTTPClient, propsToDatePaged } from '@abaco/web-common/src/HTTP';\nimport GlobalStateVuexModule from '../state';\n\nclass PagingParams {\n offset = 0;\n count = 25;\n}\n\ninterface PagedResults\n{\n totalcount: number;\n offset: number;\n records: R[];\n count: number;\n}\n\ninterface Bbch {\n s_bbch_code: string;\n p_bbch_code: string;\n bbch_code: string;\n gender: string;\n sample_uri: string;\n bbch_description: string;\n fk_bbch_parent_code: string;\n}\n\n\n\nconst DEBOUNCE_TIME = 1000;\nconst TIME_TO_UPDATE = 1000 * 60 * 5;\n\nexport default class TreatmentPlotApi {\n private http: HTTPClient;\n private apiRoot: string;\n private lastUpdate = 0;\n private state: GlobalStateVuexModule;\n private lastIncludeSupplyChain = false;\n\n\n constructor(http: HTTPClient, apiRoot: string, state: GlobalStateVuexModule) {\n this.http = http;\n this.apiRoot = apiRoot;\n this.state = state;\n }\n\n\n public async loadAllPlots(pkCuaa: number, campaign: number, withWKT: boolean, include_supply_chain: boolean) {\n if (new Date().getTime() - this.lastUpdate < DEBOUNCE_TIME) {\n return;\n }\n const neverLoaded = this.state.plots.length === 0;\n const cacheExpired = new Date().getTime() - this.lastUpdate > TIME_TO_UPDATE;\n const subjectChanged = !neverLoaded && this.state.plots[0].plot_subject_id !== pkCuaa;\n const campaignChanged = !neverLoaded && this.state.plots[0].campaign !== campaign;\n const wktParamChanged = withWKT && withWKT !== withWKT;\n const inlcudeSupplyChainChanged = include_supply_chain !== this.lastIncludeSupplyChain;\n this.lastIncludeSupplyChain = include_supply_chain || false;\n if (neverLoaded || cacheExpired || subjectChanged || campaignChanged || wktParamChanged || inlcudeSupplyChainChanged) {\n this.state.plots = [];\n this.lastUpdate = new Date().getTime();\n let count = 0;\n let res: Plot[] = [];\n let totalcount = 0;\n\n do {\n const curPage = await this.getPlots(pkCuaa, campaign, withWKT, include_supply_chain, { offset: count, count: 300 })\n count += curPage.count;\n totalcount = curPage.totalcount;\n res = [...res, ...curPage.records];\n } while (count < totalcount)\n\n this.state.plots = res;\n }\n }\n\n\n public async getPlots(pkCuaa: number, campaign: number, withWKT: boolean, include_supply_chain: boolean, paging: PagingParams, filter?: FilterPlot): Promise> {\n const resFilter = [];\n if (filter?.council_label) {\n resFilter.push(`^council_label like ${filter.council_label.toUpperCase()}`)\n }\n if (filter?.plot_name) {\n resFilter.push(`^plot_name like ${filter.plot_name.toUpperCase()}`)\n }\n if (filter?.crop_label) {\n resFilter.push(`^crop_label like ${filter.crop_label.toUpperCase()}`)\n }\n if (filter?.crop_code) {\n resFilter.push(`crop_code like ${filter.crop_code.toUpperCase()}`)\n }\n if (filter?.rotation) {\n resFilter.push(`rotation eq ${filter.rotation}`)\n }\n if (filter?.showOnlyBio) {\n resFilter.push(`fg_bio eq 1`)\n }\n if(filter?.fullTextSearch) {\n resFilter.push(`^full_text_search like ${filter.fullTextSearch.toUpperCase()}`)\n }\n const res = await this.http.get(`/sitiagri-rest-api/api_basic/v1/plots/subjects/${pkCuaa}/${campaign}/plots`, {\n params: {\n include_graphic: withWKT,\n include_supply_chain: include_supply_chain,\n offset: paging.offset,\n count: paging.count,\n filter: resFilter.length ? resFilter : undefined,\n //sort: \"+plot_name\"\n }\n })\n propsToDatePaged(res.data, [\"valid_from\"])\n return res.data;\n }\n\n\n\n}\n"],"sourceRoot":""}