@social-mail/social-mail-client 1.2.772 → 1.2.773

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -967,7 +967,7 @@ html, body {
967
967
  }
968
968
  }
969
969
 
970
- `.installLocal();stack=0;_export("default",BusyProgress=class BusyProgress{static create(){if(!container){container=document.createElement("div");container.className=css;const progressBar=document.createElement("div");progressBar.className="progress-bar";container.appendChild(progressBar);const progressBarValue=document.createElement("div");progressBarValue.className="progress-bar-value";progressBar.appendChild(progressBarValue);document.body.appendChild(container)}stack++;if(stack===1){container.setAttribute("data-show","true")}return{dispose(){stack--;if(stack<=0){container.removeAttribute("data-show")}}}}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/BusyProgress");System.register(["tslib","@web-atoms/core/dist/di/DISingleton","@web-atoms/entity/dist/services/BaseEntityService","@web-atoms/core/dist/di/Inject","@web-atoms/core/dist/App","./BusyProgress","../common/apiPath"],(function(_export,_context){"use strict";var __decorate,__metadata,DISingleton,BaseEntityService,Inject,App,BusyProgress,apiPath,EntityService;return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default},function(_webAtomsEntityDistServicesBaseEntityService){BaseEntityService=_webAtomsEntityDistServicesBaseEntityService.default},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_webAtomsCoreDistApp){App=_webAtomsCoreDistApp.App},function(_BusyProgress){BusyProgress=_BusyProgress.default},function(_commonApiPath){apiPath=_commonApiPath.apiPath}],execute:function(){EntityService=class EntityService extends BaseEntityService{constructor(){super(...arguments);this.queryProcessor="JavaScript";this.url=apiPath("/api/entity/")}postPageReady(){this.runAfterEnd((()=>window.pageReady=true))}createBusyIndicator(options){if(options.hideActivityIndicator){return}return BusyProgress.create()}};__decorate([Inject,__metadata("design:type",App)],EntityService.prototype,"app",void 0);EntityService=__decorate([DISingleton()],EntityService);_export("default",EntityService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/EntityService");System.register([],(function(_export,_context){"use strict";var Sql;return{setters:[],execute:function(){_export("Sql",Sql=void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/Sql");System.register(["tslib","./http/JsonError"],(function(_export,_context){"use strict";var __awaiter,JsonError,FetchBuilder;function buildUrl(strings,...p){let r="";for(let index=0;index<strings.length;index++){const element=strings[index];r+=element;if(index<p.length){r+=encodeURIComponent(p[index])}}return r}_export({buildUrl,default:void 0});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_httpJsonError){JsonError=_httpJsonError.default}],execute:function(){_export("default",FetchBuilder=class FetchBuilder{static get(url){return this.method(url,"GET")}static put(url){return this.method(url,"PUT")}static post(url){return this.method(url,"POST")}static delete(url){return this.method(url,"DELETE")}static method(url,method){return new FetchBuilder({url,method})}constructor(request){this.request=request}cancelToken(cancelToken){const ac=new AbortController;cancelToken.registerForCancel((()=>ac.abort()));return this.signal(ac.signal)}signal(signal){return this.append({signal})}form(name,value,fileName){var _a;if(value===void 0){return this}const body=(_a=this.request.body)!==null&&_a!==void 0?_a:new FormData;if(fileName){if(typeof value==="string"){throw new Error("value must be a blob with content type set correctly.")}body.append(name,value,fileName)}else{body.append(name,value)}return this.append({body})}jsonBody(body,encode=true){var _a;if(encode){body=JSON.stringify(body)}const headers=(_a=this.request.headers)!==null&&_a!==void 0?_a:{};headers["content-type"]="application/json";return this.append({body,headers})}header(name,value){var _a;const headers=(_a=this.request.headers)!==null&&_a!==void 0?_a:{};headers[name]=value;return this.append({headers})}path(name,value,encode=true){let url=this.request.url;if(encode){value=encodeURIComponent(value)}url=url.replace(name,value);return this.append({url})}query(name,value,encode=true){if(value===void 0){return this}let url=this.request.url;if(encode){value=encodeURIComponent(value)}name=encodeURIComponent(name);if(url.indexOf("?")===-1){url+=`?${name}=${value}`}else{url+=`&${name}=${value}`}return this.append({url})}responseAsText(ensureSuccess=true){return __awaiter(this,void 0,void 0,(function*(){const r=yield this.response();if(ensureSuccess){yield this.ensureSuccess(r)}return yield r.text()}))}responseAsBlob(ensureSuccess=true){return __awaiter(this,void 0,void 0,(function*(){const r=yield this.response();if(ensureSuccess){yield this.ensureSuccess(r)}return yield r.blob()}))}responseAsJson(ensureSuccess=true){return __awaiter(this,void 0,void 0,(function*(){const r=yield this.response();if(ensureSuccess){yield this.ensureSuccess(r)}return yield r.json()}))}response(){return fetch(this.request.url,this.request)}ensureSuccess(r){var _a,_b,_c,_d;return __awaiter(this,void 0,void 0,(function*(){if(r.status<=300){return}const type=r.headers.get("content-type");if(/\/json/i.test(type)){const json=yield r.json();throw new JsonError((_d=(_c=(_b=(_a=json.title)!==null&&_a!==void 0?_a:json.detail)!==null&&_b!==void 0?_b:json.message)!==null&&_c!==void 0?_c:json.exceptionMessage)!==null&&_d!==void 0?_d:"Json Server Error",json)}const text=yield r.text();throw new Error(`Failed for ${this.request.url}\n${text}`)}))}append(r){return new FetchBuilder(Object.assign(Object.assign({},this.request),r))}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/services/FetchBuilder");System.register(["tslib","@web-atoms/core/dist/di/DISingleton","@web-atoms/entity/dist/models/TaskManager","@web-atoms/core/dist/services/FetchBuilder"],(function(_export,_context){"use strict";var __awaiter,__decorate,DISingleton,TaskManager,FetchBuilder,EmailContentDownloader;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default},function(_webAtomsEntityDistModelsTaskManager){TaskManager=_webAtomsEntityDistModelsTaskManager.default},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default}],execute:function(){EmailContentDownloader=class EmailContentDownloader extends TaskManager{download(mce){return this.downloadFromUrl(mce.htmlBodyUrl,mce.email)}downloadFromUrl(url,email){return __awaiter(this,void 0,void 0,(function*(){if(!window.caches){const text=yield FetchBuilder.get(url).responseAsText();return email.htmlBody=text}const cache=yield window.caches.open("email-content-cache");const cacheKey=new URL(url,location.href);const content=yield cache.match(cacheKey);if(content){return email.htmlBody=yield content.text()}return yield this.run((()=>__awaiter(this,void 0,void 0,(function*(){for(let i=0;i<3;i++){try{const text=yield FetchBuilder.get(url).responseAsText();yield cache.put(cacheKey,new Response(text,{headers:{"cache-control":"public, max-age=86000"}}));return email.htmlBody=text}catch(error){console.error(error)}}}))))}))}};EmailContentDownloader=__decorate([DISingleton({})],EmailContentDownloader);_export("default",EmailContentDownloader)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/email/EmailContentDownloader");System.register(["tslib","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../../common/cache/CacheTTL","@web-atoms/date-time/dist/DateTime","../../../../services/email/EmailContentDownloader","@web-atoms/core/dist/di/DISingleton"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,Inject,EntityService,Email,EmailEngagement,CacheTTL,DateTime,EmailContentDownloader,DISingleton,cacheSeconds,EngagementService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){Email=_modelModel.Email;EmailEngagement=_modelModel.EmailEngagement},function(_commonCacheCacheTTL){CacheTTL=_commonCacheCacheTTL.CacheTTL},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default},function(_servicesEmailEmailContentDownloader){EmailContentDownloader=_servicesEmailEmailContentDownloader.default},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default}],execute:function(){cacheSeconds=CacheTTL.seconds.oneMonth;EngagementService=class EngagementService{downloadEngagements(email){return __awaiter(this,void 0,void 0,(function*(){try{const{emailID}=email;let now=DateTime.now;const minute=Math.floor(now.minute/5);now=now.addMinutes(-minute);const cacheVersion=email.dateUpdated?DateTime.from(email.dateUpdated).msSinceEpoch.toString(36):"-";email.engagements=yield this.entityService.query(EmailEngagement).where({emailID},(p=>x=>x.emailID===p.emailID)).toArray({cacheVersion,cacheSeconds:300})}catch(error){console.error(error)}}))}list({start=0,size=50,engagement="",emailID=0,mailboxID=0,emailAddressID=0,dateUpdated=null}){return __awaiter(this,void 0,void 0,(function*(){const q=this.entityService.query(Email).where({mailboxID,emailAddressID,engagement,emailID},(p=>x=>x.engagement===p.engagement&&x.parentID===p.emailID));const cacheVersion=dateUpdated?DateTime.from(dateUpdated).msSinceEpoch.toString(36):"-";const list=yield q.toPagedList({start,size,cacheVersion,cacheSeconds});return list}))}};__decorate([Inject,__metadata("design:type",EntityService)],EngagementService.prototype,"entityService",void 0);__decorate([Inject,__metadata("design:type",EmailContentDownloader)],EngagementService.prototype,"emailContentDownloader",void 0);EngagementService=__decorate([DISingleton()],EngagementService);_export("default",EngagementService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/service/EngagementService");System.register(["tslib","@web-atoms/core/dist/di/DISingleton","@web-atoms/core/dist/di/Inject","../../services/EntityService","../../model/model","../../common/Sql","../../services/email/EmailContentDownloader","../../web/page/mails/service/EngagementService","../../common/apiPath","../../common/cache/CacheTTL","../../common/CDN"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DISingleton,Inject,EntityService,Email,Mailbox,MailboxEmail,Sql,EmailContentDownloader,EngagementService,apiPath,CacheTTL,CDN,cacheVersion,updateAttachments,BlogService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){Email=_modelModel.Email;Mailbox=_modelModel.Mailbox;MailboxEmail=_modelModel.MailboxEmail},function(_commonSql){Sql=_commonSql.Sql},function(_servicesEmailEmailContentDownloader){EmailContentDownloader=_servicesEmailEmailContentDownloader.default},function(_webPageMailsServiceEngagementService){EngagementService=_webPageMailsServiceEngagementService.default},function(_commonApiPath){apiPath=_commonApiPath.apiPath},function(_commonCacheCacheTTL){CacheTTL=_commonCacheCacheTTL.CacheTTL},function(_commonCDN){CDN=_commonCDN.CDN}],execute:function(){cacheVersion="1a";updateAttachments=(channelID,email)=>{if(email.attachments){for(const iterator of email.attachments){if(/^video\//i.test(iterator.contentType)){iterator.url=CDN.toCDNUrl(apiPath(`/social-mail/c/d/${location.hostname}/webm-branded/${iterator.postID}/${iterator.appFileID}/2-${iterator.name}/${iterator.name}.3.webm`));continue}iterator.url=CDN.toCDNUrl(apiPath(`/social-mail/c/d/${location.hostname}/view/${iterator.postID}/${iterator.appFileID}/${iterator.name}`))}}};BlogService=class BlogService{getEmail({emailID,channelID,channel}){return __awaiter(this,void 0,void 0,(function*(){const email=yield this.entityService.query(Email,"channelEmails",channelID).where({emailID},(p=>x=>x.emailID===p.emailID)).include((x=>[x.engagements,x.emailTags.forEach((t=>t.tag)),x.attachments])).firstOrDefault();updateAttachments(channelID,email);yield this.downloader.downloadFromUrl(apiPath(`/social-mail/c/c/${channel}/${email.postID}`),email);email.children=yield this.entityService.query(Email,"channelEmails",channelID).where({emailID},(p=>x=>x.parentID===p.emailID&&x.status==="published")).include((x=>[x.engagements,x.emailTags.forEach((t=>t.tag)),x.attachments])).toArray({});return email}))}getEmails({channelID=0,parentID=0,author="",tag="",search="",start=0,size=10,cancelToken}){return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(MailboxEmail,"channelEmails",channelID).where((x=>x.datePublished!==null));if(parentID){q=q.where({parentID},(p=>x=>x.email.parentID===p.parentID))}else{q=q.where({channelID},(p=>x=>x.isThread===true&&x.mailboxID===p.channelID))}if(search){q=q.where({search},(p=>x=>Sql.text.includes(x.email.textBody,p.search)||Sql.text.includes(x.email.subject,p.search)))}if(tag){q=q.where({tag},(p=>x=>x.email.emailTags.some((t=>t.tag.lowerCaseName===p.tag))))}if(author){q=q.where({author},(p=>x=>x.email.senderName===p.author))}const mailboxEmails=yield q.include((x=>[x.email.attachments,x.email.engagements,x.email.emailTags.forEach((t=>t.tag))])).orderByDescending((x=>x.dateUpdated)).toPagedList({start,size,cancelToken});const tasks=[];for(const{postID,email}of mailboxEmails.items){tasks.push(this.downloader.downloadFromUrl(apiPath(`/social-mail/c/c/${channelID}/${postID}`),email));updateAttachments(channelID,email)}yield Promise.all(tasks);return mailboxEmails}))}getChannel(emailAddress,channel,d){return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(Mailbox,"channels",emailAddress,d).where((x=>x.datePublished!==null));if(channel===null||channel===void 0?void 0:channel.startsWith("@")){channel=channel.substring(1).toLowerCase()+"@%";q=q.where({channel},(p=>x=>Sql.text.like(x.emailAddress.emailAddress,p.channel)))}const c=yield q.include((x=>x.emailAddress)).orderByDescending((x=>x.datePublished)).firstOrDefault({cacheVersion,cacheSeconds:CacheTTL.seconds.oneHour});return c}))}};__decorate([Inject,__metadata("design:type",EntityService)],BlogService.prototype,"entityService",void 0);__decorate([Inject,__metadata("design:type",EmailContentDownloader)],BlogService.prototype,"downloader",void 0);__decorate([Inject,__metadata("design:type",EngagementService)],BlogService.prototype,"engagementService",void 0);BlogService=__decorate([DISingleton()],BlogService);_export("default",BlogService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/channel/BlogService");System.register(["@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/style/styled","../UrlService"],(function(_export,_context){"use strict";var XNode,styled,UrlService;function BlogHeader({channel,search}){return XNode.create("header",{class:"blog-header"},XNode.create("div",null,XNode.create("span",{text:channel.emailAddress.name}),XNode.create("share-button",{class:"follow",href:`mailto:subscribe-${channel.emailAddress.emailAddress}?subject=subscribe`},"Follow")),search&&XNode.create("div",{class:"search"},XNode.create("input",{placeholder:"Search...",value:search})),XNode.create("div",{"data-layout":"row"},XNode.create("a",{href:UrlService.toSectionUrl(channel,"photos")},"Photos"),XNode.create("a",{href:UrlService.toSectionUrl(channel,"videos")},"Videos")))}_export("default",BlogHeader);return{setters:[function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_UrlService){UrlService=_UrlService.UrlService}],execute:function(){styled.css`
970
+ `.installLocal();stack=0;_export("default",BusyProgress=class BusyProgress{static create(){if(!container){container=document.createElement("div");container.className=css;const progressBar=document.createElement("div");progressBar.className="progress-bar";container.appendChild(progressBar);const progressBarValue=document.createElement("div");progressBarValue.className="progress-bar-value";progressBar.appendChild(progressBarValue);document.body.appendChild(container)}stack++;if(stack===1){container.setAttribute("data-show","true")}return{dispose(){stack--;if(stack<=0){container.removeAttribute("data-show")}}}}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/BusyProgress");System.register(["tslib","@web-atoms/core/dist/di/DISingleton","@web-atoms/entity/dist/services/BaseEntityService","@web-atoms/core/dist/di/Inject","@web-atoms/core/dist/App","./BusyProgress","../common/apiPath"],(function(_export,_context){"use strict";var __decorate,__metadata,DISingleton,BaseEntityService,Inject,App,BusyProgress,apiPath,EntityService;return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default},function(_webAtomsEntityDistServicesBaseEntityService){BaseEntityService=_webAtomsEntityDistServicesBaseEntityService.default},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_webAtomsCoreDistApp){App=_webAtomsCoreDistApp.App},function(_BusyProgress){BusyProgress=_BusyProgress.default},function(_commonApiPath){apiPath=_commonApiPath.apiPath}],execute:function(){EntityService=class EntityService extends BaseEntityService{constructor(){super(...arguments);this.queryProcessor="JavaScript";this.url=apiPath("/api/entity/")}postPageReady(){this.runAfterEnd((()=>window.pageReady=true))}createBusyIndicator(options){if(options.hideActivityIndicator){return}return BusyProgress.create()}};__decorate([Inject,__metadata("design:type",App)],EntityService.prototype,"app",void 0);EntityService=__decorate([DISingleton()],EntityService);_export("default",EntityService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/EntityService");System.register([],(function(_export,_context){"use strict";var Sql;return{setters:[],execute:function(){_export("Sql",Sql=void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/Sql");System.register(["tslib","./http/JsonError"],(function(_export,_context){"use strict";var __awaiter,JsonError,FetchBuilder;function buildUrl(strings,...p){let r="";for(let index=0;index<strings.length;index++){const element=strings[index];r+=element;if(index<p.length){r+=encodeURIComponent(p[index])}}return r}_export({buildUrl,default:void 0});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_httpJsonError){JsonError=_httpJsonError.default}],execute:function(){_export("default",FetchBuilder=class FetchBuilder{static get(url){return this.method(url,"GET")}static put(url){return this.method(url,"PUT")}static post(url){return this.method(url,"POST")}static delete(url){return this.method(url,"DELETE")}static method(url,method){return new FetchBuilder({url,method})}constructor(request){this.request=request}cancelToken(cancelToken){const ac=new AbortController;cancelToken.registerForCancel((()=>ac.abort()));return this.signal(ac.signal)}signal(signal){return this.append({signal})}form(name,value,fileName){var _a;if(value===void 0){return this}const body=(_a=this.request.body)!==null&&_a!==void 0?_a:new FormData;if(fileName){if(typeof value==="string"){throw new Error("value must be a blob with content type set correctly.")}body.append(name,value,fileName)}else{body.append(name,value)}return this.append({body})}jsonBody(body,encode=true){var _a;if(encode){body=JSON.stringify(body)}const headers=(_a=this.request.headers)!==null&&_a!==void 0?_a:{};headers["content-type"]="application/json";return this.append({body,headers})}header(name,value){var _a;const headers=(_a=this.request.headers)!==null&&_a!==void 0?_a:{};headers[name]=value;return this.append({headers})}path(name,value,encode=true){let url=this.request.url;if(encode){value=encodeURIComponent(value)}url=url.replace(name,value);return this.append({url})}query(name,value,encode=true){if(value===void 0){return this}let url=this.request.url;if(encode){value=encodeURIComponent(value)}name=encodeURIComponent(name);if(url.indexOf("?")===-1){url+=`?${name}=${value}`}else{url+=`&${name}=${value}`}return this.append({url})}responseAsText(ensureSuccess=true){return __awaiter(this,void 0,void 0,(function*(){const r=yield this.response();if(ensureSuccess){yield this.ensureSuccess(r)}return yield r.text()}))}responseAsBlob(ensureSuccess=true){return __awaiter(this,void 0,void 0,(function*(){const r=yield this.response();if(ensureSuccess){yield this.ensureSuccess(r)}return yield r.blob()}))}responseAsJson(ensureSuccess=true){return __awaiter(this,void 0,void 0,(function*(){const r=yield this.response();if(ensureSuccess){yield this.ensureSuccess(r)}return yield r.json()}))}response(){return fetch(this.request.url,this.request)}ensureSuccess(r){var _a,_b,_c,_d;return __awaiter(this,void 0,void 0,(function*(){if(r.status<=300){return}const type=r.headers.get("content-type");if(/\/json/i.test(type)){const json=yield r.json();throw new JsonError((_d=(_c=(_b=(_a=json.title)!==null&&_a!==void 0?_a:json.detail)!==null&&_b!==void 0?_b:json.message)!==null&&_c!==void 0?_c:json.exceptionMessage)!==null&&_d!==void 0?_d:"Json Server Error",json)}const text=yield r.text();throw new Error(`Failed for ${this.request.url}\n${text}`)}))}append(r){return new FetchBuilder(Object.assign(Object.assign({},this.request),r))}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/services/FetchBuilder");System.register(["tslib","@web-atoms/core/dist/di/DISingleton","@web-atoms/entity/dist/models/TaskManager","@web-atoms/core/dist/services/FetchBuilder"],(function(_export,_context){"use strict";var __awaiter,__decorate,DISingleton,TaskManager,FetchBuilder,EmailContentDownloader_1,EmailContentDownloader;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default},function(_webAtomsEntityDistModelsTaskManager){TaskManager=_webAtomsEntityDistModelsTaskManager.default},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default}],execute:function(){EmailContentDownloader=EmailContentDownloader_1=class EmailContentDownloader extends TaskManager{download(mce){return this.downloadFromUrl(mce.htmlBodyUrl,mce.email)}downloadFromUrl(url,email){return __awaiter(this,void 0,void 0,(function*(){if(EmailContentDownloader_1){const text=yield FetchBuilder.get(url).responseAsText();return email.htmlBody=text}const cache=yield window.caches.open("email-content-cache");const cacheKey=new URL(url,location.href);const content=yield cache.match(cacheKey);if(content){return email.htmlBody=yield content.text()}return yield this.run((()=>__awaiter(this,void 0,void 0,(function*(){for(let i=0;i<3;i++){try{const text=yield FetchBuilder.get(url).responseAsText();yield cache.put(cacheKey,new Response(text,{headers:{"cache-control":"public, max-age=86000"}}));return email.htmlBody=text}catch(error){console.error(error)}}}))))}))}};EmailContentDownloader=EmailContentDownloader_1=__decorate([DISingleton({})],EmailContentDownloader);_export("default",EmailContentDownloader)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/email/EmailContentDownloader");System.register(["tslib","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../../common/cache/CacheTTL","@web-atoms/date-time/dist/DateTime","../../../../services/email/EmailContentDownloader","@web-atoms/core/dist/di/DISingleton"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,Inject,EntityService,Email,EmailEngagement,CacheTTL,DateTime,EmailContentDownloader,DISingleton,cacheSeconds,EngagementService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){Email=_modelModel.Email;EmailEngagement=_modelModel.EmailEngagement},function(_commonCacheCacheTTL){CacheTTL=_commonCacheCacheTTL.CacheTTL},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default},function(_servicesEmailEmailContentDownloader){EmailContentDownloader=_servicesEmailEmailContentDownloader.default},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default}],execute:function(){cacheSeconds=CacheTTL.seconds.oneMonth;EngagementService=class EngagementService{downloadEngagements(email){return __awaiter(this,void 0,void 0,(function*(){try{const{emailID}=email;let now=DateTime.now;const minute=Math.floor(now.minute/5);now=now.addMinutes(-minute);const cacheVersion=email.dateUpdated?DateTime.from(email.dateUpdated).msSinceEpoch.toString(36):"-";email.engagements=yield this.entityService.query(EmailEngagement).where({emailID},(p=>x=>x.emailID===p.emailID)).toArray({cacheVersion,cacheSeconds:300})}catch(error){console.error(error)}}))}list({start=0,size=50,engagement="",emailID=0,mailboxID=0,emailAddressID=0,dateUpdated=null}){return __awaiter(this,void 0,void 0,(function*(){const q=this.entityService.query(Email).where({mailboxID,emailAddressID,engagement,emailID},(p=>x=>x.engagement===p.engagement&&x.parentID===p.emailID));const cacheVersion=dateUpdated?DateTime.from(dateUpdated).msSinceEpoch.toString(36):"-";const list=yield q.toPagedList({start,size,cacheVersion,cacheSeconds});return list}))}};__decorate([Inject,__metadata("design:type",EntityService)],EngagementService.prototype,"entityService",void 0);__decorate([Inject,__metadata("design:type",EmailContentDownloader)],EngagementService.prototype,"emailContentDownloader",void 0);EngagementService=__decorate([DISingleton()],EngagementService);_export("default",EngagementService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/service/EngagementService");System.register(["tslib","@web-atoms/core/dist/di/DISingleton","@web-atoms/core/dist/di/Inject","../../services/EntityService","../../model/model","../../common/Sql","../../services/email/EmailContentDownloader","../../web/page/mails/service/EngagementService","../../common/apiPath","../../common/cache/CacheTTL","../../common/CDN"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DISingleton,Inject,EntityService,Email,Mailbox,MailboxEmail,Sql,EmailContentDownloader,EngagementService,apiPath,CacheTTL,CDN,cacheVersion,updateAttachments,BlogService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){Email=_modelModel.Email;Mailbox=_modelModel.Mailbox;MailboxEmail=_modelModel.MailboxEmail},function(_commonSql){Sql=_commonSql.Sql},function(_servicesEmailEmailContentDownloader){EmailContentDownloader=_servicesEmailEmailContentDownloader.default},function(_webPageMailsServiceEngagementService){EngagementService=_webPageMailsServiceEngagementService.default},function(_commonApiPath){apiPath=_commonApiPath.apiPath},function(_commonCacheCacheTTL){CacheTTL=_commonCacheCacheTTL.CacheTTL},function(_commonCDN){CDN=_commonCDN.CDN}],execute:function(){cacheVersion="1a";updateAttachments=(channelID,email)=>{if(email.attachments){for(const iterator of email.attachments){if(/^video\//i.test(iterator.contentType)){iterator.url=CDN.toCDNUrl(apiPath(`/social-mail/c/d/${location.hostname}/webm-branded/${iterator.postID}/${iterator.appFileID}/2-${iterator.name}/${iterator.name}.3.webm`));continue}iterator.url=CDN.toCDNUrl(apiPath(`/social-mail/c/d/${location.hostname}/view/${iterator.postID}/${iterator.appFileID}/${iterator.name}`))}}};BlogService=class BlogService{getEmail({emailID,channelID,channel}){return __awaiter(this,void 0,void 0,(function*(){const email=yield this.entityService.query(Email,"channelEmails",channelID).where({emailID},(p=>x=>x.emailID===p.emailID)).include((x=>[x.engagements,x.emailTags.forEach((t=>t.tag)),x.attachments])).firstOrDefault();updateAttachments(channelID,email);yield this.downloader.downloadFromUrl(apiPath(`/social-mail/c/c/${channel}/${email.postID}`),email);email.children=yield this.entityService.query(Email,"channelEmails",channelID).where({emailID},(p=>x=>x.parentID===p.emailID&&x.status==="published")).include((x=>[x.engagements,x.emailTags.forEach((t=>t.tag)),x.attachments])).toArray({});return email}))}getEmails({channelID=0,parentID=0,author="",tag="",search="",start=0,size=10,cancelToken}){return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(MailboxEmail,"channelEmails",channelID).where((x=>x.datePublished!==null));if(parentID){q=q.where({parentID},(p=>x=>x.email.parentID===p.parentID))}else{q=q.where({channelID},(p=>x=>x.isThread===true&&x.mailboxID===p.channelID))}if(search){q=q.where({search},(p=>x=>Sql.text.includes(x.email.textBody,p.search)||Sql.text.includes(x.email.subject,p.search)))}if(tag){q=q.where({tag},(p=>x=>x.email.emailTags.some((t=>t.tag.lowerCaseName===p.tag))))}if(author){q=q.where({author},(p=>x=>x.email.senderName===p.author))}const mailboxEmails=yield q.include((x=>[x.email.attachments,x.email.engagements,x.email.emailTags.forEach((t=>t.tag))])).orderByDescending((x=>x.dateUpdated)).toPagedList({start,size,cancelToken});const tasks=[];for(const{postID,email}of mailboxEmails.items){tasks.push(this.downloader.downloadFromUrl(apiPath(`/social-mail/c/c/${channelID}/${postID}`),email));updateAttachments(channelID,email)}yield Promise.all(tasks);return mailboxEmails}))}getChannel(emailAddress,channel,d){return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(Mailbox,"channels",emailAddress,d).where((x=>x.datePublished!==null));if(channel===null||channel===void 0?void 0:channel.startsWith("@")){channel=channel.substring(1).toLowerCase()+"@%";q=q.where({channel},(p=>x=>Sql.text.like(x.emailAddress.emailAddress,p.channel)))}const c=yield q.include((x=>x.emailAddress)).orderByDescending((x=>x.datePublished)).firstOrDefault({cacheVersion,cacheSeconds:CacheTTL.seconds.oneHour});return c}))}};__decorate([Inject,__metadata("design:type",EntityService)],BlogService.prototype,"entityService",void 0);__decorate([Inject,__metadata("design:type",EmailContentDownloader)],BlogService.prototype,"downloader",void 0);__decorate([Inject,__metadata("design:type",EngagementService)],BlogService.prototype,"engagementService",void 0);BlogService=__decorate([DISingleton()],BlogService);_export("default",BlogService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/channel/BlogService");System.register(["@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/style/styled","../UrlService"],(function(_export,_context){"use strict";var XNode,styled,UrlService;function BlogHeader({channel,search}){return XNode.create("header",{class:"blog-header"},XNode.create("div",null,XNode.create("span",{text:channel.emailAddress.name}),XNode.create("share-button",{class:"follow",href:`mailto:subscribe-${channel.emailAddress.emailAddress}?subject=subscribe`},"Follow")),search&&XNode.create("div",{class:"search"},XNode.create("input",{placeholder:"Search...",value:search})),XNode.create("div",{"data-layout":"row"},XNode.create("a",{href:UrlService.toSectionUrl(channel,"photos")},"Photos"),XNode.create("a",{href:UrlService.toSectionUrl(channel,"videos")},"Videos")))}_export("default",BlogHeader);return{setters:[function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_UrlService){UrlService=_UrlService.UrlService}],execute:function(){styled.css`
971
971
  display: flex;
972
972
  flex-direction: column;
973
973
  flex-wrap: nowrap;