{"version":3,"sources":["estore/stock/supplier-order-info.ts"],"names":["ExtendedApiError","SupplierOrderInfo","HTMLElement","constructor","productId","super","this","markup","lines","length","map","l","join","attachShadow","mode","getProductIdAttr","productIdAttr","getAttribute","parseInt","update","load","attributeChangedCallback","newProductId","connectedCallback","response","fetch","dataResponse","json","hasError","render","result","shadowRoot","innerHTML","customElements","define"],"mappings":"OAASA,qBAAwB,kEAGpBC,0BAA0BC,YAMnCC,YAAYC,GACRC,QAJJC,KAAAC,OAAS,GAAoBC,GAASA,EAAMC,0DACWD,EAAME,IAAIC,UAAYA,UAAUC,KAAK,WAAa,KAIrGN,KAAKF,UAAYA,EACjBE,KAAKO,aAAa,CAACC,KAAM,SAG7BC,mBACI,IAAMC,EAAgBV,KAAKW,aAAa,cACxC,OAAID,GAAiBA,EAAcP,OACxBS,SAASF,GAGb,KAGXG,aAAaf,GACTE,KAAKF,UAAYA,QACXE,KAAKc,OAGfC,iCACI,IAAMC,EAAehB,KAAKS,mBAEtBO,SACMhB,KAAKa,OAAOG,GAI1BC,0BACSjB,KAAKF,YACNE,KAAKF,UAAYE,KAAKS,0BAGpBT,KAAKc,OAGfA,aACI,GAAId,KAAKF,UAAW,CAChB,MAAMoB,QAAiBC,2BAA2BnB,KAAKF,iCAEvD,IAAMsB,QAAqBF,EAASG,OAEpC,IAAKD,GAAgBA,EAAaE,SAC9B,MAAM,IAAI5B,iBAAiB0B,GAG/BpB,KAAKuB,OAAOH,EAAaI,SAIjCD,OAAOrB,GACHF,KAAKyB,WAAWC,UAAY1B,KAAKC,OAAOC,IAIhDyB,eAAeC,OAAO,sBAAuBjC,0BA7DhCA","file":"supplier-order-info.js","sourcesContent":["import { ExtendedApiError } from \"../../../components-shared/api/base/extended-api-error.js\";\nimport { IExtendedApiResponse } from \"../../../components-shared/api/base/i-extended-api-response.js\";\n\nexport class SupplierOrderInfo extends HTMLElement {\n productId: number;\n\n markup = (lines:string[]) => lines && lines.length ? \n `` : null;\n\n constructor(productId: number) {\n super();\n this.productId = productId;\n this.attachShadow({mode: \"open\"});\n }\n\n getProductIdAttr(): number {\n const productIdAttr = this.getAttribute(\"product-id\");\n if (productIdAttr && productIdAttr.length) {\n return parseInt(productIdAttr);\n }\n\n return null;\n }\n\n async update(productId: number) {\n this.productId = productId;\n await this.load();\n }\n\n async attributeChangedCallback() {\n const newProductId = this.getProductIdAttr();\n\n if (newProductId) {\n await this.update(newProductId);\n }\n }\n\n async connectedCallback() {\n if (!this.productId) {\n this.productId = this.getProductIdAttr();\n }\n\n await this.load();\n }\n\n async load(): Promise {\n if (this.productId) {\n const response = await fetch(`/api/estore/stock/${this.productId}/supplier-order-info`);\n\n const dataResponse = await response.json() as IExtendedApiResponse;\n\n if (!dataResponse || dataResponse.hasError) {\n throw new ExtendedApiError(dataResponse);\n }\n\n this.render(dataResponse.result);\n }\n }\n\n render(lines: string[]) {\n this.shadowRoot.innerHTML = this.markup(lines);\n }\n}\n\ncustomElements.define(\"supplier-order-info\", SupplierOrderInfo);"]}