@social-mail/social-mail-client 1.0.74 → 1.0.76
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.
- package/dist/admin/AdminAppIndex.pack.js +40 -27
- package/dist/admin/AdminAppIndex.pack.js.map +1 -1
- package/dist/admin/AdminAppIndex.pack.min.js +6 -14
- package/dist/admin/AdminAppIndex.pack.min.js.map +1 -1
- package/dist/common/pages/drives/DriveListPage.js +10 -5
- package/dist/common/pages/drives/DriveListPage.js.map +1 -1
- package/dist/common/pages/user/change-password/ChangePasswordPage.js +2 -1
- package/dist/common/pages/user/change-password/ChangePasswordPage.js.map +1 -1
- package/dist/services/files/LocalFileService.js +5 -3
- package/dist/services/files/LocalFileService.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/web/AppIndex.pack.js +43 -27
- package/dist/web/AppIndex.pack.js.map +1 -1
- package/dist/web/AppIndex.pack.min.js +7 -15
- package/dist/web/AppIndex.pack.min.js.map +1 -1
- package/dist/web/drawer/AppDrawer.js +3 -0
- package/dist/web/drawer/AppDrawer.js.map +1 -1
- package/dist/web/page/files/FolderPage.js +1 -0
- package/dist/web/page/files/FolderPage.js.map +1 -1
- package/node_modules/@web-atoms/web-controls/dist/basic/InlinePopup.d.ts.map +1 -1
- package/node_modules/@web-atoms/web-controls/dist/basic/InlinePopup.js +10 -8
- package/node_modules/@web-atoms/web-controls/dist/basic/InlinePopup.js.map +1 -1
- package/node_modules/@web-atoms/web-controls/dist/basic/styles/inline-popup-style.js +0 -5
- package/node_modules/@web-atoms/web-controls/dist/basic/styles/inline-popup-style.js.map +1 -1
- package/node_modules/@web-atoms/web-controls/dist/mobile-app/MobileApp.d.ts.map +1 -1
- package/node_modules/@web-atoms/web-controls/dist/mobile-app/MobileApp.js +12 -5
- package/node_modules/@web-atoms/web-controls/dist/mobile-app/MobileApp.js.map +1 -1
- package/node_modules/@web-atoms/web-controls/dist/player/AtomVideoPlayer.d.ts +1 -0
- package/node_modules/@web-atoms/web-controls/dist/player/AtomVideoPlayer.d.ts.map +1 -1
- package/node_modules/@web-atoms/web-controls/dist/player/AtomVideoPlayer.js +18 -2
- package/node_modules/@web-atoms/web-controls/dist/player/AtomVideoPlayer.js.map +1 -1
- package/node_modules/@web-atoms/web-controls/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@web-atoms/web-controls/package.json +1 -1
- package/node_modules/@web-atoms/web-controls/src/basic/InlinePopup.tsx +5 -5
- package/node_modules/@web-atoms/web-controls/src/basic/styles/inline-popup-style.ts +4 -5
- package/node_modules/@web-atoms/web-controls/src/mobile-app/MobileApp.tsx +12 -4
- package/node_modules/@web-atoms/web-controls/src/player/AtomVideoPlayer.tsx +16 -1
- package/package.json +2 -2
- package/src/common/pages/drives/DriveListPage.tsx +7 -1
- package/src/common/pages/user/change-password/ChangePasswordPage.tsx +1 -1
- package/src/services/files/LocalFileService.tsx +3 -1
- package/src/web/drawer/AppDrawer.tsx +4 -0
- package/src/web/page/files/FolderPage.tsx +1 -0
|
@@ -354,10 +354,6 @@ and limitations under the License.
|
|
|
354
354
|
justify-self: stretch;
|
|
355
355
|
grid-row-start: 1;
|
|
356
356
|
grid-column-start: 2;
|
|
357
|
-
overflow: hidden;
|
|
358
|
-
overflow-y: visible;
|
|
359
|
-
white-space: nowrap;
|
|
360
|
-
text-overflow: ellipsis;
|
|
361
357
|
color: var(--accent-text-color, black);
|
|
362
358
|
}
|
|
363
359
|
|
|
@@ -494,7 +490,7 @@ and limitations under the License.
|
|
|
494
490
|
overflow: hidden;
|
|
495
491
|
}
|
|
496
492
|
}
|
|
497
|
-
`.installGlobal();_export("Drawer",Drawer=class Drawer extends AtomControl{init(){}preCreate(){this.element.dataset.drawerPage="drawer-page";this.bindEvent(this.element,"click",(e=>e.defaultPrevented?null:this.closeDrawer()));this.runAfterInit((()=>this.app.runAsync((()=>{var _b;return(_b=this.init)===null||_b===void 0?void 0:_b.call(this)}))))}closeDrawer(){const ce=new CustomEvent("closeDrawer",{bubbles:true});this.element.dispatchEvent(ce)}});delete Drawer.prototype.init;historyBackCalled=false;_export("BasePage",BasePage=class BasePage extends AtomControl{constructor(){super(...arguments);this.disableAutoFocus=false}get route(){return this.routeUrl}set route(url){var _b,_c;if(!url){return}if(((_b=history.state)===null||_b===void 0?void 0:_b.url)===url){return}url=Route.encodeUrl(url);if(this.routeUrl===url){return}this.routeUrl=url;(_c=this.reouteDisposable)===null||_c===void 0?void 0:_c.dispose();let last=void 0;setTimeout((()=>last=url),100);const state={url};history.pushState(state,"",url);const eventRegistration=e=>{var _b;if(historyBackCalled){return}if(((_b=e.state)===null||_b===void 0?void 0:_b.url)===last){this.cancel()}};window.addEventListener("popstate",eventRegistration);const d={dispose(){var _b;window.removeEventListener("popstate",eventRegistration);if(((_b=history.state)===null||_b===void 0?void 0:_b.url)===state.url){historyBackCalled=true;history.back();setTimeout((()=>historyBackCalled=false),500)}}};this.reouteDisposable=this.registerDisposable(d)}get hideToolbar(){var _b,_c;return((_c=(_b=this.element)===null||_b===void 0?void 0:_b.dataset)===null||_c===void 0?void 0:_c.hideToolbar)?true:false}set hideToolbar(v){this.element.dataset.hideToolbar=v?"true":"false"}requestCancel(){return __awaiter(this,void 0,void 0,(function*(){if(this.closeWarning){if(!(yield PopupService.confirm({message:this.closeWarning}))){return}}this.cancel()}))}onPropertyChanged(name){var _b;super.onPropertyChanged(name);switch(name){case"footerRenderer":this.recreate(name,"footer");break;case"iconRenderer":this.recreate(name,"icon");break;case"titleRenderer":this.recreate(name,"title");break;case"actionRenderer":this.recreate(name,"action");break;case"headerRenderer":this.recreate(name,"header");break;case"pullToRefreshRenderer":this.pullToRefreshElement=this.recreate(name,"pull-to-refresh");(_b=this.pullToRefreshElement)===null||_b===void 0?void 0:_b.remove();this.enablePullToRefreshEvents();break;case"actionBarRenderer":this.recreate(name,"action-bar");break}}init(){}rendererChanged(){for(const content of ChildEnumerator.where(this.element,(({dataset:{pageElement}})=>!pageElement||pageElement==="content"))){this.dispose(content);content.remove()}const r=this.renderer;if(!r){return}delete this.render;this.render(r)}recreate(renderer,name){var _b,_c,_d;const node=(_c=(_b=this[renderer])===null||_b===void 0?void 0:_b.call(this))!==null&&_c!==void 0?_c:undefined;for(const e of ChildEnumerator.enumerate(this.element)){if(e.dataset.pageElement===name){this.dispose(e);e.remove();break}}if(node){const na=(_d=node.attributes)!==null&&_d!==void 0?_d:node.attributes={};na["data-page-element"]=name;super.render(XNode.create("div",null,node));return this.element.querySelector(`[data-page-element="${name}"]`)}return null}preCreate(){this.element.dataset.basePage="base-page";this.iconClass="";this.viewModelTitle=null;const c=new CancelToken;this.cancelToken=c;this.registerDisposable({dispose(){c.cancel()}});this.runAfterInit((()=>{if(!this.element){return}const anyAutofocus=this.element.querySelector(`*[autofocus]`);if(!anyAutofocus){if(this.disableAutoFocus){return}const windowContent=this.element.querySelector(`[data-page-element="content"]`);if(windowContent){const firstInput=windowContent.querySelector("input,textarea");if(firstInput){firstInput.focus();return}}return}anyAutofocus.focus()}));setTimeout((p=>{p.dataset.pageState="ready"}),1,this.element);this.titleRenderer=()=>XNode.create("span",{class:"title-text",text:Bind.oneWay((()=>this.viewModelTitle||this.title))});this.iconRenderer=()=>XNode.create("i",{"data-icon-button":"icon-button",class:Bind.oneWay((()=>this.iconClass)),eventClick:e1=>this.dispatchIconClickEvent(e1)});this.actionBarRenderer=()=>XNode.create("div",null);this.runAfterInit((()=>{var _b,_c;(_c=(_b=this.pullToRefreshElement)===null||_b===void 0?void 0:_b.remove)===null||_c===void 0?void 0:_c.call(_b);this.initialized=true;this.enablePullToRefreshEvents()}))}render(node,e,creator){var _b,_c;if(e||((_b=node===null||node===void 0?void 0:node.attributes)===null||_b===void 0?void 0:_b["data-page-element"])){super.render(node,e,creator);return}this.render=super.render;const na=(_c=node.attributes)!==null&&_c!==void 0?_c:node.attributes={};let extracted={};if(!na["data-page-element"]){na["data-page-element"]="content";extracted=this.extractControlProperties(node)}super.render(XNode.create("div",Object.assign({viewModelTitle:Bind.oneWay((()=>this.viewModel.title))},extracted),node),e,creator);this.contentElement=this.element.querySelector("[data-page-element='content']");setTimeout((()=>this.contentElement.scrollTo(0,0)),100)}enablePullToRefreshEvents(){var _b;const e=this.pullToRefreshElement;if(!e){(_b=this.pullToRefreshDisposable)===null||_b===void 0?void 0:_b.dispose();this.pullToRefreshDisposable=void 0;return e}if(this.pullToRefreshDisposable){return}let elementAdded=false;const touchStart=te=>{var _b;if(!this.pullToRefreshElement){(_b=this.pullToRefreshDisposable)===null||_b===void 0?void 0:_b.dispose();this.pullToRefreshDisposable=null;return}if(this.contentElement.scrollTop>0){return}const isMouseEvent=te.type==="mousedown";const moveEventName=isMouseEvent?"mousemove":"touchmove";const endEventName=isMouseEvent?"mouseup":"touchend";const startY=isMouseEvent?te.screenY:te.touches[0].screenY;this.pullToRefreshElement.dataset.mode="down";if(isMouseEvent){te.stopPropagation();te.preventDefault()}const d=new AtomDisposableList;d.add((()=>{this.contentElement.style.removeProperty("touch-action")}));d.add(this.bindEvent(this.contentElement,moveEventName,(me=>{const screenY=isMouseEvent?me.screenY:me.touches[0].screenY;const diffX=Math.min(75,screenY-startY);if(diffX>5){if(!elementAdded){this.contentElement.style.touchAction="none";elementAdded=true;this.element.appendChild(this.pullToRefreshElement)}}else{return}this.contentElement.style.transform=`translateY(${diffX}px)`;if(diffX>50){this.pullToRefreshElement.dataset.mode="up"}else{this.pullToRefreshElement.dataset.mode="down"}}),null,{passive:true}));d.add(this.bindEvent(this.contentElement,endEventName,(ue=>{ue.stopPropagation();if(isMouseEvent){ue.stopImmediatePropagation();ue.preventDefault()}d.dispose();const done=()=>{delete this.pullToRefreshElement.dataset.mode;this.contentElement.style.transform=``;this.pullToRefreshElement.style.transform="";this.pullToRefreshElement.remove();elementAdded=false};const diffX=ue.screenY-startY;if(diffX<=50){done();return}const ce=new CustomEvent("reloadPage",{detail:this,bubbles:true,cancelable:true});this.contentElement.dispatchEvent(ce);if(ce.defaultPrevented){done();return}this.pullToRefreshElement.dataset.mode="loading";const promise=ce.promise;if(!promise){done();return}promise.then(done,done)}),null,{passive:!isMouseEvent}))};const ed=new AtomDisposableList;ed.add(this.bindEvent(this.contentElement,"mousedown",touchStart));ed.add(this.bindEvent(this.contentElement,"touchstart",touchStart,null,{passive:true}));this.pullToRefreshDisposable=ed}dispatchIconClickEvent(e){const ce=new CustomEvent("iconClick",{bubbles:true});e.target.dispatchEvent(ce)}hide(){var _b;const{element}=this;if(!element){return}element.dataset.pageState="hidden";element._logicalParent=element.parentElement;this.scrollTop=(_b=this.contentElement)===null||_b===void 0?void 0:_b.scrollTop;setTimeout((()=>{element===null||element===void 0?void 0:element.remove()}),400)}show(){this.element._logicalParent.appendChild(this.element);setTimeout((()=>{if(this.scrollTop){this.contentElement.scrollTop=this.scrollTop}this.element.dataset.pageState="ready"}),1)}});__decorate([BindableProperty,__metadata("design:type",String)],BasePage.prototype,"closeWarning",void 0);__decorate([BindableProperty,__metadata("design:type",String)],BasePage.prototype,"title",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],BasePage.prototype,"titleRenderer",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],BasePage.prototype,"iconRenderer",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],BasePage.prototype,"actionRenderer",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],BasePage.prototype,"footerRenderer",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],BasePage.prototype,"actionBarRenderer",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],BasePage.prototype,"headerRenderer",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],BasePage.prototype,"pullToRefreshRenderer",void 0);delete BasePage.prototype.init;_export("ContentPage",ContentPage=class ContentPage extends BasePage{});_export("TabbedPage",TabbedPage=class TabbedPage extends BasePage{});_export("default",MobileApp=class MobileApp extends AtomControl{static pushPage(pageUri,parameters={},clearHistory=false){return __awaiter(this,void 0,void 0,(function*(){const mobileApp=this.current;const page=yield AtomLoader.loadClass(pageUri,parameters!==null&¶meters!==void 0?parameters:{},mobileApp.app);const result=yield mobileApp.loadPage(page,clearHistory);return result}))}popTo(w){this.app.runAsync((()=>__awaiter(this,void 0,void 0,(function*(){while(this.selectedPage!==w){this.selectedPage.cancel();yield sleep(500)}}))))}back(){return __awaiter(this,void 0,void 0,(function*(){if(this.pages.length===0){const drawer=this.drawer;if(drawer&&!this.hideDrawer){const drawerPage=new drawer(this.app);const modalClose=ce=>{var _b;let start=ce.target;const de=drawerPage.element;while(start){if(start===de){return}start=start.parentElement}ce.preventDefault();(_b=ce.stopImmediatePropagation)===null||_b===void 0?void 0:_b.call(ce);ce.target.dispatchEvent(new CustomEvent("closeDrawer",{bubbles:true}))};const dispatchCloseDrawer=de=>{if(de.defaultPrevented){return}de.target.dispatchEvent(new CustomEvent("closeDrawer",{bubbles:true}))};this.element.appendChild(drawerPage.element);setTimeout((()=>{this.element.dataset.drawer="visible";drawerPage.bindEvent(this.element,"click",dispatchCloseDrawer);drawerPage.bindEvent(document.body,"click",modalClose,null,true)}),10);this.hideDrawer=()=>{this.element.dataset.drawer="";setTimeout((()=>{const de=drawerPage.element;drawerPage.dispose();de.remove()}),400);this.hideDrawer=undefined};return false}return true}this.selectedPage.cancel("cancelled");return false}))}init(){return __awaiter(this,void 0,void 0,(function*(){}))}preCreate(){MobileApp.current=this;window.addEventListener("backButton",(ce=>{const{detail}=ce;ce.preventDefault();this.app.runAsync((()=>__awaiter(this,void 0,void 0,(function*(){if(yield this.back()){detail()}}))))}));this.drawer=null;this.element.dataset.pageApp="page-app";const container=this.container=document.createElement("div");container.dataset.container="true";this.element.appendChild(container);this.pages=[];this.selectedPage=null;this.bindEvent(this.element,"iconClick",(e=>this.back()));this.bindEvent(this.element,"closeDrawer",(e=>{var _b;(_b=this.hideDrawer)===null||_b===void 0?void 0:_b.call(this)}));const navigationService=this.app.resolve(NavigationService);navigationService.registerNavigationHook(((uri,{target,clearHistory})=>{if(/^(app|root)$/.test(target)){return this.loadPageForReturn(uri,clearHistory)}}));this.runAfterInit((()=>this.app.runAsync((()=>this.init()))))}loadPageForReturn(url,clearHistory){var _b;return __awaiter(this,void 0,void 0,(function*(){(_b=this.defaultPage)!==null&&_b!==void 0?_b:this.defaultPage=url;const page=yield AtomLoader.loadControl(url,this.app);if(url.query&&url.query.title){page.title||(page.title=url.query.title.toString())}const p=yield this.loadPage(page,clearHistory);try{return yield p}catch(ex){if((ex.message?ex.message:ex)==="cancelled"){console.warn(ex);return}throw ex}}))}loadPage(page,clearHistory){return __awaiter(this,void 0,void 0,(function*(){page.title||(page.title=StringHelper.fromPascalToTitleCase(Object.getPrototypeOf(page).constructor.name));const{parameters}=page;const route=parameters===null||parameters===void 0?void 0:parameters[displayRouteSymbol];if(route){page.route=route}const selectedPage=this.selectedPage;if(selectedPage){selectedPage.hide();this.pages.add(selectedPage)}const hasPages=!clearHistory&&this.pages.length;if(clearHistory){for(const iterator of this.pages){const e=iterator.element;iterator.dispose();e.remove()}this.pages.length=0;this.selectedPage=null}if(!hasPages){page.element.dataset.pageState="ready";page.iconClass="fas fa-bars"}else{page.iconClass="fas fa-arrow-left"}this.container.appendChild(page.element);this.selectedPage=page;const vm=page.viewModel;const element=page.element;return new Promise(((resolve,reject)=>{const closeFactory=(callback,result)=>r=>{if(clearHistory){this.app.runAsync((()=>this.loadPageForReturn(this.defaultPage,true)));return}element.removeAttribute("data-page-state");const last=this.pages.pop();last.show();setTimeout((()=>{page.dispose();element.remove();callback(r!==null&&r!==void 0?r:result);this.selectedPage=last}),300)};const cancel=closeFactory(reject,"cancelled");const close=closeFactory(resolve);if(vm){vm.cancel=cancel;vm.close=close}page.cancel=cancel;page.close=close}))}))}});MobileApp.drawer=XNode.prepare("drawer",true,true);_export("isMobileView",isMobileView=/Android|iPhone/i.test(navigator.userAgent)||window.visualViewport.width<500||window.forceMobileLayout);isPopupPage=Symbol("isPopupPage");PopupWindowEx=class PopupWindowEx extends PopupWindow{};_a=isPopupPage;PopupWindowEx[_a]=true;root=isMobileView?ContentPage:PopupWindowEx;_export("PopupWindowPage",PopupWindowPage=class PopupWindowPage extends root{});PageNavigator.pushPageForResult=(page,parameters,clearHistory)=>{var _b,_c;if(!isMobileView&&page[isPopupPage]){const popupPage=page;const options=Object.assign(Object.assign({},(_b=popupPage.dialogOptions)!==null&&_b!==void 0?_b:{}),{parameters:{parameters}});(_c=options.modal)!==null&&_c!==void 0?_c:options.modal=true;if(options.modal){return page.showModal(options)}return page.showWindow(options)}return MobileApp.pushPage(page,parameters,clearHistory)}}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/mobile-app/MobileApp");System.register(["tslib","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/web/core/AtomUI","../mobile-app/MobileApp","@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var __decorate,__metadata,BindableProperty,XNode,AtomControl,ChildEnumerator,MobileApp,styled,DesktopApp;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreBindableProperty){BindableProperty=_webAtomsCoreDistCoreBindableProperty.BindableProperty},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistWebCoreAtomUI){ChildEnumerator=_webAtomsCoreDistWebCoreAtomUI.ChildEnumerator},function(_mobileAppMobileApp){MobileApp=_mobileAppMobileApp.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
|
|
493
|
+
`.installGlobal();_export("Drawer",Drawer=class Drawer extends AtomControl{init(){}preCreate(){this.element.dataset.drawerPage="drawer-page";this.bindEvent(this.element,"click",(e=>e.defaultPrevented?null:this.closeDrawer()));this.runAfterInit((()=>this.app.runAsync((()=>{var _b;return(_b=this.init)===null||_b===void 0?void 0:_b.call(this)}))))}closeDrawer(){const ce=new CustomEvent("closeDrawer",{bubbles:true});this.element.dispatchEvent(ce)}});delete Drawer.prototype.init;historyBackCalled=false;_export("BasePage",BasePage=class BasePage extends AtomControl{constructor(){super(...arguments);this.disableAutoFocus=false}get route(){return this.routeUrl}set route(url){var _b,_c;if(!url){return}if(((_b=history.state)===null||_b===void 0?void 0:_b.url)===url){return}url=Route.encodeUrl(url);if(this.routeUrl===url){return}this.routeUrl=url;(_c=this.reouteDisposable)===null||_c===void 0?void 0:_c.dispose();let last=void 0;setTimeout((()=>last=url),100);const state={url};history.pushState(state,"",url);const eventRegistration=e=>{var _b;if(historyBackCalled){return}if(((_b=e.state)===null||_b===void 0?void 0:_b.url)===last){this.cancel()}};window.addEventListener("popstate",eventRegistration);const d={dispose(){var _b;window.removeEventListener("popstate",eventRegistration);if(((_b=history.state)===null||_b===void 0?void 0:_b.url)===state.url){historyBackCalled=true;history.back();setTimeout((()=>historyBackCalled=false),500)}}};this.reouteDisposable=this.registerDisposable(d)}get hideToolbar(){var _b,_c;return((_c=(_b=this.element)===null||_b===void 0?void 0:_b.dataset)===null||_c===void 0?void 0:_c.hideToolbar)?true:false}set hideToolbar(v){this.element.dataset.hideToolbar=v?"true":"false"}requestCancel(){return __awaiter(this,void 0,void 0,(function*(){if(this.closeWarning){if(!(yield PopupService.confirm({message:this.closeWarning}))){return}}this.cancel()}))}onPropertyChanged(name){var _b;super.onPropertyChanged(name);switch(name){case"footerRenderer":this.recreate(name,"footer");break;case"iconRenderer":this.recreate(name,"icon");break;case"titleRenderer":this.recreate(name,"title");break;case"actionRenderer":this.recreate(name,"action");break;case"headerRenderer":this.recreate(name,"header");break;case"pullToRefreshRenderer":this.pullToRefreshElement=this.recreate(name,"pull-to-refresh");(_b=this.pullToRefreshElement)===null||_b===void 0?void 0:_b.remove();this.enablePullToRefreshEvents();break;case"actionBarRenderer":this.recreate(name,"action-bar");break}}init(){}rendererChanged(){for(const content of ChildEnumerator.where(this.element,(({dataset:{pageElement}})=>!pageElement||pageElement==="content"))){this.dispose(content);content.remove()}const r=this.renderer;if(!r){return}delete this.render;this.render(r)}recreate(renderer,name){var _b,_c,_d;const node=(_c=(_b=this[renderer])===null||_b===void 0?void 0:_b.call(this))!==null&&_c!==void 0?_c:undefined;for(const e of ChildEnumerator.enumerate(this.element)){if(e.dataset.pageElement===name){this.dispose(e);e.remove();break}}if(node){const na=(_d=node.attributes)!==null&&_d!==void 0?_d:node.attributes={};na["data-page-element"]=name;super.render(XNode.create("div",null,node));return this.element.querySelector(`[data-page-element="${name}"]`)}return null}preCreate(){this.element.dataset.basePage="base-page";this.iconClass="";this.viewModelTitle=null;const c=new CancelToken;this.cancelToken=c;this.registerDisposable({dispose(){c.cancel()}});this.runAfterInit((()=>{if(!this.element){return}const anyAutofocus=this.element.querySelector(`*[autofocus]`);if(!anyAutofocus){if(this.disableAutoFocus){return}const windowContent=this.element.querySelector(`[data-page-element="content"]`);if(windowContent){const firstInput=windowContent.querySelector("input,textarea");if(firstInput){firstInput.focus();return}}return}anyAutofocus.focus()}));setTimeout((p=>{p.dataset.pageState="ready"}),1,this.element);this.titleRenderer=()=>XNode.create("span",{"data-text-overflow":"ellipsis",class:"title-text",text:Bind.oneWay((()=>this.viewModelTitle||this.title))});this.iconRenderer=()=>XNode.create("i",{"data-icon-button":"icon-button",class:Bind.oneWay((()=>this.iconClass)),eventClick:e1=>this.dispatchIconClickEvent(e1)});this.actionBarRenderer=()=>XNode.create("div",null);this.runAfterInit((()=>{var _b,_c,_d,_e;(_c=(_b=this.pullToRefreshElement)===null||_b===void 0?void 0:_b.remove)===null||_c===void 0?void 0:_c.call(_b);this.initialized=true;this.enablePullToRefreshEvents();try{document.body.dispatchEvent(new CustomEvent("pageNavigated",{detail:{title:this.title,route:this.route||((_e=(_d=Object.getPrototypeOf(this))===null||_d===void 0?void 0:_d.constructor)===null||_e===void 0?void 0:_e.name)},bubbles:true,cancelable:true}))}catch(_f){}}))}render(node,e,creator){var _b,_c;if(e||((_b=node===null||node===void 0?void 0:node.attributes)===null||_b===void 0?void 0:_b["data-page-element"])){super.render(node,e,creator);return}this.render=super.render;const na=(_c=node.attributes)!==null&&_c!==void 0?_c:node.attributes={};let extracted={};if(!na["data-page-element"]){na["data-page-element"]="content";extracted=this.extractControlProperties(node)}super.render(XNode.create("div",Object.assign({viewModelTitle:Bind.oneWay((()=>this.viewModel.title))},extracted),node),e,creator);this.contentElement=this.element.querySelector("[data-page-element='content']");setTimeout((()=>this.contentElement.scrollTo(0,0)),100)}enablePullToRefreshEvents(){var _b;const e=this.pullToRefreshElement;if(!e){(_b=this.pullToRefreshDisposable)===null||_b===void 0?void 0:_b.dispose();this.pullToRefreshDisposable=void 0;return e}if(this.pullToRefreshDisposable){return}let elementAdded=false;const touchStart=te=>{var _b;if(!this.pullToRefreshElement){(_b=this.pullToRefreshDisposable)===null||_b===void 0?void 0:_b.dispose();this.pullToRefreshDisposable=null;return}if(this.contentElement.scrollTop>0){return}const isMouseEvent=te.type==="mousedown";const moveEventName=isMouseEvent?"mousemove":"touchmove";const endEventName=isMouseEvent?"mouseup":"touchend";const startY=isMouseEvent?te.screenY:te.touches[0].screenY;this.pullToRefreshElement.dataset.mode="down";if(isMouseEvent){te.stopPropagation();te.preventDefault()}const d=new AtomDisposableList;d.add((()=>{this.contentElement.style.removeProperty("touch-action")}));d.add(this.bindEvent(this.contentElement,moveEventName,(me=>{const screenY=isMouseEvent?me.screenY:me.touches[0].screenY;const diffX=Math.min(75,screenY-startY);if(diffX>5){if(!elementAdded){this.contentElement.style.touchAction="none";elementAdded=true;this.element.appendChild(this.pullToRefreshElement)}}else{return}this.contentElement.style.transform=`translateY(${diffX}px)`;if(diffX>50){this.pullToRefreshElement.dataset.mode="up"}else{this.pullToRefreshElement.dataset.mode="down"}}),null,{passive:true}));d.add(this.bindEvent(this.contentElement,endEventName,(ue=>{ue.stopPropagation();if(isMouseEvent){ue.stopImmediatePropagation();ue.preventDefault()}d.dispose();const done=()=>{delete this.pullToRefreshElement.dataset.mode;this.contentElement.style.transform=``;this.pullToRefreshElement.style.transform="";this.pullToRefreshElement.remove();elementAdded=false};const diffX=ue.screenY-startY;if(diffX<=50){done();return}const ce=new CustomEvent("reloadPage",{detail:this,bubbles:true,cancelable:true});this.contentElement.dispatchEvent(ce);if(ce.defaultPrevented){done();return}this.pullToRefreshElement.dataset.mode="loading";const promise=ce.promise;if(!promise){done();return}promise.then(done,done)}),null,{passive:!isMouseEvent}))};const ed=new AtomDisposableList;ed.add(this.bindEvent(this.contentElement,"mousedown",touchStart));ed.add(this.bindEvent(this.contentElement,"touchstart",touchStart,null,{passive:true}));this.pullToRefreshDisposable=ed}dispatchIconClickEvent(e){const ce=new CustomEvent("iconClick",{bubbles:true});e.target.dispatchEvent(ce)}hide(){var _b;const{element}=this;if(!element){return}element.dataset.pageState="hidden";element._logicalParent=element.parentElement;this.scrollTop=(_b=this.contentElement)===null||_b===void 0?void 0:_b.scrollTop;setTimeout((()=>{element===null||element===void 0?void 0:element.remove()}),400)}show(){this.element._logicalParent.appendChild(this.element);setTimeout((()=>{if(this.scrollTop){this.contentElement.scrollTop=this.scrollTop}this.element.dataset.pageState="ready"}),1)}});__decorate([BindableProperty,__metadata("design:type",String)],BasePage.prototype,"closeWarning",void 0);__decorate([BindableProperty,__metadata("design:type",String)],BasePage.prototype,"title",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],BasePage.prototype,"titleRenderer",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],BasePage.prototype,"iconRenderer",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],BasePage.prototype,"actionRenderer",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],BasePage.prototype,"footerRenderer",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],BasePage.prototype,"actionBarRenderer",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],BasePage.prototype,"headerRenderer",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],BasePage.prototype,"pullToRefreshRenderer",void 0);delete BasePage.prototype.init;_export("ContentPage",ContentPage=class ContentPage extends BasePage{});_export("TabbedPage",TabbedPage=class TabbedPage extends BasePage{});_export("default",MobileApp=class MobileApp extends AtomControl{static pushPage(pageUri,parameters={},clearHistory=false){return __awaiter(this,void 0,void 0,(function*(){const mobileApp=this.current;const page=yield AtomLoader.loadClass(pageUri,parameters!==null&¶meters!==void 0?parameters:{},mobileApp.app);const result=yield mobileApp.loadPage(page,clearHistory);return result}))}popTo(w){this.app.runAsync((()=>__awaiter(this,void 0,void 0,(function*(){while(this.selectedPage!==w){this.selectedPage.cancel();yield sleep(500)}}))))}back(){return __awaiter(this,void 0,void 0,(function*(){if(this.pages.length===0){const drawer=this.drawer;if(drawer&&!this.hideDrawer){const drawerPage=new drawer(this.app);const modalClose=ce=>{var _b;let start=ce.target;const de=drawerPage.element;while(start){if(start===de){return}start=start.parentElement}ce.preventDefault();(_b=ce.stopImmediatePropagation)===null||_b===void 0?void 0:_b.call(ce);ce.target.dispatchEvent(new CustomEvent("closeDrawer",{bubbles:true}))};const dispatchCloseDrawer=de=>{if(de.defaultPrevented){return}de.target.dispatchEvent(new CustomEvent("closeDrawer",{bubbles:true}))};this.element.appendChild(drawerPage.element);setTimeout((()=>{this.element.dataset.drawer="visible";drawerPage.bindEvent(this.element,"click",dispatchCloseDrawer);drawerPage.bindEvent(document.body,"click",modalClose,null,true)}),10);this.hideDrawer=()=>{this.element.dataset.drawer="";setTimeout((()=>{const de=drawerPage.element;drawerPage.dispose();de.remove()}),400);this.hideDrawer=undefined};return false}return true}this.selectedPage.cancel("cancelled");return false}))}init(){return __awaiter(this,void 0,void 0,(function*(){}))}preCreate(){MobileApp.current=this;window.addEventListener("backButton",(ce=>{const{detail}=ce;ce.preventDefault();this.app.runAsync((()=>__awaiter(this,void 0,void 0,(function*(){if(yield this.back()){detail()}}))))}));this.drawer=null;this.element.dataset.pageApp="page-app";const container=this.container=document.createElement("div");container.dataset.container="true";this.element.appendChild(container);this.pages=[];this.selectedPage=null;this.bindEvent(this.element,"iconClick",(e=>this.back()));this.bindEvent(this.element,"closeDrawer",(e=>{var _b;(_b=this.hideDrawer)===null||_b===void 0?void 0:_b.call(this)}));const navigationService=this.app.resolve(NavigationService);navigationService.registerNavigationHook(((uri,{target,clearHistory})=>{if(/^(app|root)$/.test(target)){return this.loadPageForReturn(uri,clearHistory)}}));this.runAfterInit((()=>this.app.runAsync((()=>this.init()))))}loadPageForReturn(url,clearHistory){var _b;return __awaiter(this,void 0,void 0,(function*(){(_b=this.defaultPage)!==null&&_b!==void 0?_b:this.defaultPage=url;const page=yield AtomLoader.loadControl(url,this.app);if(url.query&&url.query.title){page.title||(page.title=url.query.title.toString())}const p=yield this.loadPage(page,clearHistory);try{return yield p}catch(ex){if((ex.message?ex.message:ex)==="cancelled"){console.warn(ex);return}throw ex}}))}loadPage(page,clearHistory){return __awaiter(this,void 0,void 0,(function*(){page.title||(page.title=StringHelper.fromPascalToTitleCase(Object.getPrototypeOf(page).constructor.name));const{parameters}=page;const route=parameters===null||parameters===void 0?void 0:parameters[displayRouteSymbol];if(route){page.route=route}const selectedPage=this.selectedPage;if(selectedPage){selectedPage.hide();this.pages.add(selectedPage)}const hasPages=!clearHistory&&this.pages.length;if(clearHistory){for(const iterator of this.pages){const e=iterator.element;iterator.dispose();e.remove()}this.pages.length=0;this.selectedPage=null}if(!hasPages){page.element.dataset.pageState="ready";page.iconClass="fas fa-bars"}else{page.iconClass="fas fa-arrow-left"}this.container.appendChild(page.element);this.selectedPage=page;const vm=page.viewModel;const element=page.element;return new Promise(((resolve,reject)=>{const closeFactory=(callback,result)=>r=>{if(clearHistory){this.app.runAsync((()=>this.loadPageForReturn(this.defaultPage,true)));return}element.removeAttribute("data-page-state");const last=this.pages.pop();last.show();setTimeout((()=>{page.dispose();element.remove();callback(r!==null&&r!==void 0?r:result);this.selectedPage=last}),300)};const cancel=closeFactory(reject,"cancelled");const close=closeFactory(resolve);if(vm){vm.cancel=cancel;vm.close=close}page.cancel=cancel;page.close=close}))}))}});MobileApp.drawer=XNode.prepare("drawer",true,true);_export("isMobileView",isMobileView=/Android|iPhone/i.test(navigator.userAgent)||window.visualViewport.width<500||window.forceMobileLayout);isPopupPage=Symbol("isPopupPage");PopupWindowEx=class PopupWindowEx extends PopupWindow{};_a=isPopupPage;PopupWindowEx[_a]=true;root=isMobileView?ContentPage:PopupWindowEx;_export("PopupWindowPage",PopupWindowPage=class PopupWindowPage extends root{});PageNavigator.pushPageForResult=(page,parameters,clearHistory)=>{var _b,_c;if(!isMobileView&&page[isPopupPage]){const popupPage=page;const options=Object.assign(Object.assign({},(_b=popupPage.dialogOptions)!==null&&_b!==void 0?_b:{}),{parameters:{parameters}});(_c=options.modal)!==null&&_c!==void 0?_c:options.modal=true;if(options.modal){return page.showModal(options)}return page.showWindow(options)}return MobileApp.pushPage(page,parameters,clearHistory)}}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/mobile-app/MobileApp");System.register(["tslib","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/web/core/AtomUI","../mobile-app/MobileApp","@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var __decorate,__metadata,BindableProperty,XNode,AtomControl,ChildEnumerator,MobileApp,styled,DesktopApp;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreBindableProperty){BindableProperty=_webAtomsCoreDistCoreBindableProperty.BindableProperty},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistWebCoreAtomUI){ChildEnumerator=_webAtomsCoreDistWebCoreAtomUI.ChildEnumerator},function(_mobileAppMobileApp){MobileApp=_mobileAppMobileApp.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
|
|
498
494
|
|
|
499
495
|
html, body {
|
|
500
496
|
width: 100%;
|
|
@@ -565,11 +561,7 @@ and limitations under the License.
|
|
|
565
561
|
z-index: 5000;
|
|
566
562
|
background-color: var(--popup-background-color, white);
|
|
567
563
|
color: var(--popup-text-color, rgba(0,0,0,0.8));
|
|
568
|
-
left: 0;
|
|
569
|
-
`.installGlobal("*[data-inline-popup=inline-popup]");styled.css`
|
|
570
|
-
right: 0;
|
|
571
|
-
left: unset;
|
|
572
|
-
`.installGlobal("*[data-alignment=bottom-right] > [data-inline-popup=inline-popup]")}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/styles/inline-popup-style");System.register(["tslib","@web-atoms/core/dist/core/AtomDisposableList","@web-atoms/core/dist/core/sleep","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","./styles/inline-popup-style"],(function(_export,_context){"use strict";var __awaiter,__rest,AtomDisposableList,sleep,XNode,AtomControl,ElementValueSetters,InlinePopup;function closeHandler(opener,container,close){let handler=null;const body=document.body;handler=e=>{var _a;let start=e.target;if(e.defaultPrevented){return}while(start){if(start===body){break}if(start===opener){return}if(start===container){return}start=start.parentElement}close();e.preventDefault();(_a=e.stopImmediatePropagation)===null||_a===void 0?void 0:_a.call(e)};document.body.addEventListener("click",handler,true);let ce=container;const containNoneList=[];while(ce){const isNotNone=window.getComputedStyle(ce).contain!=="none";if(isNotNone){ce.setAttribute("data-force-contain","none");containNoneList.push(ce)}ce=ce.parentElement}return()=>{document.body.removeEventListener("click",handler,true);for(const iterator of containNoneList){iterator.removeAttribute("data-force-contain")}}}function InlinePopupButton(_a,...popupNodes){var{text,label,icon,hasBorder=false,nodes=[],defaultOnClick="close",anchorRight=false,alignment,popup}=_a,a=__rest(_a,["text","label","icon","hasBorder","nodes","defaultOnClick","anchorRight","alignment","popup"]);alignment||(alignment=anchorRight?"bottomRight":"bottomLeft");if(!a["data-layout"]){if(icon&&text){a["data-layout"]="icon-button"}else{a["data-layout"]="button"}}if(popup){return XNode.create("button",Object.assign({"data-popup-class":popup,"data-has-border":!!hasBorder,"data-inline-popup-button":"inline-popup-button","data-alignment":alignment},a),icon&&XNode.create("i",{class:icon}),text&&XNode.create("span",{text}),label&&XNode.create("label",{text}),...nodes)}let isOpen=false;const done=()=>isOpen=false;const click=e=>__awaiter(this,void 0,void 0,(function*(){if(isOpen||e.defaultPrevented){return}const popupNode=popupNodes.length>1?XNode.create("div",null,...popupNodes):popupNodes[0];try{isOpen=true;yield InlinePopup.show(e.currentTarget,popupNode,{defaultOnClick,alignment})}finally{done()}}));return XNode.create("button",Object.assign({"event-click":click,"data-has-border":!!hasBorder,"data-alignment":alignment,"data-inline-popup-button":"inline-popup-button"},a),icon&&XNode.create("i",{class:icon}),text&&XNode.create("span",{text}),label&&XNode.create("label",{text}),...nodes)}_export({default:void 0,InlinePopupButton});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__rest=_tslib.__rest},function(_webAtomsCoreDistCoreAtomDisposableList){AtomDisposableList=_webAtomsCoreDistCoreAtomDisposableList.AtomDisposableList},function(_webAtomsCoreDistCoreSleep){sleep=_webAtomsCoreDistCoreSleep.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl;ElementValueSetters=_webAtomsCoreDistWebControlsAtomControl.ElementValueSetters},function(_stylesInlinePopupStyle){}],execute:function(){_export("default",InlinePopup=class InlinePopup extends AtomControl{static show(target,node,options={}){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){const targetElement=(_a=target.element)!==null&&_a!==void 0?_a:target;const control=target.element?target:AtomControl.from(target);const targetStyle=window.getComputedStyle(targetElement);if(!/fixed|absolute|relative/i.test(targetStyle.position)){targetElement.style.position="relative"}yield sleep(10);const container=document.createElement("div");container.setAttribute("data-inline-popup","inline-popup");const alignment=(_b=options.alignment)!==null&&_b!==void 0?_b:"none";switch(alignment){case"bottomLeft":container.style.top=`${targetElement.offsetHeight}px`;container.style.left="0px";break;case"bottomRight":container.style.top=`${targetElement.offsetHeight}px`;container.style.right="0px";break;case"topRight":container.style.top="0px";container.style.left=`${targetElement.offsetWidth}px`;break;case"above":container.style.bottom=`${targetElement.offsetHeight}px`;container.style.left="0px";break;default:container.style.top=`${targetElement.offsetHeight}px`;break}container._logicalParent=targetElement;control.render(XNode.create("div",null," ",node," "),container,control);targetElement.insertAdjacentElement("beforeend",container);return yield new Promise(((resolve,reject)=>{var _a;const disposables=new AtomDisposableList;disposables.add((()=>targetElement.removeAttribute("data-popup-open")));let resolved=false;const close=r=>{if(resolved){return}resolved=true;resolve(r);disposables.dispose()};const cancel=(r="cancelled")=>{if(resolved){return}resolved=true;reject(r);disposables.dispose()};const firstChild=container.firstElementChild.atomControl;if(firstChild instanceof InlinePopup){firstChild.cancel=cancel;firstChild.close=close}else{if(options.onClick===void 0){options.onClick=options.defaultOnClick}}const defaultClose=options.onClick==="close"?close:cancel;const observer=new MutationObserver((()=>{if(!container.isConnected){defaultClose()}}));observer.observe(targetElement,{childList:true});disposables.add((()=>{observer.disconnect();control.dispose(container);container.remove()}));if(options.onClick){disposables.add(control.bindEvent(container,"click",(()=>__awaiter(this,void 0,void 0,(function*(){yield sleep(200);defaultClose()})))))}(_a=options.cancelToken)===null||_a===void 0?void 0:_a.registerForCancel(cancel);disposables.add(closeHandler(targetElement,container,defaultClose))}))}))}static showControl(target,options={}){const node=XNode.create(this,{});return this.show(target,node,options)}dispatchClickEvent(e,data){let start=this.element.parentElement;while(start){const atomControl=AtomControl.from(start);if(atomControl){atomControl.dispatchClickEvent(e,data);return}start=start.parentElement}super.dispatchClickEvent(e,data)}});document.body.addEventListener("click",(e=>{let start=e.target;let popupFactory;let alignment;while(start){popupFactory=start.popupFactory;if(popupFactory){alignment=start.dataset.alignment;break}start=start.parentElement}if(!start){return}if(start.getAttribute("data-popup-open")){return}start.setAttribute("data-popup-open","true");const control=AtomControl.from(start);const app=control.app;const target=start;const element=control.element;let itemIndex;let data;if(control.items&&control.itemRenderer){while(start&&start!==element){itemIndex!==null&&itemIndex!==void 0?itemIndex:itemIndex=start.getAttribute("data-item-index");if(itemIndex){data=control.items[~~itemIndex];break}start=start.parentElement}}if(!data){data=new Proxy(target,{get(t,p,receiver){let s=target;while(s){const v=s.dataset[p];if(v!==void 0){return v}s=s.parentElement}}})}const node=popupFactory(data);app.runAsync((()=>InlinePopup.show(target,node,{alignment})))}));ElementValueSetters["data-popup-class"]=(c,e,v)=>{e.popupFactory=v}}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/InlinePopup");System.register([],(function(_export,_context){"use strict";var MergeNode,empty;_export("default",void 0);return{setters:[],execute:function(){empty=[];_export("default",MergeNode=class MergeNode{static none(){return new MergeNode(empty)}static remove(){return new MergeNode([{remove:true}])}static childSelector(name,p){if(p!==void 0){const{parent,after}=p;return new MergeNode([{replace:"* > "+name,parent,after}])}return new MergeNode(["* > "+name])}static nestedSelector(name,p){if(p!==void 0){const{parent,after}=p;return new MergeNode([{replace:"* "+name,parent,after}])}return new MergeNode(["* "+name])}constructor(classes=empty){this.classes=classes}childSelector(name,p){if(p!==void 0){const{parent,after}=p;return new MergeNode([...this.classes,{replace:"* > "+name,parent,after}])}return new MergeNode([...this.classes,"* > "+name])}nestedSelector(name,p){if(p!==void 0){const{parent,after}=p;return new MergeNode([...this.classes,{replace:"* "+name,parent,after}])}return new MergeNode([...this.classes,"* "+name])}})}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/MergeNode");System.register([],(function(_export,_context){"use strict";var ItemPath,get;function*getFragments(path){const regex=/([^\=\:]+)\s*[\=\:]\s*((('[^\\']*(((\\')|(''))[^\\']*)*')|("[^\\"]*(((\\")|(""))[^\\"]*)*"))|([^\,\;]+))\s*[\,\;]?\s*/gim;let m;while((m=regex.exec(path))!==null){if(m.index===regex.lastIndex){regex.lastIndex++}yield[m[1].trim(),m[2].trim()]}}_export("default",void 0);return{setters:[],execute:function(){get=(start,path)=>{let item=start;for(const iterator of path.split(".")){if(iterator==="$"){item=start;continue}item=item[iterator]}return item};_export("default",ItemPath=class ItemPath{static get(item,path){if(path.startsWith("$.")){return get(item,path)}if(/^[\{\"]/.test(path)){const json=JSON.parse(path);return json}const target={};this.build(item,path,target);return target}static build(item,path,target){for(let[key,value]of getFragments(path)){if(value.startsWith("$")){value=get(item,value);target[key]=value;continue}if(value.startsWith('"')){value=JSON.parse(value);target[key]=value;continue}if(value.startsWith("'")){value=value.substring(1,value.length-1);value=value.replace(/((\'\')|(\\\'))/,"'");target[key]=value;continue}if(value==="true"){target[key]=true;continue}if(value==="false"){target[key]=false;continue}if(value==="null"){target[key]=null;continue}target[key]=Number(value)}}})}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/ItemPath");System.register(["@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var styled;return{setters:[function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
|
|
564
|
+
`.installGlobal("*[data-inline-popup=inline-popup]")}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/styles/inline-popup-style");System.register(["tslib","@web-atoms/core/dist/core/AtomDisposableList","@web-atoms/core/dist/core/sleep","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","./styles/inline-popup-style","@web-atoms/core/dist/core/StringHelper"],(function(_export,_context){"use strict";var __awaiter,__rest,AtomDisposableList,sleep,XNode,AtomControl,ElementValueSetters,StringHelper,InlinePopup;function closeHandler(opener,container,close){let handler=null;const body=document.body;handler=e=>{var _a;let start=e.target;if(e.defaultPrevented){return}while(start){if(start===body){break}if(start===opener){return}if(start===container){return}start=start.parentElement}close();e.preventDefault();(_a=e.stopImmediatePropagation)===null||_a===void 0?void 0:_a.call(e)};document.body.addEventListener("click",handler,true);let ce=container;const containNoneList=[];while(ce){const isNotNone=window.getComputedStyle(ce).contain!=="none";if(isNotNone){ce.setAttribute("data-force-contain","none");containNoneList.push(ce)}ce=ce.parentElement}return()=>{document.body.removeEventListener("click",handler,true);for(const iterator of containNoneList){iterator.removeAttribute("data-force-contain")}}}function InlinePopupButton(_a,...popupNodes){var{text,label,icon,hasBorder=false,nodes=[],defaultOnClick="close",anchorRight=false,alignment,popup}=_a,a=__rest(_a,["text","label","icon","hasBorder","nodes","defaultOnClick","anchorRight","alignment","popup"]);alignment||(alignment=anchorRight?"bottomRight":"bottomLeft");if(!a["data-layout"]){if(icon&&text){a["data-layout"]="icon-button"}else{a["data-layout"]="button"}}if(popup){return XNode.create("button",Object.assign({"data-popup-class":popup,"data-has-border":!!hasBorder,"data-inline-popup-button":"inline-popup-button","data-alignment":alignment},a),icon&&XNode.create("i",{class:icon}),text&&XNode.create("span",{text}),label&&XNode.create("label",{text}),...nodes)}let isOpen=false;const done=()=>isOpen=false;const click=e=>__awaiter(this,void 0,void 0,(function*(){if(isOpen||e.defaultPrevented){return}const popupNode=popupNodes.length>1?XNode.create("div",null,...popupNodes):popupNodes[0];try{isOpen=true;yield InlinePopup.show(e.currentTarget,popupNode,{defaultOnClick,alignment})}finally{done()}}));return XNode.create("button",Object.assign({"event-click":click,"data-has-border":!!hasBorder,"data-alignment":alignment,"data-inline-popup-button":"inline-popup-button"},a),icon&&XNode.create("i",{class:icon}),text&&XNode.create("span",{text}),label&&XNode.create("label",{text}),...nodes)}_export({default:void 0,InlinePopupButton});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__rest=_tslib.__rest},function(_webAtomsCoreDistCoreAtomDisposableList){AtomDisposableList=_webAtomsCoreDistCoreAtomDisposableList.AtomDisposableList},function(_webAtomsCoreDistCoreSleep){sleep=_webAtomsCoreDistCoreSleep.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl;ElementValueSetters=_webAtomsCoreDistWebControlsAtomControl.ElementValueSetters},function(_stylesInlinePopupStyle){},function(_webAtomsCoreDistCoreStringHelper){StringHelper=_webAtomsCoreDistCoreStringHelper.StringHelper}],execute:function(){_export("default",InlinePopup=class InlinePopup extends AtomControl{static show(target,node,options={}){var _a;return __awaiter(this,void 0,void 0,(function*(){const targetElement=(_a=target.element)!==null&&_a!==void 0?_a:target;const control=target.element?target:AtomControl.from(target);const targetStyle=window.getComputedStyle(targetElement);if(!/fixed|absolute|relative/i.test(targetStyle.position)){targetElement.style.position="relative"}yield sleep(10);const container=document.createElement("div");container.setAttribute("data-inline-popup","inline-popup");const alignment=StringHelper.fromHyphenToCamel(options.alignment||"none");switch(alignment){case"bottomLeft":container.style.top=`${targetElement.offsetTop+targetElement.offsetHeight}px`;container.style.left="0px";break;case"bottomRight":container.style.top=`${targetElement.offsetTop+targetElement.offsetHeight}px`;container.style.right="0px";break;case"topRight":container.style.top="0px";container.style.left=`${targetElement.offsetWidth}px`;break;case"above":container.style.bottom=`${targetElement.offsetHeight}px`;container.style.left="0px";break;default:container.style.top=`${targetElement.offsetTop+targetElement.offsetHeight}px`;break}container._logicalParent=targetElement;control.render(XNode.create("div",null," ",node," "),container,control);targetElement.insertAdjacentElement("beforeend",container);return yield new Promise(((resolve,reject)=>{var _a;const disposables=new AtomDisposableList;disposables.add((()=>targetElement.removeAttribute("data-popup-open")));let resolved=false;const close=r=>{if(resolved){return}resolved=true;resolve(r);disposables.dispose()};const cancel=(r="cancelled")=>{if(resolved){return}resolved=true;reject(r);disposables.dispose()};const firstChild=container.firstElementChild.atomControl;if(firstChild instanceof InlinePopup){firstChild.cancel=cancel;firstChild.close=close}else{if(options.onClick===void 0){options.onClick=options.defaultOnClick}}const defaultClose=options.onClick==="close"?close:cancel;const observer=new MutationObserver((()=>{if(!container.isConnected){defaultClose()}}));observer.observe(targetElement,{childList:true});disposables.add((()=>{observer.disconnect();control.dispose(container);container.remove()}));if(options.onClick){disposables.add(control.bindEvent(container,"click",(()=>__awaiter(this,void 0,void 0,(function*(){yield sleep(200);defaultClose()})))))}(_a=options.cancelToken)===null||_a===void 0?void 0:_a.registerForCancel(cancel);disposables.add(closeHandler(targetElement,container,defaultClose))}))}))}static showControl(target,options={}){const node=XNode.create(this,{});return this.show(target,node,options)}dispatchClickEvent(e,data){let start=this.element.parentElement;while(start){const atomControl=AtomControl.from(start);if(atomControl){atomControl.dispatchClickEvent(e,data);return}start=start.parentElement}super.dispatchClickEvent(e,data)}});document.body.addEventListener("click",(e=>{let start=e.target;let popupFactory;let alignment;while(start){popupFactory=start.popupFactory;if(popupFactory){alignment=start.dataset.alignment;break}start=start.parentElement}if(!start){return}if(start.getAttribute("data-popup-open")){return}start.setAttribute("data-popup-open","true");const control=AtomControl.from(start);const app=control.app;const target=start;const element=control.element;let itemIndex;let data;if(control.items&&control.itemRenderer){while(start&&start!==element){itemIndex!==null&&itemIndex!==void 0?itemIndex:itemIndex=start.getAttribute("data-item-index");if(itemIndex){data=control.items[~~itemIndex];break}start=start.parentElement}}if(!data){data=new Proxy(target,{get(t,p,receiver){let s=target;while(s){const v=s.dataset[p];if(v!==void 0){return v}s=s.parentElement}}})}const node=popupFactory(data);app.runAsync((()=>InlinePopup.show(target,node,{alignment})))}));ElementValueSetters["data-popup-class"]=(c,e,v)=>{e.popupFactory=v}}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/InlinePopup");System.register([],(function(_export,_context){"use strict";var MergeNode,empty;_export("default",void 0);return{setters:[],execute:function(){empty=[];_export("default",MergeNode=class MergeNode{static none(){return new MergeNode(empty)}static remove(){return new MergeNode([{remove:true}])}static childSelector(name,p){if(p!==void 0){const{parent,after}=p;return new MergeNode([{replace:"* > "+name,parent,after}])}return new MergeNode(["* > "+name])}static nestedSelector(name,p){if(p!==void 0){const{parent,after}=p;return new MergeNode([{replace:"* "+name,parent,after}])}return new MergeNode(["* "+name])}constructor(classes=empty){this.classes=classes}childSelector(name,p){if(p!==void 0){const{parent,after}=p;return new MergeNode([...this.classes,{replace:"* > "+name,parent,after}])}return new MergeNode([...this.classes,"* > "+name])}nestedSelector(name,p){if(p!==void 0){const{parent,after}=p;return new MergeNode([...this.classes,{replace:"* "+name,parent,after}])}return new MergeNode([...this.classes,"* "+name])}})}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/MergeNode");System.register([],(function(_export,_context){"use strict";var ItemPath,get;function*getFragments(path){const regex=/([^\=\:]+)\s*[\=\:]\s*((('[^\\']*(((\\')|(''))[^\\']*)*')|("[^\\"]*(((\\")|(""))[^\\"]*)*"))|([^\,\;]+))\s*[\,\;]?\s*/gim;let m;while((m=regex.exec(path))!==null){if(m.index===regex.lastIndex){regex.lastIndex++}yield[m[1].trim(),m[2].trim()]}}_export("default",void 0);return{setters:[],execute:function(){get=(start,path)=>{let item=start;for(const iterator of path.split(".")){if(iterator==="$"){item=start;continue}item=item[iterator]}return item};_export("default",ItemPath=class ItemPath{static get(item,path){if(path.startsWith("$.")){return get(item,path)}if(/^[\{\"]/.test(path)){const json=JSON.parse(path);return json}const target={};this.build(item,path,target);return target}static build(item,path,target){for(let[key,value]of getFragments(path)){if(value.startsWith("$")){value=get(item,value);target[key]=value;continue}if(value.startsWith('"')){value=JSON.parse(value);target[key]=value;continue}if(value.startsWith("'")){value=value.substring(1,value.length-1);value=value.replace(/((\'\')|(\\\'))/,"'");target[key]=value;continue}if(value==="true"){target[key]=true;continue}if(value==="false"){target[key]=false;continue}if(value==="null"){target[key]=null;continue}target[key]=Number(value)}}})}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/ItemPath");System.register(["@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var styled;return{setters:[function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
|
|
573
565
|
display: none;
|
|
574
566
|
`.installGlobal("[data-ui-display=none]")}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/styles/ui-display-none-style");System.register(["@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var styled,repeaterPopupCss;return{setters:[function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){_export("repeaterPopupCss",repeaterPopupCss=styled.css`
|
|
575
567
|
min-width: 200px;
|
|
@@ -1081,7 +1073,7 @@ and limitations under the License.
|
|
|
1081
1073
|
min-height: 500px;
|
|
1082
1074
|
min-width: 700px;
|
|
1083
1075
|
}
|
|
1084
|
-
`.installLocal()}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/html-editor/commands/Source");System.register(["tslib","@web-atoms/core/dist/App","@web-atoms/core/dist/core/Command","@web-atoms/core/dist/core/StringHelper","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/web/services/PopupService"],(function(_export,_context){"use strict";var __rest,App,Command,StringHelper,AtomControl,PopupService,UploadEvent,acceptCache,isFileType,previousFile,uploadCommand,id;_export("default",void 0);return{setters:[function(_tslib){__rest=_tslib.__rest},function(_webAtomsCoreDistApp){App=_webAtomsCoreDistApp.App},function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default},function(_webAtomsCoreDistCoreStringHelper){StringHelper=_webAtomsCoreDistCoreStringHelper.StringHelper},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistWebServicesPopupService){PopupService=_webAtomsCoreDistWebServicesPopupService.default}],execute:function(){acceptCache={};_export("isFileType",isFileType=acceptType=>{var _a;function isFileTypeFactory(accept){if(!accept||accept==="*/*"){return()=>true}const types=accept.split(/\,/g).map((x=>{x=x.trim();if(x.startsWith(".")){return file=>file.name.endsWith(x)}if(x.endsWith("/*")){const prefix=x.substring(0,x.length-1);return file=>file.type.startsWith(prefix)}return file=>file.type===x}));return file=>{for(const iterator of types){if(iterator(file)){return true}}return false}}return(_a=acceptCache[acceptType])!==null&&_a!==void 0?_a:acceptCache[acceptType]=isFileTypeFactory(acceptType)});uploadCommand=Command.create({name:"upload-command"});window.addEventListener(uploadCommand.eventName,(ce=>{var _a;if(ce.defaultPrevented){return}const element=ce.target;const authorize=element.getAttribute("data-authorize");if(authorize==="true"){if(!App.authorize()){return}}const multiple=element.getAttribute("data-multiple")==="true";const extra=(_a=element.extra)!==null&&_a!==void 0?_a:element.getAttribute("data-extra");const upload=element.getAttribute("data-upload")==="true";const folder=element.hasAttribute("data-folder");const uploadEvent=StringHelper.fromHyphenToCamel(element.getAttribute("data-upload-event"));const chain=[];let start=element;while(start){chain.push(start);start=start.parentElement}previousFile===null||previousFile===void 0?void 0:previousFile.remove();const file=document.createElement("input");file.type="file";file.multiple=multiple;if(folder){file.webkitdirectory=folder}const accept=element.getAttribute("data-accept")||"*/*";file.accept=accept;const capture=element.getAttribute("data-capture");if(capture){file.capture=capture}file.style.position="absolute";file.style.left="-1000px";file.style.top="-1000px";document.body.append(file);previousFile=file;const maxSize=parseInt(element.getAttribute("data-max-size")||"0",10);const forceType=element.getAttribute("data-force-type")==="true";file.addEventListener("change",(()=>{let files=Array.from(file.files);let msg="";if(forceType||maxSize){const validated=[];const checkFileType=isFileType(accept);for(const iterator of files){if(maxSize&&iterator.size>maxSize){msg+=`Size of ${iterator.name} is more than ${maxSize}`;continue}if(forceType){if(!checkFileType(iterator)){msg+=`${iterator.name} is invalid file.`;continue}}validated.push(iterator)}files=validated}file.remove();previousFile=null;chain.reverse();while(chain.length){const root=chain.pop();if(root.isConnected){const control=AtomControl.from(root);if(msg){control.app.runAsync((()=>PopupService.alert({message:msg})));if(files.length===0){return}}if(upload){const doUploadEvent=new CustomEvent("uploadRequested",{detail:{files,extra,uploadEvent},bubbles:true,cancelable:true});root.dispatchEvent(doUploadEvent);if(doUploadEvent.defaultPrevented){return}}root.dispatchEvent(new CustomEvent(uploadEvent,{detail:{files,extra},bubbles:true}));break}}}));setTimeout((()=>{file.dispatchEvent(new MouseEvent("click"))}))}));id=1;_export("default",UploadEvent=class UploadEvent{static AttachUploadAction(_a){var{uploadEvent="filesAvailable",accept="*/*",capture,multiple=false,forceType=true,maxSize=524288e3,extra,upload=true,authorize=true,ariaLabel="Upload",folder=false}=_a,others=__rest(_a,["uploadEvent","accept","capture","multiple","forceType","maxSize","extra","upload","authorize","ariaLabel","folder"]);return Object.assign(Object.assign({},others),{"data-folder":folder?"true":void 0,"data-click-command":uploadCommand.name,"data-upload-event":uploadEvent,"data-accept":accept,"data-multiple":multiple?"true":"false","data-capture":capture,"data-upload":upload?"true":"false","data-force-type":forceType?"true":"false","data-max-size":maxSize?maxSize.toString():undefined,"data-authorize":authorize.toString(),"aria-label":ariaLabel,extra})}})}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/UploadEvent");System.register(["tslib","@web-atoms/core/dist/App","@web-atoms/core/dist/core/types","@web-atoms/core/dist/di/DISingleton","@web-atoms/core/dist/di/Inject","@web-atoms/core/dist/style/styled","@web-atoms/core/dist/web/services/PopupWindow","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/web/services/PopupService"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,App,CancelToken,DISingleton,Inject,styled,PopupWindow,InjectProperty,XNode,AtomRepeater,Bind,PopupService,FileUploadWindow,acceptDocumentAndMedia,LocalFileService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistApp){App=_webAtomsCoreDistApp.App},function(_webAtomsCoreDistCoreTypes){CancelToken=_webAtomsCoreDistCoreTypes.CancelToken},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsCoreDistWebServicesPopupWindow){PopupWindow=_webAtomsCoreDistWebServicesPopupWindow.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistWebServicesPopupService){PopupService=_webAtomsCoreDistWebServicesPopupService.default}],execute:function(){_export("acceptDocumentAndMedia",acceptDocumentAndMedia=".doc, .docx, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, video/*, application/pdf, .pdf, .txt, audio/*, image/*, .csv, text/csv, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, text/plain, text/html");styled.css`
|
|
1076
|
+
`.installLocal()}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/html-editor/commands/Source");System.register(["tslib","@web-atoms/core/dist/App","@web-atoms/core/dist/core/Command","@web-atoms/core/dist/core/StringHelper","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/web/services/PopupService"],(function(_export,_context){"use strict";var __rest,App,Command,StringHelper,AtomControl,PopupService,UploadEvent,acceptCache,isFileType,previousFile,uploadCommand,id;_export("default",void 0);return{setters:[function(_tslib){__rest=_tslib.__rest},function(_webAtomsCoreDistApp){App=_webAtomsCoreDistApp.App},function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default},function(_webAtomsCoreDistCoreStringHelper){StringHelper=_webAtomsCoreDistCoreStringHelper.StringHelper},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistWebServicesPopupService){PopupService=_webAtomsCoreDistWebServicesPopupService.default}],execute:function(){acceptCache={};_export("isFileType",isFileType=acceptType=>{var _a;function isFileTypeFactory(accept){if(!accept||accept==="*/*"){return()=>true}const types=accept.split(/\,/g).map((x=>{x=x.trim();if(x.startsWith(".")){return file=>file.name.endsWith(x)}if(x.endsWith("/*")){const prefix=x.substring(0,x.length-1);return file=>file.type.startsWith(prefix)}return file=>file.type===x}));return file=>{for(const iterator of types){if(iterator(file)){return true}}return false}}return(_a=acceptCache[acceptType])!==null&&_a!==void 0?_a:acceptCache[acceptType]=isFileTypeFactory(acceptType)});uploadCommand=Command.create({name:"upload-command"});window.addEventListener(uploadCommand.eventName,(ce=>{var _a;if(ce.defaultPrevented){return}const element=ce.target;const authorize=element.getAttribute("data-authorize");if(authorize==="true"){if(!App.authorize()){return}}const multiple=element.getAttribute("data-multiple")==="true";const extra=(_a=element.extra)!==null&&_a!==void 0?_a:element.getAttribute("data-extra");const upload=element.getAttribute("data-upload")==="true";const folder=element.hasAttribute("data-folder");const uploadEvent=StringHelper.fromHyphenToCamel(element.getAttribute("data-upload-event"));const chain=[];let start=element;while(start){chain.push(start);start=start.parentElement}previousFile===null||previousFile===void 0?void 0:previousFile.remove();const file=document.createElement("input");file.type="file";file.multiple=multiple;if(folder){file.webkitdirectory=folder}const accept=element.getAttribute("data-accept")||"*/*";file.accept=accept;const capture=element.getAttribute("data-capture");if(capture){file.capture=capture}file.style.position="absolute";file.style.left="-1000px";file.style.top="-1000px";document.body.append(file);previousFile=file;const maxSize=parseInt(element.getAttribute("data-max-size")||"0",10);const forceType=element.getAttribute("data-force-type")==="true";file.addEventListener("change",(()=>{let files=Array.from(file.files);let msg="";if(forceType||maxSize){const validated=[];const checkFileType=isFileType(accept);for(const iterator of files){if(maxSize&&iterator.size>maxSize){msg+=`Size of ${iterator.name} is more than ${maxSize}`;continue}if(forceType){if(!checkFileType(iterator)){msg+=`${iterator.name} is invalid file.`;continue}}validated.push(iterator)}files=validated}file.remove();previousFile=null;chain.reverse();while(chain.length){const root=chain.pop();if(root.isConnected){const control=AtomControl.from(root);if(msg){control.app.runAsync((()=>PopupService.alert({message:msg})));if(files.length===0){return}}if(upload){const doUploadEvent=new CustomEvent("uploadRequested",{detail:{files,extra,uploadEvent},bubbles:true,cancelable:true});root.dispatchEvent(doUploadEvent);if(doUploadEvent.defaultPrevented){return}}root.dispatchEvent(new CustomEvent(uploadEvent,{detail:{files,extra},bubbles:true}));break}}}));setTimeout((()=>{file.dispatchEvent(new MouseEvent("click"))}))}));id=1;_export("default",UploadEvent=class UploadEvent{static AttachUploadAction(_a){var{uploadEvent="filesAvailable",accept="*/*",capture,multiple=false,forceType=true,maxSize=524288e3,extra,upload=true,authorize=true,ariaLabel="Upload",folder=false}=_a,others=__rest(_a,["uploadEvent","accept","capture","multiple","forceType","maxSize","extra","upload","authorize","ariaLabel","folder"]);return Object.assign(Object.assign({},others),{"data-folder":folder?"true":void 0,"data-click-command":uploadCommand.name,"data-upload-event":uploadEvent,"data-accept":accept,"data-multiple":multiple?"true":"false","data-capture":capture,"data-upload":upload?"true":"false","data-force-type":forceType?"true":"false","data-max-size":maxSize?maxSize.toString():undefined,"data-authorize":authorize.toString(),"aria-label":ariaLabel,extra})}})}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/UploadEvent");System.register(["tslib","@web-atoms/core/dist/App","@web-atoms/core/dist/core/types","@web-atoms/core/dist/di/DISingleton","@web-atoms/core/dist/di/Inject","@web-atoms/core/dist/core/StringHelper","@web-atoms/core/dist/style/styled","@web-atoms/core/dist/web/services/PopupWindow","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/web/services/PopupService"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,App,CancelToken,DISingleton,Inject,StringHelper,styled,PopupWindow,InjectProperty,XNode,AtomRepeater,Bind,PopupService,FileUploadWindow,acceptDocumentAndMedia,LocalFileService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistApp){App=_webAtomsCoreDistApp.App},function(_webAtomsCoreDistCoreTypes){CancelToken=_webAtomsCoreDistCoreTypes.CancelToken},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_webAtomsCoreDistCoreStringHelper){StringHelper=_webAtomsCoreDistCoreStringHelper.StringHelper},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsCoreDistWebServicesPopupWindow){PopupWindow=_webAtomsCoreDistWebServicesPopupWindow.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistWebServicesPopupService){PopupService=_webAtomsCoreDistWebServicesPopupService.default}],execute:function(){_export("acceptDocumentAndMedia",acceptDocumentAndMedia=".doc, .docx, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, video/*, application/pdf, .pdf, .txt, audio/*, image/*, .csv, text/csv, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, text/plain, text/html");styled.css`
|
|
1085
1077
|
display: inline-grid;
|
|
1086
1078
|
grid-template-rows: auto auto;
|
|
1087
1079
|
grid-template-columns: auto 1fr auto;
|
|
@@ -1109,7 +1101,7 @@ and limitations under the License.
|
|
|
1109
1101
|
grid-row: 1;
|
|
1110
1102
|
grid-column: 3;
|
|
1111
1103
|
}
|
|
1112
|
-
`.installGlobal("[data-attachment-file]");LocalFileService=class LocalFileService{constructor(){document.body.addEventListener("uploadRequested",(ce=>{const{target,detail:{files,extra,uploadEvent}}=ce;ce.preventDefault();this.app.runAsync((()=>__awaiter(this,void 0,void 0,(function*(){const detail=yield FileUploadWindow.showModal({parameters:{files,extra}});target.dispatchEvent(new CustomEvent(uploadEvent,{detail,bubbles:true}))}))))}))}uploadWithProgress(files,extra){return __awaiter(this,void 0,void 0,(function*(){const detail=yield FileUploadWindow.showModal({parameters:{files,extra}});return detail.files}))}upload(files,extra){return __awaiter(this,void 0,void 0,(function*(){return files.map((file=>{const uploadFile={name:file.name};uploadFile.promise=new Promise(((resolve,reject)=>{const body=new FormData;body.append(file.name,file,file.name);const xhr=new XMLHttpRequest;const onError=()=>{reject(new Error(xhr.responseText||"Error"))};xhr.upload.addEventListener("progress",(event=>{if(event.lengthComputable){uploadFile.progress=event.loaded/event.total}}));xhr.upload.addEventListener("timeout",onError);xhr.upload.addEventListener("error",onError);xhr.upload.addEventListener("abort",onError);xhr.addEventListener("timeout",onError);xhr.addEventListener("abort",onError);xhr.addEventListener("error",onError);xhr.upload.addEventListener("progress",(event=>{if(event.lengthComputable){uploadFile.progress=event.loaded/event.total}}));xhr.addEventListener("load",(()=>{if(xhr.status<=300){const r=Object.assign(Object.assign({},JSON.parse(xhr.responseText)),{file});resolve(r)}}));let postUrl="/api/upload";const s=new URLSearchParams;if(extra){if(typeof extra==="string"){extra=JSON.parse(extra)}for(const key in extra){if(Object.prototype.hasOwnProperty.call(extra,key)){const element=extra[key];if(element){s.append(key,element)}}}}if(file.webkitRelativePath){const folders=file.webkitRelativePath.split("/");folders.pop();if(folders.length){const folder=folders.join("/");s.append("folder",folder)}}postUrl+="?"+s.toString();xhr.open("POST",postUrl,true);xhr.send(body)}));return uploadFile}))}))}};__decorate([Inject,__metadata("design:type",App)],LocalFileService.prototype,"app",void 0);LocalFileService=__decorate([DISingleton(),__metadata("design:paramtypes",[])],LocalFileService);_export("default",LocalFileService);FileUploadWindow=class FileUploadWindow extends PopupWindow{constructor(){super(...arguments);this.parameters={}}init(){return __awaiter(this,void 0,void 0,(function*(){this.title="Uploading...";this.closeWarning="Are you sure you want to cancel the upload?";this.bindEvent(window,"backButton",(e=>__awaiter(this,void 0,void 0,(function*(){var _a;e.preventDefault();(_a=e.stopImmediatePropagation)===null||_a===void 0?void 0:_a.call(e);e.stopPropagation();yield this.requestCancel()}))),null,{capture:true});this.files=yield this.localFileService.upload(this.parameters.files,this.parameters.extra);this.render(XNode.create("div",null,XNode.create(AtomRepeater,{items:this.files,itemRenderer:file=>XNode.create("div",{"data-attachment-file":"file"},XNode.create("div",{"data-element":"file-name",text:file.name}),XNode.create("progress",{min:0,max:100,value:Bind.source(file,(x=>x.source.progress))}))})));try{const ct=new CancelToken;this.registerDisposable({dispose:()=>{ct.cancel()}});const tasks=this.files.map((x=>x.promise));const files=yield Promise.all(tasks);const extra=this.parameters.extra;this.close({files,extra})}catch(error){if(CancelToken.isCancelled(error)){this.cancel(error);return}yield PopupService.alert({message:error});this.cancel(error)}}))}};__decorate([InjectProperty,__metadata("design:type",LocalFileService)],FileUploadWindow.prototype,"localFileService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/files/LocalFileService");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/html-editor/InlineHtmlEditor","@web-atoms/web-controls/dist/html-editor/commands/Toolbar","@web-atoms/web-controls/dist/html-editor/commands/Bold","@web-atoms/web-controls/dist/html-editor/commands/Italic","@web-atoms/web-controls/dist/html-editor/commands/Underline","@web-atoms/web-controls/dist/html-editor/commands/StrikeThrough","@web-atoms/web-controls/dist/html-editor/commands/Align","@web-atoms/web-controls/dist/html-editor/commands/HorizontalRule","@web-atoms/web-controls/dist/html-editor/commands/Separator","@web-atoms/web-controls/dist/html-editor/commands/Headings","@web-atoms/web-controls/dist/html-editor/commands/ChangeColor","@web-atoms/web-controls/dist/html-editor/commands/ChangeFont","@web-atoms/web-controls/dist/html-editor/commands/ChangeFontSize","@web-atoms/web-controls/dist/html-editor/commands/NumberedList","@web-atoms/web-controls/dist/html-editor/commands/UnorderedList","@web-atoms/web-controls/dist/html-editor/commands/IndentLess","@web-atoms/web-controls/dist/html-editor/commands/IndentMore","@web-atoms/web-controls/dist/html-editor/commands/AddLink","@web-atoms/web-controls/dist/html-editor/commands/Unlink","@web-atoms/web-controls/dist/html-editor/commands/RemoveFormat","@web-atoms/web-controls/dist/html-editor/commands/Source","@web-atoms/web-controls/dist/basic/UploadEvent","../../../services/files/LocalFileService","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/core/InjectProperty"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,InlineHtmlEditor,Toolbar,Bold,Italic,Underline,StrikeThrough,Align,HorizontalRule,Separator,Headings,ChangeColor,ChangeFont,ChangeFontSize,NumberedList,UnorderedList,IndentLess,IndentMore,AddLink,Unlink,RemoveFormat,Source,UploadEvent,LocalFileService,acceptDocumentAndMedia,AtomControl,InjectProperty,MailHtmlEditor,link,onAttachImage,onAttachInlineImage;function AttachFile({accept=acceptDocumentAndMedia,maxSize=1024*1024*10,authorize=true,capture=null,ariaLabel="upload"}){return XNode.create("button",Object.assign({title:"Insert Image",class:"command"},UploadEvent.AttachUploadAction({accept,forceType:true,maxSize,authorize,capture,multiple:false,ariaLabel})),XNode.create("i",{class:"ri-attachment-2"}))}function AttachImage({accept="image/*",maxSize=1024*1024*5,authorize=true,inlineImage=false,capture=null,ariaLabel="upload"}){return XNode.create("button",Object.assign({title:"Insert Image",class:"command"},UploadEvent.AttachUploadAction({accept,forceType:true,maxSize,authorize,capture,upload:!inlineImage,multiple:false,ariaLabel,"event-files-available":inlineImage?onAttachInlineImage:onAttachImage})),XNode.create("i",{class:"ri-image-add-fill"}))}function InlineHtmlEditorWithToolbar(a){var _a;(_a=a.inlineImage)!==null&&_a!==void 0?_a:a.inlineImage=false;const toolbar=()=>XNode.create("div",null,XNode.create(Toolbar,null,XNode.create(Bold,null),XNode.create(Italic,null),XNode.create(Underline,null),XNode.create(StrikeThrough,null),XNode.create(Align,null),XNode.create(Separator,null),XNode.create(Headings,null),XNode.create(ChangeColor,null),XNode.create(HorizontalRule,null),XNode.create(Separator,null),XNode.create(ChangeFont,null),XNode.create(ChangeFontSize,null),XNode.create(Separator,null),XNode.create(NumberedList,null),XNode.create(UnorderedList,null),XNode.create(IndentLess,null),XNode.create(IndentMore,null),XNode.create(Separator,null)),XNode.create(Toolbar,null,XNode.create(AttachImage,{inlineImage:a.inlineImage}),XNode.create(AttachFile,null),XNode.create(Separator,null),XNode.create(AddLink,null),XNode.create(Unlink,null),XNode.create(RemoveFormat,null),XNode.create(Separator,null),XNode.create(Source,null)));return XNode.create(MailHtmlEditor,Object.assign({},a,{toolbar}))}_export({MailHtmlEditor:void 0,default:InlineHtmlEditorWithToolbar});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistHtmlEditorInlineHtmlEditor){InlineHtmlEditor=_webAtomsWebControlsDistHtmlEditorInlineHtmlEditor.default},function(_webAtomsWebControlsDistHtmlEditorCommandsToolbar){Toolbar=_webAtomsWebControlsDistHtmlEditorCommandsToolbar.default},function(_webAtomsWebControlsDistHtmlEditorCommandsBold){Bold=_webAtomsWebControlsDistHtmlEditorCommandsBold.default},function(_webAtomsWebControlsDistHtmlEditorCommandsItalic){Italic=_webAtomsWebControlsDistHtmlEditorCommandsItalic.default},function(_webAtomsWebControlsDistHtmlEditorCommandsUnderline){Underline=_webAtomsWebControlsDistHtmlEditorCommandsUnderline.default},function(_webAtomsWebControlsDistHtmlEditorCommandsStrikeThrough){StrikeThrough=_webAtomsWebControlsDistHtmlEditorCommandsStrikeThrough.default},function(_webAtomsWebControlsDistHtmlEditorCommandsAlign){Align=_webAtomsWebControlsDistHtmlEditorCommandsAlign.default},function(_webAtomsWebControlsDistHtmlEditorCommandsHorizontalRule){HorizontalRule=_webAtomsWebControlsDistHtmlEditorCommandsHorizontalRule.default},function(_webAtomsWebControlsDistHtmlEditorCommandsSeparator){Separator=_webAtomsWebControlsDistHtmlEditorCommandsSeparator.default},function(_webAtomsWebControlsDistHtmlEditorCommandsHeadings){Headings=_webAtomsWebControlsDistHtmlEditorCommandsHeadings.default},function(_webAtomsWebControlsDistHtmlEditorCommandsChangeColor){ChangeColor=_webAtomsWebControlsDistHtmlEditorCommandsChangeColor.default},function(_webAtomsWebControlsDistHtmlEditorCommandsChangeFont){ChangeFont=_webAtomsWebControlsDistHtmlEditorCommandsChangeFont.default},function(_webAtomsWebControlsDistHtmlEditorCommandsChangeFontSize){ChangeFontSize=_webAtomsWebControlsDistHtmlEditorCommandsChangeFontSize.default},function(_webAtomsWebControlsDistHtmlEditorCommandsNumberedList){NumberedList=_webAtomsWebControlsDistHtmlEditorCommandsNumberedList.default},function(_webAtomsWebControlsDistHtmlEditorCommandsUnorderedList){UnorderedList=_webAtomsWebControlsDistHtmlEditorCommandsUnorderedList.default},function(_webAtomsWebControlsDistHtmlEditorCommandsIndentLess){IndentLess=_webAtomsWebControlsDistHtmlEditorCommandsIndentLess.default},function(_webAtomsWebControlsDistHtmlEditorCommandsIndentMore){IndentMore=_webAtomsWebControlsDistHtmlEditorCommandsIndentMore.default},function(_webAtomsWebControlsDistHtmlEditorCommandsAddLink){AddLink=_webAtomsWebControlsDistHtmlEditorCommandsAddLink.default},function(_webAtomsWebControlsDistHtmlEditorCommandsUnlink){Unlink=_webAtomsWebControlsDistHtmlEditorCommandsUnlink.default},function(_webAtomsWebControlsDistHtmlEditorCommandsRemoveFormat){RemoveFormat=_webAtomsWebControlsDistHtmlEditorCommandsRemoveFormat.default},function(_webAtomsWebControlsDistHtmlEditorCommandsSource){Source=_webAtomsWebControlsDistHtmlEditorCommandsSource.default},function(_webAtomsWebControlsDistBasicUploadEvent){UploadEvent=_webAtomsWebControlsDistBasicUploadEvent.default},function(_servicesFilesLocalFileService){LocalFileService=_servicesFilesLocalFileService.default;acceptDocumentAndMedia=_servicesFilesLocalFileService.acceptDocumentAndMedia},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default}],execute:function(){link=document.createElement("link");link.href="https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css";link.rel="preload";link.as="style";link.onload=()=>{link.onload=null;link.rel="stylesheet"};document.head.appendChild(link);onAttachImage=ce=>__awaiter(void 0,void 0,void 0,(function*(){var _a,_b;const c=AtomControl.from(ce.target);if(!((_b=(_a=ce.detail)===null||_a===void 0?void 0:_a.files)===null||_b===void 0?void 0:_b.length)){return}const file=ce.detail.files[0];file.inline=true;c.executeCommand("insertHTML",void 0,`<div><img data-content="data-url" data-content-id=${file.appFileID} src="${file.url}" style='max-height: 700px;'/></div>`)}));onAttachInlineImage=ce=>__awaiter(void 0,void 0,void 0,(function*(){var _c,_d;const c=AtomControl.from(ce.target);if(!((_d=(_c=ce.detail)===null||_c===void 0?void 0:_c.files)===null||_d===void 0?void 0:_d.length)){return}const file=ce.detail.files[0];const reader=new FileReader;reader.onload=()=>{c.executeCommand("insertHTML",void 0,`<div><img\n data-content="data-url"\n src="${reader.result}" style='max-height: 700px;'/>\n </div>`)};reader.readAsDataURL(file)}));_export("MailHtmlEditor",MailHtmlEditor=class MailHtmlEditor extends InlineHtmlEditor{onPasteEvent(e){if(e.clipboardData.files.length){e.preventDefault();e.stopPropagation();this.app.runAsync((()=>__awaiter(this,void 0,void 0,(function*(){const files=yield this.localFileService.uploadWithProgress(Array.from(e.clipboardData.files));for(const file of files){this.executeCommand("insertHTML",void 0,`<div><img data-content="data-url" data-content-id=${file.appFileID} src="${file.url}" style='max-height: 700px;'/></div>`)}this.element.dispatchEvent(new CustomEvent("filesAvailable",{detail:{files,extra:"none"},bubbles:true}))}))));return}super.onPasteEvent(e)}preCreate(){super.preCreate();this.sanitizeHtml=node=>{const images=Array.from(node.querySelectorAll(`img[data-content-id]`));for(const image of images){image.setAttribute("src",`cid:${image.getAttribute("data-content-id")}`)}}}});__decorate([InjectProperty,__metadata("design:type",LocalFileService)],MailHtmlEditor.prototype,"localFileService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/html/InlineHtmlEditorWithToolbar");System.register(["@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var styled;return{setters:[function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
|
|
1104
|
+
`.installGlobal("[data-attachment-file]");LocalFileService=class LocalFileService{constructor(){document.body.addEventListener("uploadRequested",(ce=>{const{target,detail:{files,extra,uploadEvent}}=ce;ce.preventDefault();this.app.runAsync((()=>__awaiter(this,void 0,void 0,(function*(){const detail=yield FileUploadWindow.showModal({parameters:{files,extra}});target.dispatchEvent(new CustomEvent(StringHelper.fromHyphenToCamel(uploadEvent),{detail,bubbles:true}))}))))}))}uploadWithProgress(files,extra){return __awaiter(this,void 0,void 0,(function*(){const detail=yield FileUploadWindow.showModal({parameters:{files,extra}});return detail.files}))}upload(files,extra){return __awaiter(this,void 0,void 0,(function*(){return files.map((file=>{const uploadFile={name:file.name};uploadFile.promise=new Promise(((resolve,reject)=>{const body=new FormData;body.append(file.name,file,file.name);const xhr=new XMLHttpRequest;const onError=()=>{reject(new Error(xhr.responseText||"Error"))};xhr.upload.addEventListener("progress",(event=>{if(event.lengthComputable){uploadFile.progress=event.loaded/event.total}}));xhr.upload.addEventListener("timeout",onError);xhr.upload.addEventListener("error",onError);xhr.upload.addEventListener("abort",onError);xhr.addEventListener("timeout",onError);xhr.addEventListener("abort",onError);xhr.addEventListener("error",onError);xhr.upload.addEventListener("progress",(event=>{if(event.lengthComputable){uploadFile.progress=event.loaded/event.total}}));xhr.addEventListener("load",(()=>{if(xhr.status<=300){const r=Object.assign(Object.assign({},JSON.parse(xhr.responseText)),{file});resolve(r)}}));let postUrl="/api/upload";const s=new URLSearchParams;if(extra){if(typeof extra==="string"){extra=JSON.parse(extra)}for(const key in extra){if(Object.prototype.hasOwnProperty.call(extra,key)){const element=extra[key];if(element){s.append(key,element)}}}}if(file.webkitRelativePath){const folders=file.webkitRelativePath.split("/");folders.pop();if(folders.length){const folder=folders.join("/");s.append("folder",folder)}}postUrl+="?"+s.toString();xhr.open("POST",postUrl,true);xhr.send(body)}));return uploadFile}))}))}};__decorate([Inject,__metadata("design:type",App)],LocalFileService.prototype,"app",void 0);LocalFileService=__decorate([DISingleton(),__metadata("design:paramtypes",[])],LocalFileService);_export("default",LocalFileService);FileUploadWindow=class FileUploadWindow extends PopupWindow{constructor(){super(...arguments);this.parameters={}}init(){return __awaiter(this,void 0,void 0,(function*(){this.title="Uploading...";this.closeWarning="Are you sure you want to cancel the upload?";this.bindEvent(window,"backButton",(e=>__awaiter(this,void 0,void 0,(function*(){var _a;e.preventDefault();(_a=e.stopImmediatePropagation)===null||_a===void 0?void 0:_a.call(e);e.stopPropagation();yield this.requestCancel()}))),null,{capture:true});this.files=yield this.localFileService.upload(this.parameters.files,this.parameters.extra);this.render(XNode.create("div",null,XNode.create(AtomRepeater,{items:this.files,itemRenderer:file=>XNode.create("div",{"data-attachment-file":"file"},XNode.create("div",{"data-element":"file-name",text:file.name}),XNode.create("progress",{min:0,max:100,value:Bind.source(file,(x=>x.source.progress))}))})));try{const ct=new CancelToken;this.registerDisposable({dispose:()=>{ct.cancel()}});const tasks=this.files.map((x=>x.promise));const files=yield Promise.all(tasks);const extra=this.parameters.extra;this.close({files,extra})}catch(error){if(CancelToken.isCancelled(error)){this.cancel(error);return}yield PopupService.alert({message:error});this.cancel(error)}}))}};__decorate([InjectProperty,__metadata("design:type",LocalFileService)],FileUploadWindow.prototype,"localFileService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/files/LocalFileService");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/html-editor/InlineHtmlEditor","@web-atoms/web-controls/dist/html-editor/commands/Toolbar","@web-atoms/web-controls/dist/html-editor/commands/Bold","@web-atoms/web-controls/dist/html-editor/commands/Italic","@web-atoms/web-controls/dist/html-editor/commands/Underline","@web-atoms/web-controls/dist/html-editor/commands/StrikeThrough","@web-atoms/web-controls/dist/html-editor/commands/Align","@web-atoms/web-controls/dist/html-editor/commands/HorizontalRule","@web-atoms/web-controls/dist/html-editor/commands/Separator","@web-atoms/web-controls/dist/html-editor/commands/Headings","@web-atoms/web-controls/dist/html-editor/commands/ChangeColor","@web-atoms/web-controls/dist/html-editor/commands/ChangeFont","@web-atoms/web-controls/dist/html-editor/commands/ChangeFontSize","@web-atoms/web-controls/dist/html-editor/commands/NumberedList","@web-atoms/web-controls/dist/html-editor/commands/UnorderedList","@web-atoms/web-controls/dist/html-editor/commands/IndentLess","@web-atoms/web-controls/dist/html-editor/commands/IndentMore","@web-atoms/web-controls/dist/html-editor/commands/AddLink","@web-atoms/web-controls/dist/html-editor/commands/Unlink","@web-atoms/web-controls/dist/html-editor/commands/RemoveFormat","@web-atoms/web-controls/dist/html-editor/commands/Source","@web-atoms/web-controls/dist/basic/UploadEvent","../../../services/files/LocalFileService","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/core/InjectProperty"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,InlineHtmlEditor,Toolbar,Bold,Italic,Underline,StrikeThrough,Align,HorizontalRule,Separator,Headings,ChangeColor,ChangeFont,ChangeFontSize,NumberedList,UnorderedList,IndentLess,IndentMore,AddLink,Unlink,RemoveFormat,Source,UploadEvent,LocalFileService,acceptDocumentAndMedia,AtomControl,InjectProperty,MailHtmlEditor,link,onAttachImage,onAttachInlineImage;function AttachFile({accept=acceptDocumentAndMedia,maxSize=1024*1024*10,authorize=true,capture=null,ariaLabel="upload"}){return XNode.create("button",Object.assign({title:"Insert Image",class:"command"},UploadEvent.AttachUploadAction({accept,forceType:true,maxSize,authorize,capture,multiple:false,ariaLabel})),XNode.create("i",{class:"ri-attachment-2"}))}function AttachImage({accept="image/*",maxSize=1024*1024*5,authorize=true,inlineImage=false,capture=null,ariaLabel="upload"}){return XNode.create("button",Object.assign({title:"Insert Image",class:"command"},UploadEvent.AttachUploadAction({accept,forceType:true,maxSize,authorize,capture,upload:!inlineImage,multiple:false,ariaLabel,"event-files-available":inlineImage?onAttachInlineImage:onAttachImage})),XNode.create("i",{class:"ri-image-add-fill"}))}function InlineHtmlEditorWithToolbar(a){var _a;(_a=a.inlineImage)!==null&&_a!==void 0?_a:a.inlineImage=false;const toolbar=()=>XNode.create("div",null,XNode.create(Toolbar,null,XNode.create(Bold,null),XNode.create(Italic,null),XNode.create(Underline,null),XNode.create(StrikeThrough,null),XNode.create(Align,null),XNode.create(Separator,null),XNode.create(Headings,null),XNode.create(ChangeColor,null),XNode.create(HorizontalRule,null),XNode.create(Separator,null),XNode.create(ChangeFont,null),XNode.create(ChangeFontSize,null),XNode.create(Separator,null),XNode.create(NumberedList,null),XNode.create(UnorderedList,null),XNode.create(IndentLess,null),XNode.create(IndentMore,null),XNode.create(Separator,null)),XNode.create(Toolbar,null,XNode.create(AttachImage,{inlineImage:a.inlineImage}),XNode.create(AttachFile,null),XNode.create(Separator,null),XNode.create(AddLink,null),XNode.create(Unlink,null),XNode.create(RemoveFormat,null),XNode.create(Separator,null),XNode.create(Source,null)));return XNode.create(MailHtmlEditor,Object.assign({},a,{toolbar}))}_export({MailHtmlEditor:void 0,default:InlineHtmlEditorWithToolbar});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistHtmlEditorInlineHtmlEditor){InlineHtmlEditor=_webAtomsWebControlsDistHtmlEditorInlineHtmlEditor.default},function(_webAtomsWebControlsDistHtmlEditorCommandsToolbar){Toolbar=_webAtomsWebControlsDistHtmlEditorCommandsToolbar.default},function(_webAtomsWebControlsDistHtmlEditorCommandsBold){Bold=_webAtomsWebControlsDistHtmlEditorCommandsBold.default},function(_webAtomsWebControlsDistHtmlEditorCommandsItalic){Italic=_webAtomsWebControlsDistHtmlEditorCommandsItalic.default},function(_webAtomsWebControlsDistHtmlEditorCommandsUnderline){Underline=_webAtomsWebControlsDistHtmlEditorCommandsUnderline.default},function(_webAtomsWebControlsDistHtmlEditorCommandsStrikeThrough){StrikeThrough=_webAtomsWebControlsDistHtmlEditorCommandsStrikeThrough.default},function(_webAtomsWebControlsDistHtmlEditorCommandsAlign){Align=_webAtomsWebControlsDistHtmlEditorCommandsAlign.default},function(_webAtomsWebControlsDistHtmlEditorCommandsHorizontalRule){HorizontalRule=_webAtomsWebControlsDistHtmlEditorCommandsHorizontalRule.default},function(_webAtomsWebControlsDistHtmlEditorCommandsSeparator){Separator=_webAtomsWebControlsDistHtmlEditorCommandsSeparator.default},function(_webAtomsWebControlsDistHtmlEditorCommandsHeadings){Headings=_webAtomsWebControlsDistHtmlEditorCommandsHeadings.default},function(_webAtomsWebControlsDistHtmlEditorCommandsChangeColor){ChangeColor=_webAtomsWebControlsDistHtmlEditorCommandsChangeColor.default},function(_webAtomsWebControlsDistHtmlEditorCommandsChangeFont){ChangeFont=_webAtomsWebControlsDistHtmlEditorCommandsChangeFont.default},function(_webAtomsWebControlsDistHtmlEditorCommandsChangeFontSize){ChangeFontSize=_webAtomsWebControlsDistHtmlEditorCommandsChangeFontSize.default},function(_webAtomsWebControlsDistHtmlEditorCommandsNumberedList){NumberedList=_webAtomsWebControlsDistHtmlEditorCommandsNumberedList.default},function(_webAtomsWebControlsDistHtmlEditorCommandsUnorderedList){UnorderedList=_webAtomsWebControlsDistHtmlEditorCommandsUnorderedList.default},function(_webAtomsWebControlsDistHtmlEditorCommandsIndentLess){IndentLess=_webAtomsWebControlsDistHtmlEditorCommandsIndentLess.default},function(_webAtomsWebControlsDistHtmlEditorCommandsIndentMore){IndentMore=_webAtomsWebControlsDistHtmlEditorCommandsIndentMore.default},function(_webAtomsWebControlsDistHtmlEditorCommandsAddLink){AddLink=_webAtomsWebControlsDistHtmlEditorCommandsAddLink.default},function(_webAtomsWebControlsDistHtmlEditorCommandsUnlink){Unlink=_webAtomsWebControlsDistHtmlEditorCommandsUnlink.default},function(_webAtomsWebControlsDistHtmlEditorCommandsRemoveFormat){RemoveFormat=_webAtomsWebControlsDistHtmlEditorCommandsRemoveFormat.default},function(_webAtomsWebControlsDistHtmlEditorCommandsSource){Source=_webAtomsWebControlsDistHtmlEditorCommandsSource.default},function(_webAtomsWebControlsDistBasicUploadEvent){UploadEvent=_webAtomsWebControlsDistBasicUploadEvent.default},function(_servicesFilesLocalFileService){LocalFileService=_servicesFilesLocalFileService.default;acceptDocumentAndMedia=_servicesFilesLocalFileService.acceptDocumentAndMedia},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default}],execute:function(){link=document.createElement("link");link.href="https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css";link.rel="preload";link.as="style";link.onload=()=>{link.onload=null;link.rel="stylesheet"};document.head.appendChild(link);onAttachImage=ce=>__awaiter(void 0,void 0,void 0,(function*(){var _a,_b;const c=AtomControl.from(ce.target);if(!((_b=(_a=ce.detail)===null||_a===void 0?void 0:_a.files)===null||_b===void 0?void 0:_b.length)){return}const file=ce.detail.files[0];file.inline=true;c.executeCommand("insertHTML",void 0,`<div><img data-content="data-url" data-content-id=${file.appFileID} src="${file.url}" style='max-height: 700px;'/></div>`)}));onAttachInlineImage=ce=>__awaiter(void 0,void 0,void 0,(function*(){var _c,_d;const c=AtomControl.from(ce.target);if(!((_d=(_c=ce.detail)===null||_c===void 0?void 0:_c.files)===null||_d===void 0?void 0:_d.length)){return}const file=ce.detail.files[0];const reader=new FileReader;reader.onload=()=>{c.executeCommand("insertHTML",void 0,`<div><img\n data-content="data-url"\n src="${reader.result}" style='max-height: 700px;'/>\n </div>`)};reader.readAsDataURL(file)}));_export("MailHtmlEditor",MailHtmlEditor=class MailHtmlEditor extends InlineHtmlEditor{onPasteEvent(e){if(e.clipboardData.files.length){e.preventDefault();e.stopPropagation();this.app.runAsync((()=>__awaiter(this,void 0,void 0,(function*(){const files=yield this.localFileService.uploadWithProgress(Array.from(e.clipboardData.files));for(const file of files){this.executeCommand("insertHTML",void 0,`<div><img data-content="data-url" data-content-id=${file.appFileID} src="${file.url}" style='max-height: 700px;'/></div>`)}this.element.dispatchEvent(new CustomEvent("filesAvailable",{detail:{files,extra:"none"},bubbles:true}))}))));return}super.onPasteEvent(e)}preCreate(){super.preCreate();this.sanitizeHtml=node=>{const images=Array.from(node.querySelectorAll(`img[data-content-id]`));for(const image of images){image.setAttribute("src",`cid:${image.getAttribute("data-content-id")}`)}}}});__decorate([InjectProperty,__metadata("design:type",LocalFileService)],MailHtmlEditor.prototype,"localFileService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/html/InlineHtmlEditorWithToolbar");System.register(["@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var styled;return{setters:[function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
|
|
1113
1105
|
display: inline-grid;
|
|
1114
1106
|
grid-template-rows: 1fr auto;
|
|
1115
1107
|
grid-template-columns: 1fr 40px;
|
|
@@ -1453,7 +1445,7 @@ and limitations under the License.
|
|
|
1453
1445
|
}
|
|
1454
1446
|
}
|
|
1455
1447
|
}
|
|
1456
|
-
`.installLocal();_export("default",MailsPage=class MailsPage extends MasterDetailPage{constructor(){super(...arguments);this.mails=[];this.search="";this.selectedThread=null;this.previousThread=null;this.version=1}init(){var _a;return __awaiter(this,void 0,void 0,(function*(){const mailboxID=this.parameters.id;const mailbox=this.currentMailbox=yield this.mailService.mailbox(mailboxID);this.element.className=css;this.actionRenderer=()=>XNode.create("div",null,XNode.create(PopupActionButton,{icon:"fa-solid fa-plus",popup:()=>XNode.create("div",{"data-click-event":"none","data-click-animate":"no"},XNode.create(MenuItem,{label:"Compose","data-click-event":"compose-email"}),XNode.create(MenuItem,{label:"From Template","data-click-event":"compose-template"}))}));document.title=(_a=mailbox.emailAddress)===null||_a===void 0?void 0:_a.emailAddress;this.titleRenderer=()=>XNode.create("div",{"data-layout":"row"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.search)),type:"search",placeholder:"Sender Search"}),XNode.create("div",{"data-click-event":"search-mailbox","data-cursor":"pointer",text:mailbox.emailAddress.emailAddress}));this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({class:"threads","data-list-selection":"default","data-items-updated-event":"mails-available","data-selection-updated-event":"mail-selected",selectedItem:Bind.twoWays((()=>this.selectedThread)),selectOnClick:true,items:this.mails},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.mailService.list({start,size:20,search:this.search,mailboxID:this.currentMailbox.mailboxID,version:this.version,cancelToken}))),{itemRenderer:item=>XNode.create("div",{class:"mailbox-thread","data-unread":item.unread>0},item.emailAddress.name!==item.emailAddress.emailAddress&&XNode.create("div",{class:"name",text:item.emailAddress.name}),XNode.create("div",{class:"email-address",text:item.emailAddress.emailAddress}),item.unread&&XNode.create("div",{class:"unread",text:item.unread,title:`Unread ${item.unread} out of ${item.total}`}))})));this.registerDisposable(yield this.resolve(MailboxSocket).join(this.currentMailbox.mailboxID.toString(),{newMail:(_,emailAddressID,emailID)=>{this.version++}}))}))}composeTemplate(){return __awaiter(this,void 0,void 0,(function*(){const template=yield PageNavigator.pushPageForResult(ChooserTemplatePage)}))}mailsAvailable(){return __awaiter(this,void 0,void 0,(function*(){if(!this.selectedThread){this.selectedThread=this.mails[0];return}const st=this.mails.find((x=>x.mailboxID===this.selectedThread.mailboxID&&x.emailAddressID===this.selectedThread.emailAddressID));if(st!==this.selectedThread){this.selectedThread=st}}))}mailSelected(){var _a;return __awaiter(this,void 0,void 0,(function*(){if(!this.selectedThread){return}if(((_a=this.previousThread)===null||_a===void 0?void 0:_a.emailAddressID)===this.selectedThread.emailAddressID){return}this.previousThread=this.selectedThread;this.openDetail(ConversationPage,this.selectedThread)}))}composeEmail(){return __awaiter(this,void 0,void 0,(function*(){yield PageNavigator.pushPageForResultOrCancel(ComposeMailPage,{mailboxID:this.currentMailbox.mailboxID});this.version++}))}searchMailbox(){return __awaiter(this,void 0,void 0,(function*(){PageNavigator.pushPage(ChooseMailboxPage)}))}});__decorate([InjectProperty,__metadata("design:type",MailService)],MailsPage.prototype,"mailService",void 0);__decorate([Action({onEvent:"compose-template"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailsPage.prototype,"composeTemplate",null);__decorate([Action({onEvent:"mails-available",defer:100}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailsPage.prototype,"mailsAvailable",null);__decorate([Action({onEvent:"mail-selected",defer:100}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailsPage.prototype,"mailSelected",null);__decorate([Action({onEvent:"compose-email"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailsPage.prototype,"composeEmail",null);__decorate([Action({onEvent:"search-mailbox"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailsPage.prototype,"searchMailbox",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/MailboxContacts");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../web/page/files/service/CloudFileService","../../controls/repeater/InfiniteRepeater","../../NumberFormats","@web-atoms/core/dist/view-model/Action"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,Bind,InjectProperty,XNode,AtomRepeater,ContentPage,CloudFileService,InfiniteRepeater,toFileSize,Action,DriveListPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_webPageFilesServiceCloudFileService){CloudFileService=_webPageFilesServiceCloudFileService.default},function(_controlsRepeaterInfiniteRepeater){InfiniteRepeater=_controlsRepeaterInfiniteRepeater.default},function(_NumberFormats){toFileSize=_NumberFormats.toFileSize},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default}],execute:function(){_export("default",DriveListPage=class DriveListPage extends ContentPage{constructor(){super(...arguments);this.rootFolders=[];this.version=1;this.search=""}init(){var _a;return __awaiter(this,void 0,void 0,(function*(){this.selectedFolder=null;this.actionRenderer=()=>XNode.create("i",{class:"fas fa-plus","data-click-event":"create-folder"});this.selectedFolder=(_a=this.rootFolders[0])!==null&&_a!==void 0?_a:null;this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({for:"table",items:this.rootFolders,selectOnClick:true,selectedItem:Bind.twoWaysImmediate((()=>this.selectedFolder)),"data-list-selection":"default","data-selection-updated-event":"on-selection-changed"},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.cloudFileService.drives({start,cancelToken,search:this.search,version:this.version}))),{itemRenderer:item=>XNode.create("tr",null,XNode.create("td",{text:item.name}),XNode.create("td",{text:item.creator.displayName}),XNode.create("td",{text:toFileSize(item.fileSize)}))})))}))}createFolder(){return __awaiter(this,void 0,void 0,(function*(){const name=prompt("Enter name of the folder you want to create");if(!name){return}const folder=yield this.cloudFileService.createFolder({name});this.rootFolders.add(folder);this.selectedFolder=folder}))}});__decorate([InjectProperty,__metadata("design:type",CloudFileService)],DriveListPage.prototype,"cloudFileService",void 0);__decorate([Action({onEvent:"create-folder"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],DriveListPage.prototype,"createFolder",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/drives/DriveListPage");System.register(["tslib","@web-atoms/core/dist/di/DITransient","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../SocialMailApp"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DITransient,Inject,EntityService,User,UserAuthFactor,SocialMailApp,UserService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiDITransient){DITransient=_webAtomsCoreDistDiDITransient.default},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){User=_modelModel.User;UserAuthFactor=_modelModel.UserAuthFactor},function(_SocialMailApp){SocialMailApp=_SocialMailApp.default}],execute:function(){UserService=class UserService{getCurrent(){return __awaiter(this,void 0,void 0,(function*(){const{userID}=SocialMailApp.user;return this.entityService.query(User).where({userID},(p=>x=>x.userID===p.userID)).include((x=>x.authFactors)).firstOrDefault()}))}save(user){return __awaiter(this,void 0,void 0,(function*(){let cloner=this.entityService.cloner(user).include((x=>x.authFactors));if(user.changePassword){cloner=cloner.include((x=>x.changePassword))}yield this.entityService.save(cloner.copy)}))}createAuthFactor(user,method="totp"){var _a;return __awaiter(this,void 0,void 0,(function*(){const authFactor=UserAuthFactor.create({method});((_a=user.authFactors)!==null&&_a!==void 0?_a:user.authFactors=[]).add(authFactor);yield this.save(user);return authFactor}))}};__decorate([Inject,__metadata("design:type",EntityService)],UserService.prototype,"entityService",void 0);UserService=__decorate([DITransient()],UserService);_export("default",UserService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/user/services/UserService");System.register([],(function(_export,_context){"use strict";var Validators;return{setters:[],execute:function(){_export("Validators",Validators={checkPassword:password=>{const hasMinimumLength=password.length>=7;const hasNumber=/\d/.test(password);const hasSymbol=/[\@\#\$\%\^\&\*\!]/.test(password);return{hasMinimumLength,hasNumber,hasSymbol,isValid:hasMinimumLength&&hasNumber&&hasSymbol}},isValidPassword:password=>Validators.checkPassword(password).isValid})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/validators/Validators");System.register(["@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","../../validators/Validators"],(function(_export,_context){"use strict";var Bind,XNode,AtomControl,Validators,PasswordStrength;_export("default",void 0);return{setters:[function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_validatorsValidators){Validators=_validatorsValidators.Validators}],execute:function(){_export("default",PasswordStrength=class PasswordStrength extends AtomControl{constructor(){super(...arguments);this.password="";this.validation={hasMinimumLength:false,hasNumber:false,hasSymbol:false,isValid:false}}preCreate(){this.render(XNode.create("div",{"data-layout":"vertical-flex",validation:Bind.oneWay((()=>Validators.checkPassword(this.password)))},XNode.create("div",{"data-layout":"row"},XNode.create("i",{"data-color":Bind.oneWay((()=>this.validation.hasMinimumLength?"green":"red")),class:Bind.oneWay((()=>this.validation.hasMinimumLength?"fas fa-check":"fas fa-times"))}),XNode.create("span",{text:"Password is at least 7 characters long."})),XNode.create("div",{"data-layout":"row"},XNode.create("i",{"data-color":Bind.oneWay((()=>this.validation.hasNumber?"green":"red")),class:Bind.oneWay((()=>this.validation.hasNumber?"fas fa-check":"fas fa-times"))}),XNode.create("span",{text:"Password has a number."})),XNode.create("div",{"data-layout":"row"},XNode.create("i",{"data-color":Bind.oneWay((()=>this.validation.hasSymbol?"green":"red")),class:Bind.oneWay((()=>this.validation.hasSymbol?"fas fa-check":"fas fa-times"))}),XNode.create("span",{text:"Password has a symbol."}))))}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/password/PasswordStrength");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/InjectProperty","../services/UserService","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","../../../controls/form/RequiredFormField","@web-atoms/core/dist/core/Bind","../../../controls/password/PasswordStrength","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/basic/PasswordBox","../../../validators/Validators","../../../controls/buttons/IconButton","@web-atoms/core/dist/view-model/Action"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,InjectProperty,UserService,XNode,Form,PasswordFormField,Bind,PasswordStrength,FormField,PasswordBox,Validators,SaveIconTextButton,Action,ChangePasswordPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesUserService){UserService=_servicesUserService.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_controlsFormRequiredFormField){PasswordFormField=_controlsFormRequiredFormField.PasswordFormField},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_controlsPasswordPasswordStrength){PasswordStrength=_controlsPasswordPasswordStrength.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistBasicPasswordBox){PasswordBox=_webAtomsWebControlsDistBasicPasswordBox.default},function(_validatorsValidators){Validators=_validatorsValidators.Validators},function(_controlsButtonsIconButton){SaveIconTextButton=_controlsButtonsIconButton.SaveIconTextButton},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default}],execute:function(){_export("default",ChangePasswordPage=class ChangePasswordPage extends PopupWindowPage{constructor(){super(...arguments);this.password=""}init(){return __awaiter(this,void 0,void 0,(function*(){this.model=yield this.userService.getCurrent();this.title="Change Password";this.model.changePassword={oldPassword:"",newPassword:"",forceChangePasswordOnLogin:false};this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(PasswordFormField,{label:"Current Password",value:()=>this.model.changePassword.oldPassword}),XNode.create(FormField,{label:"Password",required:true,error:Bind.oneWay((()=>Validators.isValidPassword(this.password)?"":"Password is invalid"))},XNode.create(PasswordBox,{value:Bind.twoWaysImmediate((()=>this.password))})),XNode.create(PasswordStrength,{password:Bind.oneWay((()=>this.password))}),XNode.create(FormField,{label:"Password again",required:true,error:Bind.oneWay((()=>this.password!==this.model.changePassword.newPassword?"Passwords do not match":""))},XNode.create(PasswordBox,{value:Bind.twoWaysImmediate((()=>this.model.changePassword.newPassword))})),XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"data-submit-event":"save-user",text:"Change"}))))}))}saveUser(){return __awaiter(this,void 0,void 0,(function*(){yield this.userService.save(this.model)}))}});__decorate([InjectProperty,__metadata("design:type",UserService)],ChangePasswordPage.prototype,"userService",void 0);__decorate([Action({onEvent:"save-user",success:"Password changed successfully."}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],ChangePasswordPage.prototype,"saveUser",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/user/change-password/ChangePasswordPage");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../model/model","@web-atoms/core/dist/core/InjectProperty","../services/UserService","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","../../../controls/buttons/IconButton","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/basic/AtomRepeater","../../../date/DateFormats"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,ContentPage,UserAuthFactor,InjectProperty,UserService,XNode,Form,AddIconTextButton,DeleteIconTextButton,SaveIconTextButton,FormField,Bind,Action,AtomRepeater,DateFormats,MultiFactorSetupPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_modelModel){UserAuthFactor=_modelModel.UserAuthFactor},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesUserService){UserService=_servicesUserService.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_controlsButtonsIconButton){AddIconTextButton=_controlsButtonsIconButton.AddIconTextButton;DeleteIconTextButton=_controlsButtonsIconButton.DeleteIconTextButton;SaveIconTextButton=_controlsButtonsIconButton.SaveIconTextButton},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_dateDateFormats){DateFormats=_dateDateFormats.DateFormats}],execute:function(){_export("default",MultiFactorSetupPage=class MultiFactorSetupPage extends ContentPage{init(){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){this.model=yield this.userService.getCurrent();const{multiFactor}=this.model;this.title="Setup Multi Factor Authentication";if(!((_a=this.model.authFactors)===null||_a===void 0?void 0:_a.length)){yield this.notSetup();return}if(multiFactor){this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create(Form,null,XNode.create(FormField,{label:"Methods"},XNode.create(AtomRepeater,{for:"table",items:this.model.authFactors,itemRenderer:item=>this.renderAuthFactor(item)})),!multiFactor&&XNode.create("div",{"data-layout":"command-row"},XNode.create(AddIconTextButton,{"event-click":()=>this.addAuthenticator(),text:"Add Authenticator"}),XNode.create(AddIconTextButton,{"event-click":()=>this.generateOTP(),text:"Generate OTP"})),XNode.create("div",{"data-layout":"command-row"},XNode.create("div",null,"Multi factor authentication is enabled."),XNode.create(DeleteIconTextButton,{text:"Disable"}))));return}const disable=!((_b=this.model.authFactors)===null||_b===void 0?void 0:_b.length)||!this.model.authFactors.some((i=>i.method==="totp"&&i.verified))||this.model.authFactors.filter((i=>i.method==="one-time")).length<8;this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create(Form,null,XNode.create(FormField,{label:"Methods"},XNode.create(AtomRepeater,{for:"table",items:this.model.authFactors,itemRenderer:item=>this.renderAuthFactor(item)})),!multiFactor&&XNode.create("div",{"data-layout":"command-row"},XNode.create(AddIconTextButton,{"event-click":()=>this.addAuthenticator(),text:"Add Authenticator"}),XNode.create(AddIconTextButton,{"event-click":()=>this.generateOTP(),text:"Generate OTP"})),disable&&XNode.create("div",null,"You must add at least one authenticator and generate 8 OTPs (one time passwords) to enable Multi factor authentication."),!multiFactor&&XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{disabled:disable,"style-color":disable?"gray":"","data-click-event":"enable-multi-factor",text:"Enable"}),XNode.create(DeleteIconTextButton,{"data-submit-event":"clear-all",text:"Clear All"})),multiFactor&&XNode.create("div",{"data-layout":"command-row"},XNode.create(DeleteIconTextButton,{text:"Disable"}))))}))}renderAuthFactor(item){if(item.method==="totp"){return XNode.create("tr",null,XNode.create("td",null,"Authenticator"),XNode.create("td",null,item.hint),XNode.create("td",null,DateFormats.relative.short(item.dateUpdated)),XNode.create("td",null,XNode.create("i",{class:"fas fa-check green"})))}if(item.method==="one-time"){return XNode.create("tr",null,XNode.create("td",null,"OTP"),XNode.create("td",null,item.hint,"*****************"),XNode.create("td",null,DateFormats.relative.short(item.dateUpdated)),XNode.create("td",null,XNode.create("i",{class:"fas fa-check green"})))}return XNode.create("tr",null,XNode.create("td",null,item.method),XNode.create("td",null,item.hint),XNode.create("td",null,DateFormats.relative.short(item.dateUpdated)),XNode.create("td",null,XNode.create("i",{class:"fas fa-check green"})))}notSetup(){return __awaiter(this,void 0,void 0,(function*(){this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create("p",null,"You account is not secure, please setup multi factor authentication."),XNode.create(AddIconTextButton,{"event-click":()=>this.addAuthenticator(),text:"Add Authenticator"}))}))}addAuthenticator(){return __awaiter(this,void 0,void 0,(function*(){const authFactor=yield this.userService.createAuthFactor(this.model);this.authFactor=authFactor;this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create(Form,null,XNode.create(FormField,{label:""},XNode.create("div",null,"Scan following QR Code in any compatible Authenticator App. Enter the generated code and hit the verify button.")),XNode.create(FormField,{label:"Secret"},XNode.create("img",{src:authFactor.qrCodeDataUrl})),XNode.create(FormField,{label:"Code",required:true,error:Bind.oneWay((()=>this.authFactor.token?"":"Code is required"))},XNode.create("input",{type:"tel",value:Bind.twoWaysImmediate((()=>this.authFactor.token))})),XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"data-submit-event":"save-auth-factor",text:"Verify"}))))}))}generateOTP(){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){const authList=(_a=(_b=this.model).authFactors)!==null&&_a!==void 0?_a:_b.authFactors=[];for(let index=0;index<8;index++){authList.push(UserAuthFactor.create({method:"one-time"}))}yield this.userService.save(this.model);let text="";for(const iterator of authList){if(!(iterator===null||iterator===void 0?void 0:iterator.displaySecret)){continue}text+="\r\n"+iterator.displaySecret}text+="\r\n";this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create(Form,null,XNode.create(FormField,{label:"One Time Passwords"},XNode.create("div",null,"Please copy and save these passwords somewhere safe. You can use them if you cannot access Authenticator app.")),XNode.create(FormField,{label:""},XNode.create("textarea",{rows:12,value:text})),XNode.create("div",null,"After copying, click go to previous screen."),XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"event-click":()=>this.init(),text:"Go"}))))}))}clearAll(){return __awaiter(this,void 0,void 0,(function*(){const all=this.model.authFactors;if(!(all===null||all===void 0?void 0:all.length)){return}for(const iterator of all){iterator.$deleted=true}yield this.userService.save(this.model);yield this.init()}))}enableMultiFactor(){return __awaiter(this,void 0,void 0,(function*(){this.model.multiFactor=true;yield this.userService.save(this.model);yield this.init()}))}saveAuthFactor(){return __awaiter(this,void 0,void 0,(function*(){yield this.userService.save(this.model);yield this.init()}))}});__decorate([InjectProperty,__metadata("design:type",UserService)],MultiFactorSetupPage.prototype,"userService",void 0);__decorate([Action({onEvent:"clear-all",confirm:"Are you sure you want to delete all existing methods?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MultiFactorSetupPage.prototype,"clearAll",null);__decorate([Action({onEvent:"enable-multi-factor",success:"Multi factor authentication enabled successfully."}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MultiFactorSetupPage.prototype,"enableMultiFactor",null);__decorate([Action({onEvent:"save-auth-factor",success:"Authenticator setup successfully."}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MultiFactorSetupPage.prototype,"saveAuthFactor",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/user/multi-factor/MultiFactorSetupPage");System.register(["@web-atoms/core/dist/core/Command"],(function(_export,_context){"use strict";var Command,Commands,CommonCommands;_export("default",void 0);return{setters:[function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default;Commands=_webAtomsCoreDistCoreCommand.Commands}],execute:function(){_export("default",CommonCommands=class CommonCommands extends Commands{});CommonCommands.openMailbox=Command.create({route:"/mailbox/{id}",routeOrder:50,openPage:()=>_context.import("../../web/page/mails/MailboxContacts")});CommonCommands.openDrives=Command.create({route:"/drives",routeOrder:100,openPage:()=>_context.import("../pages/drives/DriveListPage")});CommonCommands.changePassword=Command.create({route:"/user/change-password",pushPage:()=>_context.import("../pages/user/change-password/ChangePasswordPage")});CommonCommands.setupMultiFactor=Command.create({route:"/user/multi-factor/setup",pushPage:()=>_context.import("../pages/user/multi-factor/MultiFactorSetupPage")})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/commands/CommonCommands");System.register(["@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var styled;return{setters:[function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
|
|
1448
|
+
`.installLocal();_export("default",MailsPage=class MailsPage extends MasterDetailPage{constructor(){super(...arguments);this.mails=[];this.search="";this.selectedThread=null;this.previousThread=null;this.version=1}init(){var _a;return __awaiter(this,void 0,void 0,(function*(){const mailboxID=this.parameters.id;const mailbox=this.currentMailbox=yield this.mailService.mailbox(mailboxID);this.element.className=css;this.actionRenderer=()=>XNode.create("div",null,XNode.create(PopupActionButton,{icon:"fa-solid fa-plus",popup:()=>XNode.create("div",{"data-click-event":"none","data-click-animate":"no"},XNode.create(MenuItem,{label:"Compose","data-click-event":"compose-email"}),XNode.create(MenuItem,{label:"From Template","data-click-event":"compose-template"}))}));document.title=(_a=mailbox.emailAddress)===null||_a===void 0?void 0:_a.emailAddress;this.titleRenderer=()=>XNode.create("div",{"data-layout":"row"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.search)),type:"search",placeholder:"Sender Search"}),XNode.create("div",{"data-click-event":"search-mailbox","data-cursor":"pointer",text:mailbox.emailAddress.emailAddress}));this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({class:"threads","data-list-selection":"default","data-items-updated-event":"mails-available","data-selection-updated-event":"mail-selected",selectedItem:Bind.twoWays((()=>this.selectedThread)),selectOnClick:true,items:this.mails},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.mailService.list({start,size:20,search:this.search,mailboxID:this.currentMailbox.mailboxID,version:this.version,cancelToken}))),{itemRenderer:item=>XNode.create("div",{class:"mailbox-thread","data-unread":item.unread>0},item.emailAddress.name!==item.emailAddress.emailAddress&&XNode.create("div",{class:"name",text:item.emailAddress.name}),XNode.create("div",{class:"email-address",text:item.emailAddress.emailAddress}),item.unread&&XNode.create("div",{class:"unread",text:item.unread,title:`Unread ${item.unread} out of ${item.total}`}))})));this.registerDisposable(yield this.resolve(MailboxSocket).join(this.currentMailbox.mailboxID.toString(),{newMail:(_,emailAddressID,emailID)=>{this.version++}}))}))}composeTemplate(){return __awaiter(this,void 0,void 0,(function*(){const template=yield PageNavigator.pushPageForResult(ChooserTemplatePage)}))}mailsAvailable(){return __awaiter(this,void 0,void 0,(function*(){if(!this.selectedThread){this.selectedThread=this.mails[0];return}const st=this.mails.find((x=>x.mailboxID===this.selectedThread.mailboxID&&x.emailAddressID===this.selectedThread.emailAddressID));if(st!==this.selectedThread){this.selectedThread=st}}))}mailSelected(){var _a;return __awaiter(this,void 0,void 0,(function*(){if(!this.selectedThread){return}if(((_a=this.previousThread)===null||_a===void 0?void 0:_a.emailAddressID)===this.selectedThread.emailAddressID){return}this.previousThread=this.selectedThread;this.openDetail(ConversationPage,this.selectedThread)}))}composeEmail(){return __awaiter(this,void 0,void 0,(function*(){yield PageNavigator.pushPageForResultOrCancel(ComposeMailPage,{mailboxID:this.currentMailbox.mailboxID});this.version++}))}searchMailbox(){return __awaiter(this,void 0,void 0,(function*(){PageNavigator.pushPage(ChooseMailboxPage)}))}});__decorate([InjectProperty,__metadata("design:type",MailService)],MailsPage.prototype,"mailService",void 0);__decorate([Action({onEvent:"compose-template"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailsPage.prototype,"composeTemplate",null);__decorate([Action({onEvent:"mails-available",defer:100}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailsPage.prototype,"mailsAvailable",null);__decorate([Action({onEvent:"mail-selected",defer:100}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailsPage.prototype,"mailSelected",null);__decorate([Action({onEvent:"compose-email"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailsPage.prototype,"composeEmail",null);__decorate([Action({onEvent:"search-mailbox"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailsPage.prototype,"searchMailbox",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/MailboxContacts");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../web/page/files/service/CloudFileService","../../controls/repeater/InfiniteRepeater","../../NumberFormats","@web-atoms/core/dist/view-model/Action","../../../web/commands/AppCommands"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,Bind,InjectProperty,XNode,AtomRepeater,ContentPage,CloudFileService,InfiniteRepeater,toFileSize,Action,AppCommands,DriveListPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_webPageFilesServiceCloudFileService){CloudFileService=_webPageFilesServiceCloudFileService.default},function(_controlsRepeaterInfiniteRepeater){InfiniteRepeater=_controlsRepeaterInfiniteRepeater.default},function(_NumberFormats){toFileSize=_NumberFormats.toFileSize},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webCommandsAppCommands){AppCommands=_webCommandsAppCommands.default}],execute:function(){_export("default",DriveListPage=class DriveListPage extends ContentPage{constructor(){super(...arguments);this.rootFolders=[];this.version=1;this.search=""}init(){var _a;return __awaiter(this,void 0,void 0,(function*(){this.selectedFolder=null;this.actionRenderer=()=>XNode.create("i",{class:"fas fa-plus","data-click-event":"create-folder"});this.selectedFolder=(_a=this.rootFolders[0])!==null&&_a!==void 0?_a:null;this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({for:"table",items:this.rootFolders,selectOnClick:true,selectedItem:Bind.twoWaysImmediate((()=>this.selectedFolder)),"data-list-selection":"default","data-selection-updated-event":"on-selection-changed"},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.cloudFileService.drives({start,cancelToken,search:this.search,version:this.version}))),{itemRenderer:item=>XNode.create("tr",null,XNode.create("td",null,XNode.create("a",{"data-click-event":"route",href:AppCommands.openFiles.displayRoute({id:item.appFileID})},item.name)),XNode.create("td",{text:item.creator.displayName}),XNode.create("td",{text:toFileSize(item.fileSize)}))})))}))}createFolder(){return __awaiter(this,void 0,void 0,(function*(){const name=prompt("Enter name of the folder you want to create");if(!name){return}const folder=yield this.cloudFileService.createFolder({name});this.rootFolders.add(folder);this.selectedFolder=folder}))}});__decorate([InjectProperty,__metadata("design:type",CloudFileService)],DriveListPage.prototype,"cloudFileService",void 0);__decorate([Action({onEvent:"create-folder"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],DriveListPage.prototype,"createFolder",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/drives/DriveListPage");System.register(["tslib","@web-atoms/core/dist/di/DITransient","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../SocialMailApp"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DITransient,Inject,EntityService,User,UserAuthFactor,SocialMailApp,UserService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiDITransient){DITransient=_webAtomsCoreDistDiDITransient.default},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){User=_modelModel.User;UserAuthFactor=_modelModel.UserAuthFactor},function(_SocialMailApp){SocialMailApp=_SocialMailApp.default}],execute:function(){UserService=class UserService{getCurrent(){return __awaiter(this,void 0,void 0,(function*(){const{userID}=SocialMailApp.user;return this.entityService.query(User).where({userID},(p=>x=>x.userID===p.userID)).include((x=>x.authFactors)).firstOrDefault()}))}save(user){return __awaiter(this,void 0,void 0,(function*(){let cloner=this.entityService.cloner(user).include((x=>x.authFactors));if(user.changePassword){cloner=cloner.include((x=>x.changePassword))}yield this.entityService.save(cloner.copy)}))}createAuthFactor(user,method="totp"){var _a;return __awaiter(this,void 0,void 0,(function*(){const authFactor=UserAuthFactor.create({method});((_a=user.authFactors)!==null&&_a!==void 0?_a:user.authFactors=[]).add(authFactor);yield this.save(user);return authFactor}))}};__decorate([Inject,__metadata("design:type",EntityService)],UserService.prototype,"entityService",void 0);UserService=__decorate([DITransient()],UserService);_export("default",UserService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/user/services/UserService");System.register([],(function(_export,_context){"use strict";var Validators;return{setters:[],execute:function(){_export("Validators",Validators={checkPassword:password=>{const hasMinimumLength=password.length>=7;const hasNumber=/\d/.test(password);const hasSymbol=/[\@\#\$\%\^\&\*\!]/.test(password);return{hasMinimumLength,hasNumber,hasSymbol,isValid:hasMinimumLength&&hasNumber&&hasSymbol}},isValidPassword:password=>Validators.checkPassword(password).isValid})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/validators/Validators");System.register(["@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","../../validators/Validators"],(function(_export,_context){"use strict";var Bind,XNode,AtomControl,Validators,PasswordStrength;_export("default",void 0);return{setters:[function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_validatorsValidators){Validators=_validatorsValidators.Validators}],execute:function(){_export("default",PasswordStrength=class PasswordStrength extends AtomControl{constructor(){super(...arguments);this.password="";this.validation={hasMinimumLength:false,hasNumber:false,hasSymbol:false,isValid:false}}preCreate(){this.render(XNode.create("div",{"data-layout":"vertical-flex",validation:Bind.oneWay((()=>Validators.checkPassword(this.password)))},XNode.create("div",{"data-layout":"row"},XNode.create("i",{"data-color":Bind.oneWay((()=>this.validation.hasMinimumLength?"green":"red")),class:Bind.oneWay((()=>this.validation.hasMinimumLength?"fas fa-check":"fas fa-times"))}),XNode.create("span",{text:"Password is at least 7 characters long."})),XNode.create("div",{"data-layout":"row"},XNode.create("i",{"data-color":Bind.oneWay((()=>this.validation.hasNumber?"green":"red")),class:Bind.oneWay((()=>this.validation.hasNumber?"fas fa-check":"fas fa-times"))}),XNode.create("span",{text:"Password has a number."})),XNode.create("div",{"data-layout":"row"},XNode.create("i",{"data-color":Bind.oneWay((()=>this.validation.hasSymbol?"green":"red")),class:Bind.oneWay((()=>this.validation.hasSymbol?"fas fa-check":"fas fa-times"))}),XNode.create("span",{text:"Password has a symbol."}))))}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/password/PasswordStrength");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/InjectProperty","../services/UserService","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","../../../controls/form/RequiredFormField","@web-atoms/core/dist/core/Bind","../../../controls/password/PasswordStrength","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/basic/PasswordBox","../../../validators/Validators","../../../controls/buttons/IconButton","@web-atoms/core/dist/view-model/Action"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,InjectProperty,UserService,XNode,Form,PasswordFormField,Bind,PasswordStrength,FormField,PasswordBox,Validators,SaveIconTextButton,Action,ChangePasswordPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesUserService){UserService=_servicesUserService.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_controlsFormRequiredFormField){PasswordFormField=_controlsFormRequiredFormField.PasswordFormField},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_controlsPasswordPasswordStrength){PasswordStrength=_controlsPasswordPasswordStrength.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistBasicPasswordBox){PasswordBox=_webAtomsWebControlsDistBasicPasswordBox.default},function(_validatorsValidators){Validators=_validatorsValidators.Validators},function(_controlsButtonsIconButton){SaveIconTextButton=_controlsButtonsIconButton.SaveIconTextButton},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default}],execute:function(){_export("default",ChangePasswordPage=class ChangePasswordPage extends PopupWindowPage{constructor(){super(...arguments);this.password=""}init(){return __awaiter(this,void 0,void 0,(function*(){this.model=yield this.userService.getCurrent();this.title="Change Password";this.model.changePassword={oldPassword:"",newPassword:"",forceChangePasswordOnLogin:false};this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(PasswordFormField,{label:"Current Password",value:()=>this.model.changePassword.oldPassword}),XNode.create(FormField,{label:"Password",required:true,error:Bind.oneWay((()=>Validators.isValidPassword(this.password)?"":"Password is invalid"))},XNode.create(PasswordBox,{value:Bind.twoWaysImmediate((()=>this.password))})),XNode.create(PasswordStrength,{password:Bind.oneWay((()=>this.password))}),XNode.create(FormField,{label:"Password again",required:true,error:Bind.oneWay((()=>this.password!==this.model.changePassword.newPassword?"Passwords do not match":""))},XNode.create(PasswordBox,{value:Bind.twoWaysImmediate((()=>this.model.changePassword.newPassword))})),XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"data-submit-event":"save-user",text:"Change"}))))}))}saveUser(){return __awaiter(this,void 0,void 0,(function*(){yield this.userService.save(this.model)}))}});__decorate([InjectProperty,__metadata("design:type",UserService)],ChangePasswordPage.prototype,"userService",void 0);__decorate([Action({onEvent:"save-user",success:"Password changed successfully.",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],ChangePasswordPage.prototype,"saveUser",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/user/change-password/ChangePasswordPage");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../model/model","@web-atoms/core/dist/core/InjectProperty","../services/UserService","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","../../../controls/buttons/IconButton","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/basic/AtomRepeater","../../../date/DateFormats"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,ContentPage,UserAuthFactor,InjectProperty,UserService,XNode,Form,AddIconTextButton,DeleteIconTextButton,SaveIconTextButton,FormField,Bind,Action,AtomRepeater,DateFormats,MultiFactorSetupPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_modelModel){UserAuthFactor=_modelModel.UserAuthFactor},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesUserService){UserService=_servicesUserService.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_controlsButtonsIconButton){AddIconTextButton=_controlsButtonsIconButton.AddIconTextButton;DeleteIconTextButton=_controlsButtonsIconButton.DeleteIconTextButton;SaveIconTextButton=_controlsButtonsIconButton.SaveIconTextButton},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_dateDateFormats){DateFormats=_dateDateFormats.DateFormats}],execute:function(){_export("default",MultiFactorSetupPage=class MultiFactorSetupPage extends ContentPage{init(){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){this.model=yield this.userService.getCurrent();const{multiFactor}=this.model;this.title="Setup Multi Factor Authentication";if(!((_a=this.model.authFactors)===null||_a===void 0?void 0:_a.length)){yield this.notSetup();return}if(multiFactor){this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create(Form,null,XNode.create(FormField,{label:"Methods"},XNode.create(AtomRepeater,{for:"table",items:this.model.authFactors,itemRenderer:item=>this.renderAuthFactor(item)})),!multiFactor&&XNode.create("div",{"data-layout":"command-row"},XNode.create(AddIconTextButton,{"event-click":()=>this.addAuthenticator(),text:"Add Authenticator"}),XNode.create(AddIconTextButton,{"event-click":()=>this.generateOTP(),text:"Generate OTP"})),XNode.create("div",{"data-layout":"command-row"},XNode.create("div",null,"Multi factor authentication is enabled."),XNode.create(DeleteIconTextButton,{text:"Disable"}))));return}const disable=!((_b=this.model.authFactors)===null||_b===void 0?void 0:_b.length)||!this.model.authFactors.some((i=>i.method==="totp"&&i.verified))||this.model.authFactors.filter((i=>i.method==="one-time")).length<8;this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create(Form,null,XNode.create(FormField,{label:"Methods"},XNode.create(AtomRepeater,{for:"table",items:this.model.authFactors,itemRenderer:item=>this.renderAuthFactor(item)})),!multiFactor&&XNode.create("div",{"data-layout":"command-row"},XNode.create(AddIconTextButton,{"event-click":()=>this.addAuthenticator(),text:"Add Authenticator"}),XNode.create(AddIconTextButton,{"event-click":()=>this.generateOTP(),text:"Generate OTP"})),disable&&XNode.create("div",null,"You must add at least one authenticator and generate 8 OTPs (one time passwords) to enable Multi factor authentication."),!multiFactor&&XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{disabled:disable,"style-color":disable?"gray":"","data-click-event":"enable-multi-factor",text:"Enable"}),XNode.create(DeleteIconTextButton,{"data-submit-event":"clear-all",text:"Clear All"})),multiFactor&&XNode.create("div",{"data-layout":"command-row"},XNode.create(DeleteIconTextButton,{text:"Disable"}))))}))}renderAuthFactor(item){if(item.method==="totp"){return XNode.create("tr",null,XNode.create("td",null,"Authenticator"),XNode.create("td",null,item.hint),XNode.create("td",null,DateFormats.relative.short(item.dateUpdated)),XNode.create("td",null,XNode.create("i",{class:"fas fa-check green"})))}if(item.method==="one-time"){return XNode.create("tr",null,XNode.create("td",null,"OTP"),XNode.create("td",null,item.hint,"*****************"),XNode.create("td",null,DateFormats.relative.short(item.dateUpdated)),XNode.create("td",null,XNode.create("i",{class:"fas fa-check green"})))}return XNode.create("tr",null,XNode.create("td",null,item.method),XNode.create("td",null,item.hint),XNode.create("td",null,DateFormats.relative.short(item.dateUpdated)),XNode.create("td",null,XNode.create("i",{class:"fas fa-check green"})))}notSetup(){return __awaiter(this,void 0,void 0,(function*(){this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create("p",null,"You account is not secure, please setup multi factor authentication."),XNode.create(AddIconTextButton,{"event-click":()=>this.addAuthenticator(),text:"Add Authenticator"}))}))}addAuthenticator(){return __awaiter(this,void 0,void 0,(function*(){const authFactor=yield this.userService.createAuthFactor(this.model);this.authFactor=authFactor;this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create(Form,null,XNode.create(FormField,{label:""},XNode.create("div",null,"Scan following QR Code in any compatible Authenticator App. Enter the generated code and hit the verify button.")),XNode.create(FormField,{label:"Secret"},XNode.create("img",{src:authFactor.qrCodeDataUrl})),XNode.create(FormField,{label:"Code",required:true,error:Bind.oneWay((()=>this.authFactor.token?"":"Code is required"))},XNode.create("input",{type:"tel",value:Bind.twoWaysImmediate((()=>this.authFactor.token))})),XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"data-submit-event":"save-auth-factor",text:"Verify"}))))}))}generateOTP(){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){const authList=(_a=(_b=this.model).authFactors)!==null&&_a!==void 0?_a:_b.authFactors=[];for(let index=0;index<8;index++){authList.push(UserAuthFactor.create({method:"one-time"}))}yield this.userService.save(this.model);let text="";for(const iterator of authList){if(!(iterator===null||iterator===void 0?void 0:iterator.displaySecret)){continue}text+="\r\n"+iterator.displaySecret}text+="\r\n";this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create(Form,null,XNode.create(FormField,{label:"One Time Passwords"},XNode.create("div",null,"Please copy and save these passwords somewhere safe. You can use them if you cannot access Authenticator app.")),XNode.create(FormField,{label:""},XNode.create("textarea",{rows:12,value:text})),XNode.create("div",null,"After copying, click go to previous screen."),XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"event-click":()=>this.init(),text:"Go"}))))}))}clearAll(){return __awaiter(this,void 0,void 0,(function*(){const all=this.model.authFactors;if(!(all===null||all===void 0?void 0:all.length)){return}for(const iterator of all){iterator.$deleted=true}yield this.userService.save(this.model);yield this.init()}))}enableMultiFactor(){return __awaiter(this,void 0,void 0,(function*(){this.model.multiFactor=true;yield this.userService.save(this.model);yield this.init()}))}saveAuthFactor(){return __awaiter(this,void 0,void 0,(function*(){yield this.userService.save(this.model);yield this.init()}))}});__decorate([InjectProperty,__metadata("design:type",UserService)],MultiFactorSetupPage.prototype,"userService",void 0);__decorate([Action({onEvent:"clear-all",confirm:"Are you sure you want to delete all existing methods?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MultiFactorSetupPage.prototype,"clearAll",null);__decorate([Action({onEvent:"enable-multi-factor",success:"Multi factor authentication enabled successfully."}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MultiFactorSetupPage.prototype,"enableMultiFactor",null);__decorate([Action({onEvent:"save-auth-factor",success:"Authenticator setup successfully."}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MultiFactorSetupPage.prototype,"saveAuthFactor",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/user/multi-factor/MultiFactorSetupPage");System.register(["@web-atoms/core/dist/core/Command"],(function(_export,_context){"use strict";var Command,Commands,CommonCommands;_export("default",void 0);return{setters:[function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default;Commands=_webAtomsCoreDistCoreCommand.Commands}],execute:function(){_export("default",CommonCommands=class CommonCommands extends Commands{});CommonCommands.openMailbox=Command.create({route:"/mailbox/{id}",routeOrder:50,openPage:()=>_context.import("../../web/page/mails/MailboxContacts")});CommonCommands.openDrives=Command.create({route:"/drives",routeOrder:100,openPage:()=>_context.import("../pages/drives/DriveListPage")});CommonCommands.changePassword=Command.create({route:"/user/change-password",pushPage:()=>_context.import("../pages/user/change-password/ChangePasswordPage")});CommonCommands.setupMultiFactor=Command.create({route:"/user/multi-factor/setup",pushPage:()=>_context.import("../pages/user/multi-factor/MultiFactorSetupPage")})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/commands/CommonCommands");System.register(["@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var styled;return{setters:[function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
|
|
1457
1449
|
|
|
1458
1450
|
display: grid;
|
|
1459
1451
|
grid-template-rows: auto 1fr;
|
|
@@ -1981,7 +1973,7 @@ and limitations under the License.
|
|
|
1981
1973
|
}
|
|
1982
1974
|
}
|
|
1983
1975
|
}
|
|
1984
|
-
`.installLocal();getExtension=name=>{const index=name.lastIndexOf(".");if(index===-1){return"dat"}return name.substring(index+1)};_export("default",FolderPage=class FolderPage extends ContentPage{constructor(){super(...arguments);this.version=1}init(){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){this.search="";this.root=yield this.cloudFileService.root(this.parameters);(_a=(_b=this.root).children)!==null&&_a!==void 0?_a:_b.children=[];this.selectedFolder=this.root;this.titleRenderer=()=>XNode.create("div",{"data-layout":"row"},XNode.create("div",{text:Bind.oneWay((()=>this.selectedFolder.name))}),XNode.create(PopupButton,{icon:"fas fa-upload",label:"Upload","data-layout":"accent-icon-button",popup:()=>XNode.create("div",null,XNode.create(MenuItem,Object.assign({icon:"fas fa-upload","data-extra":Bind.oneWay((()=>JSON.stringify({parentID:this.selectedFolder.appFileID})))},UploadEvent.AttachUploadAction({multiple:true,accept:"*/*"}),{label:"Files"})),XNode.create(MenuItem,Object.assign({icon:"fas fa-upload","data-extra":Bind.oneWay((()=>JSON.stringify({parentID:this.selectedFolder.appFileID})))},UploadEvent.AttachUploadAction({multiple:true,folder:true,accept:"*/*"}),{label:"Folder"})))}),XNode.create("span",{text:"|"}),XNode.create("i",{"data-click-event":"new-folder",class:"fas fa-plus"}),XNode.create("span",{"data-click-event":"new-folder",text:"Folder"}),XNode.create("span",{text:"|"}),this.parameters.templates&&XNode.create("div",{"data-layout":"row","style-display":Bind.oneWay((()=>this.selectedFolder.appFileID>0))},XNode.create("i",{class:"fas fa-plus","data-click-event":"new-template"}),XNode.create("span",{"data-click-event":"new-template",text:"New Template"})));this.renderer=XNode.create("div",{class:css},XNode.create(TreeView,{class:"folder-tree",presenter:Bind.presenter((c=>this.folderTree=c)),childrenProperty:item=>{var _a;return(_a=item.children)!==null&&_a!==void 0?_a:item.children=[]},root:this.root,selectedItem:Bind.twoWaysImmediate((()=>this.selectedFolder))}),XNode.create("div",Object.assign({class:"file-list"},FilesDragDrop({extra:Bind.oneWay((()=>{var _a;return JSON.stringify({parentID:(_a=this.selectedFolder)===null||_a===void 0?void 0:_a.appFileID})}))})),XNode.create(AtomRepeater,{for:"table",items:Bind.oneWayAsync(((c,e,cancelToken)=>this.cloudFileService.files({search:this.search,folder:this.selectedFolder,version:this.version,cancelToken}))),itemRenderer:file=>this.renderFile(file)})))}))}renderFile(item){if(item.isFolder){return XNode.create("tr",null,XNode.create("td",null,XNode.create("i",{class:item.isFolder?"fiv-viv fiv-icon-folder":`fiv-viv fiv-icon-${getExtension(item.name)}`}),XNode.create("span",{"data-click-event":"open-folder",class:"file-link",text:item.name,"data-padding-left":"auto"})),XNode.create("td",null,item.isShared&&XNode.create("i",{title:"Shared",class:"fas fa-folder-user"})),XNode.create("td",{text:toFileSize(item.fileSize)}),XNode.create("td",null),XNode.create("td",null,XNode.create("i",{"data-click-event":"edit-shares",class:"fas fa-share"})))}if(this.parameters.templates&&item.contentType==="message/rfc822"){return XNode.create("tr",null,XNode.create("td",null,XNode.create("i",{class:item.isFolder?"fiv-viv fiv-icon-folder":`fiv-viv fiv-icon-${getExtension(item.name)}`}),XNode.create("span",{"data-click-event":"open-template",class:"file-link",text:item.name,"data-margin-left":"default"})),XNode.create("td",null,item.isShared&&XNode.create("i",{title:"Shared",class:"fas fa-folder-user"})),XNode.create("td",{text:toFileSize(item.fileSize)}),XNode.create("td",null,XNode.create("a",{href:item.downloadUrl,target:"_blank",download:true},XNode.create("i",{class:"fas fa-download"}))),XNode.create("td",null,XNode.create("i",{"data-click-event":"edit-shares",class:"fas fa-share"})))}return XNode.create("tr",null,XNode.create("td",null,XNode.create("i",{class:item.isFolder?"fiv-viv fiv-icon-folder":`fiv-viv fiv-icon-${getExtension(item.name)}`}),XNode.create("a",{href:item.url,target:"_blank",text:item.name,"data-margin-left":"default"})),XNode.create("td",null,item.isShared&&XNode.create("i",{title:"Shared",class:"fas fa-folder-user"})),XNode.create("td",{text:toFileSize(item.fileSize)}),XNode.create("td",null,XNode.create("a",{href:item.downloadUrl,target:"_blank",download:true},XNode.create("i",{class:"fas fa-download"}))),XNode.create("td",null,XNode.create("i",{"data-click-event":"edit-shares",class:"fas fa-share"})))}editShares(file){PageNavigator.pushPage(EditSharesPage,file)}openFolder(file){this.selectedFolder=file}newFolder(){return __awaiter(this,void 0,void 0,(function*(){const name=prompt("Enter name of the folder");if(!name){return}const parentID=this.selectedFolder.appFileID;const folder=yield this.cloudFileService.createFolder({name,parentID});this.selectedFolder.children.add(folder)}))}onItemExpanded(item){return __awaiter(this,void 0,void 0,(function*(){yield this.cloudFileService.expand(item)}))}onFilesUploaded(){return __awaiter(this,void 0,void 0,(function*(){this.version++}))}newTemplate(){return __awaiter(this,void 0,void 0,(function*(){const parentID=this.selectedFolder.appFileID;const file=yield PageNavigator.pushPageForResult(EditTemplatePage,{file:AppFile.create({parentID})});this.selectedFolder.children.add(file)}))}openTemplate(file){return __awaiter(this,void 0,void 0,(function*(){yield PageNavigator.pushPageForResultOrCancel(EditTemplatePage,{file})}))}});__decorate([InjectProperty,__metadata("design:type",CloudFileService)],FolderPage.prototype,"cloudFileService",void 0);__decorate([Action({onEvent:"edit-shares"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",void 0)],FolderPage.prototype,"editShares",null);__decorate([Action({onEvent:"open-folder"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",void 0)],FolderPage.prototype,"openFolder",null);__decorate([Action({onEvent:"new-folder"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],FolderPage.prototype,"newFolder",null);__decorate([Action({onEvent:"item-expanded"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],FolderPage.prototype,"onItemExpanded",null);__decorate([Action({onEvent:"files-available"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],FolderPage.prototype,"onFilesUploaded",null);__decorate([Action({onEvent:"new-template"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],FolderPage.prototype,"newTemplate",null);__decorate([Action({onEvent:"open-template"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],FolderPage.prototype,"openTemplate",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/files/FolderPage");System.register(["@web-atoms/core/dist/core/Command","../../common/commands/CommonCommands"],(function(_export,_context){"use strict";var Command,CommonCommands,AppCommands;_export("default",void 0);return{setters:[function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default},function(_commonCommandsCommonCommands){CommonCommands=_commonCommandsCommonCommands.default}],execute:function(){_export("default",AppCommands=class AppCommands extends CommonCommands{});AppCommands.openHome=Command.create({route:"/",routeOrder:200,openPage:()=>_context.import("../page/home/HomePage")});AppCommands.openMailboxList=Command.create({route:"/mailboxes",routeOrder:100,openPage:()=>_context.import("../../common/pages/mailboxes/MailboxListPage")});AppCommands.openMails=Command.create({route:"/mails",routeOrder:100,openPage:()=>_context.import("../page/mails/MailboxContacts")});AppCommands.openFiles=Command.create({route:"/files/{id}",routeOrder:100,openPage:()=>_context.import("../page/files/FolderPage")});AppCommands.openTemplates=Command.create({route:"/templates",routeOrder:100,routeDefaults:{templates:true},openPage:()=>_context.import("../page/files/FolderPage")})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/commands/AppCommands");System.register(["@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var styled;return{setters:[function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
|
|
1976
|
+
`.installLocal();getExtension=name=>{const index=name.lastIndexOf(".");if(index===-1){return"dat"}return name.substring(index+1)};_export("default",FolderPage=class FolderPage extends ContentPage{constructor(){super(...arguments);this.version=1}init(){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){this.search="";this.root=yield this.cloudFileService.root(this.parameters);(_a=(_b=this.root).children)!==null&&_a!==void 0?_a:_b.children=[];this.selectedFolder=this.root;this.titleRenderer=()=>XNode.create("div",{"data-layout":"row"},XNode.create("div",{text:Bind.oneWay((()=>this.selectedFolder.name))}),XNode.create(PopupButton,{icon:"fas fa-upload",label:"Upload","data-layout":"accent-icon-button",alignment:"bottomLeft",popup:()=>XNode.create("div",null,XNode.create(MenuItem,Object.assign({icon:"fas fa-upload","data-extra":Bind.oneWay((()=>JSON.stringify({parentID:this.selectedFolder.appFileID})))},UploadEvent.AttachUploadAction({multiple:true,accept:"*/*"}),{label:"Files"})),XNode.create(MenuItem,Object.assign({icon:"fas fa-upload","data-extra":Bind.oneWay((()=>JSON.stringify({parentID:this.selectedFolder.appFileID})))},UploadEvent.AttachUploadAction({multiple:true,folder:true,accept:"*/*"}),{label:"Folder"})))}),XNode.create("span",{text:"|"}),XNode.create("i",{"data-click-event":"new-folder",class:"fas fa-plus"}),XNode.create("span",{"data-click-event":"new-folder",text:"Folder"}),XNode.create("span",{text:"|"}),this.parameters.templates&&XNode.create("div",{"data-layout":"row","style-display":Bind.oneWay((()=>this.selectedFolder.appFileID>0))},XNode.create("i",{class:"fas fa-plus","data-click-event":"new-template"}),XNode.create("span",{"data-click-event":"new-template",text:"New Template"})));this.renderer=XNode.create("div",{class:css},XNode.create(TreeView,{class:"folder-tree",presenter:Bind.presenter((c=>this.folderTree=c)),childrenProperty:item=>{var _a;return(_a=item.children)!==null&&_a!==void 0?_a:item.children=[]},root:this.root,selectedItem:Bind.twoWaysImmediate((()=>this.selectedFolder))}),XNode.create("div",Object.assign({class:"file-list"},FilesDragDrop({extra:Bind.oneWay((()=>{var _a;return JSON.stringify({parentID:(_a=this.selectedFolder)===null||_a===void 0?void 0:_a.appFileID})}))})),XNode.create(AtomRepeater,{for:"table",items:Bind.oneWayAsync(((c,e,cancelToken)=>this.cloudFileService.files({search:this.search,folder:this.selectedFolder,version:this.version,cancelToken}))),itemRenderer:file=>this.renderFile(file)})))}))}renderFile(item){if(item.isFolder){return XNode.create("tr",null,XNode.create("td",null,XNode.create("i",{class:item.isFolder?"fiv-viv fiv-icon-folder":`fiv-viv fiv-icon-${getExtension(item.name)}`}),XNode.create("span",{"data-click-event":"open-folder",class:"file-link",text:item.name,"data-padding-left":"auto"})),XNode.create("td",null,item.isShared&&XNode.create("i",{title:"Shared",class:"fas fa-folder-user"})),XNode.create("td",{text:toFileSize(item.fileSize)}),XNode.create("td",null),XNode.create("td",null,XNode.create("i",{"data-click-event":"edit-shares",class:"fas fa-share"})))}if(this.parameters.templates&&item.contentType==="message/rfc822"){return XNode.create("tr",null,XNode.create("td",null,XNode.create("i",{class:item.isFolder?"fiv-viv fiv-icon-folder":`fiv-viv fiv-icon-${getExtension(item.name)}`}),XNode.create("span",{"data-click-event":"open-template",class:"file-link",text:item.name,"data-margin-left":"default"})),XNode.create("td",null,item.isShared&&XNode.create("i",{title:"Shared",class:"fas fa-folder-user"})),XNode.create("td",{text:toFileSize(item.fileSize)}),XNode.create("td",null,XNode.create("a",{href:item.downloadUrl,target:"_blank",download:true},XNode.create("i",{class:"fas fa-download"}))),XNode.create("td",null,XNode.create("i",{"data-click-event":"edit-shares",class:"fas fa-share"})))}return XNode.create("tr",null,XNode.create("td",null,XNode.create("i",{class:item.isFolder?"fiv-viv fiv-icon-folder":`fiv-viv fiv-icon-${getExtension(item.name)}`}),XNode.create("a",{href:item.url,target:"_blank",text:item.name,"data-margin-left":"default"})),XNode.create("td",null,item.isShared&&XNode.create("i",{title:"Shared",class:"fas fa-folder-user"})),XNode.create("td",{text:toFileSize(item.fileSize)}),XNode.create("td",null,XNode.create("a",{href:item.downloadUrl,target:"_blank",download:true},XNode.create("i",{class:"fas fa-download"}))),XNode.create("td",null,XNode.create("i",{"data-click-event":"edit-shares",class:"fas fa-share"})))}editShares(file){PageNavigator.pushPage(EditSharesPage,file)}openFolder(file){this.selectedFolder=file}newFolder(){return __awaiter(this,void 0,void 0,(function*(){const name=prompt("Enter name of the folder");if(!name){return}const parentID=this.selectedFolder.appFileID;const folder=yield this.cloudFileService.createFolder({name,parentID});this.selectedFolder.children.add(folder)}))}onItemExpanded(item){return __awaiter(this,void 0,void 0,(function*(){yield this.cloudFileService.expand(item)}))}onFilesUploaded(){return __awaiter(this,void 0,void 0,(function*(){this.version++}))}newTemplate(){return __awaiter(this,void 0,void 0,(function*(){const parentID=this.selectedFolder.appFileID;const file=yield PageNavigator.pushPageForResult(EditTemplatePage,{file:AppFile.create({parentID})});this.selectedFolder.children.add(file)}))}openTemplate(file){return __awaiter(this,void 0,void 0,(function*(){yield PageNavigator.pushPageForResultOrCancel(EditTemplatePage,{file})}))}});__decorate([InjectProperty,__metadata("design:type",CloudFileService)],FolderPage.prototype,"cloudFileService",void 0);__decorate([Action({onEvent:"edit-shares"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",void 0)],FolderPage.prototype,"editShares",null);__decorate([Action({onEvent:"open-folder"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",void 0)],FolderPage.prototype,"openFolder",null);__decorate([Action({onEvent:"new-folder"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],FolderPage.prototype,"newFolder",null);__decorate([Action({onEvent:"item-expanded"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],FolderPage.prototype,"onItemExpanded",null);__decorate([Action({onEvent:"files-available"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],FolderPage.prototype,"onFilesUploaded",null);__decorate([Action({onEvent:"new-template"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],FolderPage.prototype,"newTemplate",null);__decorate([Action({onEvent:"open-template"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],FolderPage.prototype,"openTemplate",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/files/FolderPage");System.register(["@web-atoms/core/dist/core/Command","../../common/commands/CommonCommands"],(function(_export,_context){"use strict";var Command,CommonCommands,AppCommands;_export("default",void 0);return{setters:[function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default},function(_commonCommandsCommonCommands){CommonCommands=_commonCommandsCommonCommands.default}],execute:function(){_export("default",AppCommands=class AppCommands extends CommonCommands{});AppCommands.openHome=Command.create({route:"/",routeOrder:200,openPage:()=>_context.import("../page/home/HomePage")});AppCommands.openMailboxList=Command.create({route:"/mailboxes",routeOrder:100,openPage:()=>_context.import("../../common/pages/mailboxes/MailboxListPage")});AppCommands.openMails=Command.create({route:"/mails",routeOrder:100,openPage:()=>_context.import("../page/mails/MailboxContacts")});AppCommands.openFiles=Command.create({route:"/files/{id}",routeOrder:100,openPage:()=>_context.import("../page/files/FolderPage")});AppCommands.openTemplates=Command.create({route:"/templates",routeOrder:100,routeDefaults:{templates:true},openPage:()=>_context.import("../page/files/FolderPage")})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/commands/AppCommands");System.register(["@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var styled;return{setters:[function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
|
|
1985
1977
|
|
|
1986
1978
|
div[data-desktop-app=desktop-app] {
|
|
1987
1979
|
width: 100%;
|
|
@@ -2118,7 +2110,7 @@ body {
|
|
|
2118
2110
|
border-radius: 10px;
|
|
2119
2111
|
}
|
|
2120
2112
|
|
|
2121
|
-
`.installLocal();_export("default",AppDrawer=class AppDrawer extends Drawer{init(){return __awaiter(this,void 0,void 0,(function*(){this.element.className=css;this.user=SocialMailApp.user;const{mailboxes,drives}=yield this.getItems();this.renderer=XNode.create("div",null,XNode.create("div",{class:"header","data-padding":"large","data-font-size":"large","data-color":"white",text:"Social Mail"}),XNode.create("div",{class:"menus"},XNode.create(MenuItem,{icon:"fas fa-home",label:"Home",commandLink:AppCommands.openHome.displayRoute({})}),mailboxes.length&&XNode.create(ExpanderMenu,{isExpanded:true},XNode.create(MenuItem,{icon:"fas fa-envelope",label:"Mailboxes",commandLink:null}),...mailboxes.map((mb=>XNode.create(MenuItem,{commandLink:AppCommands.openMailbox.displayRoute({id:mb.mailboxID}),label:mb.emailAddress.name,description:mb.emailAddress.emailAddress,title:mb.emailAddress.emailAddress}))),XNode.create(MenuItem,{label:"All",commandLink:AppCommands.openMailboxList.displayRoute({})})),drives.length&&XNode.create(ExpanderMenu,{isExpanded:true},XNode.create(MenuItem,{icon:"fas fa-hard-drive",label:"Drives",commandLink:null}),...drives.map((d=>{var _a;return XNode.create(MenuItem,{commandLink:AppCommands.openFiles.displayRoute({id:d.appFileID}),label:d.name,description:`${(_a=d.creator)===null||_a===void 0?void 0:_a.displayName} ${BigInt(d.fileSize)>BigInt(0)?"("+toFileSize(d.fileSize)+")":""}`})}))),XNode.create(MenuItem,{icon:"fas fa-money-check-pen",label:"Templates",commandLink:AppCommands.openTemplates.displayRoute({templates:true})}),XNode.create(MenuItem,{icon:"fas fa-envelopes-bulk",label:"All Mailboxes",commandLink:AppCommands.openMailboxList.displayRoute({})}),XNode.create(ExpanderMenu,{isExpanded:false},XNode.create(MenuItem,{icon:"fas fa-gears",label:this.user.displayName}),XNode.create(MenuItem,{label:"Change Password",commandLink:CommonCommands.changePassword.displayRoute({})}),XNode.create(MenuItem,{label:"Multi Factor",commandLink:CommonCommands.setupMultiFactor.displayRoute({})}))))}))}getItems(){return __awaiter(this,void 0,void 0,(function*(){const ms=this.resolve(MailboxService);const fs=this.resolve(CloudFileService);const[mailboxes,drives]=yield Promise.all([ms.top(),fs.top()]);return{mailboxes,drives}}))}onClick(none,e){var _a;(_a=this.selected)===null||_a===void 0?void 0:_a.removeAttribute("data-selected");let start=e.target;while(start!==e.currentTarget){if(start.getAttribute("data-layout")==="menu-item"){start.setAttribute("data-selected","true");this.selected=start;break}start=start.parentElement}}});__decorate([Action({onEvent:"click"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object,MouseEvent]),__metadata("design:returntype",void 0)],AppDrawer.prototype,"onClick",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/drawer/AppDrawer");System.register(["@web-atoms/core/dist/core/XNode"],(function(_export,_context){"use strict";var XNode,ModuleInfo;return{setters:[function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default}],execute:function(){_export("ModuleInfo",ModuleInfo=typeof moduleInfo==="undefined"?[]:[XNode.create("div",{title:`${moduleInfo.server.package}@${moduleInfo.server.version}`},moduleInfo.server.version),XNode.create("div",{title:`${moduleInfo.ui.package}@${moduleInfo.ui.version}`},moduleInfo.ui.version)])}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/ModuleInfo");System.register(["tslib","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/Pack","@web-atoms/web-controls/dist/desktop-app/MobileDesktopApp","@web-atoms/core/dist/core/Route","@web-atoms/web-controls/dist/PageNavigator","@web-atoms/core/dist/core/Command","./commands/AppCommands","../style/GlobalStyle","../services/LoginService","../common/pages/user/login/LoginPage","./drawer/AppDrawer","../services/files/LocalFileService","../common/controls/ModuleInfo","../common/commands/CommonCommands"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,XNode,Pack,MobileDesktopApp,Route,PageNavigator,Command,AppCommands,LoginService,LoginPage,AppDrawer,LocalFileService,ModuleInfo,CommonCommands,AppIndex;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistPack){Pack=_webAtomsCoreDistPack.default},function(_webAtomsWebControlsDistDesktopAppMobileDesktopApp){MobileDesktopApp=_webAtomsWebControlsDistDesktopAppMobileDesktopApp.default},function(_webAtomsCoreDistCoreRoute){Route=_webAtomsCoreDistCoreRoute.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default},function(_commandsAppCommands){AppCommands=_commandsAppCommands.default},function(_styleGlobalStyle){},function(_servicesLoginService){LoginService=_servicesLoginService.default},function(_commonPagesUserLoginLoginPage){LoginPage=_commonPagesUserLoginLoginPage.default},function(_drawerAppDrawer){AppDrawer=_drawerAppDrawer.default},function(_servicesFilesLocalFileService){LocalFileService=_servicesFilesLocalFileService.default},function(_commonControlsModuleInfo){ModuleInfo=_commonControlsModuleInfo.ModuleInfo},function(_commonCommandsCommonCommands){CommonCommands=_commonCommandsCommonCommands.default}],execute:function(){AppIndex=class AppIndex extends MobileDesktopApp{init(){return __awaiter(this,void 0,void 0,(function*(){AppCommands.install(this);this.resolve(LocalFileService);const currentUser=yield this.userService.getUser();if(!currentUser){PageNavigator.openPage(LoginPage);return}this.drawerMenu=AppDrawer;if(!Command.invokeRoute()){if(!currentUser.multiFactor){CommonCommands.setupMultiFactor.dispatch()}else{AppCommands.openHome.dispatch()}}if(this.desktopApp){this.desktopApp.statusBarRenderer=()=>XNode.create("div",{"data-layout":"row"},XNode.create("div",{"data-flex":"stretch-full"}),...ModuleInfo)}}))}};__decorate([InjectProperty,__metadata("design:type",LoginService)],AppIndex.prototype,"userService",void 0);AppIndex=__decorate([Pack],AppIndex);_export("default",AppIndex);Route.encodeUrl=url=>{if(url.startsWith("#")){return url}if(/\d+\./.test(location.hostname)){return"#!"+url}return url}}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/AppIndex");System.register([],(function(_export,_context){"use strict";var AtomOnce;_export("AtomOnce",void 0);return{setters:[],execute:function(){_export("AtomOnce",AtomOnce=class AtomOnce{run(f){if(this.isRunning){return}let isAsync=false;try{this.isRunning=true;const p=f();if(p&&p.then&&p.catch){isAsync=true;p.then((()=>{this.isRunning=false})).catch((()=>{this.isRunning=false}))}}finally{if(!isAsync){this.isRunning=false}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/core/AtomOnce");System.register([],(function(_export,_context){"use strict";var StyleBuilder;function cssNumberToString(n,unit="px"){if(typeof n==="number"){if(n===0){return n+""}return n+unit}return n}_export({cssNumberToString,default:void 0});return{setters:[],execute:function(){_export("default",StyleBuilder=class StyleBuilder{static get newStyle(){return new StyleBuilder}constructor(style){this.style=style;this.style=this.style||{}}toStyle(){return this.style}size(width,height){width=cssNumberToString(width);height=cssNumberToString(height);return this.merge({width,height})}roundBorder(radius){radius=cssNumberToString(radius);return this.merge({borderRadius:radius,padding:radius})}border(borderWidth,borderColor,borderStyle="solid"){borderWidth=cssNumberToString(borderWidth);return this.merge({borderWidth,borderStyle,borderColor})}center(width,height){width=cssNumberToString(width);height=cssNumberToString(height);return this.merge({position:"absolute",left:0,right:0,top:0,bottom:0,width,height,margin:"auto"})}absolute(left,top,right,bottom){left=cssNumberToString(left);top=cssNumberToString(top);if(right!==undefined){right=cssNumberToString(right);bottom=cssNumberToString(bottom);return this.merge({position:"absolute",left,top,right,bottom})}return this.merge({position:"absolute",left,top})}merge(style){return new StyleBuilder(Object.assign(Object.assign({},this.style),style))}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/StyleBuilder");System.register(["tslib","../../App","../../di/Inject","../../di/RegisterSingleton","../../services/BusyIndicatorService","../../services/NavigationService","../controls/AtomControl","../styles/StyleBuilder"],(function(_export,_context){"use strict";var __decorate,__metadata,App,Inject,RegisterSingleton,BusyIndicatorService,NavigationService,AtomControl,cssNumberToString,WebBusyIndicatorService;return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_App){App=_App.App},function(_diInject){Inject=_diInject.Inject},function(_diRegisterSingleton){RegisterSingleton=_diRegisterSingleton.RegisterSingleton},function(_servicesBusyIndicatorService){BusyIndicatorService=_servicesBusyIndicatorService.BusyIndicatorService},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService},function(_controlsAtomControl){AtomControl=_controlsAtomControl.AtomControl},function(_stylesStyleBuilder){cssNumberToString=_stylesStyleBuilder.cssNumberToString}],execute:function(){_export("WebBusyIndicatorService",WebBusyIndicatorService=class WebBusyIndicatorService extends BusyIndicatorService{constructor(){super(...arguments);this.zIndex=5e4;this.indicators=0}createIndicator(){const host=document.createElement("div");const popup=new AtomControl(this.app,host);host.className="indicator-host";const span=document.createElement("i");const divStyle=host.style;divStyle.position="absolute";divStyle.overflow="hidden";divStyle.left=divStyle.right=divStyle.bottom=divStyle.top="0";divStyle.zIndex=this.zIndex+++"";const spanStyle=span.style;spanStyle.position="absolute";spanStyle.margin="auto";spanStyle.width="16px";spanStyle.height="16px";spanStyle.overflow="hidden";spanStyle.maxHeight="100%";spanStyle.maxWidth="100%";spanStyle.left=spanStyle.right=spanStyle.bottom=spanStyle.top="0";span.className="fas fa-spinner fa-spin";host.appendChild(span);const ws=this.navigationService;const e=ws.getHostForElement();if(e){e.appendChild(host)}else{document.body.appendChild(host);ws.refreshScreen();popup.bind(host,"styleLeft",[["this","scrollLeft"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleTop",[["this","scrollTop"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleWidth",[["this","width"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleHeight",[["this","height"]],false,cssNumberToString,ws.screen)}popup.registerDisposable({dispose:()=>{host.remove()}});return popup}});__decorate([Inject,__metadata("design:type",NavigationService)],WebBusyIndicatorService.prototype,"navigationService",void 0);__decorate([Inject,__metadata("design:type",App)],WebBusyIndicatorService.prototype,"app",void 0);_export("WebBusyIndicatorService",WebBusyIndicatorService=__decorate([RegisterSingleton],WebBusyIndicatorService))}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/services/WebBusyIndicatorService");System.register(["tslib"],(function(_export,_context){"use strict";var __awaiter,Atom;_export("Atom",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter}],execute:function(){_export("Atom",Atom=class Atom{static superProperty(tc,target,name){let c=tc;do{c=Object.getPrototypeOf(c);if(!c){throw new Error("No property descriptor found for "+name)}const pd=Object.getOwnPropertyDescriptor(c.prototype,name);if(!pd){continue}return pd.get.apply(target)}while(true)}static get(target,path){const segments=path.split(".");for(const iterator of segments){if(target===undefined||target===null){return target}target=target[iterator]}return target}static delay(n,ct){return new Promise(((resolve,reject)=>{const h={};h.id=setTimeout((()=>{resolve()}),n);if(ct){ct.registerForCancel((()=>{clearTimeout(h.id);reject(new Error("cancelled"))}))}}))}static encodeParameters(p){if(!p){return""}let s="";for(const key in p){if(p.hasOwnProperty(key)){const element=p[key];let v=element;if(v===undefined||v===null){continue}if(v instanceof Date){v=v.toISOString()}else if(typeof element==="object"){v=JSON.stringify(element)}if(s){s+="&"}s+=`${key}=${encodeURIComponent(v)}`}}return s}static url(url,query,hash){if(!url){return url}let p=this.encodeParameters(query);if(p){if(url.indexOf("?")===-1){url+="?"}else{url+="&"}url+=p}p=this.encodeParameters(hash);if(p){if(url.indexOf("#")===-1){url+="#"}else{url+="&"}url+=p}return url}static postAsync(app,f){return new Promise(((resolve,reject)=>{app.callLater((()=>__awaiter(this,void 0,void 0,(function*(){try{resolve(yield f())}catch(error){reject(error)}}))))}))}});Atom.designMode=false}}}));AmdLoader.instance.setup("@web-atoms/core/dist/Atom");System.register([],(function(_export,_context){"use strict";var FormattedError;_export("default",void 0);return{setters:[],execute:function(){_export("default",FormattedError=class FormattedError{constructor(msg){const e=new Error(msg.toString());e.formattedMessage=msg;e.__proto__=FormattedError.prototype;return e}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/core/FormattedError");System.register([],(function(_export,_context){"use strict";function registerInit(target,fx){const t=target;const inits=t._$_inits=t._$_inits||[];inits.push(fx)}_export("registerInit",registerInit);return{setters:[],execute:function(){}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/baseTypes");System.register(["tslib","../App","../Atom","../core/AtomBinder","../core/AtomDisposableList","../core/AtomWatcher","../core/BindableProperty","../di/Inject","./baseTypes"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,__param,App,Atom,AtomBinder,AtomDisposableList,AtomWatcher,BindableProperty,Inject,registerInit,AtomViewModel;function runDecoratorInits(){const v=this.constructor.prototype;if(!v){return}const ris=v._$_inits;if(ris){for(const ri of ris){ri.call(this,this)}}}function privateInit(){return __awaiter(this,void 0,void 0,(function*(){try{yield Atom.postAsync(this.app,(()=>__awaiter(this,void 0,void 0,(function*(){runDecoratorInits.apply(this)}))));yield Atom.postAsync(this.app,(()=>__awaiter(this,void 0,void 0,(function*(){yield this.init();this.onReady()}))));if(this.postInit){for(const i of this.postInit){i()}this.postInit=null}}finally{const pi=this.pendingInits;this.pendingInits=null;for(const iterator of pi){iterator()}}}))}function waitForReady(vm){return __awaiter(this,void 0,void 0,(function*(){while(vm.pendingInits){yield Atom.delay(100)}}))}function Receive(...channel){return(target,key)=>{registerInit(target,(vm=>{const fx=vm[key];const a=(ch,d)=>{const p=fx.call(vm,ch,d);if(p&&p.then&&p.catch){p.catch((e=>{console.warn(e)}))}};const ivm=vm;for(const c of channel){ivm.registerDisposable(ivm.app.subscribe(c,a))}}))}}function BindableReceive(...channel){return(target,key)=>{const bp=BindableProperty(target,key);registerInit(target,(vm=>{const fx=(cx,m)=>{vm[key]=m};const ivm=vm;for(const c of channel){ivm.registerDisposable(ivm.app.subscribe(c,fx))}}));return bp}}function BindableBroadcast(...channel){return(target,key)=>{const bp=BindableProperty(target,key);registerInit(target,(vm=>{const fx=t=>{const v=vm[key];for(const c of channel){vm.app.broadcast(c,v)}};const d=new AtomWatcher(vm,[key.split(".")],fx);d.init();vm.registerDisposable(d)}));return bp}}function Watch(target,key,descriptor){registerInit(target,(vm=>{const ivm=vm;if(descriptor&&descriptor.get){ivm.setupWatch(descriptor.get,(()=>{vm.refresh(key.toString())}));return}ivm.setupWatch(vm[key])}))}function CachedWatch(target,key,descriptor){const getMethod=descriptor.get;descriptor.get=()=>null;registerInit(target,(vm=>{const ivm=vm;const fieldName=`_${key}`;Object.defineProperty(ivm,key,{enumerable:true,configurable:true,get(){const c=ivm[fieldName]||(ivm[fieldName]={value:getMethod.apply(ivm)});return c.value}});ivm.setupWatch(getMethod,(()=>{ivm[fieldName]=null;AtomBinder.refreshValue(ivm,key)}))}))}function Validate(target,key,descriptor){const getMethod=descriptor.get;descriptor.get=()=>null;registerInit(target,(vm=>{const initialized={i:false};const ivm=vm;Object.defineProperty(ivm,key,{enumerable:true,configurable:true,get(){if(vm.mShouldValidate&&initialized.i){return getMethod.apply(this)}return null}});ivm.setupWatch(getMethod,(()=>{initialized.i=true;vm.refresh(key.toString())}),true,key.toString());return}))}_export({waitForReady,Receive,BindableReceive,BindableBroadcast,Watch,CachedWatch,Validate});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata;__param=_tslib.__param},function(_App){App=_App.App},function(_Atom){Atom=_Atom.Atom},function(_coreAtomBinder){AtomBinder=_coreAtomBinder.AtomBinder},function(_coreAtomDisposableList){AtomDisposableList=_coreAtomDisposableList.AtomDisposableList},function(_coreAtomWatcher){AtomWatcher=_coreAtomWatcher.AtomWatcher},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_diInject){Inject=_diInject.Inject},function(_baseTypes){registerInit=_baseTypes.registerInit}],execute:function(){_export("AtomViewModel",AtomViewModel=class AtomViewModel{get isReady(){return this.pendingInits===null}get errors(){const e=[];if(!this.mShouldValidate){return e}for(const v of this.validations){if(!v.initialized){return e}const error=this[v.name];if(error){e.push({name:v.name,error})}}return e}get parent(){return this.mParent}set parent(v){if(this.mParent&&this.mParent.mChildren){this.mParent.mChildren.remove(this)}this.mParent=v;if(v){const c=v.mChildren||(v.mChildren=[]);c.add(this);this.registerDisposable({dispose:()=>{c.remove(this)}})}}get isValid(){let valid=true;const validateWasFalse=this.mShouldValidate===false;this.mShouldValidate=true;for(const v of this.validations){if(!v.initialized){v.watcher.init(true);v.initialized=true}if(this[v.name]){if(validateWasFalse){AtomBinder.refreshValue(this,v.name)}valid=false}}if(this.mChildren){for(const child of this.mChildren){if(!child.isValid){valid=false}}}AtomBinder.refreshValue(this,"errors");return valid}constructor(app){this.app=app;this.disposables=null;this.validations=[];this.pendingInits=[];this.mShouldValidate=false;this.app.runAsync((()=>privateInit.apply(this)))}resetValidations(resetChildren=true){this.mShouldValidate=false;for(const v of this.validations){this.refresh(v.name)}if(resetChildren&&this.mChildren){for(const iterator of this.mChildren){iterator.resetValidations(resetChildren)}}}runAfterInit(f){if(this.pendingInits){this.pendingInits.push(f);return}f()}refresh(name){AtomBinder.refreshValue(this,name)}init(){return __awaiter(this,void 0,void 0,(function*(){}))}dispose(){if(this.disposables){this.disposables.dispose()}}registerDisposable(d){this.disposables=this.disposables||new AtomDisposableList;return this.disposables.add(d)}onReady(){}setupWatch(ft,proxy,forValidation,name){const d=new AtomWatcher(this,ft,proxy,this);if(forValidation){this.validations=this.validations||[];this.validations.push({name,watcher:d,initialized:false})}else{d.init()}return this.registerDisposable(d)}onPropertyChanged(name){}});_export("AtomViewModel",AtomViewModel=__decorate([__param(0,Inject),__metadata("design:paramtypes",[App])],AtomViewModel))}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/AtomViewModel");System.register(["tslib","../services/NavigationService","./AtomViewModel"],(function(_export,_context){"use strict";var __awaiter,NavigationService,AtomViewModel,AtomWindowViewModel;_export("AtomWindowViewModel",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService},function(_AtomViewModel){AtomViewModel=_AtomViewModel.AtomViewModel}],execute:function(){_export("AtomWindowViewModel",AtomWindowViewModel=class AtomWindowViewModel extends AtomViewModel{close(result){this.app.broadcast(`atom-window-close:${this.windowName}`,result)}cancel(){return __awaiter(this,void 0,void 0,(function*(){if(this.closeWarning){const navigationService=this.app.resolve(NavigationService);if(!(yield navigationService.confirm(this.closeWarning,"Are you sure?"))){return false}}this.app.broadcast(`atom-window-cancel:${this.windowName}`,"cancelled");return true}))}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/AtomWindowViewModel");System.register(["@web-atoms/core/src/web/images/close-button-hover.svg","../styles/AtomStyle"],(function(_export,_context){"use strict";var closeButtonHover,AtomStyle,AtomWindowStyle;_export("AtomWindowStyle",void 0);return{setters:[function(_webAtomsCoreSrcWebImagesCloseButtonHoverSvg){closeButtonHover=_webAtomsCoreSrcWebImagesCloseButtonHoverSvg.default},function(_stylesAtomStyle){AtomStyle=_stylesAtomStyle.AtomStyle}],execute:function(){_export("AtomWindowStyle",AtomWindowStyle=class AtomWindowStyle extends AtomStyle{get root(){return Object.assign(Object.assign({},this.frameHost),{subclasses:{" .close-button":this.closeButton," .command-bar-presenter":this.commandBarPresenter," .command-bar":this.commandBar," .content-presenter":this.contentPresenter," .content":this.content," .frame":this.frame," .title":this.title," .title-host":this.titleHost," .title-presenter":this.titlePresenter}})}get frameHost(){return{position:"absolute",left:0,right:0,top:0,bottom:0,backgroundColor:"#50505080"}}get frame(){return{position:"absolute",minHeight:"100px",minWidth:"300px",margin:"auto",border:"solid 1px #808080",borderRadius:"5px",backgroundColor:"white"}}get titlePresenter(){return{position:"relative",left:0,right:0,top:0,height:"37px"}}get titleHost(){return{position:"absolute",left:0,right:0,padding:"7px",minHeight:"32px",backgroundColor:"#404040",color:"white",top:0,borderTopRightRadius:"4px",borderTopLeftRadius:"4px"}}get title(){return{margin:"auto"}}get closeButton(){return{position:"absolute",right:"6px",top:"7px",width:"0",height:"0",padding:"9px",border:"none",backgroundColor:"transparent",backgroundImage:closeButtonHover}}get content(){return{}}get contentPresenter(){return{position:"relative",padding:"10px",background:"white"}}get commandBarPresenter(){return{left:0,right:0,bottom:0,padding:"5px",backgroundColor:"#d4d4d4",textAlign:"right",borderBottomRightRadius:"4px",borderBottomLeftRadius:"4px"}}get commandBar(){return{subclasses:{" button":{borderRadius:"3px",marginLeft:"5px",marginRight:"5px",padding:"4px 16px",backgroundColor:"whitesmoke",border:"1px solid gray"}}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomWindowStyle");System.register(["../../core/Colors","./AtomWindowStyle"],(function(_export,_context){"use strict";var Colors,AtomWindowStyle,AtomAlertWindowStyle;_export("default",void 0);return{setters:[function(_coreColors){Colors=_coreColors.default},function(_AtomWindowStyle){AtomWindowStyle=_AtomWindowStyle.AtomWindowStyle}],execute:function(){_export("default",AtomAlertWindowStyle=class AtomAlertWindowStyle extends AtomWindowStyle{get titleHost(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"titleHost")),{color:Colors.black,backgroundColor:Colors.white})}get contentPresenter(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"contentPresenter")),{padding:"0px 10px 30px 10px",textAlign:"center",color:Colors.rgba(51,51,51)})}get commandBar(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"commandBar")),{textAlign:"center",subclasses:{" button":this.buttonStyle," .yes-button":{backgroundColor:Colors.rgba(0,128,0)}," .no-button":{backgroundColor:Colors.rgba(255,0,0)}}})}get buttonStyle(){return{border:"none",color:Colors.white,width:"50%",height:"40px"}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomAlertWindowStyle");System.register(["./AtomControl"],(function(_export,_context){"use strict";var AtomControl,AtomTemplate;_export("AtomTemplate",void 0);return{setters:[function(_AtomControl){AtomControl=_AtomControl.AtomControl}],execute:function(){_export("AtomTemplate",AtomTemplate=class AtomTemplate extends AtomControl{})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomTemplate");System.register(["../../App","../../core/Bind","../../core/XNode","../styles/AtomWindowStyle","./AtomControl","./AtomTemplate"],(function(_export,_context){"use strict";var App,Bind,XNode,AtomWindowStyle,AtomControl,AtomTemplate,AtomWindowFrameTemplate,AtomWindowTitleTemplate,AtomWindow;function getTemplateParent(e){const tp=e._templateParent;if(tp){return tp}const p=e._logicalParent||e.parentElement;if(p){return getTemplateParent(p)}}_export({getTemplateParent,AtomWindowFrameTemplate:void 0,AtomWindow:void 0});return{setters:[function(_App){App=_App.App},function(_coreBind){Bind=_coreBind.default},function(_coreXNode){XNode=_coreXNode.default},function(_stylesAtomWindowStyle){AtomWindowStyle=_stylesAtomWindowStyle.AtomWindowStyle},function(_AtomControl){AtomControl=_AtomControl.AtomControl},function(_AtomTemplate){AtomTemplate=_AtomTemplate.AtomTemplate}],execute:function(){_export("AtomWindowFrameTemplate",AtomWindowFrameTemplate=class AtomWindowFrameTemplate extends AtomTemplate{get templateParent(){return getTemplateParent(this.element)}preCreate(){this.titlePresenter=null;this.commandPresenter=null;this.contentPresenter=null;super.preCreate()}create(){this.render(XNode.create("div",{class:"frame",styleWidth:Bind.oneWay((()=>this.templateParent.width||undefined)),styleHeight:Bind.oneWay((()=>this.templateParent.height||undefined)),styleLeft:Bind.oneWay((()=>this.templateParent.x>=0?`${this.templateParent.x}px`:undefined)),styleTop:Bind.oneWay((()=>this.templateParent.y>=0?`${this.templateParent.y}px`:undefined)),styleMarginTop:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginLeft:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginRight:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginBottom:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined))},XNode.create("div",{class:"title-presenter",presenter:Bind.presenter("titlePresenter")}),XNode.create("div",{class:"content-presenter",presenter:Bind.presenter("contentPresenter")}),XNode.create("div",{class:"command-bar-presenter",presenter:Bind.presenter("commandPresenter")})))}});AtomWindowTitleTemplate=class AtomWindowTitleTemplate extends AtomControl{get templateParent(){return getTemplateParent(this.element)}create(){this.render(XNode.create("div",{class:"title-host"},XNode.create("span",{class:"title",text:Bind.oneWay((()=>this.templateParent.title))}),XNode.create("button",{class:"close-button",eventClick:Bind.event((()=>this.templateParent.close()))})))}};_export("AtomWindow",AtomWindow=class AtomWindow extends AtomControl{constructor(){super(...arguments);this.title="";this.width="";this.height="";this.x=-1;this.y=-1;this.titleTemplate=AtomWindowTitleTemplate;this.frameTemplate=AtomWindowFrameTemplate;this.isReady=false}get templateParent(){return getTemplateParent(this.element)}onPropertyChanged(name){switch(name){case"windowTemplate":case"commandTemplate":case"frameTemplate":this.invalidate();break}}close(){const vm=this.viewModel;if(vm.cancel){this.app.runAsync((()=>vm.cancel()));return}const message=`atom-window-cancel:${this.id}`;const device=this.app.resolve(App);device.broadcast(message,"cancelled")}onUpdateUI(){if(!(this.windowTemplate&&this.frameTemplate)){return}if(this.isReady){return}this.bind(this.element,"title",[["viewModel","title"]]);const frame=new this.frameTemplate(this.app);const fe=frame.element;const titleContent=new this.titleTemplate(this.app);titleContent.element._templateParent=this;frame.titlePresenter.appendChild(titleContent.element);this.setupDragging(frame.titlePresenter);this.element.classList.add("frame-host");fe._logicalParent=this.element;fe._templateParent=this;if(!frame.contentPresenter){throw new Error("ContentPresenter must be set inside frameTemplate before creating window")}const content=new this.windowTemplate(this.app);content.element._templateParent=this;this.setElementClass(content.element,{content:1});frame.contentPresenter.appendChild(content.element);if(this.commandTemplate){if(!frame.commandPresenter){throw new Error("CommandPresenter must be set inside frameTemplate"+"before creating window if command template is present")}const command=new this.commandTemplate(this.app);command.element._templateParent=this;this.setElementClass(command.element,{"command-bar":1});frame.commandPresenter.appendChild(command.element)}this.append(frame);setTimeout((()=>{this.centerFrame(frame.element)}),100);this.isReady=true}preCreate(){this.defaultControlStyle=AtomWindowStyle;this.title=null;this.width="";this.height="";this.x=-1;this.y=-1;this.windowTemplate=null;this.commandTemplate=null;this.titleTemplate=AtomWindowTitleTemplate;this.frameTemplate=AtomWindowFrameTemplate;super.preCreate();this.render(XNode.create("div",{styleClass:Bind.oneTime((()=>this.controlStyle.name))}))}centerFrame(e){if(!this.element){return}const parent=this.element.parentElement;if(parent===window||parent===document.body){return}if(parent.offsetWidth<=0||parent.offsetHeight<=0){setTimeout((()=>{this.centerFrame(e)}),100);return}if(e.offsetWidth<=0||e.offsetHeight<=0){setTimeout((()=>{this.centerFrame(e)}),100);return}const x=(parent.offsetWidth-e.offsetWidth)/2;const y=(parent.offsetHeight-e.offsetHeight)/2;this.x=x;this.y=y;e.style.opacity="1";this.element.style.removeProperty("opacity")}setupDragging(tp){this.bindEvent(tp,"mousedown",(startEvent=>{startEvent.preventDefault();const disposables=[];const offset={x:tp.parentElement.offsetLeft,y:tp.parentElement.offsetTop};const rect={x:startEvent.clientX,y:startEvent.clientY};const cursor=tp.style.cursor;tp.style.cursor="move";disposables.push(this.bindEvent(document.body,"mousemove",(moveEvent=>{const{clientX,clientY}=moveEvent;const dx=clientX-rect.x;const dy=clientY-rect.y;offset.x+=dx;offset.y+=dy;this.x=offset.x;this.y=offset.y;rect.x=clientX;rect.y=clientY})));disposables.push(this.bindEvent(document.body,"mouseup",(endEvent=>{tp.style.cursor=cursor;for(const iterator of disposables){iterator.dispose()}})))}))}});AtomWindow.windowTemplate=XNode.prepare("windowTemplate",true,true);AtomWindow.commandTemplate=XNode.prepare("commandTemplate",true,true);AtomWindow.titleTemplate=XNode.prepare("titleTemplate",true,true);AtomWindow.frameTemplate=XNode.prepare("frameTemplate",true,true)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomWindow");System.register(["tslib","../../core/Bind","../../core/BindableProperty","../../core/XNode","../../view-model/AtomWindowViewModel","../styles/AtomAlertWindowStyle","./AtomWindow"],(function(_export,_context){"use strict";var __decorate,__metadata,Bind,BindableProperty,XNode,AtomWindowViewModel,AtomAlertWindowStyle,AtomWindow,AtomAlertWindow,AtomAlertViewModel;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_coreBind){Bind=_coreBind.default},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_coreXNode){XNode=_coreXNode.default},function(_viewModelAtomWindowViewModel){AtomWindowViewModel=_viewModelAtomWindowViewModel.AtomWindowViewModel},function(_stylesAtomAlertWindowStyle){AtomAlertWindowStyle=_stylesAtomAlertWindowStyle.default},function(_AtomWindow){AtomWindow=_AtomWindow.AtomWindow}],execute:function(){_export("default",AtomAlertWindow=class AtomAlertWindow extends AtomWindow{create(){this.defaultControlStyle=AtomAlertWindowStyle;this.viewModel=this.resolve(AtomAlertViewModel);this.render(XNode.create(AtomWindow,{title:Bind.oneWay((()=>this.viewModel.title))},XNode.create(AtomWindow.windowTemplate,null,XNode.create("div",{formattedText:Bind.oneWay((()=>this.viewModel.message))})),XNode.create(AtomWindow.commandTemplate,null,XNode.create("div",null,XNode.create("button",{class:"yes-button",styleDisplay:Bind.oneWay((()=>this.viewModel.okTitle?"":"none")),text:Bind.oneWay((()=>this.viewModel.okTitle)),eventClick:()=>this.viewModel.onOkClicked()}),XNode.create("button",{class:"no-button",styleMarginBottom:Bind.oneWay((()=>this.viewModel.cancelTitle?"0":"10px")),styleDisplay:Bind.oneWay((()=>this.viewModel.cancelTitle?"":"none")),text:Bind.oneWay((()=>this.viewModel.cancelTitle)),eventClick:()=>this.viewModel.onCancelClicked()})))))}});AtomAlertViewModel=class AtomAlertViewModel extends AtomWindowViewModel{onOkClicked(){this.close(true)}onCancelClicked(){this.cancel()}};__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"title",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"message",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"okTitle",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"cancelTitle",void 0)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomAlertWindow");System.register(["../../core/Colors","./AtomStyle"],(function(_export,_context){"use strict";var Colors,AtomStyle,AtomNotificationStyle;_export("default",void 0);return{setters:[function(_coreColors){Colors=_coreColors.default},function(_AtomStyle){AtomStyle=_AtomStyle.AtomStyle}],execute:function(){_export("default",AtomNotificationStyle=class AtomNotificationStyle extends AtomStyle{get root(){return{padding:"5px",borderRadius:"5px",border:"solid 1px lightgray",fontFamily:"Verdana, Geneva, sans-serif",fontSize:"16px",subclasses:{".error":{borderColor:Colors.red,color:Colors.red},".warning":{backgroundColor:Colors.lightYellow}}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomNotificationStyle");System.register(["tslib","../../core/Bind","../../core/BindableProperty","../../core/XNode","../styles/AtomNotificationStyle","./AtomControl"],(function(_export,_context){"use strict";var __decorate,__metadata,Bind,BindableProperty,XNode,AtomNotificationStyle,AtomControl,AtomNotification;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_coreBind){Bind=_coreBind.default},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_coreXNode){XNode=_coreXNode.default},function(_stylesAtomNotificationStyle){AtomNotificationStyle=_stylesAtomNotificationStyle.default},function(_AtomControl){AtomControl=_AtomControl.AtomControl}],execute:function(){_export("default",AtomNotification=class AtomNotification extends AtomControl{constructor(){super(...arguments);this.timeout=5e3;this.timeoutKey=null}onPropertyChanged(name){switch(name){case"timeout":this.setupTimeout();break}}create(){this.defaultControlStyle=AtomNotificationStyle;this.render(XNode.create("div",{formattedText:Bind.oneWay((()=>this.viewModel.message)),timeout:Bind.oneWay((()=>this.viewModel.timeout||5e3)),styleClass:Bind.oneWay((()=>({[this.controlStyle.name]:1,error:this.viewModel.type&&/error/i.test(this.viewModel.type),warning:this.viewModel.type&&/warn/i.test(this.viewModel.type)})))}))}setupTimeout(){if(this.timeoutKey){clearTimeout(this.timeoutKey)}this.timeoutKey=setTimeout((()=>{if(this.element){this.app.broadcast(`atom-window-close:${this.id}`,"")}}),this.timeout)}});__decorate([BindableProperty,__metadata("design:type",Number)],AtomNotification.prototype,"timeout",void 0)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomNotification");System.register(["../styles/AtomStyle"],(function(_export,_context){"use strict";var AtomStyle,AtomPopupStyle;_export("AtomPopupStyle",void 0);return{setters:[function(_stylesAtomStyle){AtomStyle=_stylesAtomStyle.AtomStyle}],execute:function(){_export("AtomPopupStyle",AtomPopupStyle=class AtomPopupStyle extends AtomStyle{get root(){return{backgroundColor:"white",border:"solid 1px lightgray",padding:"5px",borderRadius:"5px"}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomPopupStyle");System.register(["../../core/XNode","../../style/styled","./PopupService"],(function(_export,_context){"use strict";var XNode,styled,PopupWindow,css;function NotificationPopup({message,type}){return class Notification extends PopupWindow{create(){if(message instanceof XNode){this.render(XNode.create("div",{styleClass:{[css]:1,error:/error/i.test(type),warning:/warn/i.test(type)}},message));return}this.render(XNode.create("div",{styleClass:{[css]:1,error:/error/i.test(type),warning:/warn/i.test(type)},formattedText:message}))}}}_export("default",NotificationPopup);return{setters:[function(_coreXNode){XNode=_coreXNode.default},function(_styleStyled){styled=_styleStyled.default},function(_PopupService){PopupWindow=_PopupService.PopupWindow}],execute:function(){css=styled.css`
|
|
2113
|
+
`.installLocal();_export("default",AppDrawer=class AppDrawer extends Drawer{init(){return __awaiter(this,void 0,void 0,(function*(){this.element.className=css;this.user=SocialMailApp.user;const{mailboxes,drives}=yield this.getItems();this.renderer=XNode.create("div",null,XNode.create("div",{class:"header","data-padding":"large","data-font-size":"large","data-color":"white",text:"Social Mail"}),XNode.create("div",{class:"menus"},XNode.create(MenuItem,{icon:"fas fa-home",label:"Home",commandLink:AppCommands.openHome.displayRoute({})}),mailboxes.length&&XNode.create(ExpanderMenu,{isExpanded:true},XNode.create(MenuItem,{icon:"fas fa-envelope",label:"Mailboxes",commandLink:null}),...mailboxes.map((mb=>XNode.create(MenuItem,{commandLink:AppCommands.openMailbox.displayRoute({id:mb.mailboxID}),label:mb.emailAddress.name,description:mb.emailAddress.emailAddress,title:mb.emailAddress.emailAddress}))),XNode.create(MenuItem,{label:"All",commandLink:AppCommands.openMailboxList.displayRoute({})})),drives.length&&XNode.create(ExpanderMenu,{isExpanded:true},XNode.create(MenuItem,{icon:"fas fa-hard-drive",label:"Drives",commandLink:null}),...drives.map((d=>{var _a;return XNode.create(MenuItem,{commandLink:AppCommands.openFiles.displayRoute({id:d.appFileID}),label:d.name,description:`${(_a=d.creator)===null||_a===void 0?void 0:_a.displayName} ${BigInt(d.fileSize)>BigInt(0)?"("+toFileSize(d.fileSize)+")":""}`})})),XNode.create(MenuItem,{label:"All",commandLink:AppCommands.openDrives.displayRoute({})})),XNode.create(MenuItem,{icon:"fas fa-money-check-pen",label:"Templates",commandLink:AppCommands.openTemplates.displayRoute({templates:true})}),XNode.create(MenuItem,{icon:"fas fa-envelopes-bulk",label:"All Mailboxes",commandLink:AppCommands.openMailboxList.displayRoute({})}),XNode.create(ExpanderMenu,{isExpanded:false},XNode.create(MenuItem,{icon:"fas fa-gears",label:this.user.displayName}),XNode.create(MenuItem,{label:"Change Password",commandLink:CommonCommands.changePassword.displayRoute({})}),XNode.create(MenuItem,{label:"Multi Factor",commandLink:CommonCommands.setupMultiFactor.displayRoute({})}))))}))}getItems(){return __awaiter(this,void 0,void 0,(function*(){const ms=this.resolve(MailboxService);const fs=this.resolve(CloudFileService);const[mailboxes,drives]=yield Promise.all([ms.top(),fs.top()]);return{mailboxes,drives}}))}onClick(none,e){var _a;(_a=this.selected)===null||_a===void 0?void 0:_a.removeAttribute("data-selected");let start=e.target;while(start!==e.currentTarget){if(start.getAttribute("data-layout")==="menu-item"){start.setAttribute("data-selected","true");this.selected=start;break}start=start.parentElement}}});__decorate([Action({onEvent:"click"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object,MouseEvent]),__metadata("design:returntype",void 0)],AppDrawer.prototype,"onClick",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/drawer/AppDrawer");System.register(["@web-atoms/core/dist/core/XNode"],(function(_export,_context){"use strict";var XNode,ModuleInfo;return{setters:[function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default}],execute:function(){_export("ModuleInfo",ModuleInfo=typeof moduleInfo==="undefined"?[]:[XNode.create("div",{title:`${moduleInfo.server.package}@${moduleInfo.server.version}`},moduleInfo.server.version),XNode.create("div",{title:`${moduleInfo.ui.package}@${moduleInfo.ui.version}`},moduleInfo.ui.version)])}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/ModuleInfo");System.register(["tslib","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/Pack","@web-atoms/web-controls/dist/desktop-app/MobileDesktopApp","@web-atoms/core/dist/core/Route","@web-atoms/web-controls/dist/PageNavigator","@web-atoms/core/dist/core/Command","./commands/AppCommands","../style/GlobalStyle","../services/LoginService","../common/pages/user/login/LoginPage","./drawer/AppDrawer","../services/files/LocalFileService","../common/controls/ModuleInfo","../common/commands/CommonCommands"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,XNode,Pack,MobileDesktopApp,Route,PageNavigator,Command,AppCommands,LoginService,LoginPage,AppDrawer,LocalFileService,ModuleInfo,CommonCommands,AppIndex;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistPack){Pack=_webAtomsCoreDistPack.default},function(_webAtomsWebControlsDistDesktopAppMobileDesktopApp){MobileDesktopApp=_webAtomsWebControlsDistDesktopAppMobileDesktopApp.default},function(_webAtomsCoreDistCoreRoute){Route=_webAtomsCoreDistCoreRoute.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default},function(_commandsAppCommands){AppCommands=_commandsAppCommands.default},function(_styleGlobalStyle){},function(_servicesLoginService){LoginService=_servicesLoginService.default},function(_commonPagesUserLoginLoginPage){LoginPage=_commonPagesUserLoginLoginPage.default},function(_drawerAppDrawer){AppDrawer=_drawerAppDrawer.default},function(_servicesFilesLocalFileService){LocalFileService=_servicesFilesLocalFileService.default},function(_commonControlsModuleInfo){ModuleInfo=_commonControlsModuleInfo.ModuleInfo},function(_commonCommandsCommonCommands){CommonCommands=_commonCommandsCommonCommands.default}],execute:function(){AppIndex=class AppIndex extends MobileDesktopApp{init(){return __awaiter(this,void 0,void 0,(function*(){AppCommands.install(this);this.resolve(LocalFileService);const currentUser=yield this.userService.getUser();if(!currentUser){PageNavigator.openPage(LoginPage);return}this.drawerMenu=AppDrawer;if(!Command.invokeRoute()){if(!currentUser.multiFactor){CommonCommands.setupMultiFactor.dispatch()}else{AppCommands.openHome.dispatch()}}if(this.desktopApp){this.desktopApp.statusBarRenderer=()=>XNode.create("div",{"data-layout":"row"},XNode.create("div",{"data-flex":"stretch-full"}),...ModuleInfo)}}))}};__decorate([InjectProperty,__metadata("design:type",LoginService)],AppIndex.prototype,"userService",void 0);AppIndex=__decorate([Pack],AppIndex);_export("default",AppIndex);Route.encodeUrl=url=>{if(url.startsWith("#")){return url}if(/\d+\./.test(location.hostname)){return"#!"+url}return url}}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/AppIndex");System.register([],(function(_export,_context){"use strict";var AtomOnce;_export("AtomOnce",void 0);return{setters:[],execute:function(){_export("AtomOnce",AtomOnce=class AtomOnce{run(f){if(this.isRunning){return}let isAsync=false;try{this.isRunning=true;const p=f();if(p&&p.then&&p.catch){isAsync=true;p.then((()=>{this.isRunning=false})).catch((()=>{this.isRunning=false}))}}finally{if(!isAsync){this.isRunning=false}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/core/AtomOnce");System.register([],(function(_export,_context){"use strict";var StyleBuilder;function cssNumberToString(n,unit="px"){if(typeof n==="number"){if(n===0){return n+""}return n+unit}return n}_export({cssNumberToString,default:void 0});return{setters:[],execute:function(){_export("default",StyleBuilder=class StyleBuilder{static get newStyle(){return new StyleBuilder}constructor(style){this.style=style;this.style=this.style||{}}toStyle(){return this.style}size(width,height){width=cssNumberToString(width);height=cssNumberToString(height);return this.merge({width,height})}roundBorder(radius){radius=cssNumberToString(radius);return this.merge({borderRadius:radius,padding:radius})}border(borderWidth,borderColor,borderStyle="solid"){borderWidth=cssNumberToString(borderWidth);return this.merge({borderWidth,borderStyle,borderColor})}center(width,height){width=cssNumberToString(width);height=cssNumberToString(height);return this.merge({position:"absolute",left:0,right:0,top:0,bottom:0,width,height,margin:"auto"})}absolute(left,top,right,bottom){left=cssNumberToString(left);top=cssNumberToString(top);if(right!==undefined){right=cssNumberToString(right);bottom=cssNumberToString(bottom);return this.merge({position:"absolute",left,top,right,bottom})}return this.merge({position:"absolute",left,top})}merge(style){return new StyleBuilder(Object.assign(Object.assign({},this.style),style))}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/StyleBuilder");System.register(["tslib","../../App","../../di/Inject","../../di/RegisterSingleton","../../services/BusyIndicatorService","../../services/NavigationService","../controls/AtomControl","../styles/StyleBuilder"],(function(_export,_context){"use strict";var __decorate,__metadata,App,Inject,RegisterSingleton,BusyIndicatorService,NavigationService,AtomControl,cssNumberToString,WebBusyIndicatorService;return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_App){App=_App.App},function(_diInject){Inject=_diInject.Inject},function(_diRegisterSingleton){RegisterSingleton=_diRegisterSingleton.RegisterSingleton},function(_servicesBusyIndicatorService){BusyIndicatorService=_servicesBusyIndicatorService.BusyIndicatorService},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService},function(_controlsAtomControl){AtomControl=_controlsAtomControl.AtomControl},function(_stylesStyleBuilder){cssNumberToString=_stylesStyleBuilder.cssNumberToString}],execute:function(){_export("WebBusyIndicatorService",WebBusyIndicatorService=class WebBusyIndicatorService extends BusyIndicatorService{constructor(){super(...arguments);this.zIndex=5e4;this.indicators=0}createIndicator(){const host=document.createElement("div");const popup=new AtomControl(this.app,host);host.className="indicator-host";const span=document.createElement("i");const divStyle=host.style;divStyle.position="absolute";divStyle.overflow="hidden";divStyle.left=divStyle.right=divStyle.bottom=divStyle.top="0";divStyle.zIndex=this.zIndex+++"";const spanStyle=span.style;spanStyle.position="absolute";spanStyle.margin="auto";spanStyle.width="16px";spanStyle.height="16px";spanStyle.overflow="hidden";spanStyle.maxHeight="100%";spanStyle.maxWidth="100%";spanStyle.left=spanStyle.right=spanStyle.bottom=spanStyle.top="0";span.className="fas fa-spinner fa-spin";host.appendChild(span);const ws=this.navigationService;const e=ws.getHostForElement();if(e){e.appendChild(host)}else{document.body.appendChild(host);ws.refreshScreen();popup.bind(host,"styleLeft",[["this","scrollLeft"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleTop",[["this","scrollTop"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleWidth",[["this","width"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleHeight",[["this","height"]],false,cssNumberToString,ws.screen)}popup.registerDisposable({dispose:()=>{host.remove()}});return popup}});__decorate([Inject,__metadata("design:type",NavigationService)],WebBusyIndicatorService.prototype,"navigationService",void 0);__decorate([Inject,__metadata("design:type",App)],WebBusyIndicatorService.prototype,"app",void 0);_export("WebBusyIndicatorService",WebBusyIndicatorService=__decorate([RegisterSingleton],WebBusyIndicatorService))}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/services/WebBusyIndicatorService");System.register(["tslib"],(function(_export,_context){"use strict";var __awaiter,Atom;_export("Atom",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter}],execute:function(){_export("Atom",Atom=class Atom{static superProperty(tc,target,name){let c=tc;do{c=Object.getPrototypeOf(c);if(!c){throw new Error("No property descriptor found for "+name)}const pd=Object.getOwnPropertyDescriptor(c.prototype,name);if(!pd){continue}return pd.get.apply(target)}while(true)}static get(target,path){const segments=path.split(".");for(const iterator of segments){if(target===undefined||target===null){return target}target=target[iterator]}return target}static delay(n,ct){return new Promise(((resolve,reject)=>{const h={};h.id=setTimeout((()=>{resolve()}),n);if(ct){ct.registerForCancel((()=>{clearTimeout(h.id);reject(new Error("cancelled"))}))}}))}static encodeParameters(p){if(!p){return""}let s="";for(const key in p){if(p.hasOwnProperty(key)){const element=p[key];let v=element;if(v===undefined||v===null){continue}if(v instanceof Date){v=v.toISOString()}else if(typeof element==="object"){v=JSON.stringify(element)}if(s){s+="&"}s+=`${key}=${encodeURIComponent(v)}`}}return s}static url(url,query,hash){if(!url){return url}let p=this.encodeParameters(query);if(p){if(url.indexOf("?")===-1){url+="?"}else{url+="&"}url+=p}p=this.encodeParameters(hash);if(p){if(url.indexOf("#")===-1){url+="#"}else{url+="&"}url+=p}return url}static postAsync(app,f){return new Promise(((resolve,reject)=>{app.callLater((()=>__awaiter(this,void 0,void 0,(function*(){try{resolve(yield f())}catch(error){reject(error)}}))))}))}});Atom.designMode=false}}}));AmdLoader.instance.setup("@web-atoms/core/dist/Atom");System.register([],(function(_export,_context){"use strict";var FormattedError;_export("default",void 0);return{setters:[],execute:function(){_export("default",FormattedError=class FormattedError{constructor(msg){const e=new Error(msg.toString());e.formattedMessage=msg;e.__proto__=FormattedError.prototype;return e}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/core/FormattedError");System.register([],(function(_export,_context){"use strict";function registerInit(target,fx){const t=target;const inits=t._$_inits=t._$_inits||[];inits.push(fx)}_export("registerInit",registerInit);return{setters:[],execute:function(){}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/baseTypes");System.register(["tslib","../App","../Atom","../core/AtomBinder","../core/AtomDisposableList","../core/AtomWatcher","../core/BindableProperty","../di/Inject","./baseTypes"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,__param,App,Atom,AtomBinder,AtomDisposableList,AtomWatcher,BindableProperty,Inject,registerInit,AtomViewModel;function runDecoratorInits(){const v=this.constructor.prototype;if(!v){return}const ris=v._$_inits;if(ris){for(const ri of ris){ri.call(this,this)}}}function privateInit(){return __awaiter(this,void 0,void 0,(function*(){try{yield Atom.postAsync(this.app,(()=>__awaiter(this,void 0,void 0,(function*(){runDecoratorInits.apply(this)}))));yield Atom.postAsync(this.app,(()=>__awaiter(this,void 0,void 0,(function*(){yield this.init();this.onReady()}))));if(this.postInit){for(const i of this.postInit){i()}this.postInit=null}}finally{const pi=this.pendingInits;this.pendingInits=null;for(const iterator of pi){iterator()}}}))}function waitForReady(vm){return __awaiter(this,void 0,void 0,(function*(){while(vm.pendingInits){yield Atom.delay(100)}}))}function Receive(...channel){return(target,key)=>{registerInit(target,(vm=>{const fx=vm[key];const a=(ch,d)=>{const p=fx.call(vm,ch,d);if(p&&p.then&&p.catch){p.catch((e=>{console.warn(e)}))}};const ivm=vm;for(const c of channel){ivm.registerDisposable(ivm.app.subscribe(c,a))}}))}}function BindableReceive(...channel){return(target,key)=>{const bp=BindableProperty(target,key);registerInit(target,(vm=>{const fx=(cx,m)=>{vm[key]=m};const ivm=vm;for(const c of channel){ivm.registerDisposable(ivm.app.subscribe(c,fx))}}));return bp}}function BindableBroadcast(...channel){return(target,key)=>{const bp=BindableProperty(target,key);registerInit(target,(vm=>{const fx=t=>{const v=vm[key];for(const c of channel){vm.app.broadcast(c,v)}};const d=new AtomWatcher(vm,[key.split(".")],fx);d.init();vm.registerDisposable(d)}));return bp}}function Watch(target,key,descriptor){registerInit(target,(vm=>{const ivm=vm;if(descriptor&&descriptor.get){ivm.setupWatch(descriptor.get,(()=>{vm.refresh(key.toString())}));return}ivm.setupWatch(vm[key])}))}function CachedWatch(target,key,descriptor){const getMethod=descriptor.get;descriptor.get=()=>null;registerInit(target,(vm=>{const ivm=vm;const fieldName=`_${key}`;Object.defineProperty(ivm,key,{enumerable:true,configurable:true,get(){const c=ivm[fieldName]||(ivm[fieldName]={value:getMethod.apply(ivm)});return c.value}});ivm.setupWatch(getMethod,(()=>{ivm[fieldName]=null;AtomBinder.refreshValue(ivm,key)}))}))}function Validate(target,key,descriptor){const getMethod=descriptor.get;descriptor.get=()=>null;registerInit(target,(vm=>{const initialized={i:false};const ivm=vm;Object.defineProperty(ivm,key,{enumerable:true,configurable:true,get(){if(vm.mShouldValidate&&initialized.i){return getMethod.apply(this)}return null}});ivm.setupWatch(getMethod,(()=>{initialized.i=true;vm.refresh(key.toString())}),true,key.toString());return}))}_export({waitForReady,Receive,BindableReceive,BindableBroadcast,Watch,CachedWatch,Validate});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata;__param=_tslib.__param},function(_App){App=_App.App},function(_Atom){Atom=_Atom.Atom},function(_coreAtomBinder){AtomBinder=_coreAtomBinder.AtomBinder},function(_coreAtomDisposableList){AtomDisposableList=_coreAtomDisposableList.AtomDisposableList},function(_coreAtomWatcher){AtomWatcher=_coreAtomWatcher.AtomWatcher},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_diInject){Inject=_diInject.Inject},function(_baseTypes){registerInit=_baseTypes.registerInit}],execute:function(){_export("AtomViewModel",AtomViewModel=class AtomViewModel{get isReady(){return this.pendingInits===null}get errors(){const e=[];if(!this.mShouldValidate){return e}for(const v of this.validations){if(!v.initialized){return e}const error=this[v.name];if(error){e.push({name:v.name,error})}}return e}get parent(){return this.mParent}set parent(v){if(this.mParent&&this.mParent.mChildren){this.mParent.mChildren.remove(this)}this.mParent=v;if(v){const c=v.mChildren||(v.mChildren=[]);c.add(this);this.registerDisposable({dispose:()=>{c.remove(this)}})}}get isValid(){let valid=true;const validateWasFalse=this.mShouldValidate===false;this.mShouldValidate=true;for(const v of this.validations){if(!v.initialized){v.watcher.init(true);v.initialized=true}if(this[v.name]){if(validateWasFalse){AtomBinder.refreshValue(this,v.name)}valid=false}}if(this.mChildren){for(const child of this.mChildren){if(!child.isValid){valid=false}}}AtomBinder.refreshValue(this,"errors");return valid}constructor(app){this.app=app;this.disposables=null;this.validations=[];this.pendingInits=[];this.mShouldValidate=false;this.app.runAsync((()=>privateInit.apply(this)))}resetValidations(resetChildren=true){this.mShouldValidate=false;for(const v of this.validations){this.refresh(v.name)}if(resetChildren&&this.mChildren){for(const iterator of this.mChildren){iterator.resetValidations(resetChildren)}}}runAfterInit(f){if(this.pendingInits){this.pendingInits.push(f);return}f()}refresh(name){AtomBinder.refreshValue(this,name)}init(){return __awaiter(this,void 0,void 0,(function*(){}))}dispose(){if(this.disposables){this.disposables.dispose()}}registerDisposable(d){this.disposables=this.disposables||new AtomDisposableList;return this.disposables.add(d)}onReady(){}setupWatch(ft,proxy,forValidation,name){const d=new AtomWatcher(this,ft,proxy,this);if(forValidation){this.validations=this.validations||[];this.validations.push({name,watcher:d,initialized:false})}else{d.init()}return this.registerDisposable(d)}onPropertyChanged(name){}});_export("AtomViewModel",AtomViewModel=__decorate([__param(0,Inject),__metadata("design:paramtypes",[App])],AtomViewModel))}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/AtomViewModel");System.register(["tslib","../services/NavigationService","./AtomViewModel"],(function(_export,_context){"use strict";var __awaiter,NavigationService,AtomViewModel,AtomWindowViewModel;_export("AtomWindowViewModel",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService},function(_AtomViewModel){AtomViewModel=_AtomViewModel.AtomViewModel}],execute:function(){_export("AtomWindowViewModel",AtomWindowViewModel=class AtomWindowViewModel extends AtomViewModel{close(result){this.app.broadcast(`atom-window-close:${this.windowName}`,result)}cancel(){return __awaiter(this,void 0,void 0,(function*(){if(this.closeWarning){const navigationService=this.app.resolve(NavigationService);if(!(yield navigationService.confirm(this.closeWarning,"Are you sure?"))){return false}}this.app.broadcast(`atom-window-cancel:${this.windowName}`,"cancelled");return true}))}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/AtomWindowViewModel");System.register(["@web-atoms/core/src/web/images/close-button-hover.svg","../styles/AtomStyle"],(function(_export,_context){"use strict";var closeButtonHover,AtomStyle,AtomWindowStyle;_export("AtomWindowStyle",void 0);return{setters:[function(_webAtomsCoreSrcWebImagesCloseButtonHoverSvg){closeButtonHover=_webAtomsCoreSrcWebImagesCloseButtonHoverSvg.default},function(_stylesAtomStyle){AtomStyle=_stylesAtomStyle.AtomStyle}],execute:function(){_export("AtomWindowStyle",AtomWindowStyle=class AtomWindowStyle extends AtomStyle{get root(){return Object.assign(Object.assign({},this.frameHost),{subclasses:{" .close-button":this.closeButton," .command-bar-presenter":this.commandBarPresenter," .command-bar":this.commandBar," .content-presenter":this.contentPresenter," .content":this.content," .frame":this.frame," .title":this.title," .title-host":this.titleHost," .title-presenter":this.titlePresenter}})}get frameHost(){return{position:"absolute",left:0,right:0,top:0,bottom:0,backgroundColor:"#50505080"}}get frame(){return{position:"absolute",minHeight:"100px",minWidth:"300px",margin:"auto",border:"solid 1px #808080",borderRadius:"5px",backgroundColor:"white"}}get titlePresenter(){return{position:"relative",left:0,right:0,top:0,height:"37px"}}get titleHost(){return{position:"absolute",left:0,right:0,padding:"7px",minHeight:"32px",backgroundColor:"#404040",color:"white",top:0,borderTopRightRadius:"4px",borderTopLeftRadius:"4px"}}get title(){return{margin:"auto"}}get closeButton(){return{position:"absolute",right:"6px",top:"7px",width:"0",height:"0",padding:"9px",border:"none",backgroundColor:"transparent",backgroundImage:closeButtonHover}}get content(){return{}}get contentPresenter(){return{position:"relative",padding:"10px",background:"white"}}get commandBarPresenter(){return{left:0,right:0,bottom:0,padding:"5px",backgroundColor:"#d4d4d4",textAlign:"right",borderBottomRightRadius:"4px",borderBottomLeftRadius:"4px"}}get commandBar(){return{subclasses:{" button":{borderRadius:"3px",marginLeft:"5px",marginRight:"5px",padding:"4px 16px",backgroundColor:"whitesmoke",border:"1px solid gray"}}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomWindowStyle");System.register(["../../core/Colors","./AtomWindowStyle"],(function(_export,_context){"use strict";var Colors,AtomWindowStyle,AtomAlertWindowStyle;_export("default",void 0);return{setters:[function(_coreColors){Colors=_coreColors.default},function(_AtomWindowStyle){AtomWindowStyle=_AtomWindowStyle.AtomWindowStyle}],execute:function(){_export("default",AtomAlertWindowStyle=class AtomAlertWindowStyle extends AtomWindowStyle{get titleHost(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"titleHost")),{color:Colors.black,backgroundColor:Colors.white})}get contentPresenter(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"contentPresenter")),{padding:"0px 10px 30px 10px",textAlign:"center",color:Colors.rgba(51,51,51)})}get commandBar(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"commandBar")),{textAlign:"center",subclasses:{" button":this.buttonStyle," .yes-button":{backgroundColor:Colors.rgba(0,128,0)}," .no-button":{backgroundColor:Colors.rgba(255,0,0)}}})}get buttonStyle(){return{border:"none",color:Colors.white,width:"50%",height:"40px"}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomAlertWindowStyle");System.register(["./AtomControl"],(function(_export,_context){"use strict";var AtomControl,AtomTemplate;_export("AtomTemplate",void 0);return{setters:[function(_AtomControl){AtomControl=_AtomControl.AtomControl}],execute:function(){_export("AtomTemplate",AtomTemplate=class AtomTemplate extends AtomControl{})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomTemplate");System.register(["../../App","../../core/Bind","../../core/XNode","../styles/AtomWindowStyle","./AtomControl","./AtomTemplate"],(function(_export,_context){"use strict";var App,Bind,XNode,AtomWindowStyle,AtomControl,AtomTemplate,AtomWindowFrameTemplate,AtomWindowTitleTemplate,AtomWindow;function getTemplateParent(e){const tp=e._templateParent;if(tp){return tp}const p=e._logicalParent||e.parentElement;if(p){return getTemplateParent(p)}}_export({getTemplateParent,AtomWindowFrameTemplate:void 0,AtomWindow:void 0});return{setters:[function(_App){App=_App.App},function(_coreBind){Bind=_coreBind.default},function(_coreXNode){XNode=_coreXNode.default},function(_stylesAtomWindowStyle){AtomWindowStyle=_stylesAtomWindowStyle.AtomWindowStyle},function(_AtomControl){AtomControl=_AtomControl.AtomControl},function(_AtomTemplate){AtomTemplate=_AtomTemplate.AtomTemplate}],execute:function(){_export("AtomWindowFrameTemplate",AtomWindowFrameTemplate=class AtomWindowFrameTemplate extends AtomTemplate{get templateParent(){return getTemplateParent(this.element)}preCreate(){this.titlePresenter=null;this.commandPresenter=null;this.contentPresenter=null;super.preCreate()}create(){this.render(XNode.create("div",{class:"frame",styleWidth:Bind.oneWay((()=>this.templateParent.width||undefined)),styleHeight:Bind.oneWay((()=>this.templateParent.height||undefined)),styleLeft:Bind.oneWay((()=>this.templateParent.x>=0?`${this.templateParent.x}px`:undefined)),styleTop:Bind.oneWay((()=>this.templateParent.y>=0?`${this.templateParent.y}px`:undefined)),styleMarginTop:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginLeft:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginRight:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginBottom:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined))},XNode.create("div",{class:"title-presenter",presenter:Bind.presenter("titlePresenter")}),XNode.create("div",{class:"content-presenter",presenter:Bind.presenter("contentPresenter")}),XNode.create("div",{class:"command-bar-presenter",presenter:Bind.presenter("commandPresenter")})))}});AtomWindowTitleTemplate=class AtomWindowTitleTemplate extends AtomControl{get templateParent(){return getTemplateParent(this.element)}create(){this.render(XNode.create("div",{class:"title-host"},XNode.create("span",{class:"title",text:Bind.oneWay((()=>this.templateParent.title))}),XNode.create("button",{class:"close-button",eventClick:Bind.event((()=>this.templateParent.close()))})))}};_export("AtomWindow",AtomWindow=class AtomWindow extends AtomControl{constructor(){super(...arguments);this.title="";this.width="";this.height="";this.x=-1;this.y=-1;this.titleTemplate=AtomWindowTitleTemplate;this.frameTemplate=AtomWindowFrameTemplate;this.isReady=false}get templateParent(){return getTemplateParent(this.element)}onPropertyChanged(name){switch(name){case"windowTemplate":case"commandTemplate":case"frameTemplate":this.invalidate();break}}close(){const vm=this.viewModel;if(vm.cancel){this.app.runAsync((()=>vm.cancel()));return}const message=`atom-window-cancel:${this.id}`;const device=this.app.resolve(App);device.broadcast(message,"cancelled")}onUpdateUI(){if(!(this.windowTemplate&&this.frameTemplate)){return}if(this.isReady){return}this.bind(this.element,"title",[["viewModel","title"]]);const frame=new this.frameTemplate(this.app);const fe=frame.element;const titleContent=new this.titleTemplate(this.app);titleContent.element._templateParent=this;frame.titlePresenter.appendChild(titleContent.element);this.setupDragging(frame.titlePresenter);this.element.classList.add("frame-host");fe._logicalParent=this.element;fe._templateParent=this;if(!frame.contentPresenter){throw new Error("ContentPresenter must be set inside frameTemplate before creating window")}const content=new this.windowTemplate(this.app);content.element._templateParent=this;this.setElementClass(content.element,{content:1});frame.contentPresenter.appendChild(content.element);if(this.commandTemplate){if(!frame.commandPresenter){throw new Error("CommandPresenter must be set inside frameTemplate"+"before creating window if command template is present")}const command=new this.commandTemplate(this.app);command.element._templateParent=this;this.setElementClass(command.element,{"command-bar":1});frame.commandPresenter.appendChild(command.element)}this.append(frame);setTimeout((()=>{this.centerFrame(frame.element)}),100);this.isReady=true}preCreate(){this.defaultControlStyle=AtomWindowStyle;this.title=null;this.width="";this.height="";this.x=-1;this.y=-1;this.windowTemplate=null;this.commandTemplate=null;this.titleTemplate=AtomWindowTitleTemplate;this.frameTemplate=AtomWindowFrameTemplate;super.preCreate();this.render(XNode.create("div",{styleClass:Bind.oneTime((()=>this.controlStyle.name))}))}centerFrame(e){if(!this.element){return}const parent=this.element.parentElement;if(parent===window||parent===document.body){return}if(parent.offsetWidth<=0||parent.offsetHeight<=0){setTimeout((()=>{this.centerFrame(e)}),100);return}if(e.offsetWidth<=0||e.offsetHeight<=0){setTimeout((()=>{this.centerFrame(e)}),100);return}const x=(parent.offsetWidth-e.offsetWidth)/2;const y=(parent.offsetHeight-e.offsetHeight)/2;this.x=x;this.y=y;e.style.opacity="1";this.element.style.removeProperty("opacity")}setupDragging(tp){this.bindEvent(tp,"mousedown",(startEvent=>{startEvent.preventDefault();const disposables=[];const offset={x:tp.parentElement.offsetLeft,y:tp.parentElement.offsetTop};const rect={x:startEvent.clientX,y:startEvent.clientY};const cursor=tp.style.cursor;tp.style.cursor="move";disposables.push(this.bindEvent(document.body,"mousemove",(moveEvent=>{const{clientX,clientY}=moveEvent;const dx=clientX-rect.x;const dy=clientY-rect.y;offset.x+=dx;offset.y+=dy;this.x=offset.x;this.y=offset.y;rect.x=clientX;rect.y=clientY})));disposables.push(this.bindEvent(document.body,"mouseup",(endEvent=>{tp.style.cursor=cursor;for(const iterator of disposables){iterator.dispose()}})))}))}});AtomWindow.windowTemplate=XNode.prepare("windowTemplate",true,true);AtomWindow.commandTemplate=XNode.prepare("commandTemplate",true,true);AtomWindow.titleTemplate=XNode.prepare("titleTemplate",true,true);AtomWindow.frameTemplate=XNode.prepare("frameTemplate",true,true)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomWindow");System.register(["tslib","../../core/Bind","../../core/BindableProperty","../../core/XNode","../../view-model/AtomWindowViewModel","../styles/AtomAlertWindowStyle","./AtomWindow"],(function(_export,_context){"use strict";var __decorate,__metadata,Bind,BindableProperty,XNode,AtomWindowViewModel,AtomAlertWindowStyle,AtomWindow,AtomAlertWindow,AtomAlertViewModel;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_coreBind){Bind=_coreBind.default},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_coreXNode){XNode=_coreXNode.default},function(_viewModelAtomWindowViewModel){AtomWindowViewModel=_viewModelAtomWindowViewModel.AtomWindowViewModel},function(_stylesAtomAlertWindowStyle){AtomAlertWindowStyle=_stylesAtomAlertWindowStyle.default},function(_AtomWindow){AtomWindow=_AtomWindow.AtomWindow}],execute:function(){_export("default",AtomAlertWindow=class AtomAlertWindow extends AtomWindow{create(){this.defaultControlStyle=AtomAlertWindowStyle;this.viewModel=this.resolve(AtomAlertViewModel);this.render(XNode.create(AtomWindow,{title:Bind.oneWay((()=>this.viewModel.title))},XNode.create(AtomWindow.windowTemplate,null,XNode.create("div",{formattedText:Bind.oneWay((()=>this.viewModel.message))})),XNode.create(AtomWindow.commandTemplate,null,XNode.create("div",null,XNode.create("button",{class:"yes-button",styleDisplay:Bind.oneWay((()=>this.viewModel.okTitle?"":"none")),text:Bind.oneWay((()=>this.viewModel.okTitle)),eventClick:()=>this.viewModel.onOkClicked()}),XNode.create("button",{class:"no-button",styleMarginBottom:Bind.oneWay((()=>this.viewModel.cancelTitle?"0":"10px")),styleDisplay:Bind.oneWay((()=>this.viewModel.cancelTitle?"":"none")),text:Bind.oneWay((()=>this.viewModel.cancelTitle)),eventClick:()=>this.viewModel.onCancelClicked()})))))}});AtomAlertViewModel=class AtomAlertViewModel extends AtomWindowViewModel{onOkClicked(){this.close(true)}onCancelClicked(){this.cancel()}};__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"title",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"message",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"okTitle",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"cancelTitle",void 0)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomAlertWindow");System.register(["../../core/Colors","./AtomStyle"],(function(_export,_context){"use strict";var Colors,AtomStyle,AtomNotificationStyle;_export("default",void 0);return{setters:[function(_coreColors){Colors=_coreColors.default},function(_AtomStyle){AtomStyle=_AtomStyle.AtomStyle}],execute:function(){_export("default",AtomNotificationStyle=class AtomNotificationStyle extends AtomStyle{get root(){return{padding:"5px",borderRadius:"5px",border:"solid 1px lightgray",fontFamily:"Verdana, Geneva, sans-serif",fontSize:"16px",subclasses:{".error":{borderColor:Colors.red,color:Colors.red},".warning":{backgroundColor:Colors.lightYellow}}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomNotificationStyle");System.register(["tslib","../../core/Bind","../../core/BindableProperty","../../core/XNode","../styles/AtomNotificationStyle","./AtomControl"],(function(_export,_context){"use strict";var __decorate,__metadata,Bind,BindableProperty,XNode,AtomNotificationStyle,AtomControl,AtomNotification;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_coreBind){Bind=_coreBind.default},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_coreXNode){XNode=_coreXNode.default},function(_stylesAtomNotificationStyle){AtomNotificationStyle=_stylesAtomNotificationStyle.default},function(_AtomControl){AtomControl=_AtomControl.AtomControl}],execute:function(){_export("default",AtomNotification=class AtomNotification extends AtomControl{constructor(){super(...arguments);this.timeout=5e3;this.timeoutKey=null}onPropertyChanged(name){switch(name){case"timeout":this.setupTimeout();break}}create(){this.defaultControlStyle=AtomNotificationStyle;this.render(XNode.create("div",{formattedText:Bind.oneWay((()=>this.viewModel.message)),timeout:Bind.oneWay((()=>this.viewModel.timeout||5e3)),styleClass:Bind.oneWay((()=>({[this.controlStyle.name]:1,error:this.viewModel.type&&/error/i.test(this.viewModel.type),warning:this.viewModel.type&&/warn/i.test(this.viewModel.type)})))}))}setupTimeout(){if(this.timeoutKey){clearTimeout(this.timeoutKey)}this.timeoutKey=setTimeout((()=>{if(this.element){this.app.broadcast(`atom-window-close:${this.id}`,"")}}),this.timeout)}});__decorate([BindableProperty,__metadata("design:type",Number)],AtomNotification.prototype,"timeout",void 0)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomNotification");System.register(["../styles/AtomStyle"],(function(_export,_context){"use strict";var AtomStyle,AtomPopupStyle;_export("AtomPopupStyle",void 0);return{setters:[function(_stylesAtomStyle){AtomStyle=_stylesAtomStyle.AtomStyle}],execute:function(){_export("AtomPopupStyle",AtomPopupStyle=class AtomPopupStyle extends AtomStyle{get root(){return{backgroundColor:"white",border:"solid 1px lightgray",padding:"5px",borderRadius:"5px"}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomPopupStyle");System.register(["../../core/XNode","../../style/styled","./PopupService"],(function(_export,_context){"use strict";var XNode,styled,PopupWindow,css;function NotificationPopup({message,type}){return class Notification extends PopupWindow{create(){if(message instanceof XNode){this.render(XNode.create("div",{styleClass:{[css]:1,error:/error/i.test(type),warning:/warn/i.test(type)}},message));return}this.render(XNode.create("div",{styleClass:{[css]:1,error:/error/i.test(type),warning:/warn/i.test(type)},formattedText:message}))}}}_export("default",NotificationPopup);return{setters:[function(_coreXNode){XNode=_coreXNode.default},function(_styleStyled){styled=_styleStyled.default},function(_PopupService){PopupWindow=_PopupService.PopupWindow}],execute:function(){css=styled.css`
|
|
2122
2114
|
padding: 5px;
|
|
2123
2115
|
font-size: larger;
|
|
2124
2116
|
& .error {
|