{"version":3,"file":"photostoreconnector.min.js","sources":["photostoreconnector.ts"],"sourcesContent":["namespace eXpress.core {\r\n\texport interface IPhotoStoreConnectorDependencies {\r\n\t\treadonly storageService: services.StorageService;\r\n\t\treadonly connectedToStoreAsync: (store: IPhotoStore | null) => Promise;\r\n\t}\r\n\r\n\texport class PhotoStoreConnector {\r\n\t\tprivate storageService: services.StorageService;\r\n\t\tprivate connectedToStoreAsync: (store: IPhotoStore | null) => Promise;\r\n\t\tprivate partnerWindow: Window | null = null;\r\n\t\tprivate broadcastChannel: BroadcastChannel;\r\n\r\n\t\tconstructor(deps: IPhotoStoreConnectorDependencies) {\r\n\t\t\tthis.storageService = deps.storageService;\r\n\t\t\tthis.connectedToStoreAsync = deps.connectedToStoreAsync;\r\n\t\t}\r\n\r\n\t\tpublic async connectToAsync(store: IPhotoStore): Promise {\r\n\t\t\tif (store.isConnected && store.hasAlbumAccess) {\r\n\t\t\t\tthis.connectedToStoreAsync(store);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (store instanceof partners.PartnerStore)\r\n\t\t\t\tthis.connectToPartnerStore(store);\r\n\t\t\telse\r\n\t\t\t\tawait this.connectToSmartphotoStoreAsync(store);\r\n\t\t}\r\n\r\n\t\tprivate connectToSmartphotoStoreAsync = async (store: core.ExpressStore): Promise => {\r\n\t\t\tcore.showLoadingDialogAsync(LoginPopup.createDialogAsync(true))\r\n\t\t\t\t.then($popup => new LoginPopup($popup).openAsync())\r\n\t\t\t\t.then(async (loginResult) => {\r\n\t\t\t\t\tif (!loginResult)\r\n\t\t\t\t\t\treturn this.connectedToStoreAsync(null);\r\n\t\t\t\t\tstore.isConnected = true;\r\n\t\t\t\t\tstore.hasAlbumAccess = true;\r\n\t\t\t\t\tstore.connectedUserName = loginResult.accountName;\r\n\t\t\t\t\tawait this.connectedToStoreAsync(store);\r\n\t\t\t\t});\r\n\t\t};\r\n\r\n\t\tprivate connectToPartnerStore = (store: core.partners.PartnerStore): void => {\r\n\t\t\tconst url = store.locatePhotosUrl + \"?inpopup\";\r\n\t\t\tconst windowSize = html.getWindowSize();\r\n\r\n\t\t\t// create and listen on a broadcastChannel\r\n\t\t\tthis.broadcastChannel = new BroadcastChannel(\"connectedToStorePartner\");\r\n\t\t\tthis.broadcastChannel.onmessage = this.connectedToStorePartnerAsync;\r\n\r\n\t\t\t// open login window of partner\r\n\t\t\tif (this.partnerWindow === null || this.partnerWindow.closed)\r\n\t\t\t\tthis.partnerWindow = window.open(url, \"partnerWindow\", `left=${windowSize.width > 1200 ? (windowSize.width - 1200) / 2 : 0},top=0,height=${windowSize.height},width=1200,status=no,toolbar=no,menubar=no,location=no,resizable=yes,scrollbars=yes`);\r\n\t\t\telse\r\n\t\t\t\tthis.partnerWindow.focus();\r\n\t\t};\r\n\r\n\t\tprivate connectedToStorePartnerAsync = async (event) => {\r\n\t\t\t//Close the channel\r\n\t\t\tif (this.broadcastChannel)\r\n\t\t\t\tthis.broadcastChannel.close();\r\n\r\n\t\t\tif (!event.data)\r\n\t\t\t\treturn;\r\n\t\t\tif (event.data.command !== 'connectedToStorePartner')\r\n\t\t\t\treturn;\r\n\r\n\t\t\tconst storeType: eXpress.core.StoreType = event.data.storeType;\r\n\t\t\tif (!storeType) {\r\n\t\t\t\tawait this.connectedToStoreAsync(null);\r\n\t\t\t}\r\n\r\n\t\t\tconst photoStores = await this.storageService.getPhotoStoresAsync(context.pointOfSaleId, context.languageCode);\r\n\t\t\tconst selectedstore = photoStores ? utils.findFirst(photoStores, s => s.storeType === storeType) : null;\r\n\t\t\tawait this.connectedToStoreAsync(selectedstore ?? null);\r\n\t\t};\r\n\t}\r\n}\r\n"],"names":["eXpress","core","PhotoStoreConnector","deps","_this","this","partnerWindow","connectToSmartphotoStoreAsync","store","__awaiter","showLoadingDialogAsync","LoginPopup","createDialogAsync","then","$popup","openAsync","loginResult","isConnected","hasAlbumAccess","connectedUserName","accountName","connectedToStoreAsync","_a","sent","connectToPartnerStore","url","locatePhotosUrl","windowSize","html","getWindowSize","broadcastChannel","BroadcastChannel","onmessage","connectedToStorePartnerAsync","closed","window","open","concat","width","height","focus","event","close","data","command","storeType","storageService","getPhotoStoresAsync","context","pointOfSaleId","languageCode","photoStores","selectedstore","utils","findFirst","s","prototype","connectToAsync","partners","PartnerStore"],"mappings":"IAAUA,8sDAAV,SAAUA,SAAQ,IAAAC,KAMjBC,oBANiBD,KAAAD,QAAIC,OAAJD,aA6EjB,CAAA,GAvEAE,oBAAA,WAMC,SAAAA,oBAAYC,MAAZ,IAGCC,MAAAC,KANOA,KAAaC,cAAkB,KAoB/BD,KAA6BE,8BAAG,SAAOC,OAAwB,OAAAC,UAAAL,WAAA,OAAA,GAAA,uEACtEH,KAAKS,uBAAuBT,KAAAU,WAAWC,mBAAkB,IACvDC,MAAK,SAAAC,QAAU,OAAA,IAAIb,KAAAU,WAAWG,QAAQC,eACtCF,MAAK,SAAOG,aAAW,OAAAP,UAAAL,WAAA,OAAA,GAAA,yEACvB,OAAKY,aAELR,MAAMS,aAAc,EACpBT,MAAMU,gBAAiB,EACvBV,MAAMW,kBAAoBH,YAAYI,YACtC,CAAA,EAAMf,KAAKgB,sBAAsBb,SAJhC,CAAA,EAAOH,KAAKgB,sBAAsB,qBAInCC,GAAAC,cACA,GAAA,eAGKlB,KAAqBmB,sBAAG,SAAChB,OAChC,IAAMiB,IAAMjB,MAAMkB,gBAAkB,WAC9BC,WAAa3B,QAAA4B,KAAKC,gBAGxBzB,MAAK0B,iBAAmB,IAAIC,iBAAiB,2BAC7C3B,MAAK0B,iBAAiBE,UAAY5B,MAAK6B,6BAGZ,OAAvB7B,MAAKE,eAA0BF,MAAKE,cAAc4B,OACrD9B,MAAKE,cAAgB6B,OAAOC,KAAKX,IAAK,gBAAiB,QAAQY,OAAAV,WAAWW,MAAQ,MAAQX,WAAWW,MAAQ,MAAQ,EAAI,EAAkB,kBAAAD,OAAAV,WAAWY,OAAM,yFAE5JnC,MAAKE,cAAckC,OACrB,EAEQnC,KAA4B4B,6BAAG,SAAOQ,OAAK,OAAAhC,UAAAL,WAAA,OAAA,GAAA,iHAKlD,OAHIC,KAAKyB,kBACRzB,KAAKyB,iBAAiBY,QAElBD,MAAME,KAEgB,4BAAvBF,MAAME,KAAKC,QACP,CAAA,IAEFC,UAAoCJ,MAAME,KAAKE,WACvC,CAAA,EAAA,GACb,CAAA,EAAMxC,KAAKgB,sBAAsB,OAN1B,CAAA,UAMPC,GAAAC,kBAGmB,KAAA,EAAA,MAAA,CAAA,EAAMlB,KAAKyC,eAAeC,oBAAoB9C,KAAA+C,QAAQC,cAAehD,KAAA+C,QAAQE,sBAEjG,OAFMC,YAAc7B,GAA0FC,OACxG6B,cAAgBD,YAAcnD,QAAAqD,MAAMC,UAAUH,aAAa,SAAAI,GAAK,OAAAA,EAAEV,YAAcA,SAAS,IAAI,KACnG,CAAA,EAAMxC,KAAKgB,sBAAsB+B,oBAAAA,cAAiB,qBAAlD9B,GAAAC,mBA7DAlB,KAAKyC,eAAiB3C,KAAK2C,eAC3BzC,KAAKgB,sBAAwBlB,KAAKkB,qBAClC,CA6DF,OA3DcnB,oBAAcsD,UAAAC,eAA3B,SAA4BjD,qHAC3B,OAAIA,MAAMS,aAAeT,MAAMU,gBAC9Bb,KAAKgB,sBAAsBb,OACpB,CAAA,IAGJA,iBAAiBP,KAAAyD,SAASC,cAC7BtD,KAAKmB,sBAA6ChB,cADT,CAAA,EAAA,GAGzC,KAAA,EAAA,MAAA,CAAA,EAAMH,KAAKE,8BAAiDC,eAA5Dc,GAAAC,yCACD,EAiDDrB,mBAAA,CAtED,GAAaD,KAAAC,uCAuEb,CA7ED,CAAUF,UAAAA,QA6ET,CAAA"}