@social-mail/social-mail-client 1.0.48 → 1.0.49
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 +22 -5
- package/dist/admin/AdminAppIndex.pack.js.map +1 -1
- package/dist/admin/AdminAppIndex.pack.min.js +4 -4
- package/dist/admin/AdminAppIndex.pack.min.js.map +1 -1
- package/dist/common/controls/drag-drop/FilesDragDrop.js +131 -0
- package/dist/common/controls/drag-drop/FilesDragDrop.js.map +1 -0
- package/dist/common/pages/mailboxes/services/MailboxService.js +1 -1
- package/dist/common/pages/mailboxes/services/MailboxService.js.map +1 -1
- package/dist/services/files/LocalFileService.js +10 -2
- package/dist/services/files/LocalFileService.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/web/AppIndex.pack.js +41 -20
- package/dist/web/AppIndex.pack.js.map +1 -1
- package/dist/web/AppIndex.pack.min.js +7 -7
- package/dist/web/AppIndex.pack.min.js.map +1 -1
- package/dist/web/page/files/FolderPage.js +18 -15
- package/dist/web/page/files/FolderPage.js.map +1 -1
- package/dist/web/page/files/service/CloudFileService.js +1 -0
- package/dist/web/page/files/service/CloudFileService.js.map +1 -1
- package/node_modules/@web-atoms/web-controls/dist/basic/AtomRepeater.js +3 -0
- package/node_modules/@web-atoms/web-controls/dist/basic/AtomRepeater.js.map +1 -1
- package/node_modules/@web-atoms/web-controls/dist/basic/UploadEvent.d.ts +3 -1
- package/node_modules/@web-atoms/web-controls/dist/basic/UploadEvent.d.ts.map +1 -1
- package/node_modules/@web-atoms/web-controls/dist/basic/UploadEvent.js +8 -2
- package/node_modules/@web-atoms/web-controls/dist/basic/UploadEvent.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/AtomRepeater.tsx +3 -0
- package/node_modules/@web-atoms/web-controls/src/basic/UploadEvent.tsx +7 -0
- package/package.json +2 -2
- package/src/common/controls/drag-drop/FilesDragDrop.ts +95 -0
- package/src/common/pages/mailboxes/services/MailboxService.ts +1 -1
- package/src/services/files/LocalFileService.tsx +12 -2
- package/src/web/page/files/FolderPage.tsx +27 -14
- package/src/web/page/files/service/CloudFileService.ts +1 -0
|
@@ -810,7 +810,7 @@ body {
|
|
|
810
810
|
}
|
|
811
811
|
}
|
|
812
812
|
}
|
|
813
|
-
`.withId("repeater-styles").installGlobal()}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/styles/repeater-style");System.register(["tslib","@web-atoms/core/dist/core/AtomBinder","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/Colors","@web-atoms/core/dist/core/StringHelper","@web-atoms/core/dist/core/WatchProperty","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/web/services/PopupService","./InlinePopup","./MergeNode","./ItemPath","./styles/ui-display-none-style","./styles/popup-style","./styles/suggestion-popup","./styles/repeater-style","@web-atoms/core/dist/web/core/AtomUI"],(function(_export,_context){"use strict";var __decorate,__metadata,__rest,AtomBinder,Bind,BindableProperty,Colors,StringHelper,WatchProperty,XNode,AtomControl,PopupWindow,InlinePopup,MergeNode,ItemPath,repeaterPopupCss,ChildEnumerator,SelectAllControl,AtomRepeater,popupCSS,getParentRepeaterItem,MatchTrue,MatchFalse,ArrowToString,MatchCaseInsensitive,MatchAnyCaseInsensitive,SameObjectValue,getFirstChild,hoverItem,dragOver;function askSuggestion(items,itemRenderer,match,options){class Suggestions extends PopupWindow{create(){var _a;this.title=(_a=options===null||options===void 0?void 0:options.title)!==null&&_a!==void 0?_a:"Select";this.render(XNode.create("div",{class:popupCSS},XNode.create("input",{type:"search",value:Bind.twoWaysImmediate((()=>this.search)),autofocus:true}),XNode.create("div",{class:"items"},XNode.create(AtomRepeater,{class:"presenter",itemRenderer,visibilityFilter:Bind.oneWay((()=>match(this.search))),eventItemClick:e=>{this.close(e.detail)},items}))))}}__decorate([BindableProperty,__metadata("design:type",String)],Suggestions.prototype,"search",void 0);options!==null&&options!==void 0?options:options={};if(typeof options.maximize==="undefined"){if(typeof options.width==="undefined"){options.maxWidth="90%";options.minWidth="300px"}if(typeof options.height==="undefined"){options.height="80%"}}return Suggestions.showModal(options)}function askSuggestionPopup(opener,items,itemRenderer,match,selectedItem){const updateSearch="search"in opener;const itemsInOpener="items"in opener;class Suggestions extends InlinePopup{get items(){return itemsInOpener?this.opener.items:items}onPropertyChanged(name){if(updateSearch&&name==="search"){opener.search=this.search}super.onPropertyChanged(name)}create(){this.anchorItem=selectedItem;this.opener=opener;if(this.opener.search){this.search=this.opener.search}if(selectedItem){this.anchorIndex=items.indexOf(selectedItem)}const disableSearch=opener.disableSearch;if(itemsInOpener){this.render(XNode.create("div",{"data-suggestion-popup":"suggestion-popup"},!disableSearch&&XNode.create("input",{type:"search",value:Bind.twoWaysImmediate((()=>this.search)),eventKeydown:e=>this.onKey(e),autofocus:true}),XNode.create("div",{class:"items"},XNode.create(AtomRepeater,{class:"presenter",selectedItem:Bind.oneWay((()=>this.anchorItem)),itemRenderer,visibilityFilter:Bind.oneWay((()=>match(this.search))),eventItemClick:e=>{this.anchorItem=e.detail;setTimeout((()=>this.close(e.detail)),100)},items:Bind.oneWay((()=>this.opener.items))}))));return}this.render(XNode.create("div",{"data-suggestion-popup":"suggestion-popup"},!disableSearch&&XNode.create("input",{type:"search",value:Bind.twoWaysImmediate((()=>this.search)),eventKeydown:e=>this.onKey(e),autofocus:true}),XNode.create("div",{class:"items"},XNode.create(AtomRepeater,{class:"presenter",selectedItem:Bind.oneWay((()=>this.anchorItem)),itemRenderer,visibilityFilter:Bind.oneWay((()=>match(this.search))),scrollToSelection:true,eventItemClick:e=>{this.close(e.detail)},items}))))}onKey(e){var _a;const suggested=match?(_a=this.items)===null||_a===void 0?void 0:_a.filter(match(this.search)):this.items;switch(e.key){case"Enter":const anchorItem=this.anchorItem;if(!anchorItem){return}this.anchorIndex=0;this.close(anchorItem);this.anchorItem=null;this.search="";break;case"ArrowDown":if(suggested){if(!this.anchorItem){this.anchorIndex=0}else{if(this.anchorIndex<suggested.length-1){this.anchorIndex++}}this.anchorItem=suggested[this.anchorIndex]}break;case"ArrowUp":if(suggested){if(!this.anchorItem){return}if(this.anchorIndex){this.anchorIndex--}this.anchorItem=suggested[this.anchorIndex]}break}}}__decorate([BindableProperty,__metadata("design:type",String)],Suggestions.prototype,"search",void 0);return Suggestions.showControl(opener)}function SelectorCheckBox(_a,...nodes){var{text,icon="far fa-square",iconSelected="fas fa-check-square"}=_a,a=__rest(_a,["text","icon","iconSelected"]);if(text){return XNode.create("label",Object.assign({"data-selector":"check-box"},a),XNode.create("i",{class:icon,"data-click-event":"item-select"}),XNode.create("i",{class:iconSelected,"data-click-event":"item-deselect"}),XNode.create("span",{"data-no-wrap":"true",text}),...nodes)}return XNode.create("label",Object.assign({"data-selector":"check-box"},a),XNode.create("i",{class:icon,"data-click-event":"item-select"}),XNode.create("i",{class:iconSelected,"data-click-event":"item-deselect"}),...nodes)}function SelectAll(_a,...nodes){var{text="Select All",icon="far fa-square",iconSelected="fas fa-check-square"}=_a,a=__rest(_a,["text","icon","iconSelected"]);if(text){return XNode.create(SelectAllControl,Object.assign({for:"label"},a),XNode.create("i",{class:icon,"data-ui-type":"item-select"}),XNode.create("i",{class:iconSelected,"data-ui-type":"item-deselect"}),XNode.create("span",{"data-no-wrap":"true",text}))}return XNode.create(SelectAllControl,Object.assign({for:"label"},a),XNode.create("i",{class:icon,"data-ui-type":"item-select"}),XNode.create("i",{class:iconSelected,"data-ui-type":"item-deselect"}),...nodes)}function disposeChildren(owner,e){if(!e){return}let s=e.firstElementChild;while(s){const c=s;s=s.nextElementSibling;const ac=c.atomControl;if(ac){ac.dispose();continue}disposeChildren(owner,c);owner.unbind(c);owner.unbindEvent(c)}e.innerHTML=""}function disposeChild(owner,e){const ac=e.atomControl;if(ac){ac.dispose();return}disposeChildren(owner,e);owner.unbind(e);owner.unbindEvent(e);e.remove()}function defaultComparer(left,right){if(left&&right){if(left instanceof Date){if(right instanceof Date){return left.getTime()===right.getTime()}return false}}return left===right}function updateDragDrop(e,force=false){if(!e){return}if(force){e.draggable=false}else{force=e.draggable}e=e.firstElementChild;while(e){updateDragDrop(e,force);e=e.nextElementSibling}}_export({askSuggestion,askSuggestionPopup,SelectorCheckBox,SelectAll,disposeChildren,disposeChild,defaultComparer,default:void 0});return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata;__rest=_tslib.__rest},function(_webAtomsCoreDistCoreAtomBinder){AtomBinder=_webAtomsCoreDistCoreAtomBinder.AtomBinder},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreBindableProperty){BindableProperty=_webAtomsCoreDistCoreBindableProperty.BindableProperty},function(_webAtomsCoreDistCoreColors){Colors=_webAtomsCoreDistCoreColors.default},function(_webAtomsCoreDistCoreStringHelper){StringHelper=_webAtomsCoreDistCoreStringHelper.StringHelper},function(_webAtomsCoreDistCoreWatchProperty){WatchProperty=_webAtomsCoreDistCoreWatchProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistWebServicesPopupService){PopupWindow=_webAtomsCoreDistWebServicesPopupService.PopupWindow},function(_InlinePopup){InlinePopup=_InlinePopup.default},function(_MergeNode){MergeNode=_MergeNode.default},function(_ItemPath){ItemPath=_ItemPath.default},function(_stylesUiDisplayNoneStyle){},function(_stylesPopupStyle){repeaterPopupCss=_stylesPopupStyle.repeaterPopupCss},function(_stylesSuggestionPopup){},function(_stylesRepeaterStyle){},function(_webAtomsCoreDistWebCoreAtomUI){ChildEnumerator=_webAtomsCoreDistWebCoreAtomUI.ChildEnumerator}],execute:function(){popupCSS=repeaterPopupCss;_export("getParentRepeaterItem",getParentRepeaterItem=target=>{let eventName;let repeater;let index;let root;while(target){const a=target.atomControl;if(a!==undefined&&a instanceof AtomRepeater){repeater=a;break}if(index===undefined){const itemIndex=target.getAttribute("data-item-index");if(typeof itemIndex!=="undefined"){root=target;index=~~itemIndex}}if(eventName===undefined){const itemClickEvent=target.getAttribute("data-click-event");if(itemClickEvent){eventName=itemClickEvent.replace(/-([a-z])/g,(g=>g[1].toUpperCase()))}}target=target.parentElement}if(index===void 0||repeater===void 0){return undefined}const item=repeater.items[~~index];return[eventName,repeater,item,index,root]});_export("MatchTrue",MatchTrue=(...a)=>true);_export("MatchFalse",MatchFalse=(...a)=>false);_export("ArrowToString",ArrowToString=item=>{var _a,_b;return(_b=(_a=item.label)===null||_a===void 0?void 0:_a.toString())!==null&&_b!==void 0?_b:item.toString()});_export("MatchCaseInsensitive",MatchCaseInsensitive=(textField=ArrowToString)=>s=>{if(!s){return MatchTrue}const r=StringHelper.createContainsRegExp(s);return item=>r.test(textField(item))});_export("MatchAnyCaseInsensitive",MatchAnyCaseInsensitive=(textField=ArrowToString)=>s=>{if(!s){return MatchTrue}const r=StringHelper.createContainsAnyWordRegExp(s);return item=>r.test(textField(item))});_export("SameObjectValue",SameObjectValue=item=>item);SelectAllControl=class SelectAllControl extends AtomControl{preCreate(){this.element.dataset.selectAll="select-all";this.items=[];this.selectedItems=[];this.render(XNode.create(SelectAllControl,{"data-is-selected":Bind.oneWay((()=>this.items.length>0&&this.items.length===this.selectedItems.length),false)}));this.bindEvent(this.element,"click",(()=>{const si=this.selectedItems;const items=this.items;if(!si){return}if(!items){return}if(items.length===0){return}if(items.length===si.length){si.clear()}else{si.length=0;si.push(...items);si.refresh()}}))}};__decorate([BindableProperty,__metadata("design:type",Array)],SelectAllControl.prototype,"items",void 0);__decorate([BindableProperty,__metadata("design:type",Array)],SelectAllControl.prototype,"selectedItems",void 0);getFirstChild=container=>{let child=container.firstElementChild;while(child&&!child.hasAttribute("data-item-index")){child=child.nextElementSibling}return child};_export("default",AtomRepeater=class AtomRepeater extends AtomControl{constructor(){super(...arguments);this.bubbleEvents=true}static from(element){while(element){const{atomControl}=element;if(atomControl instanceof AtomRepeater){return atomControl}element=element.parentElement}}set refreshEventScope(v){this.registerDisposable(v.listen((ce=>{this.refreshItem(ce.detail)})))}get allSelected(){const selectedItems=this.selectedItems;const items=this.items;if(!(items&&selectedItems)){return false}return items.length&&items.length===selectedItems.length}get value(){var _a;if(this.initialValue!==undefined){return this.initialValue}const sp=this.selectedItem;if(sp===undefined){return sp}const vp=(_a=this.valuePath)!==null&&_a!==void 0?_a:SameObjectValue;return vp(sp)}set value(v){var _a,_b;this.initialValue=v;if(!this.items||!this.items.length){AtomBinder.refreshValue(this,"value");return}const vp=(_a=this.valuePath)!==null&&_a!==void 0?_a:SameObjectValue;const c=(_b=this.comparer)!==null&&_b!==void 0?_b:defaultComparer;const selectedItem=this.items.find((item=>c(vp(item),v)));this.selectedItem=selectedItem;delete this.initialValue}get selectedItem(){var _a;return(_a=this.selectedItems)===null||_a===void 0?void 0:_a[0]}set selectedItem(value){var _a;const si=(_a=this.selectedItems)!==null&&_a!==void 0?_a:this.selectedItems=[];const first=si[0];if(value===first){return}si.set(0,value)}onPropertyChanged(name){var _a,_b;switch(name){case"items":(_a=this.itemsDisposable)===null||_a===void 0?void 0:_a.dispose();const items=this.items;const d=items===null||items===void 0?void 0:items.watch(((target,type,index,item)=>{switch(type){case"add":case"remove":case"set":this.updatePartial(type,index,item);break;default:this.updateItems();break}this.dispatchCustomEvent("items-updated",{type,items,index});AtomBinder.refreshValue(this,"selectedItem");AtomBinder.refreshValue(this,"value")}));if(d){this.itemsDisposable=this.registerDisposable(d)}const iv=this.initialValue;if(iv){this.value=iv}this.updateItems();this.dispatchCustomEvent("items-updated",{type:"reset",items,index:0});if(this.scrollToSelection){this.bringSelectionIntoView()}break;case"selectedItems":(_b=this.selectedItemsDisposable)===null||_b===void 0?void 0:_b.dispose();const selectedItems=this.selectedItems;const sd=selectedItems===null||selectedItems===void 0?void 0:selectedItems.watch((()=>{this.updateClasses();if(this.scrollToSelection){this.bringSelectionIntoView()}if(this.selectedItem){delete this.initialValue}AtomBinder.refreshValue(this,"selectedItem");AtomBinder.refreshValue(this,"value");AtomBinder.refreshValue(this,"allSelected");this.dispatchCustomEvent("selection-updated",selectedItems)}));if(sd){this.selectedItemsDisposable=this.registerDisposable(sd)}this.updateClasses();this.dispatchCustomEvent("selection-updated",selectedItems);AtomBinder.refreshValue(this,"allSelected");break;case"itemRenderer":case"watch":this.updateItems();break;case"visibilityFilter":this.updateVisibility();break;case"header":case"headerRenderer":this.updateHeaderFooter("header",this.headerPresenter,this.header,this.headerRenderer,true);break;case"footer":case"footerRenderer":this.updateHeaderFooter("footer",this.footerPresenter,this.footer,this.footerRenderer);break}}bringSelectionIntoView(force){if(force){const selection=this.selectedItem;if(selection){const element=this.elementForItem(selection);element===null||element===void 0?void 0:element.scrollIntoView()}return}if(this.bringIntoViewId){clearTimeout(this.bringIntoViewId)}this.bringIntoViewId=setTimeout((()=>{clearTimeout(this.bringIntoViewId);this.bringIntoViewId=undefined;this.bringSelectionIntoView(true)}),100)}forEach(action,container){var _a;container!==null&&container!==void 0?container:container=(_a=this.itemsPresenter)!==null&&_a!==void 0?_a:this.element;const items=this.items;let start=getFirstChild(container);while(start){const index=start.dataset.itemIndex;const item=items[~~index];action(item,start);start=start.nextElementSibling}}*any(fx,itemSelector,container){var _a;container!==null&&container!==void 0?container:container=(_a=this.itemsPresenter)!==null&&_a!==void 0?_a:this.element;const items=this.items;let node=getFirstChild(container);while(node){const index=node.dataset.itemIndex;const item=items[~~index];let element=node;if(itemSelector){element=element.querySelector(itemSelector)}const ie={item,element};if(fx){if(fx(item)){yield ie}continue}yield ie;node=node.nextElementSibling}}*all(container){var _a;container!==null&&container!==void 0?container:container=(_a=this.itemsPresenter)!==null&&_a!==void 0?_a:this.element;const items=this.items;let element=getFirstChild(container);while(element){const index=element.dataset.itemIndex;const item=items[~~index];yield{item,element};element=element.nextElementSibling}}elementAt(index,container){var _a;container!==null&&container!==void 0?container:container=(_a=this.itemsPresenter)!==null&&_a!==void 0?_a:this.element;const indexText=index.toString();const element=ChildEnumerator.find(container,(e=>e.getAttribute("data-item-index")===indexText));return element}elementForItem(itemToFind,container){const index=this.items.indexOf(itemToFind);return this.elementAt(index,container)}refreshItem(item,fx,index=-1){if(index===-1){index=this.items.indexOf(item)}if(fx===null||fx===void 0?void 0:fx.then){const finalize=v=>{this.refreshItem(item,v,index)};fx.then(finalize,finalize);return}if(fx instanceof MergeNode){this.mergeItem(index,fx);return}this.updatePartial("set",index,item)}mergeItem(index,m){var _a,_b,_c;const item=this.items[index];if(!item){return}if((_b=(_a=m.classes)===null||_a===void 0?void 0:_a[0])===null||_b===void 0?void 0:_b.remove){this.items.removeAt(index);return}const container=(_c=this.itemsPresenter)!==null&&_c!==void 0?_c:this.element;const node=this.itemRenderer(item,index,this);const sourceElement=document.createElement("div");sourceElement.style.display="none";container.appendChild(sourceElement);this.render(node,sourceElement);const targetElement=this.elementAt(index);for(const iterator of m.classes){if(typeof iterator==="string"){const source=sourceElement.querySelectorAll(iterator);const target=targetElement.querySelectorAll(iterator);for(let i=0;i<source.length&&i<target.length;i++){const element=source[i];const te=target[i];for(const name of te.getAttributeNames()){te.removeAttribute(name)}te.innerHTML=element.innerHTML;for(const name of element.getAttributeNames()){te.setAttribute(name,element.getAttribute(name))}}continue}if(iterator.parent){const targetParent=/self|\*/.test(iterator.parent)?targetElement:targetElement.querySelector(iterator.parent);if(!targetParent){continue}for(const i of Array.from(targetElement.querySelectorAll(iterator.replace))){i.remove()}for(const i of Array.from(sourceElement.querySelectorAll(iterator.replace))){targetParent.appendChild(i)}continue}let targetPrevious=targetElement.querySelector(iterator.after);for(const i of Array.from(targetElement.querySelectorAll(iterator.replace))){i.remove()}for(const i of Array.from(sourceElement.querySelectorAll(iterator.replace))){targetPrevious.insertAdjacentElement("afterend",i);targetPrevious=i}}this.dispose(sourceElement);sourceElement.remove()}updatePartial(key,index,item,container){var _a,_b,_c,_d,_e,_f,_g;const items=this.items;if(!items){return}const ir=this.itemRenderer;if(!ir){return}container!==null&&container!==void 0?container:container=(_a=this.itemsPresenter)!==null&&_a!==void 0?_a:this.element;let start=getFirstChild(container);let ei;while(start){ei=~~start.getAttribute("data-item-index");if(ei===index){break}start=start.nextElementSibling}if(key!=="add"&&!start){return}const vp=(_b=this.valuePath)!==null&&_b!==void 0?_b:it=>it;const si=((_c=this.selectedItems)!==null&&_c!==void 0?_c:[]).map(vp);const isRemove=key==="remove";if(isRemove||key==="set"){const current=start;start=start.nextElementSibling;const ac=current.atomControl;if(ac){ac.dispose()}else{this.unbind(current);this.unbindEvent(current)}current.remove()}const end=((_d=this.footerElement)===null||_d===void 0?void 0:_d.parentElement)===container?this.footerElement:null;if(!isRemove){const en=ir(item,index,this);const ea=(_e=en.attributes)!==null&&_e!==void 0?_e:en.attributes={};const v=vp(item);const e=document.createElement((_g=(_f=ea.for)!==null&&_f!==void 0?_f:en.name)!==null&&_g!==void 0?_g:"div");e.setAttribute("data-item-index",`${index++}`);if(si.indexOf(v)!==-1){e.setAttribute("data-selected-item","true")}else{e.removeAttribute("data-selected-item")}if(this.enableDragDrop){updateDragDrop(e)}if(start){container.insertBefore(e,start)}else if(end){container.insertBefore(e,end)}else{container.appendChild(e)}this.render(en,e,this)}while(start){const ci=items[index];const cv=vp(ci);start.setAttribute("data-item-index",`${index++}`);if(si.indexOf(cv)!==-1){start.setAttribute("data-selected-item","true")}else{start.removeAttribute("data-selected-item")}start=start.nextElementSibling}}updateItems(container,force){var _a,_b,_c,_d,_e,_f;if(this.deferUpdates&&!force){if(this.deferredUpdateId){return}this.deferredUpdateId=setTimeout((()=>{this.deferredUpdateId=0;this.updateItems(container,true)}),1);return}container!==null&&container!==void 0?container:container=(_a=this.itemsPresenter)!==null&&_a!==void 0?_a:this.element;if(!container){return}disposeChildren(this,container);this.onPropertyChanged("header");const ir=this.itemRenderer;if(!ir){this.onPropertyChanged("footer");return}const items=this.items;if(!items){this.onPropertyChanged("footer");return}const vp=(_b=this.valuePath)!==null&&_b!==void 0?_b:it=>it;const si=((_c=this.selectedItems)!==null&&_c!==void 0?_c:[]).map(vp);let i=0;for(const iterator of items){const index=i++;const e=ir(iterator,index,this);const ea=(_d=e.attributes)!==null&&_d!==void 0?_d:e.attributes={};const v=vp(iterator);const element=document.createElement((_f=(_e=ea.for)!==null&&_e!==void 0?_e:e.name)!==null&&_f!==void 0?_f:"div");element.setAttribute("data-item-index",`${index}`);if(si.indexOf(v)!==-1){element.setAttribute("data-selected-item","true")}else{element.removeAttribute("data-selected-item")}this.render(e,element,this);if(this.enableDragDrop){updateDragDrop(element)}container.appendChild(element)}this.onPropertyChanged("footer")}preCreate(){this.mergeOnRefresh=false;this.selectOnClick=false;this.element.setAttribute("data-click-event","item-click")}dispatchCustomEvent(type,detail){if(!this.element){return}const eventName=this.element.getAttribute("data-"+type+"-event");type=StringHelper.fromHyphenToCamel(eventName!==null&&eventName!==void 0?eventName:type);this.element.dispatchEvent(new CustomEvent(type,{detail,bubbles:eventName!==null,cancelable:true}))}updateClasses(){var _a,_b,_c;const container=(_a=this.itemsPresenter)!==null&&_a!==void 0?_a:this.element;const items=this.items;let element=getFirstChild(container);const vp=(_b=this.valuePath)!==null&&_b!==void 0?_b:i=>i;const si=((_c=this.selectedItems)!==null&&_c!==void 0?_c:[]).map(vp);while(element){const index=~~element.dataset.itemIndex;const item=items[index];const v=vp(item);if(si.indexOf(v)!==-1){element.setAttribute("data-selected-item","true")}else{element.removeAttribute("data-selected-item")}element=element.nextElementSibling}}updateVisibility(){var _a,_b;const container=(_a=this.itemsPresenter)!==null&&_a!==void 0?_a:this.element;const items=this.items;let element=container.firstElementChild;const vf=(_b=this.visibilityFilter)!==null&&_b!==void 0?_b:MatchTrue;while(element){const index=~~element.dataset.itemIndex;const item=items[index];if(vf(item)){element.removeAttribute("data-ui-display")}else{element.setAttribute("data-ui-display","none")}element=element.nextElementSibling}}updateHeaderFooter(name,presenter,item,itemRenderer,insert){var _a,_b,_c,_d;presenter!==null&&presenter!==void 0?presenter:presenter=(_a=this.itemsPresenter)!==null&&_a!==void 0?_a:this.itemsPresenter=this.element;if(!presenter){this[name+"Element"]=null;return}let current;if(insert){current=presenter.firstElementChild;while(current&¤t.dataset[name]!==name){current=current.nextElementSibling}}else{current=presenter.lastElementChild;while(current&¤t.dataset[name]!==name){current=current.previousElementSibling}}if(current){disposeChild(this,current);this[name+"Element"]=null}if(!(item&&itemRenderer)){return}const node=itemRenderer(item);const element=document.createElement((_d=(_c=(_b=node.attributes)===null||_b===void 0?void 0:_b.for)!==null&&_c!==void 0?_c:node.name)!==null&&_d!==void 0?_d:"div");element.dataset[name]=name;this.render(node,element,this);if(insert){presenter.insertBefore(element,presenter.firstElementChild)}else{presenter.appendChild(element)}this[name+"Element"]=element}dispatchHeaderFooterEvent(eventName,type,recreate,originalTarget){const detail=this[type];const ce=new CustomEvent(eventName!==null&&eventName!==void 0?eventName:`${type}Click`,{detail,bubbles:this.bubbleEvents,cancelable:true});originalTarget.dispatchEvent(ce);if(ce.defaultPrevented||!ce.executed){return}if(recreate){this.onPropertyChanged(type)}}dispatchItemEvent(eventName,item,recreate,originalTarget,nestedItem){var _a;const ce=new CustomEvent(eventName!==null&&eventName!==void 0?eventName:"itemClick",{detail:nestedItem!==null&&nestedItem!==void 0?nestedItem:item,bubbles:this.bubbleEvents,cancelable:true});originalTarget.dispatchEvent(ce);if(!ce.defaultPrevented){if(this.selectOnClick||eventName==="itemSelect"||eventName==="itemDeselect"){const si=(_a=this.selectedItems)!==null&&_a!==void 0?_a:this.selectedItems=[];if(si){const index=si.indexOf(item);if(index===-1){if(this.allowMultipleSelection){si.add(item)}else{si.set(0,item)}}else{si.removeAt(index)}}}}if(ce.defaultPrevented||!ce.executed){return}const promise=ce.promise;if(recreate){this.refreshItem(item,promise);return}if(promise){promise.then((r=>r instanceof MergeNode&&this.refreshItem(item,r)))}}dispatchClickEvent(e,data){let{recreate,header,footer,itemIndex,itemPath,clickEvent=header?"headerClick":footer?"footerClick":"itemClick"}=data;clickEvent=clickEvent.replace(/-([a-z])/g,(g=>g[1].toUpperCase()));if(itemIndex!==void 0){let index=~~itemIndex;const item=this.items[index];if(item){if(itemPath!==null&&itemPath!==void 0?itemPath:false){const nestedItem=ItemPath.get(item,itemPath.trim());this.dispatchItemEvent(clickEvent,item,recreate,e.target,nestedItem);return}this.dispatchItemEvent(clickEvent,item,recreate,e.target)}return}if(header){this.dispatchHeaderFooterEvent(clickEvent,header,recreate,e.target)}if(footer){this.dispatchHeaderFooterEvent(clickEvent,footer,recreate,e.target)}}});__decorate([BindableProperty,__metadata("design:type",Boolean)],AtomRepeater.prototype,"allowMultipleSelection",void 0);__decorate([BindableProperty,__metadata("design:type",Object)],AtomRepeater.prototype,"selectOnClick",void 0);__decorate([BindableProperty,__metadata("design:type",Array)],AtomRepeater.prototype,"selectedItems",void 0);__decorate([BindableProperty,__metadata("design:type",Object)],AtomRepeater.prototype,"itemsPresenter",void 0);__decorate([BindableProperty,__metadata("design:type",Array)],AtomRepeater.prototype,"items",void 0);__decorate([BindableProperty,__metadata("design:type",Object)],AtomRepeater.prototype,"watch",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],AtomRepeater.prototype,"visibilityFilter",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],AtomRepeater.prototype,"enableFunc",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],AtomRepeater.prototype,"itemRenderer",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],AtomRepeater.prototype,"valuePath",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],AtomRepeater.prototype,"comparer",void 0);__decorate([BindableProperty,__metadata("design:type",Boolean)],AtomRepeater.prototype,"deferUpdates",void 0);__decorate([BindableProperty,__metadata("design:type",Object)],AtomRepeater.prototype,"header",void 0);__decorate([BindableProperty,__metadata("design:type",Object)],AtomRepeater.prototype,"headerRenderer",void 0);__decorate([BindableProperty,__metadata("design:type",Object)],AtomRepeater.prototype,"footer",void 0);__decorate([BindableProperty,__metadata("design:type",Object)],AtomRepeater.prototype,"footerRenderer",void 0);__decorate([BindableProperty,__metadata("design:type",Object)],AtomRepeater.prototype,"enableDragDrop",void 0);__decorate([WatchProperty,__metadata("design:type",Object),__metadata("design:paramtypes",[])],AtomRepeater.prototype,"allSelected",null);hoverItem={repeater:null,target:null,item:null,placeholder:null};document.body.addEventListener("dragstart",(e=>{const{target}=e;if(target.draggable){const ri=getParentRepeaterItem(target);if(!ri){return}const[type,repeater,item,index]=ri;if(!repeater||!repeater.enableDragDrop){return}const placeholder=document.createElement("div");placeholder.style.width=target.offsetWidth+"px";placeholder.style.height=target.offsetHeight+"px";placeholder.style.backgroundColor=Colors.lightGray.toString();placeholder.style.border="solid 1px gray";placeholder.style.borderRadius="10px";hoverItem={repeater,target,item,placeholder};e.dataTransfer.dropEffect="move";setTimeout((()=>{target.style.display="none";target.parentElement.insertBefore(placeholder,target)}),0)}}));document.body.addEventListener("dragend",(e=>{var _a,_b;if(!(hoverItem===null||hoverItem===void 0?void 0:hoverItem.placeholder)){return}const{item,placeholder,repeater}=hoverItem;let start=placeholder;let index=-1;while(start){const itemIndex=(_b=(_a=start.previousElementSibling)===null||_a===void 0?void 0:_a.dataset)===null||_b===void 0?void 0:_b.itemIndex;if(itemIndex!==void 0){index=~~itemIndex}if(start.parentElement.atomControl){break}start=start.parentElement}const targetRepeater=start.parentElement.atomControl;placeholder.remove();hoverItem.placeholder=null;repeater.items.remove(item);index++;const ce=new CustomEvent("itemDropped",{detail:{item,index}});if(ce.defaultPrevented){return}const{detail}=ce;targetRepeater.items.insert(detail.index,detail.item)}));dragOver=e=>{if(hoverItem){const{placeholder}=hoverItem;if(e.target===placeholder){return}}const ri=getParentRepeaterItem(e.target);if(!ri){return}const[type,repeater,item,index,target]=ri;if(!repeater){return}if(hoverItem){const{placeholder}=hoverItem;e.preventDefault();const mp={x:e.clientX,y:e.clientY};const isBefore=(co,n)=>n.x<=co.x+co.width*.3||n.y<=co.y+co.height*.3;const isAfter=(co,n)=>n.x>=co.x+co.width*.7||n.y>=co.y+co.height*.7;const targetBounds=target.getBoundingClientRect();if(isAfter(targetBounds,mp)){const next=target.nextElementSibling;if(next===placeholder){return}placeholder.remove();target.insertAdjacentElement("afterend",placeholder);return}if(isBefore(targetBounds,mp)){const previous=target.previousElementSibling;if(previous===placeholder){return}placeholder.remove();target.insertAdjacentElement("beforebegin",placeholder)}return}};document.body.addEventListener("dragover",dragOver);document.body.addEventListener("dragenter",dragOver)}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/AtomRepeater");System.register(["./Register","./ServiceCollection"],(function(_export,_context){"use strict";var Register,Scope;function DITransient(mockOrInject){return target=>{Register({scope:Scope.Transient,mockOrInject})(target)}}_export("default",DITransient);return{setters:[function(_Register){Register=_Register.Register},function(_ServiceCollection){Scope=_ServiceCollection.Scope}],execute:function(){}}}));AmdLoader.instance.setup("@web-atoms/core/dist/di/DITransient");System.register(["tslib","@web-atoms/core/dist/di/DITransient","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model"],(function(_export,_context){"use strict";var __decorate,__metadata,DITransient,Inject,EntityService,HostedDomain,AdminDomainService;return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiDITransient){DITransient=_webAtomsCoreDistDiDITransient.default},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){HostedDomain=_modelModel.HostedDomain}],execute:function(){AdminDomainService=class AdminDomainService{list(){return this.entityService.query(HostedDomain).include((x=>x.domain)).toArray()}save(domain){const clone=this.entityService.cloner(domain).include((x=>x.domainUsers)).include((x=>x.domain));return this.entityService.save(clone.copy)}get(domainID){return this.entityService.query(HostedDomain).where({domainID},(p=>x=>x.domainID===p.domainID)).include((x=>[x.domain,x.relays,x.domainUsers.forEach((u=>u.user)),x.domainKeys])).firstOrDefault()}};__decorate([Inject,__metadata("design:type",EntityService)],AdminDomainService.prototype,"entityService",void 0);AdminDomainService=__decorate([DITransient()],AdminDomainService);_export("default",AdminDomainService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/domains/services/AdminDomainService");System.register(["tslib","../App","../core/Command","../core/EventScope","../core/StringHelper","../core/types","../services/http/JsonError","../services/NavigationService","../web/services/PopupService"],(function(_export,_context){"use strict";var __awaiter,App,Command,EventScope,StringHelper,CancelToken,JsonError,NavigationService,NotifyType,PopupService,MarkBusySet,onEventHandler;function Action({onEvent=void 0,onEventTarget=void 0,onEventSetBusy,blockMultipleExecution=true,dispatchEvent,authorize=void 0,defer=void 0,success=null,successTitle="Done",successMode="notify",confirm=null,confirmTitle=null,validate=false,validateTitle=null,close=false,notifyDelay=2e3}={}){return(target,key,descriptor)=>{const getEventNames=names=>{if(names===null||names===void 0){return}if(Array.isArray(names)){return names.map(getEventNames)}if(names instanceof Command){onEventTarget!==null&&onEventTarget!==void 0?onEventTarget:onEventTarget=window;return names.eventScope.eventType}if(names instanceof EventScope){onEventTarget!==null&&onEventTarget!==void 0?onEventTarget:onEventTarget=window;return names.eventType}return names};onEvent=getEventNames(onEvent);if((onEvent===null||onEvent===void 0?void 0:onEvent.length)>0){const oldCreate=target.beginEdit;if(oldCreate){const onEventName=Array.isArray(onEvent)?onEvent.map(StringHelper.fromHyphenToCamel):StringHelper.fromHyphenToCamel(onEvent);const busyKey=Symbol.for("isBusy"+key.toString());target.beginEdit=function(){const result=oldCreate.apply(this,arguments);const c=this;let element=this.element;if(element){if(onEventTarget){element=onEventTarget}const handler=onEventHandler(c,blockMultipleExecution,key,busyKey,onEventSetBusy);if(typeof onEventName==="string"){c.bindEvent(element,onEventName,handler)}else{for(const eventName of onEventName){c.bindEvent(element,eventName,handler)}}}return result}}}const{value}=descriptor;const deferSymbol=defer?Symbol.for(`${key.toString()}Defer`):void 0;return{get:function(){const vm=this;const oldMethod=value;const fx=function(...a){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){const vm=this;if(defer){const previous=vm[deferSymbol];if(previous!==0){if(previous>0){clearTimeout(previous)}vm[deferSymbol]=setTimeout((()=>{vm[deferSymbol]=0;const r=vm[key](...a);delete vm[deferSymbol];return r}),defer);return}}const app=vm.app;const ns=app.resolve(NavigationService);try{if(authorize&&!App.authorize()){return}if(validate){if(!vm.isValid){const vMsg=typeof validate==="boolean"?"Please enter correct information":validate;yield ns.alert(vMsg,validateTitle||"Error");return}}if(confirm){if(!(yield ns.confirm(confirm,confirmTitle||"Confirm"))){return}}let result=oldMethod.apply(vm,a);if(result===null||result===void 0?void 0:result.then){result=yield result}if(success){if(successMode==="notify"){yield ns.notify(success,successTitle,NotifyType.Information,notifyDelay)}else{yield ns.alert(success,successTitle)}}if(close){(_a=vm.close)===null||_a===void 0?void 0:_a.call(vm,result)}if(dispatchEvent){const element=(_b=vm.element)!==null&&_b!==void 0?_b:document.body;if(typeof dispatchEvent!=="string"){dispatchEvent=dispatchEvent.eventType}element.dispatchEvent(new CustomEvent(dispatchEvent,{detail:result,bubbles:true}))}return result}catch(e){if(CancelToken.isCancelled(e)){return}if(/^timeout$/i.test(e.toString().trim())){console.warn(e);return}if(e instanceof JsonError){if(e.details){yield PopupService.alert({message:e.message,title:"Error",detail:e.details});return}}yield ns.alert(e,"Error")}}))};Object.defineProperty(vm,key,{value:fx,writable:true,enumerable:false});return fx},configurable:true}}}_export({MarkBusySet:void 0,default:Action});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_App){App=_App.App},function(_coreCommand){Command=_coreCommand.default},function(_coreEventScope){EventScope=_coreEventScope.default},function(_coreStringHelper){StringHelper=_coreStringHelper.StringHelper},function(_coreTypes){CancelToken=_coreTypes.CancelToken},function(_servicesHttpJsonError){JsonError=_servicesHttpJsonError.default},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService;NotifyType=_servicesNavigationService.NotifyType},function(_webServicesPopupService){PopupService=_webServicesPopupService.default}],execute:function(){_export("MarkBusySet",MarkBusySet=class MarkBusySet{static selector(selector){return new MarkBusySet((function*(target,currentTarget){let start=target;while(start){if(start.matches(selector)){yield start;break}start=start.parentElement}}))}constructor(set){this.set=set}*find(event){yield*this.set(event.target,event.currentTarget)}});MarkBusySet.none=new MarkBusySet((function*(){}));MarkBusySet.target=new MarkBusySet((function*(t,ct){yield t}));MarkBusySet.currentTarget=new MarkBusySet((function*(t,ct){yield ct}));MarkBusySet.tillCurrentTarget=new MarkBusySet((function*(target,currentTarget){let start=target;do{yield start;start=start.parentElement}while(start!==currentTarget);yield currentTarget}));MarkBusySet.button=new MarkBusySet((function*(target,currentTarget){let start=target;while(start){if(start.tagName==="BUTTON"){yield start;break}start=start.parentElement}}));MarkBusySet.buttonOrAnchor=new MarkBusySet((function*(target,currentTarget){let start=target;while(start){if(start.tagName==="BUTTON"||start.tagName==="A"){yield start;break}start=start.parentElement}}));MarkBusySet.allAncestors=new MarkBusySet((function*(target,currentTarget){do{yield target;target=target.parentElement}while(target)}));onEventHandler=(owner,blockMultipleExecution,key,busyKey,onEventSetBusy)=>ce=>__awaiter(void 0,void 0,void 0,(function*(){const element=ce.currentTarget;if(owner[busyKey]){if(blockMultipleExecution){return}}owner[busyKey]=true;try{if(onEventSetBusy){for(const iterator of onEventSetBusy.find(ce)){iterator.setAttribute("data-busy","true")}}const detail=ce.detail;return yield owner[key](detail,ce)}finally{delete owner[busyKey];if(onEventSetBusy){for(const iterator of onEventSetBusy.find(ce)){iterator.removeAttribute("data-busy")}}}}))}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/Action");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/StringHelper","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var __rest,Bind,StringHelper,XNode,styled,checkClick,BindError,BindEmailError;function Form(_a,...nodes){var{"data-submit-event":submitEvent="submitForm","data-show-validation":showValidation="false","data-error-message":errorMessage="Please fix all validations"}=_a,a=__rest(_a,["data-submit-event","data-show-validation","data-error-message"]);return XNode.create("div",Object.assign({},a,{"data-submit-event":submitEvent,"data-form":"form","data-valid":"true","data-show-validation":showValidation,"data-error-message":errorMessage,"event-click":checkClick}),XNode.create("div",{class:"error-message",text:errorMessage}),...nodes)}_export("default",Form);return{setters:[function(_tslib){__rest=_tslib.__rest},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreStringHelper){StringHelper=_webAtomsCoreDistCoreStringHelper.StringHelper},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
|
|
813
|
+
`.withId("repeater-styles").installGlobal()}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/styles/repeater-style");System.register(["tslib","@web-atoms/core/dist/core/AtomBinder","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/Colors","@web-atoms/core/dist/core/StringHelper","@web-atoms/core/dist/core/WatchProperty","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/web/services/PopupService","./InlinePopup","./MergeNode","./ItemPath","./styles/ui-display-none-style","./styles/popup-style","./styles/suggestion-popup","./styles/repeater-style","@web-atoms/core/dist/web/core/AtomUI"],(function(_export,_context){"use strict";var __decorate,__metadata,__rest,AtomBinder,Bind,BindableProperty,Colors,StringHelper,WatchProperty,XNode,AtomControl,PopupWindow,InlinePopup,MergeNode,ItemPath,repeaterPopupCss,ChildEnumerator,SelectAllControl,AtomRepeater,popupCSS,getParentRepeaterItem,MatchTrue,MatchFalse,ArrowToString,MatchCaseInsensitive,MatchAnyCaseInsensitive,SameObjectValue,getFirstChild,hoverItem,dragOver;function askSuggestion(items,itemRenderer,match,options){class Suggestions extends PopupWindow{create(){var _a;this.title=(_a=options===null||options===void 0?void 0:options.title)!==null&&_a!==void 0?_a:"Select";this.render(XNode.create("div",{class:popupCSS},XNode.create("input",{type:"search",value:Bind.twoWaysImmediate((()=>this.search)),autofocus:true}),XNode.create("div",{class:"items"},XNode.create(AtomRepeater,{class:"presenter",itemRenderer,visibilityFilter:Bind.oneWay((()=>match(this.search))),eventItemClick:e=>{this.close(e.detail)},items}))))}}__decorate([BindableProperty,__metadata("design:type",String)],Suggestions.prototype,"search",void 0);options!==null&&options!==void 0?options:options={};if(typeof options.maximize==="undefined"){if(typeof options.width==="undefined"){options.maxWidth="90%";options.minWidth="300px"}if(typeof options.height==="undefined"){options.height="80%"}}return Suggestions.showModal(options)}function askSuggestionPopup(opener,items,itemRenderer,match,selectedItem){const updateSearch="search"in opener;const itemsInOpener="items"in opener;class Suggestions extends InlinePopup{get items(){return itemsInOpener?this.opener.items:items}onPropertyChanged(name){if(updateSearch&&name==="search"){opener.search=this.search}super.onPropertyChanged(name)}create(){this.anchorItem=selectedItem;this.opener=opener;if(this.opener.search){this.search=this.opener.search}if(selectedItem){this.anchorIndex=items.indexOf(selectedItem)}const disableSearch=opener.disableSearch;if(itemsInOpener){this.render(XNode.create("div",{"data-suggestion-popup":"suggestion-popup"},!disableSearch&&XNode.create("input",{type:"search",value:Bind.twoWaysImmediate((()=>this.search)),eventKeydown:e=>this.onKey(e),autofocus:true}),XNode.create("div",{class:"items"},XNode.create(AtomRepeater,{class:"presenter",selectedItem:Bind.oneWay((()=>this.anchorItem)),itemRenderer,visibilityFilter:Bind.oneWay((()=>match(this.search))),eventItemClick:e=>{this.anchorItem=e.detail;setTimeout((()=>this.close(e.detail)),100)},items:Bind.oneWay((()=>this.opener.items))}))));return}this.render(XNode.create("div",{"data-suggestion-popup":"suggestion-popup"},!disableSearch&&XNode.create("input",{type:"search",value:Bind.twoWaysImmediate((()=>this.search)),eventKeydown:e=>this.onKey(e),autofocus:true}),XNode.create("div",{class:"items"},XNode.create(AtomRepeater,{class:"presenter",selectedItem:Bind.oneWay((()=>this.anchorItem)),itemRenderer,visibilityFilter:Bind.oneWay((()=>match(this.search))),scrollToSelection:true,eventItemClick:e=>{this.close(e.detail)},items}))))}onKey(e){var _a;const suggested=match?(_a=this.items)===null||_a===void 0?void 0:_a.filter(match(this.search)):this.items;switch(e.key){case"Enter":const anchorItem=this.anchorItem;if(!anchorItem){return}this.anchorIndex=0;this.close(anchorItem);this.anchorItem=null;this.search="";break;case"ArrowDown":if(suggested){if(!this.anchorItem){this.anchorIndex=0}else{if(this.anchorIndex<suggested.length-1){this.anchorIndex++}}this.anchorItem=suggested[this.anchorIndex]}break;case"ArrowUp":if(suggested){if(!this.anchorItem){return}if(this.anchorIndex){this.anchorIndex--}this.anchorItem=suggested[this.anchorIndex]}break}}}__decorate([BindableProperty,__metadata("design:type",String)],Suggestions.prototype,"search",void 0);return Suggestions.showControl(opener)}function SelectorCheckBox(_a,...nodes){var{text,icon="far fa-square",iconSelected="fas fa-check-square"}=_a,a=__rest(_a,["text","icon","iconSelected"]);if(text){return XNode.create("label",Object.assign({"data-selector":"check-box"},a),XNode.create("i",{class:icon,"data-click-event":"item-select"}),XNode.create("i",{class:iconSelected,"data-click-event":"item-deselect"}),XNode.create("span",{"data-no-wrap":"true",text}),...nodes)}return XNode.create("label",Object.assign({"data-selector":"check-box"},a),XNode.create("i",{class:icon,"data-click-event":"item-select"}),XNode.create("i",{class:iconSelected,"data-click-event":"item-deselect"}),...nodes)}function SelectAll(_a,...nodes){var{text="Select All",icon="far fa-square",iconSelected="fas fa-check-square"}=_a,a=__rest(_a,["text","icon","iconSelected"]);if(text){return XNode.create(SelectAllControl,Object.assign({for:"label"},a),XNode.create("i",{class:icon,"data-ui-type":"item-select"}),XNode.create("i",{class:iconSelected,"data-ui-type":"item-deselect"}),XNode.create("span",{"data-no-wrap":"true",text}))}return XNode.create(SelectAllControl,Object.assign({for:"label"},a),XNode.create("i",{class:icon,"data-ui-type":"item-select"}),XNode.create("i",{class:iconSelected,"data-ui-type":"item-deselect"}),...nodes)}function disposeChildren(owner,e){if(!e){return}let s=e.firstElementChild;while(s){const c=s;s=s.nextElementSibling;const ac=c.atomControl;if(ac){ac.dispose();continue}disposeChildren(owner,c);owner.unbind(c);owner.unbindEvent(c)}e.innerHTML=""}function disposeChild(owner,e){const ac=e.atomControl;if(ac){ac.dispose();return}disposeChildren(owner,e);owner.unbind(e);owner.unbindEvent(e);e.remove()}function defaultComparer(left,right){if(left&&right){if(left instanceof Date){if(right instanceof Date){return left.getTime()===right.getTime()}return false}}return left===right}function updateDragDrop(e,force=false){if(!e){return}if(force){e.draggable=false}else{force=e.draggable}e=e.firstElementChild;while(e){updateDragDrop(e,force);e=e.nextElementSibling}}_export({askSuggestion,askSuggestionPopup,SelectorCheckBox,SelectAll,disposeChildren,disposeChild,defaultComparer,default:void 0});return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata;__rest=_tslib.__rest},function(_webAtomsCoreDistCoreAtomBinder){AtomBinder=_webAtomsCoreDistCoreAtomBinder.AtomBinder},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreBindableProperty){BindableProperty=_webAtomsCoreDistCoreBindableProperty.BindableProperty},function(_webAtomsCoreDistCoreColors){Colors=_webAtomsCoreDistCoreColors.default},function(_webAtomsCoreDistCoreStringHelper){StringHelper=_webAtomsCoreDistCoreStringHelper.StringHelper},function(_webAtomsCoreDistCoreWatchProperty){WatchProperty=_webAtomsCoreDistCoreWatchProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistWebServicesPopupService){PopupWindow=_webAtomsCoreDistWebServicesPopupService.PopupWindow},function(_InlinePopup){InlinePopup=_InlinePopup.default},function(_MergeNode){MergeNode=_MergeNode.default},function(_ItemPath){ItemPath=_ItemPath.default},function(_stylesUiDisplayNoneStyle){},function(_stylesPopupStyle){repeaterPopupCss=_stylesPopupStyle.repeaterPopupCss},function(_stylesSuggestionPopup){},function(_stylesRepeaterStyle){},function(_webAtomsCoreDistWebCoreAtomUI){ChildEnumerator=_webAtomsCoreDistWebCoreAtomUI.ChildEnumerator}],execute:function(){popupCSS=repeaterPopupCss;_export("getParentRepeaterItem",getParentRepeaterItem=target=>{let eventName;let repeater;let index;let root;while(target){const a=target.atomControl;if(a!==undefined&&a instanceof AtomRepeater){repeater=a;break}if(index===undefined){const itemIndex=target.getAttribute("data-item-index");if(typeof itemIndex!=="undefined"){root=target;index=~~itemIndex}}if(eventName===undefined){const itemClickEvent=target.getAttribute("data-click-event");if(itemClickEvent){eventName=itemClickEvent.replace(/-([a-z])/g,(g=>g[1].toUpperCase()))}}target=target.parentElement}if(index===void 0||repeater===void 0){return undefined}const item=repeater.items[~~index];return[eventName,repeater,item,index,root]});_export("MatchTrue",MatchTrue=(...a)=>true);_export("MatchFalse",MatchFalse=(...a)=>false);_export("ArrowToString",ArrowToString=item=>{var _a,_b;return(_b=(_a=item.label)===null||_a===void 0?void 0:_a.toString())!==null&&_b!==void 0?_b:item.toString()});_export("MatchCaseInsensitive",MatchCaseInsensitive=(textField=ArrowToString)=>s=>{if(!s){return MatchTrue}const r=StringHelper.createContainsRegExp(s);return item=>r.test(textField(item))});_export("MatchAnyCaseInsensitive",MatchAnyCaseInsensitive=(textField=ArrowToString)=>s=>{if(!s){return MatchTrue}const r=StringHelper.createContainsAnyWordRegExp(s);return item=>r.test(textField(item))});_export("SameObjectValue",SameObjectValue=item=>item);SelectAllControl=class SelectAllControl extends AtomControl{preCreate(){this.element.dataset.selectAll="select-all";this.items=[];this.selectedItems=[];this.render(XNode.create(SelectAllControl,{"data-is-selected":Bind.oneWay((()=>this.items.length>0&&this.items.length===this.selectedItems.length),false)}));this.bindEvent(this.element,"click",(()=>{const si=this.selectedItems;const items=this.items;if(!si){return}if(!items){return}if(items.length===0){return}if(items.length===si.length){si.clear()}else{si.length=0;si.push(...items);si.refresh()}}))}};__decorate([BindableProperty,__metadata("design:type",Array)],SelectAllControl.prototype,"items",void 0);__decorate([BindableProperty,__metadata("design:type",Array)],SelectAllControl.prototype,"selectedItems",void 0);getFirstChild=container=>{let child=container.firstElementChild;while(child&&!child.hasAttribute("data-item-index")){child=child.nextElementSibling}return child};_export("default",AtomRepeater=class AtomRepeater extends AtomControl{constructor(){super(...arguments);this.bubbleEvents=true}static from(element){while(element){const{atomControl}=element;if(atomControl instanceof AtomRepeater){return atomControl}element=element.parentElement}}set refreshEventScope(v){this.registerDisposable(v.listen((ce=>{this.refreshItem(ce.detail)})))}get allSelected(){const selectedItems=this.selectedItems;const items=this.items;if(!(items&&selectedItems)){return false}return items.length&&items.length===selectedItems.length}get value(){var _a;if(this.initialValue!==undefined){return this.initialValue}const sp=this.selectedItem;if(sp===undefined){return sp}const vp=(_a=this.valuePath)!==null&&_a!==void 0?_a:SameObjectValue;return vp(sp)}set value(v){var _a,_b;this.initialValue=v;if(!this.items||!this.items.length){AtomBinder.refreshValue(this,"value");return}const vp=(_a=this.valuePath)!==null&&_a!==void 0?_a:SameObjectValue;const c=(_b=this.comparer)!==null&&_b!==void 0?_b:defaultComparer;const selectedItem=this.items.find((item=>c(vp(item),v)));this.selectedItem=selectedItem;delete this.initialValue}get selectedItem(){var _a;return(_a=this.selectedItems)===null||_a===void 0?void 0:_a[0]}set selectedItem(value){var _a;const si=(_a=this.selectedItems)!==null&&_a!==void 0?_a:this.selectedItems=[];const first=si[0];if(value===first){return}si.set(0,value)}onPropertyChanged(name){var _a,_b;switch(name){case"items":(_a=this.itemsDisposable)===null||_a===void 0?void 0:_a.dispose();const items=this.items;const d=items===null||items===void 0?void 0:items.watch(((target,type,index,item)=>{switch(type){case"add":case"remove":case"set":this.updatePartial(type,index,item);break;default:this.updateItems();break}this.dispatchCustomEvent("items-updated",{type,items,index});AtomBinder.refreshValue(this,"selectedItem");AtomBinder.refreshValue(this,"value")}));if(d){this.itemsDisposable=this.registerDisposable(d)}const iv=this.initialValue;if(iv){this.value=iv}this.updateItems();this.dispatchCustomEvent("items-updated",{type:"reset",items,index:0});if(this.scrollToSelection){this.bringSelectionIntoView()}break;case"selectedItems":(_b=this.selectedItemsDisposable)===null||_b===void 0?void 0:_b.dispose();const selectedItems=this.selectedItems;const sd=selectedItems===null||selectedItems===void 0?void 0:selectedItems.watch((()=>{this.updateClasses();if(this.scrollToSelection){this.bringSelectionIntoView()}if(this.selectedItem){delete this.initialValue}AtomBinder.refreshValue(this,"selectedItem");AtomBinder.refreshValue(this,"value");AtomBinder.refreshValue(this,"allSelected");this.dispatchCustomEvent("selection-updated",selectedItems)}));if(sd){this.selectedItemsDisposable=this.registerDisposable(sd)}this.updateClasses();this.dispatchCustomEvent("selection-updated",selectedItems);AtomBinder.refreshValue(this,"allSelected");break;case"itemRenderer":case"watch":this.updateItems();break;case"visibilityFilter":this.updateVisibility();break;case"header":case"headerRenderer":this.updateHeaderFooter("header",this.headerPresenter,this.header,this.headerRenderer,true);break;case"footer":case"footerRenderer":this.updateHeaderFooter("footer",this.footerPresenter,this.footer,this.footerRenderer);break}}bringSelectionIntoView(force){if(force){const selection=this.selectedItem;if(selection){const element=this.elementForItem(selection);element===null||element===void 0?void 0:element.scrollIntoView()}return}if(this.bringIntoViewId){clearTimeout(this.bringIntoViewId)}this.bringIntoViewId=setTimeout((()=>{clearTimeout(this.bringIntoViewId);this.bringIntoViewId=undefined;this.bringSelectionIntoView(true)}),100)}forEach(action,container){var _a;container!==null&&container!==void 0?container:container=(_a=this.itemsPresenter)!==null&&_a!==void 0?_a:this.element;const items=this.items;let start=getFirstChild(container);while(start){const index=start.dataset.itemIndex;const item=items[~~index];action(item,start);start=start.nextElementSibling}}*any(fx,itemSelector,container){var _a;container!==null&&container!==void 0?container:container=(_a=this.itemsPresenter)!==null&&_a!==void 0?_a:this.element;const items=this.items;let node=getFirstChild(container);while(node){const index=node.dataset.itemIndex;const item=items[~~index];let element=node;if(itemSelector){element=element.querySelector(itemSelector)}const ie={item,element};if(fx){if(fx(item)){yield ie}continue}yield ie;node=node.nextElementSibling}}*all(container){var _a;container!==null&&container!==void 0?container:container=(_a=this.itemsPresenter)!==null&&_a!==void 0?_a:this.element;const items=this.items;let element=getFirstChild(container);while(element){const index=element.dataset.itemIndex;const item=items[~~index];yield{item,element};element=element.nextElementSibling}}elementAt(index,container){var _a;container!==null&&container!==void 0?container:container=(_a=this.itemsPresenter)!==null&&_a!==void 0?_a:this.element;const indexText=index.toString();const element=ChildEnumerator.find(container,(e=>e.getAttribute("data-item-index")===indexText));return element}elementForItem(itemToFind,container){const index=this.items.indexOf(itemToFind);return this.elementAt(index,container)}refreshItem(item,fx,index=-1){if(index===-1){index=this.items.indexOf(item)}if(fx===null||fx===void 0?void 0:fx.then){const finalize=v=>{this.refreshItem(item,v,index)};fx.then(finalize,finalize);return}if(fx instanceof MergeNode){this.mergeItem(index,fx);return}this.updatePartial("set",index,item)}mergeItem(index,m){var _a,_b,_c;const item=this.items[index];if(!item){return}if((_b=(_a=m.classes)===null||_a===void 0?void 0:_a[0])===null||_b===void 0?void 0:_b.remove){this.items.removeAt(index);return}const container=(_c=this.itemsPresenter)!==null&&_c!==void 0?_c:this.element;const node=this.itemRenderer(item,index,this);const sourceElement=document.createElement("div");sourceElement.style.display="none";container.appendChild(sourceElement);this.render(node,sourceElement);const targetElement=this.elementAt(index);for(const iterator of m.classes){if(typeof iterator==="string"){const source=sourceElement.querySelectorAll(iterator);const target=targetElement.querySelectorAll(iterator);for(let i=0;i<source.length&&i<target.length;i++){const element=source[i];const te=target[i];for(const name of te.getAttributeNames()){te.removeAttribute(name)}te.innerHTML=element.innerHTML;for(const name of element.getAttributeNames()){te.setAttribute(name,element.getAttribute(name))}}continue}if(iterator.parent){const targetParent=/self|\*/.test(iterator.parent)?targetElement:targetElement.querySelector(iterator.parent);if(!targetParent){continue}for(const i of Array.from(targetElement.querySelectorAll(iterator.replace))){i.remove()}for(const i of Array.from(sourceElement.querySelectorAll(iterator.replace))){targetParent.appendChild(i)}continue}let targetPrevious=targetElement.querySelector(iterator.after);for(const i of Array.from(targetElement.querySelectorAll(iterator.replace))){i.remove()}for(const i of Array.from(sourceElement.querySelectorAll(iterator.replace))){targetPrevious.insertAdjacentElement("afterend",i);targetPrevious=i}}this.dispose(sourceElement);sourceElement.remove()}updatePartial(key,index,item,container){var _a,_b,_c,_d,_e,_f,_g;const items=this.items;if(!items){return}const ir=this.itemRenderer;if(!ir){return}container!==null&&container!==void 0?container:container=(_a=this.itemsPresenter)!==null&&_a!==void 0?_a:this.element;let start=getFirstChild(container);let ei;while(start){ei=~~start.getAttribute("data-item-index");if(ei===index){break}start=start.nextElementSibling}if(key!=="add"&&!start){return}const vp=(_b=this.valuePath)!==null&&_b!==void 0?_b:it=>it;const si=((_c=this.selectedItems)!==null&&_c!==void 0?_c:[]).map(vp);const isRemove=key==="remove";if(isRemove||key==="set"){const current=start;start=start.nextElementSibling;const ac=current.atomControl;if(ac){ac.dispose()}else{this.unbind(current);this.unbindEvent(current)}current.remove()}const end=((_d=this.footerElement)===null||_d===void 0?void 0:_d.parentElement)===container?this.footerElement:null;if(!isRemove){const en=ir(item,index,this);const ea=(_e=en.attributes)!==null&&_e!==void 0?_e:en.attributes={};const v=vp(item);const e=document.createElement((_g=(_f=ea.for)!==null&&_f!==void 0?_f:en.name)!==null&&_g!==void 0?_g:"div");e.setAttribute("data-item-index",`${index++}`);if(si.indexOf(v)!==-1){e.setAttribute("data-selected-item","true")}else{e.removeAttribute("data-selected-item")}if(this.enableDragDrop){updateDragDrop(e)}if(start){container.insertBefore(e,start)}else if(end){container.insertBefore(e,end)}else{container.appendChild(e)}this.render(en,e,this)}while(start){const ci=items[index];const cv=vp(ci);start.setAttribute("data-item-index",`${index++}`);if(si.indexOf(cv)!==-1){start.setAttribute("data-selected-item","true")}else{start.removeAttribute("data-selected-item")}start=start.nextElementSibling}}updateItems(container,force){var _a,_b,_c,_d,_e,_f;if(this.deferUpdates&&!force){if(this.deferredUpdateId){return}this.deferredUpdateId=setTimeout((()=>{this.deferredUpdateId=0;this.updateItems(container,true)}),1);return}container!==null&&container!==void 0?container:container=(_a=this.itemsPresenter)!==null&&_a!==void 0?_a:this.element;if(!container){return}disposeChildren(this,container);this.onPropertyChanged("header");const ir=this.itemRenderer;if(!ir){this.onPropertyChanged("footer");return}const items=this.items;if(!items){this.onPropertyChanged("footer");return}const vp=(_b=this.valuePath)!==null&&_b!==void 0?_b:it=>it;const si=((_c=this.selectedItems)!==null&&_c!==void 0?_c:[]).map(vp);let i=0;for(const iterator of items){const index=i++;const e=ir(iterator,index,this);const ea=(_d=e.attributes)!==null&&_d!==void 0?_d:e.attributes={};const v=vp(iterator);const element=document.createElement((_f=(_e=ea.for)!==null&&_e!==void 0?_e:e.name)!==null&&_f!==void 0?_f:"div");element.setAttribute("data-item-index",`${index}`);if(si.indexOf(v)!==-1){element.setAttribute("data-selected-item","true")}else{element.removeAttribute("data-selected-item")}this.render(e,element,this);if(this.enableDragDrop){updateDragDrop(element)}container.appendChild(element)}this.onPropertyChanged("footer")}preCreate(){this.mergeOnRefresh=false;this.selectOnClick=false;this.element.setAttribute("data-click-event","item-click")}dispatchCustomEvent(type,detail){if(!this.element){return}const eventName=this.element.getAttribute("data-"+type+"-event");type=StringHelper.fromHyphenToCamel(eventName!==null&&eventName!==void 0?eventName:type);this.element.dispatchEvent(new CustomEvent(type,{detail,bubbles:eventName!==null,cancelable:true}))}updateClasses(){var _a,_b,_c;const container=(_a=this.itemsPresenter)!==null&&_a!==void 0?_a:this.element;const items=this.items;let element=getFirstChild(container);const vp=(_b=this.valuePath)!==null&&_b!==void 0?_b:i=>i;const si=((_c=this.selectedItems)!==null&&_c!==void 0?_c:[]).map(vp);while(element){const index=~~element.dataset.itemIndex;const item=items[index];const v=vp(item);if(si.indexOf(v)!==-1){element.setAttribute("data-selected-item","true")}else{element.removeAttribute("data-selected-item")}element=element.nextElementSibling}}updateVisibility(){var _a,_b;const container=(_a=this.itemsPresenter)!==null&&_a!==void 0?_a:this.element;const items=this.items;let element=container.firstElementChild;const vf=(_b=this.visibilityFilter)!==null&&_b!==void 0?_b:MatchTrue;while(element){const index=~~element.dataset.itemIndex;const item=items[index];if(vf(item)){element.removeAttribute("data-ui-display")}else{element.setAttribute("data-ui-display","none")}element=element.nextElementSibling}}updateHeaderFooter(name,presenter,item,itemRenderer,insert){var _a,_b,_c,_d;presenter!==null&&presenter!==void 0?presenter:presenter=(_a=this.itemsPresenter)!==null&&_a!==void 0?_a:this.itemsPresenter=this.element;if(!presenter){this[name+"Element"]=null;return}let current;if(insert){current=presenter.firstElementChild;while(current&¤t.dataset[name]!==name){current=current.nextElementSibling}}else{current=presenter.lastElementChild;while(current&¤t.dataset[name]!==name){current=current.previousElementSibling}}if(current){disposeChild(this,current);this[name+"Element"]=null}if(!(item&&itemRenderer)){return}const node=itemRenderer(item);const element=document.createElement((_d=(_c=(_b=node.attributes)===null||_b===void 0?void 0:_b.for)!==null&&_c!==void 0?_c:node.name)!==null&&_d!==void 0?_d:"div");element.dataset[name]=name;this.render(node,element,this);if(insert){presenter.insertBefore(element,presenter.firstElementChild)}else{presenter.appendChild(element)}this[name+"Element"]=element}dispatchHeaderFooterEvent(eventName,type,recreate,originalTarget){const detail=this[type];const ce=new CustomEvent(eventName!==null&&eventName!==void 0?eventName:`${type}Click`,{detail,bubbles:this.bubbleEvents,cancelable:true});originalTarget.dispatchEvent(ce);if(ce.defaultPrevented||!ce.executed){return}if(recreate){this.onPropertyChanged(type)}}dispatchItemEvent(eventName,item,recreate,originalTarget,nestedItem){var _a;const ce=new CustomEvent(eventName!==null&&eventName!==void 0?eventName:"itemClick",{detail:nestedItem!==null&&nestedItem!==void 0?nestedItem:item,bubbles:this.bubbleEvents,cancelable:true});originalTarget.dispatchEvent(ce);if(!ce.defaultPrevented){if(this.selectOnClick||eventName==="itemSelect"||eventName==="itemDeselect"){const si=(_a=this.selectedItems)!==null&&_a!==void 0?_a:this.selectedItems=[];if(si){const index=si.indexOf(item);if(index===-1){if(this.allowMultipleSelection){si.add(item)}else{si.set(0,item)}}else{si.removeAt(index)}}}}if(ce.defaultPrevented||!ce.executed){return}const promise=ce.promise;if(recreate){this.refreshItem(item,promise);return}if(promise){promise.then((r=>r instanceof MergeNode&&this.refreshItem(item,r)))}}dispatchClickEvent(e,data){let{recreate,header,footer,itemIndex,itemPath,clickEvent=header?"headerClick":footer?"footerClick":"itemClick"}=data;clickEvent=clickEvent.replace(/-([a-z])/g,(g=>g[1].toUpperCase()));if(itemIndex!==void 0){let index=~~itemIndex;const item=this.items[index];if(item){if(itemPath!==null&&itemPath!==void 0?itemPath:false){const nestedItem=ItemPath.get(item,itemPath.trim());this.dispatchItemEvent(clickEvent,item,recreate,e.target,nestedItem);return}this.dispatchItemEvent(clickEvent,item,recreate,e.target)}return}if(header){this.dispatchHeaderFooterEvent(clickEvent,header,recreate,e.target)}if(footer){this.dispatchHeaderFooterEvent(clickEvent,footer,recreate,e.target)}}});__decorate([BindableProperty,__metadata("design:type",Boolean)],AtomRepeater.prototype,"allowMultipleSelection",void 0);__decorate([BindableProperty,__metadata("design:type",Object)],AtomRepeater.prototype,"selectOnClick",void 0);__decorate([BindableProperty,__metadata("design:type",Array)],AtomRepeater.prototype,"selectedItems",void 0);__decorate([BindableProperty,__metadata("design:type",Object)],AtomRepeater.prototype,"itemsPresenter",void 0);__decorate([BindableProperty,__metadata("design:type",Array)],AtomRepeater.prototype,"items",void 0);__decorate([BindableProperty,__metadata("design:type",Object)],AtomRepeater.prototype,"watch",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],AtomRepeater.prototype,"visibilityFilter",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],AtomRepeater.prototype,"enableFunc",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],AtomRepeater.prototype,"itemRenderer",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],AtomRepeater.prototype,"valuePath",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],AtomRepeater.prototype,"comparer",void 0);__decorate([BindableProperty,__metadata("design:type",Boolean)],AtomRepeater.prototype,"deferUpdates",void 0);__decorate([BindableProperty,__metadata("design:type",Object)],AtomRepeater.prototype,"header",void 0);__decorate([BindableProperty,__metadata("design:type",Object)],AtomRepeater.prototype,"headerRenderer",void 0);__decorate([BindableProperty,__metadata("design:type",Object)],AtomRepeater.prototype,"footer",void 0);__decorate([BindableProperty,__metadata("design:type",Object)],AtomRepeater.prototype,"footerRenderer",void 0);__decorate([BindableProperty,__metadata("design:type",Object)],AtomRepeater.prototype,"enableDragDrop",void 0);__decorate([WatchProperty,__metadata("design:type",Object),__metadata("design:paramtypes",[])],AtomRepeater.prototype,"allSelected",null);hoverItem={repeater:null,target:null,item:null,placeholder:null};document.body.addEventListener("dragstart",(e=>{const{target}=e;if(target.draggable){const ri=getParentRepeaterItem(target);if(!ri){return}const[type,repeater,item,index]=ri;if(!repeater||!repeater.enableDragDrop){return}const placeholder=document.createElement("div");placeholder.style.width=target.offsetWidth+"px";placeholder.style.height=target.offsetHeight+"px";placeholder.style.backgroundColor=Colors.lightGray.toString();placeholder.style.border="solid 1px gray";placeholder.style.borderRadius="10px";hoverItem={repeater,target,item,placeholder};e.dataTransfer.dropEffect="move";setTimeout((()=>{target.style.display="none";target.parentElement.insertBefore(placeholder,target)}),0)}}));document.body.addEventListener("dragend",(e=>{var _a,_b;if(!(hoverItem===null||hoverItem===void 0?void 0:hoverItem.placeholder)){return}const{item,placeholder,repeater}=hoverItem;let start=placeholder;let index=-1;while(start){const itemIndex=(_b=(_a=start.previousElementSibling)===null||_a===void 0?void 0:_a.dataset)===null||_b===void 0?void 0:_b.itemIndex;if(itemIndex!==void 0){index=~~itemIndex}if(start.parentElement.atomControl){break}start=start.parentElement}const targetRepeater=start.parentElement.atomControl;placeholder.remove();hoverItem.placeholder=null;repeater.items.remove(item);index++;const ce=new CustomEvent("itemDropped",{detail:{item,index}});if(ce.defaultPrevented){return}const{detail}=ce;targetRepeater.items.insert(detail.index,detail.item)}));dragOver=e=>{if(!e.dataTransfer){return}if(hoverItem){const{placeholder}=hoverItem;if(e.target===placeholder){return}}const ri=getParentRepeaterItem(e.target);if(!ri){return}const[type,repeater,item,index,target]=ri;if(!repeater){return}if(hoverItem){const{placeholder}=hoverItem;e.preventDefault();const mp={x:e.clientX,y:e.clientY};const isBefore=(co,n)=>n.x<=co.x+co.width*.3||n.y<=co.y+co.height*.3;const isAfter=(co,n)=>n.x>=co.x+co.width*.7||n.y>=co.y+co.height*.7;const targetBounds=target.getBoundingClientRect();if(isAfter(targetBounds,mp)){const next=target.nextElementSibling;if(next===placeholder){return}placeholder.remove();target.insertAdjacentElement("afterend",placeholder);return}if(isBefore(targetBounds,mp)){const previous=target.previousElementSibling;if(previous===placeholder){return}placeholder.remove();target.insertAdjacentElement("beforebegin",placeholder)}return}};document.body.addEventListener("dragover",dragOver);document.body.addEventListener("dragenter",dragOver)}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/AtomRepeater");System.register(["./Register","./ServiceCollection"],(function(_export,_context){"use strict";var Register,Scope;function DITransient(mockOrInject){return target=>{Register({scope:Scope.Transient,mockOrInject})(target)}}_export("default",DITransient);return{setters:[function(_Register){Register=_Register.Register},function(_ServiceCollection){Scope=_ServiceCollection.Scope}],execute:function(){}}}));AmdLoader.instance.setup("@web-atoms/core/dist/di/DITransient");System.register(["tslib","@web-atoms/core/dist/di/DITransient","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model"],(function(_export,_context){"use strict";var __decorate,__metadata,DITransient,Inject,EntityService,HostedDomain,AdminDomainService;return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiDITransient){DITransient=_webAtomsCoreDistDiDITransient.default},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){HostedDomain=_modelModel.HostedDomain}],execute:function(){AdminDomainService=class AdminDomainService{list(){return this.entityService.query(HostedDomain).include((x=>x.domain)).toArray()}save(domain){const clone=this.entityService.cloner(domain).include((x=>x.domainUsers)).include((x=>x.domain));return this.entityService.save(clone.copy)}get(domainID){return this.entityService.query(HostedDomain).where({domainID},(p=>x=>x.domainID===p.domainID)).include((x=>[x.domain,x.relays,x.domainUsers.forEach((u=>u.user)),x.domainKeys])).firstOrDefault()}};__decorate([Inject,__metadata("design:type",EntityService)],AdminDomainService.prototype,"entityService",void 0);AdminDomainService=__decorate([DITransient()],AdminDomainService);_export("default",AdminDomainService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/domains/services/AdminDomainService");System.register(["tslib","../App","../core/Command","../core/EventScope","../core/StringHelper","../core/types","../services/http/JsonError","../services/NavigationService","../web/services/PopupService"],(function(_export,_context){"use strict";var __awaiter,App,Command,EventScope,StringHelper,CancelToken,JsonError,NavigationService,NotifyType,PopupService,MarkBusySet,onEventHandler;function Action({onEvent=void 0,onEventTarget=void 0,onEventSetBusy,blockMultipleExecution=true,dispatchEvent,authorize=void 0,defer=void 0,success=null,successTitle="Done",successMode="notify",confirm=null,confirmTitle=null,validate=false,validateTitle=null,close=false,notifyDelay=2e3}={}){return(target,key,descriptor)=>{const getEventNames=names=>{if(names===null||names===void 0){return}if(Array.isArray(names)){return names.map(getEventNames)}if(names instanceof Command){onEventTarget!==null&&onEventTarget!==void 0?onEventTarget:onEventTarget=window;return names.eventScope.eventType}if(names instanceof EventScope){onEventTarget!==null&&onEventTarget!==void 0?onEventTarget:onEventTarget=window;return names.eventType}return names};onEvent=getEventNames(onEvent);if((onEvent===null||onEvent===void 0?void 0:onEvent.length)>0){const oldCreate=target.beginEdit;if(oldCreate){const onEventName=Array.isArray(onEvent)?onEvent.map(StringHelper.fromHyphenToCamel):StringHelper.fromHyphenToCamel(onEvent);const busyKey=Symbol.for("isBusy"+key.toString());target.beginEdit=function(){const result=oldCreate.apply(this,arguments);const c=this;let element=this.element;if(element){if(onEventTarget){element=onEventTarget}const handler=onEventHandler(c,blockMultipleExecution,key,busyKey,onEventSetBusy);if(typeof onEventName==="string"){c.bindEvent(element,onEventName,handler)}else{for(const eventName of onEventName){c.bindEvent(element,eventName,handler)}}}return result}}}const{value}=descriptor;const deferSymbol=defer?Symbol.for(`${key.toString()}Defer`):void 0;return{get:function(){const vm=this;const oldMethod=value;const fx=function(...a){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){const vm=this;if(defer){const previous=vm[deferSymbol];if(previous!==0){if(previous>0){clearTimeout(previous)}vm[deferSymbol]=setTimeout((()=>{vm[deferSymbol]=0;const r=vm[key](...a);delete vm[deferSymbol];return r}),defer);return}}const app=vm.app;const ns=app.resolve(NavigationService);try{if(authorize&&!App.authorize()){return}if(validate){if(!vm.isValid){const vMsg=typeof validate==="boolean"?"Please enter correct information":validate;yield ns.alert(vMsg,validateTitle||"Error");return}}if(confirm){if(!(yield ns.confirm(confirm,confirmTitle||"Confirm"))){return}}let result=oldMethod.apply(vm,a);if(result===null||result===void 0?void 0:result.then){result=yield result}if(success){if(successMode==="notify"){yield ns.notify(success,successTitle,NotifyType.Information,notifyDelay)}else{yield ns.alert(success,successTitle)}}if(close){(_a=vm.close)===null||_a===void 0?void 0:_a.call(vm,result)}if(dispatchEvent){const element=(_b=vm.element)!==null&&_b!==void 0?_b:document.body;if(typeof dispatchEvent!=="string"){dispatchEvent=dispatchEvent.eventType}element.dispatchEvent(new CustomEvent(dispatchEvent,{detail:result,bubbles:true}))}return result}catch(e){if(CancelToken.isCancelled(e)){return}if(/^timeout$/i.test(e.toString().trim())){console.warn(e);return}if(e instanceof JsonError){if(e.details){yield PopupService.alert({message:e.message,title:"Error",detail:e.details});return}}yield ns.alert(e,"Error")}}))};Object.defineProperty(vm,key,{value:fx,writable:true,enumerable:false});return fx},configurable:true}}}_export({MarkBusySet:void 0,default:Action});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_App){App=_App.App},function(_coreCommand){Command=_coreCommand.default},function(_coreEventScope){EventScope=_coreEventScope.default},function(_coreStringHelper){StringHelper=_coreStringHelper.StringHelper},function(_coreTypes){CancelToken=_coreTypes.CancelToken},function(_servicesHttpJsonError){JsonError=_servicesHttpJsonError.default},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService;NotifyType=_servicesNavigationService.NotifyType},function(_webServicesPopupService){PopupService=_webServicesPopupService.default}],execute:function(){_export("MarkBusySet",MarkBusySet=class MarkBusySet{static selector(selector){return new MarkBusySet((function*(target,currentTarget){let start=target;while(start){if(start.matches(selector)){yield start;break}start=start.parentElement}}))}constructor(set){this.set=set}*find(event){yield*this.set(event.target,event.currentTarget)}});MarkBusySet.none=new MarkBusySet((function*(){}));MarkBusySet.target=new MarkBusySet((function*(t,ct){yield t}));MarkBusySet.currentTarget=new MarkBusySet((function*(t,ct){yield ct}));MarkBusySet.tillCurrentTarget=new MarkBusySet((function*(target,currentTarget){let start=target;do{yield start;start=start.parentElement}while(start!==currentTarget);yield currentTarget}));MarkBusySet.button=new MarkBusySet((function*(target,currentTarget){let start=target;while(start){if(start.tagName==="BUTTON"){yield start;break}start=start.parentElement}}));MarkBusySet.buttonOrAnchor=new MarkBusySet((function*(target,currentTarget){let start=target;while(start){if(start.tagName==="BUTTON"||start.tagName==="A"){yield start;break}start=start.parentElement}}));MarkBusySet.allAncestors=new MarkBusySet((function*(target,currentTarget){do{yield target;target=target.parentElement}while(target)}));onEventHandler=(owner,blockMultipleExecution,key,busyKey,onEventSetBusy)=>ce=>__awaiter(void 0,void 0,void 0,(function*(){const element=ce.currentTarget;if(owner[busyKey]){if(blockMultipleExecution){return}}owner[busyKey]=true;try{if(onEventSetBusy){for(const iterator of onEventSetBusy.find(ce)){iterator.setAttribute("data-busy","true")}}const detail=ce.detail;return yield owner[key](detail,ce)}finally{delete owner[busyKey];if(onEventSetBusy){for(const iterator of onEventSetBusy.find(ce)){iterator.removeAttribute("data-busy")}}}}))}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/Action");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/StringHelper","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var __rest,Bind,StringHelper,XNode,styled,checkClick,BindError,BindEmailError;function Form(_a,...nodes){var{"data-submit-event":submitEvent="submitForm","data-show-validation":showValidation="false","data-error-message":errorMessage="Please fix all validations"}=_a,a=__rest(_a,["data-submit-event","data-show-validation","data-error-message"]);return XNode.create("div",Object.assign({},a,{"data-submit-event":submitEvent,"data-form":"form","data-valid":"true","data-show-validation":showValidation,"data-error-message":errorMessage,"event-click":checkClick}),XNode.create("div",{class:"error-message",text:errorMessage}),...nodes)}_export("default",Form);return{setters:[function(_tslib){__rest=_tslib.__rest},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreStringHelper){StringHelper=_webAtomsCoreDistCoreStringHelper.StringHelper},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
|
|
814
814
|
display: flex;
|
|
815
815
|
flex-direction: column;
|
|
816
816
|
gap: var(--spacing, 5px);
|
|
@@ -1145,7 +1145,7 @@ body {
|
|
|
1145
1145
|
& [data-white-space=nowrap] {
|
|
1146
1146
|
white-space: nowrap;
|
|
1147
1147
|
}
|
|
1148
|
-
`.installGlobal("div[data-drop-down=drop-down]")}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/styles/drop-down-style");System.register(["tslib","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/XNode","./AtomRepeater","./styles/drop-down-style"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,BindableProperty,XNode,AtomRepeater,askSuggestion,askSuggestionPopup,disposeChildren,MatchAnyCaseInsensitive,DropDown;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreBindableProperty){BindableProperty=_webAtomsCoreDistCoreBindableProperty.BindableProperty},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_AtomRepeater){AtomRepeater=_AtomRepeater.default;askSuggestion=_AtomRepeater.askSuggestion;askSuggestionPopup=_AtomRepeater.askSuggestionPopup;disposeChildren=_AtomRepeater.disposeChildren;MatchAnyCaseInsensitive=_AtomRepeater.MatchAnyCaseInsensitive},function(_stylesDropDownStyle){}],execute:function(){_export("default",DropDown=class DropDown extends AtomRepeater{constructor(){super(...arguments);this.isPopupOpen=false}updateItems(container){}onPropertyChanged(name){super.onPropertyChanged(name);switch(name){case"labelPath":this.itemRenderer=item=>XNode.create("div",{text:this.labelPath(item)});break;case"prompt":this.updateClasses();break}}preCreate(){super.preCreate();this.disableSearch=false;this.prompt="Select";this.popupSuggestions=true;this.bindEvent(this.element,"click",(e=>this.openPopup(e)));this.valuePath=item=>{var _a;return(_a=item===null||item===void 0?void 0:item.value)!==null&&_a!==void 0?_a:item};this.labelPath=item=>{var _a;return(_a=item===null||item===void 0?void 0:item.label)!==null&&_a!==void 0?_a:item};this.itemRenderer=item=>XNode.create("div",{text:this.labelPath(item)});this.element.dataset.dropDown="drop-down";this.render(XNode.create("div",null,XNode.create("div",{"data-white-space":"nowrap",text:this.prompt}),XNode.create("i",{class:"fad fa-caret-circle-down"})))}openPopup(e){var _a,_b,_c,_d,_e;return __awaiter(this,void 0,void 0,(function*(){if(this.isPopupOpen){return}this.isPopupOpen=true;try{if(!this.popupSuggestions){const selected=yield askSuggestion(this.items,(_a=this.suggestionRenderer)!==null&&_a!==void 0?_a:this.itemRenderer,(_b=this.match)!==null&&_b!==void 0?_b:MatchAnyCaseInsensitive(this.labelPath),{title:(_c=this.suggestionPrompt)!==null&&_c!==void 0?_c:this.prompt});this.selectedItem=selected;return}const selectedItem=yield askSuggestionPopup(this,this.items,(_d=this.suggestionRenderer)!==null&&_d!==void 0?_d:this.itemRenderer,(_e=this.match)!==null&&_e!==void 0?_e:MatchAnyCaseInsensitive(this.labelPath),this.selectedItem);if(this.selectedItem!==selectedItem){this.selectedItem=selectedItem;this.element.dispatchEvent(new CustomEvent("selectionChanged",{bubbles:true,detail:selectedItem,cancelable:true}))}}finally{this.isPopupOpen=false}}))}updateClasses(){var _a;disposeChildren(this,this.element);const ir=this.itemRenderer;if(!ir){return}if(!this.selectedItem){this.render(XNode.create("div",null,XNode.create("div",{"data-white-space":"nowrap",text:this.prompt}),XNode.create("i",{class:"fad fa-caret-circle-down"})));return}const selectedItem=this.selectedItem;const index=this.items.indexOf(selectedItem);const node=ir(selectedItem,index,this);const na=(_a=node.attributes)!==null&&_a!==void 0?_a:node.attributes={};if(!na["data-white-space"]){na["data-white-space"]="nowrap"}this.render(XNode.create("div",null,node,XNode.create("i",{class:"fad fa-caret-circle-down"})))}});__decorate([BindableProperty,__metadata("design:type",Boolean)],DropDown.prototype,"popupSuggestions",void 0);__decorate([BindableProperty,__metadata("design:type",String)],DropDown.prototype,"search",void 0);__decorate([BindableProperty,__metadata("design:type",String)],DropDown.prototype,"prompt",void 0);__decorate([BindableProperty,__metadata("design:type",String)],DropDown.prototype,"suggestionPrompt",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],DropDown.prototype,"labelPath",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],DropDown.prototype,"match",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],DropDown.prototype,"suggestionRenderer",void 0)}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/DropDown");System.register([],(function(_export,_context){"use strict";var Sql;return{setters:[],execute:function(){_export("Sql",Sql=void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/Sql");System.register(["tslib","@web-atoms/core/dist/di/DITransient","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../../common/Sql"],(function(_export,_context){"use strict";var __decorate,__metadata,DITransient,Inject,EntityService,User,Sql,AdminUserService;return{setters:[function(_tslib){__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},function(_commonSql){Sql=_commonSql.Sql}],execute:function(){AdminUserService=class AdminUserService{list({search="",start=0,size=50,cancelToken}){let q=this.entityService.query(User);if(search){if(/\^d+$/.test(search)){q=q.where({search},(p=>x=>x.userID===Sql.cast.asBigInt(p.search)))}const startsWith=search+"%";q=q.where({startsWith},(p=>x=>Sql.text.iLike(x.userName,p.startsWith)||Sql.text.iLike(x.displayName,p.startsWith)))}return q.include((x=>x.domainUsers.forEach((d=>d.hostedDomain.domain)))).toPagedList({start,size,cancelToken})}save(user){const cloner=this.entityService.cloner(user).include((x=>x.domainUsers)).include((x=>x.userMailboxes)).thenInclude((x=>x.mailbox));return this.entityService.save(cloner.copy)}};__decorate([Inject,__metadata("design:type",EntityService)],AdminUserService.prototype,"entityService",void 0);AdminUserService=__decorate([DITransient()],AdminUserService);_export("default",AdminUserService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/services/AdminUserService");System.register(["tslib","@web-atoms/core/dist/core/InjectProperty","@web-atoms/web-controls/dist/basic/DropDown","../../../../admin/pages/users/services/AdminUserService","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/core/Bind"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,DropDown,AdminUserService,XNode,Bind,UserDropDown;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsWebControlsDistBasicDropDown){DropDown=_webAtomsWebControlsDistBasicDropDown.default},function(_adminPagesUsersServicesAdminUserService){AdminUserService=_adminPagesUsersServicesAdminUserService.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default}],execute:function(){_export("default",UserDropDown=class UserDropDown extends DropDown{init(){return __awaiter(this,void 0,void 0,(function*(){this.search="";this.valuePath=user=>user.userID;this.itemRenderer=user=>XNode.create("div",null,user.displayName," (",user.userID,", ",user.userName,")");this.render(XNode.create("div",{items:Bind.oneWayAsync(((s,e,cancelToken)=>__awaiter(this,void 0,void 0,(function*(){return(yield this.userService.list({search:this.search,start:0,size:20,cancelToken})).items}))))}))}))}preCreate(){super.preCreate();this.runAfterInit((()=>this.app.runAsync((()=>this.init()))))}});__decorate([InjectProperty,__metadata("design:type",AdminUserService)],UserDropDown.prototype,"userService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/drop-downs/user/UserDropDown");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","../../../../common/controls/drop-downs/user/UserDropDown","@web-atoms/core/dist/core/Bind","@web-atoms/web-controls/dist/basic/Checkbox","../../../../common/controls/buttons/IconButton","@web-atoms/core/dist/view-model/Action","../../../../services/EntityService","@web-atoms/core/dist/core/InjectProperty"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,XNode,Form,FormField,UserDropDown,Bind,Checkbox,SaveIconTextButton,Action,EntityService,InjectProperty,DomainUserEditor;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_commonControlsDropDownsUserUserDropDown){UserDropDown=_commonControlsDropDownsUserUserDropDown.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default},function(_commonControlsButtonsIconButton){SaveIconTextButton=_commonControlsButtonsIconButton.SaveIconTextButton},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default}],execute:function(){_export("default",DomainUserEditor=class DomainUserEditor extends PopupWindowPage{init(){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){this.model=this.parameters;(_a=(_b=this.model).isAdmin)!==null&&_a!==void 0?_a:_b.isAdmin=false;this.renderer=XNode.create("div",null,XNode.create(Form,{"data-submit-event":"save-domain-user"},XNode.create(FormField,{label:"User"},XNode.create(UserDropDown,{value:Bind.twoWaysImmediate((()=>this.model.userID))})),XNode.create(FormField,{label:"Admin"},XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.isAdmin)),text:"Is Administrator (Can Create and View all mailboxes)"})),XNode.create(FormField,{"style-display":Bind.oneWay((()=>!this.model.isAdmin)),label:"Can Create Mailboxes"},XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.allowCreateMailbox)),text:"Can create Mailboxes"})),XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"data-type":"submit"}))))}))}saveDomainUser(){return __awaiter(this,void 0,void 0,(function*(){const cloner=this.entityService.cloner(this.model).copy;yield this.entityService.save(cloner);return this.model}))}});__decorate([InjectProperty,__metadata("design:type",EntityService)],DomainUserEditor.prototype,"entityService",void 0);__decorate([Action({onEvent:"save-domain-user",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],DomainUserEditor.prototype,"saveDomainUser",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/domains/domain-user/DomainUserEditor");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../model/model","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","../../../../common/controls/form/RequiredFormField","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/view-model/Action","@web-atoms/core/dist/core/InjectProperty","../services/AdminDomainService","@web-atoms/web-controls/dist/basic/Checkbox","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/web-controls/dist/basic/Expander","../../../../common/controls/buttons/IconButton","../../../commands/AdminCommands","../../../../services/EntityService","@web-atoms/web-controls/dist/PageNavigator","./DomainKeySetupPage","../domain-user/DomainUserEditor"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,ContentPage,Domain,DomainKey,DomainUser,HostedDomain,XNode,Form,TextFormField,Bind,Action,InjectProperty,AdminDomainService,Checkbox,AtomRepeater,Expander,AddIconTextButton,DeleteIconButton,SetupFolderIconButton,AdminCommands,EntityService,PageNavigator,DomainKeySetupPage,DomainUserEditor,EditDomainPage,summary;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_modelModel){Domain=_modelModel.Domain;DomainKey=_modelModel.DomainKey;DomainUser=_modelModel.DomainUser;HostedDomain=_modelModel.HostedDomain},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_commonControlsFormRequiredFormField){TextFormField=_commonControlsFormRequiredFormField.TextFormField},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesAdminDomainService){AdminDomainService=_servicesAdminDomainService.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsWebControlsDistBasicExpander){Expander=_webAtomsWebControlsDistBasicExpander.default},function(_commonControlsButtonsIconButton){AddIconTextButton=_commonControlsButtonsIconButton.AddIconTextButton;DeleteIconButton=_commonControlsButtonsIconButton.DeleteIconButton;SetupFolderIconButton=_commonControlsButtonsIconButton.SetupFolderIconButton},function(_commandsAdminCommands){AdminCommands=_commandsAdminCommands.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_DomainKeySetupPage){DomainKeySetupPage=_DomainKeySetupPage.default},function(_domainUserDomainUserEditor){DomainUserEditor=_domainUserDomainUserEditor.default}],execute:function(){summary=text=>{if(!text){return text}if(text.length>50){return text.substring(0,20)+"..."+text.substring(text.length-20)}return text};_export("default",EditDomainPage=class EditDomainPage extends ContentPage{init(){var _a,_b,_c;var _d,_e;return __awaiter(this,void 0,void 0,(function*(){this.model=(_a=this.parameters.model)!==null&&_a!==void 0?_a:this.parameters.domainID?yield this.domainService.get(this.parameters.domainID):HostedDomain.create({enableReceive:true,enableSend:true,useRelay:true,domain:Domain.create({name:""})});(_b=(_d=this.model).domainKeys)!==null&&_b!==void 0?_b:_d.domainKeys=[];(_c=(_e=this.model).relays)!==null&&_c!==void 0?_c:_e.relays=[];this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create(Form,null,this.model.domainID?XNode.create("span",{text:this.model.domain.name}):XNode.create(TextFormField,{required:true,label:"Domain",value:()=>this.model.domain.name}),XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.enableReceive)),text:"Receive Mails"}),XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.enableSend)),text:"Send Mails"}),XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.useRelay)),text:"Use Domain Relay"}),this.model.domainID&&XNode.create(Expander,{isExpanded:false},XNode.create("label",{text:"Relays"}),XNode.create(AtomRepeater,{items:this.model.relays,footer:true,footerRenderer:()=>XNode.create("div",{"data-layout":"row"},XNode.create(AddIconTextButton,{"data-click-event":AdminCommands.editRelay.eventName,text:"New Relay"}))})),this.model.domainID&&XNode.create(Expander,{isExpanded:true},XNode.create("label",{text:"Domain Keys"}),XNode.create(AtomRepeater,{items:this.model.domainKeys,footer:true,for:"table",itemRenderer:item=>XNode.create("tr",null,XNode.create("td",{text:item.name}),XNode.create("td",null,XNode.create("span",{text:summary(item.publicKey)})),XNode.create("td",null,XNode.create(SetupFolderIconButton,{"event-click":()=>PageNavigator.pushPage(DomainKeySetupPage,item)})),XNode.create("td",null,XNode.create(DeleteIconButton,{"data-click-event":"delete-domain-key"}))),footerRenderer:()=>XNode.create("div",{"data-layout":"row"},XNode.create(AddIconTextButton,{"data-click-event":"add-domain-key",text:"New Domain Key"}))})),this.model.domainID&&XNode.create(Expander,{isExpanded:true},XNode.create("label",{text:"Users"}),XNode.create(AtomRepeater,{items:this.model.domainUsers,footer:true,itemRenderer:du=>XNode.create("div",{"data-layout":"row"},XNode.create("span",{text:`${du.user.displayName} (${du.userID}, ${du.user.userName})`}),du.isAdmin&&XNode.create("span",{text:"is admin"}),du.allowCreateMailbox&&XNode.create("span",{text:"can create mailbox"})),footerRenderer:()=>XNode.create("div",{"data-layout":"row"},XNode.create(AddIconTextButton,{"data-click-event":"add-domain-user",text:"Add User"}))})),XNode.create("div",{"data-layout":"command-row"},XNode.create("button",{"data-layout":"accent-button","data-submit-event":"save-domain",text:"Save"}))))}))}saveDomain(){return __awaiter(this,void 0,void 0,(function*(){yield this.domainService.save(this.model);return this.model}))}deleteDomainKey(dk){return __awaiter(this,void 0,void 0,(function*(){dk.$deleted=true;yield this.domainService.save(this.model);this.model.domainKeys.remove(dk)}))}addDomainKey(){return __awaiter(this,void 0,void 0,(function*(){const entityService=this.resolve(EntityService);const dk=DomainKey.create({domainID:this.model.domainID});yield entityService.save(dk);this.model.domainKeys.add(dk)}))}addDomainUser(){return __awaiter(this,void 0,void 0,(function*(){const domainUser=yield PageNavigator.pushPageForResult(DomainUserEditor,DomainUser.create({domainID:this.model.domainID}));this.model.domainUsers.add(domainUser)}))}});__decorate([InjectProperty,__metadata("design:type",AdminDomainService)],EditDomainPage.prototype,"domainService",void 0);__decorate([Action({onEvent:"save-domain",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],EditDomainPage.prototype,"saveDomain",null);__decorate([Action({onEvent:"delete-domain-key",confirm:"Are you sure you want to delete this?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],EditDomainPage.prototype,"deleteDomainKey",null);__decorate([Action({onEvent:"add-domain-key"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],EditDomainPage.prototype,"addDomainKey",null);__decorate([Action({onEvent:"add-domain-user"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],EditDomainPage.prototype,"addDomainUser",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/domains/edit/EditDomainPage");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/InjectProperty","./services/AdminDomainService","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/PageNavigator","./edit/EditDomainPage","../../commands/AdminCommands"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,ContentPage,AtomRepeater,InjectProperty,AdminDomainService,Action,PageNavigator,EditDomainPage,AdminCommands,DomainListPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesAdminDomainService){AdminDomainService=_servicesAdminDomainService.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_editEditDomainPage){EditDomainPage=_editEditDomainPage.default},function(_commandsAdminCommands){AdminCommands=_commandsAdminCommands.default}],execute:function(){_export("default",DomainListPage=class DomainListPage extends ContentPage{init(){return __awaiter(this,void 0,void 0,(function*(){this.title="Domains";this.domains=yield this.adminDomainService.list();this.actionRenderer=()=>XNode.create("i",{"data-click-event":"add-domain",class:"fas fa-plus"});this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,{items:this.domains,itemRenderer:domain=>XNode.create("div",null,XNode.create("a",{"data-click-event":"route",href:AdminCommands.openDomain.displayRoute(domain)},domain.domain.name))}))}))}addDomain(){return __awaiter(this,void 0,void 0,(function*(){const domain=yield PageNavigator.pushPageForResult(EditDomainPage,{});this.domains.add(domain)}))}});__decorate([InjectProperty,__metadata("design:type",AdminDomainService)],DomainListPage.prototype,"adminDomainService",void 0);__decorate([Action({onEvent:"add-domain"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],DomainListPage.prototype,"addDomain",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/domains/DomainListPage");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/types","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl"],(function(_export,_context){"use strict";var __awaiter,Bind,CancelToken,XNode,AtomControl,InfiniteRepeater,_a,loadMoreSet,pagedItemsSetter,scrollToBottom;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreTypes){CancelToken=_webAtomsCoreDistCoreTypes.CancelToken},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl}],execute:function(){loadMoreSet=Symbol("loadMoreSet");pagedItemsSetter=AtomControl.registerProperty("paged-items","paged-items",((control,element,value)=>{var _b,_c;if(value&&value.items){let cancelToken=control[loadMoreSet];(_b=control.footerRenderer)!==null&&_b!==void 0?_b:control.footerRenderer=()=>XNode.create("div",{"data-click-event":"load-more-items"},XNode.create("span",{text:"Load more ... "}));(_c=control.headerRenderer)!==null&&_c!==void 0?_c:control.headerRenderer=()=>XNode.create("div",{class:"scroll-header","style-height":"1px","style-width":"100%"});if(!cancelToken){control[loadMoreSet]=cancelToken=new CancelToken;control.bindEvent(control.element,"loadMoreItems",(e=>{const ce=new CustomEvent("moreItems",{detail:{pagedItems:control.pagedItems,cancelToken},bubbles:false});control.element.dispatchEvent(ce)}))}else{cancelToken.cancel();control[loadMoreSet]=cancelToken=new CancelToken}const items=control.items;if(items&&Array.isArray(items)){items.clear();items.addAll(value.items)}else{control.items=value.items}setTimeout((()=>{var _b;const ce=(_b=control.element)===null||_b===void 0?void 0:_b.firstElementChild;ce===null||ce===void 0?void 0:ce.scrollIntoView()}),100);control.footer=value.total&&value.items&&value.items.length<value.total;control.pagedItems=value}}));scrollToBottom=({target,detail:{type,index}})=>{if(!(type==="add"&&index===0)&&type!=="reset"){return}setTimeout((()=>{const e=target.firstElementChild;console.log(e);e===null||e===void 0?void 0:e.scrollIntoView(true)}),1)};_export("default",InfiniteRepeater=class InfiniteRepeater{});_a=InfiniteRepeater;InfiniteRepeater.pagedItems=start=>{const setter=start(0);const setters=pagedItemsSetter(Bind.oneWayAsync(setter));setters["event-more-items"]=Bind.event(((s,e)=>__awaiter(void 0,void 0,void 0,(function*(){var _b,_c;const st=(_c=(_b=s.items)===null||_b===void 0?void 0:_b.length)!==null&&_c!==void 0?_c:0;if(!st){return}const cancelToken=s[loadMoreSet];const loader=start(st);const results=yield loader(s,e.target,cancelToken);s.items.addAll(results.items);s.footer=results.items.length>0}))));return setters}}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/repeater/InfiniteRepeater");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/XNode","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/basic/PasswordBox","@web-atoms/core/dist/core/Bind","../../../common/validators/Validators","../../../common/controls/password/PasswordStrength","@web-atoms/core/dist/view-model/Action","../../../services/EntityService","@web-atoms/date-time/dist/DateTime","@web-atoms/web-controls/dist/basic/Checkbox"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,XNode,Form,FormField,PasswordBox,Bind,Validators,PasswordStrength,Action,EntityService,DateTime,Checkbox,EditUserPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistBasicPasswordBox){PasswordBox=_webAtomsWebControlsDistBasicPasswordBox.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_commonValidatorsValidators){Validators=_commonValidatorsValidators.Validators},function(_commonControlsPasswordPasswordStrength){PasswordStrength=_commonControlsPasswordPasswordStrength.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default}],execute:function(){_export("default",EditUserPage=class EditUserPage extends PopupWindowPage{constructor(){super(...arguments);this.password=""}init(){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){this.model=this.parameters;(_a=(_b=this.model).changePassword)!==null&&_a!==void 0?_a:_b.changePassword={newPassword:"",forceChangePasswordOnLogin:true};this.title=this.model.userID?`Reset Password for ${this.model.displayName} (${this.model.userID}, ${this.model.userName})`:"Add New User";this.renderer=XNode.create("div",null,XNode.create(Form,null,!this.model.userID&&XNode.create(FormField,{label:"Display Name"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.displayName))})),!this.model.userID&&XNode.create(FormField,{label:"Username"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.userName))})),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(FormField,{label:"Force Change Password"},XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.changePassword.forceChangePasswordOnLogin)),text:"Force user to change password on next login."})),XNode.create("div",{"data-layout":"command-row"},XNode.create("button",{"data-submit-event":"reset-password",text:"Save"}))))}))}resetPassword(){return __awaiter(this,void 0,void 0,(function*(){const entityService=this.resolve(EntityService);this.model.dateUpdated=DateTime.utcNow;const clone=entityService.cloner(this.model).include((x=>x.changePassword)).copy;yield entityService.save(clone)}))}});__decorate([Action({onEvent:"reset-password",success:"Information saved successfully.",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],EditUserPage.prototype,"resetPassword",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/EditUserPage");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/PageNavigator","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../model/model","./services/AdminUserService","@web-atoms/core/dist/core/InjectProperty","../../../common/controls/repeater/InfiniteRepeater","@web-atoms/core/dist/core/Bind","./EditUserPage"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,Action,PageNavigator,AtomRepeater,ContentPage,User,AdminUserService,InjectProperty,InfiniteRepeater,Bind,EditUserPage,UserListPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_modelModel){User=_modelModel.User},function(_servicesAdminUserService){AdminUserService=_servicesAdminUserService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_commonControlsRepeaterInfiniteRepeater){InfiniteRepeater=_commonControlsRepeaterInfiniteRepeater.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_EditUserPage){EditUserPage=_EditUserPage.default}],execute:function(){_export("default",UserListPage=class UserListPage extends ContentPage{constructor(){super(...arguments);this.users=[];this.version=0}init(){return __awaiter(this,void 0,void 0,(function*(){this.actionRenderer=()=>XNode.create("i",{"data-click-event":"add-user",class:"fas fa-plus"});this.titleRenderer=()=>XNode.create("div",{"data-layout":"row"},XNode.create("input",{placeholder:"Search Users",value:Bind.twoWaysImmediate((()=>this.search))}));this.search="";this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({for:"table",items:this.users},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.userService.list({start,search:this.search,cancelToken}))),{itemRenderer:user=>XNode.create("tr",null,XNode.create("td",null,user.userID),XNode.create("td",null,user.userName),XNode.create("td",null,user.displayName),XNode.create("td",null,XNode.create("i",{"data-cursor":"pointer",class:"fas fa-key",title:"Change Password","data-click-event":"user-change-password"})))})))}))}addDomain(){return __awaiter(this,void 0,void 0,(function*(){yield PageNavigator.pushPageForResult(EditUserPage,User.create({userName:"",displayName:"",changePassword:{forceChangePasswordOnLogin:true,newPassword:""}}));this.version++}))}userChangePassword(model){return __awaiter(this,void 0,void 0,(function*(){PageNavigator.pushPage(EditUserPage,model)}))}});__decorate([InjectProperty,__metadata("design:type",AdminUserService)],UserListPage.prototype,"userService",void 0);__decorate([Action({onEvent:"add-user"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],UserListPage.prototype,"addDomain",null);__decorate([Action({onEvent:"user-change-password"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],UserListPage.prototype,"userChangePassword",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/UserListPage");System.register(["tslib","@web-atoms/core/dist/di/DITransient","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../Sql"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DITransient,Inject,EntityService,Domain,Mailbox,Sql,MailboxService;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){Domain=_modelModel.Domain;Mailbox=_modelModel.Mailbox},function(_Sql){Sql=_Sql.Sql}],execute:function(){MailboxService=class MailboxService{domains(){return this.entityService.query(Domain).toArray()}list({search="",start=0,size=50,version=0,cancelToken}){let q=this.entityService.query(Mailbox);if(search){if(search.endsWith("@")){search=`${search}%`;q=q.where({search},(p=>x=>Sql.text.like(x.emailAddress.emailAddress,p.search)))}else if(search.startsWith("@")){search=`%${search}`;q=q.where({search},(p=>x=>Sql.text.like(x.emailAddress.emailAddress,p.search)))}else{if(!search.includes("%")){search=`%${search}%`}q=q.where({search},(p=>x=>Sql.text.like(x.emailAddress.emailAddress,p.search)||Sql.text.like(x.name,p.search)))}}return q.include((x=>x.emailAddress)).toPagedList({start,size,cancelToken})}save(model){return __awaiter(this,void 0,void 0,(function*(){if(model.name){model.name=model.name.trim()}if(model.username){model.username=model.username.trim()}const cloner=this.entityService.cloner(model);yield this.entityService.save(cloner.copy);return model}))}};__decorate([Inject,__metadata("design:type",EntityService)],MailboxService.prototype,"entityService",void 0);MailboxService=__decorate([DITransient()],MailboxService);_export("default",MailboxService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/mailboxes/services/MailboxService");System.register(["tslib","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/XNode","./AtomRepeater"],(function(_export,_context){"use strict";var __decorate,__metadata,BindableProperty,XNode,AtomRepeater,ComboBox;_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(_AtomRepeater){AtomRepeater=_AtomRepeater.default}],execute:function(){_export("default",ComboBox=class ComboBox extends AtomRepeater{constructor(app,e=document.createElement("select")){super(app,e);this.isChanging=false;this.selectedItems=[]}updateItems(container){var _a,_b;if(this.isChanging){return}super.updateItems(container);const selectedItems=this.selectedItems;if(!selectedItems){return}if(selectedItems.length===0){return}this.isChanging=true;const first=selectedItems[0];this.element.selectedIndex=(_b=(_a=this.items)===null||_a===void 0?void 0:_a.indexOf(first))!==null&&_b!==void 0?_b:-1;this.isChanging=false}updateClasses(){if(this.isChanging){return}super.updateClasses();this.updateItems()}preCreate(){super.preCreate();this.labelPath=item=>{var _a;return(_a=item===null||item===void 0?void 0:item.label)!==null&&_a!==void 0?_a:item.toString()};this.valuePath=item=>{var _a;return(_a=item===null||item===void 0?void 0:item.value)!==null&&_a!==void 0?_a:item.toString()};this.itemRenderer=item=>XNode.create("option",null,this.labelPath(item));this.bindEvent(this.element,"change",(()=>this.changeSelection()))}changeSelection(){if(this.isChanging){return}this.isChanging=true;const index=this.element.selectedIndex;if(index!==-1){const si=this.selectedItems;if(si){si.set(0,this.items[index])}}this.isChanging=false}});__decorate([BindableProperty,__metadata("design:type",Object)],ComboBox.prototype,"labelPath",void 0)}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/ComboBox");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../model/model","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","../../controls/form/RequiredFormField","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/basic/ComboBox","./services/MailboxService","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/view-model/Action","../../SocialMailApp"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,EmailAddress,Mailbox,XNode,Form,TextFormField,FormField,ComboBox,MailboxService,InjectProperty,Bind,Action,SocialMailApp,MailboxEditorPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_modelModel){EmailAddress=_modelModel.EmailAddress;Mailbox=_modelModel.Mailbox},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_controlsFormRequiredFormField){TextFormField=_controlsFormRequiredFormField.TextFormField},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistBasicComboBox){ComboBox=_webAtomsWebControlsDistBasicComboBox.default},function(_servicesMailboxService){MailboxService=_servicesMailboxService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_SocialMailApp){SocialMailApp=_SocialMailApp.default}],execute:function(){_export("default",MailboxEditorPage=class MailboxEditorPage extends PopupWindowPage{constructor(){super(...arguments);this.domain=null}init(){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){this.title="Add Mailbox";this.model=(_b=(_a=this.parameters)===null||_a===void 0?void 0:_a.model)!==null&&_b!==void 0?_b:Mailbox.create({emailAddress:EmailAddress.create({emailAddress:""}),maxStorage:1*1024*1024*1024});this.model.username="";const domains=yield this.mailboxService.domains();this.model.domain=domains[0];this.model.name=SocialMailApp.user.displayName;this.renderer=XNode.create("div",null,XNode.create(Form,{"data-submit-event":"save-mailbox"},XNode.create(TextFormField,{label:"Name",value:()=>this.model.name}),XNode.create(TextFormField,{label:"Email Prefix/Username",value:()=>this.model.username}),XNode.create(FormField,{label:"Domain"},XNode.create(ComboBox,{labelPath:item=>item===null||item===void 0?void 0:item.name,valuePath:item=>item===null||item===void 0?void 0:item.domainID,selectedItem:Bind.twoWaysImmediate((()=>this.model.domain)),items:domains})),XNode.create(FormField,{label:"Email Address"},XNode.create("span",{text:Bind.oneWay((()=>`${this.model.username}@${this.model.domain.domain}`))})),XNode.create("div",{"data-layout":"command-row"},XNode.create("button",{"data-type":"submit","data-layout":"accept-button",text:"Add"}))))}))}saveMailbox(){return __awaiter(this,void 0,void 0,(function*(){this.model.domainID=this.model.domain.domainID;yield this.mailboxService.save(this.model);return this.model}))}});__decorate([InjectProperty,__metadata("design:type",MailboxService)],MailboxEditorPage.prototype,"mailboxService",void 0);__decorate([Action({onEvent:"save-mailbox",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailboxEditorPage.prototype,"saveMailbox",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxEditorPage");System.register([],(function(_export,_context){"use strict";var k,m,b,kb,mb,gb,toCompactFixed,toKMBString,toFileSize,formatNumber;return{setters:[],execute:function(){k=1e3;m=k*k;b=m*k;kb=1024;mb=k*k;gb=m*k;_export("toCompactFixed",toCompactFixed=(n,decimals)=>{let text=n.toFixed(decimals);if(decimals>0){while(text.endsWith("0")){text=text.substring(0,text.length-1)}if(text.endsWith(".")){text=text.substring(0,text.length-1)}}return text});_export("toKMBString",toKMBString=(n,decimals=0,def="")=>{if(!n){return def+""}if(n>b){return toCompactFixed(n/b,decimals)+"B"}if(n>m){return toCompactFixed(n/m,decimals)+"M"}if(n>k){return toCompactFixed(n/k,decimals)+"K"}return toCompactFixed(n,0)});_export("toFileSize",toFileSize=(n,decimals=0,def="")=>{n=Number(n);if(n===0){return"0 B"}if(!n){return def+""}if(n>gb){return toCompactFixed(n/gb,decimals)+" GB"}if(n>mb){return toCompactFixed(n/mb,decimals)+" MB"}if(n>kb){return toCompactFixed(n/kb,decimals)+" KB"}return toCompactFixed(n,0)});_export("formatNumber",formatNumber=(n,{prefix="",suffix="",def="",numberToText=toKMBString}={})=>{if(!n){return def}const text=numberToText(n);return prefix+text+suffix})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/NumberFormats");System.register(["tslib","@web-atoms/core/dist/di/DISingleton","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../../common/Sql"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DISingleton,Inject,EntityService,Mailbox,MailboxThread,Sql,MailService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){Mailbox=_modelModel.Mailbox;MailboxThread=_modelModel.MailboxThread},function(_commonSql){Sql=_commonSql.Sql}],execute:function(){MailService=class MailService{mailboxes(){return __awaiter(this,void 0,void 0,(function*(){return this.entityService.query(Mailbox).include((x=>x.emailAddress)).toArray()}))}list({search="",mailboxID,start=0,size=100,version=1,cancelToken}){return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(MailboxThread).where({mailboxID},(p=>x=>x.mailboxID===p.mailboxID)).orderByDescending((x=>x.lastEmailID));if(search){const likeSearch=`%${search}%`;q=q.where({search,likeSearch},(p=>x=>x.emailAddress.emailAddress===p.search||Sql.text.like(x.lastEmail.textBody,p.likeSearch)))}return q.include((x=>[x.emailAddress,x.lastEmail.recipients,x.lastEmail.attachments])).toPagedList({start,size,cancelToken})}))}send(email){return __awaiter(this,void 0,void 0,(function*(){for(const iterator of email.recipients){if(iterator.emailAddressText){iterator.emailAddressText=iterator.emailAddressText.trim()}}const cloner=this.entityService.cloner(email).include((x=>x.recipients)).include((x=>x.attachments)).copy;yield this.entityService.save(cloner)}))}};__decorate([Inject,__metadata("design:type",EntityService)],MailService.prototype,"entityService",void 0);MailService=__decorate([DISingleton()],MailService);_export("default",MailService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/service/MailService");System.register(["@web-atoms/core/dist/style/styled","../PageNavigator","./MobileApp","@web-atoms/core/dist/web/core/AtomUI","../basic/AtomRepeater"],(function(_export,_context){"use strict";var styled,PageNavigator,ContentPage,isMobileView,descendentElementIterator,AtomRepeater,MasterDetailPage,findItem;_export("default",void 0);return{setters:[function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_PageNavigator){PageNavigator=_PageNavigator.default},function(_MobileApp){ContentPage=_MobileApp.ContentPage;isMobileView=_MobileApp.isMobileView},function(_webAtomsCoreDistWebCoreAtomUI){descendentElementIterator=_webAtomsCoreDistWebCoreAtomUI.descendentElementIterator},function(_basicAtomRepeater){AtomRepeater=_basicAtomRepeater.default}],execute:function(){styled.css`
|
|
1148
|
+
`.installGlobal("div[data-drop-down=drop-down]")}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/styles/drop-down-style");System.register(["tslib","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/XNode","./AtomRepeater","./styles/drop-down-style"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,BindableProperty,XNode,AtomRepeater,askSuggestion,askSuggestionPopup,disposeChildren,MatchAnyCaseInsensitive,DropDown;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreBindableProperty){BindableProperty=_webAtomsCoreDistCoreBindableProperty.BindableProperty},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_AtomRepeater){AtomRepeater=_AtomRepeater.default;askSuggestion=_AtomRepeater.askSuggestion;askSuggestionPopup=_AtomRepeater.askSuggestionPopup;disposeChildren=_AtomRepeater.disposeChildren;MatchAnyCaseInsensitive=_AtomRepeater.MatchAnyCaseInsensitive},function(_stylesDropDownStyle){}],execute:function(){_export("default",DropDown=class DropDown extends AtomRepeater{constructor(){super(...arguments);this.isPopupOpen=false}updateItems(container){}onPropertyChanged(name){super.onPropertyChanged(name);switch(name){case"labelPath":this.itemRenderer=item=>XNode.create("div",{text:this.labelPath(item)});break;case"prompt":this.updateClasses();break}}preCreate(){super.preCreate();this.disableSearch=false;this.prompt="Select";this.popupSuggestions=true;this.bindEvent(this.element,"click",(e=>this.openPopup(e)));this.valuePath=item=>{var _a;return(_a=item===null||item===void 0?void 0:item.value)!==null&&_a!==void 0?_a:item};this.labelPath=item=>{var _a;return(_a=item===null||item===void 0?void 0:item.label)!==null&&_a!==void 0?_a:item};this.itemRenderer=item=>XNode.create("div",{text:this.labelPath(item)});this.element.dataset.dropDown="drop-down";this.render(XNode.create("div",null,XNode.create("div",{"data-white-space":"nowrap",text:this.prompt}),XNode.create("i",{class:"fad fa-caret-circle-down"})))}openPopup(e){var _a,_b,_c,_d,_e;return __awaiter(this,void 0,void 0,(function*(){if(this.isPopupOpen){return}this.isPopupOpen=true;try{if(!this.popupSuggestions){const selected=yield askSuggestion(this.items,(_a=this.suggestionRenderer)!==null&&_a!==void 0?_a:this.itemRenderer,(_b=this.match)!==null&&_b!==void 0?_b:MatchAnyCaseInsensitive(this.labelPath),{title:(_c=this.suggestionPrompt)!==null&&_c!==void 0?_c:this.prompt});this.selectedItem=selected;return}const selectedItem=yield askSuggestionPopup(this,this.items,(_d=this.suggestionRenderer)!==null&&_d!==void 0?_d:this.itemRenderer,(_e=this.match)!==null&&_e!==void 0?_e:MatchAnyCaseInsensitive(this.labelPath),this.selectedItem);if(this.selectedItem!==selectedItem){this.selectedItem=selectedItem;this.element.dispatchEvent(new CustomEvent("selectionChanged",{bubbles:true,detail:selectedItem,cancelable:true}))}}finally{this.isPopupOpen=false}}))}updateClasses(){var _a;disposeChildren(this,this.element);const ir=this.itemRenderer;if(!ir){return}if(!this.selectedItem){this.render(XNode.create("div",null,XNode.create("div",{"data-white-space":"nowrap",text:this.prompt}),XNode.create("i",{class:"fad fa-caret-circle-down"})));return}const selectedItem=this.selectedItem;const index=this.items.indexOf(selectedItem);const node=ir(selectedItem,index,this);const na=(_a=node.attributes)!==null&&_a!==void 0?_a:node.attributes={};if(!na["data-white-space"]){na["data-white-space"]="nowrap"}this.render(XNode.create("div",null,node,XNode.create("i",{class:"fad fa-caret-circle-down"})))}});__decorate([BindableProperty,__metadata("design:type",Boolean)],DropDown.prototype,"popupSuggestions",void 0);__decorate([BindableProperty,__metadata("design:type",String)],DropDown.prototype,"search",void 0);__decorate([BindableProperty,__metadata("design:type",String)],DropDown.prototype,"prompt",void 0);__decorate([BindableProperty,__metadata("design:type",String)],DropDown.prototype,"suggestionPrompt",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],DropDown.prototype,"labelPath",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],DropDown.prototype,"match",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],DropDown.prototype,"suggestionRenderer",void 0)}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/DropDown");System.register([],(function(_export,_context){"use strict";var Sql;return{setters:[],execute:function(){_export("Sql",Sql=void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/Sql");System.register(["tslib","@web-atoms/core/dist/di/DITransient","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../../common/Sql"],(function(_export,_context){"use strict";var __decorate,__metadata,DITransient,Inject,EntityService,User,Sql,AdminUserService;return{setters:[function(_tslib){__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},function(_commonSql){Sql=_commonSql.Sql}],execute:function(){AdminUserService=class AdminUserService{list({search="",start=0,size=50,cancelToken}){let q=this.entityService.query(User);if(search){if(/\^d+$/.test(search)){q=q.where({search},(p=>x=>x.userID===Sql.cast.asBigInt(p.search)))}const startsWith=search+"%";q=q.where({startsWith},(p=>x=>Sql.text.iLike(x.userName,p.startsWith)||Sql.text.iLike(x.displayName,p.startsWith)))}return q.include((x=>x.domainUsers.forEach((d=>d.hostedDomain.domain)))).toPagedList({start,size,cancelToken})}save(user){const cloner=this.entityService.cloner(user).include((x=>x.domainUsers)).include((x=>x.userMailboxes)).thenInclude((x=>x.mailbox));return this.entityService.save(cloner.copy)}};__decorate([Inject,__metadata("design:type",EntityService)],AdminUserService.prototype,"entityService",void 0);AdminUserService=__decorate([DITransient()],AdminUserService);_export("default",AdminUserService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/services/AdminUserService");System.register(["tslib","@web-atoms/core/dist/core/InjectProperty","@web-atoms/web-controls/dist/basic/DropDown","../../../../admin/pages/users/services/AdminUserService","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/core/Bind"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,DropDown,AdminUserService,XNode,Bind,UserDropDown;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsWebControlsDistBasicDropDown){DropDown=_webAtomsWebControlsDistBasicDropDown.default},function(_adminPagesUsersServicesAdminUserService){AdminUserService=_adminPagesUsersServicesAdminUserService.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default}],execute:function(){_export("default",UserDropDown=class UserDropDown extends DropDown{init(){return __awaiter(this,void 0,void 0,(function*(){this.search="";this.valuePath=user=>user.userID;this.itemRenderer=user=>XNode.create("div",null,user.displayName," (",user.userID,", ",user.userName,")");this.render(XNode.create("div",{items:Bind.oneWayAsync(((s,e,cancelToken)=>__awaiter(this,void 0,void 0,(function*(){return(yield this.userService.list({search:this.search,start:0,size:20,cancelToken})).items}))))}))}))}preCreate(){super.preCreate();this.runAfterInit((()=>this.app.runAsync((()=>this.init()))))}});__decorate([InjectProperty,__metadata("design:type",AdminUserService)],UserDropDown.prototype,"userService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/drop-downs/user/UserDropDown");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","../../../../common/controls/drop-downs/user/UserDropDown","@web-atoms/core/dist/core/Bind","@web-atoms/web-controls/dist/basic/Checkbox","../../../../common/controls/buttons/IconButton","@web-atoms/core/dist/view-model/Action","../../../../services/EntityService","@web-atoms/core/dist/core/InjectProperty"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,XNode,Form,FormField,UserDropDown,Bind,Checkbox,SaveIconTextButton,Action,EntityService,InjectProperty,DomainUserEditor;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_commonControlsDropDownsUserUserDropDown){UserDropDown=_commonControlsDropDownsUserUserDropDown.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default},function(_commonControlsButtonsIconButton){SaveIconTextButton=_commonControlsButtonsIconButton.SaveIconTextButton},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default}],execute:function(){_export("default",DomainUserEditor=class DomainUserEditor extends PopupWindowPage{init(){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){this.model=this.parameters;(_a=(_b=this.model).isAdmin)!==null&&_a!==void 0?_a:_b.isAdmin=false;this.renderer=XNode.create("div",null,XNode.create(Form,{"data-submit-event":"save-domain-user"},XNode.create(FormField,{label:"User"},XNode.create(UserDropDown,{value:Bind.twoWaysImmediate((()=>this.model.userID))})),XNode.create(FormField,{label:"Admin"},XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.isAdmin)),text:"Is Administrator (Can Create and View all mailboxes)"})),XNode.create(FormField,{"style-display":Bind.oneWay((()=>!this.model.isAdmin)),label:"Can Create Mailboxes"},XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.allowCreateMailbox)),text:"Can create Mailboxes"})),XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"data-type":"submit"}))))}))}saveDomainUser(){return __awaiter(this,void 0,void 0,(function*(){const cloner=this.entityService.cloner(this.model).copy;yield this.entityService.save(cloner);return this.model}))}});__decorate([InjectProperty,__metadata("design:type",EntityService)],DomainUserEditor.prototype,"entityService",void 0);__decorate([Action({onEvent:"save-domain-user",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],DomainUserEditor.prototype,"saveDomainUser",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/domains/domain-user/DomainUserEditor");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../model/model","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","../../../../common/controls/form/RequiredFormField","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/view-model/Action","@web-atoms/core/dist/core/InjectProperty","../services/AdminDomainService","@web-atoms/web-controls/dist/basic/Checkbox","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/web-controls/dist/basic/Expander","../../../../common/controls/buttons/IconButton","../../../commands/AdminCommands","../../../../services/EntityService","@web-atoms/web-controls/dist/PageNavigator","./DomainKeySetupPage","../domain-user/DomainUserEditor"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,ContentPage,Domain,DomainKey,DomainUser,HostedDomain,XNode,Form,TextFormField,Bind,Action,InjectProperty,AdminDomainService,Checkbox,AtomRepeater,Expander,AddIconTextButton,DeleteIconButton,SetupFolderIconButton,AdminCommands,EntityService,PageNavigator,DomainKeySetupPage,DomainUserEditor,EditDomainPage,summary;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_modelModel){Domain=_modelModel.Domain;DomainKey=_modelModel.DomainKey;DomainUser=_modelModel.DomainUser;HostedDomain=_modelModel.HostedDomain},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_commonControlsFormRequiredFormField){TextFormField=_commonControlsFormRequiredFormField.TextFormField},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesAdminDomainService){AdminDomainService=_servicesAdminDomainService.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsWebControlsDistBasicExpander){Expander=_webAtomsWebControlsDistBasicExpander.default},function(_commonControlsButtonsIconButton){AddIconTextButton=_commonControlsButtonsIconButton.AddIconTextButton;DeleteIconButton=_commonControlsButtonsIconButton.DeleteIconButton;SetupFolderIconButton=_commonControlsButtonsIconButton.SetupFolderIconButton},function(_commandsAdminCommands){AdminCommands=_commandsAdminCommands.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_DomainKeySetupPage){DomainKeySetupPage=_DomainKeySetupPage.default},function(_domainUserDomainUserEditor){DomainUserEditor=_domainUserDomainUserEditor.default}],execute:function(){summary=text=>{if(!text){return text}if(text.length>50){return text.substring(0,20)+"..."+text.substring(text.length-20)}return text};_export("default",EditDomainPage=class EditDomainPage extends ContentPage{init(){var _a,_b,_c;var _d,_e;return __awaiter(this,void 0,void 0,(function*(){this.model=(_a=this.parameters.model)!==null&&_a!==void 0?_a:this.parameters.domainID?yield this.domainService.get(this.parameters.domainID):HostedDomain.create({enableReceive:true,enableSend:true,useRelay:true,domain:Domain.create({name:""})});(_b=(_d=this.model).domainKeys)!==null&&_b!==void 0?_b:_d.domainKeys=[];(_c=(_e=this.model).relays)!==null&&_c!==void 0?_c:_e.relays=[];this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create(Form,null,this.model.domainID?XNode.create("span",{text:this.model.domain.name}):XNode.create(TextFormField,{required:true,label:"Domain",value:()=>this.model.domain.name}),XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.enableReceive)),text:"Receive Mails"}),XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.enableSend)),text:"Send Mails"}),XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.useRelay)),text:"Use Domain Relay"}),this.model.domainID&&XNode.create(Expander,{isExpanded:false},XNode.create("label",{text:"Relays"}),XNode.create(AtomRepeater,{items:this.model.relays,footer:true,footerRenderer:()=>XNode.create("div",{"data-layout":"row"},XNode.create(AddIconTextButton,{"data-click-event":AdminCommands.editRelay.eventName,text:"New Relay"}))})),this.model.domainID&&XNode.create(Expander,{isExpanded:true},XNode.create("label",{text:"Domain Keys"}),XNode.create(AtomRepeater,{items:this.model.domainKeys,footer:true,for:"table",itemRenderer:item=>XNode.create("tr",null,XNode.create("td",{text:item.name}),XNode.create("td",null,XNode.create("span",{text:summary(item.publicKey)})),XNode.create("td",null,XNode.create(SetupFolderIconButton,{"event-click":()=>PageNavigator.pushPage(DomainKeySetupPage,item)})),XNode.create("td",null,XNode.create(DeleteIconButton,{"data-click-event":"delete-domain-key"}))),footerRenderer:()=>XNode.create("div",{"data-layout":"row"},XNode.create(AddIconTextButton,{"data-click-event":"add-domain-key",text:"New Domain Key"}))})),this.model.domainID&&XNode.create(Expander,{isExpanded:true},XNode.create("label",{text:"Users"}),XNode.create(AtomRepeater,{items:this.model.domainUsers,footer:true,itemRenderer:du=>XNode.create("div",{"data-layout":"row"},XNode.create("span",{text:`${du.user.displayName} (${du.userID}, ${du.user.userName})`}),du.isAdmin&&XNode.create("span",{text:"is admin"}),du.allowCreateMailbox&&XNode.create("span",{text:"can create mailbox"})),footerRenderer:()=>XNode.create("div",{"data-layout":"row"},XNode.create(AddIconTextButton,{"data-click-event":"add-domain-user",text:"Add User"}))})),XNode.create("div",{"data-layout":"command-row"},XNode.create("button",{"data-layout":"accent-button","data-submit-event":"save-domain",text:"Save"}))))}))}saveDomain(){return __awaiter(this,void 0,void 0,(function*(){yield this.domainService.save(this.model);return this.model}))}deleteDomainKey(dk){return __awaiter(this,void 0,void 0,(function*(){dk.$deleted=true;yield this.domainService.save(this.model);this.model.domainKeys.remove(dk)}))}addDomainKey(){return __awaiter(this,void 0,void 0,(function*(){const entityService=this.resolve(EntityService);const dk=DomainKey.create({domainID:this.model.domainID});yield entityService.save(dk);this.model.domainKeys.add(dk)}))}addDomainUser(){return __awaiter(this,void 0,void 0,(function*(){const domainUser=yield PageNavigator.pushPageForResult(DomainUserEditor,DomainUser.create({domainID:this.model.domainID}));this.model.domainUsers.add(domainUser)}))}});__decorate([InjectProperty,__metadata("design:type",AdminDomainService)],EditDomainPage.prototype,"domainService",void 0);__decorate([Action({onEvent:"save-domain",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],EditDomainPage.prototype,"saveDomain",null);__decorate([Action({onEvent:"delete-domain-key",confirm:"Are you sure you want to delete this?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],EditDomainPage.prototype,"deleteDomainKey",null);__decorate([Action({onEvent:"add-domain-key"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],EditDomainPage.prototype,"addDomainKey",null);__decorate([Action({onEvent:"add-domain-user"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],EditDomainPage.prototype,"addDomainUser",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/domains/edit/EditDomainPage");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/InjectProperty","./services/AdminDomainService","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/PageNavigator","./edit/EditDomainPage","../../commands/AdminCommands"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,ContentPage,AtomRepeater,InjectProperty,AdminDomainService,Action,PageNavigator,EditDomainPage,AdminCommands,DomainListPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesAdminDomainService){AdminDomainService=_servicesAdminDomainService.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_editEditDomainPage){EditDomainPage=_editEditDomainPage.default},function(_commandsAdminCommands){AdminCommands=_commandsAdminCommands.default}],execute:function(){_export("default",DomainListPage=class DomainListPage extends ContentPage{init(){return __awaiter(this,void 0,void 0,(function*(){this.title="Domains";this.domains=yield this.adminDomainService.list();this.actionRenderer=()=>XNode.create("i",{"data-click-event":"add-domain",class:"fas fa-plus"});this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,{items:this.domains,itemRenderer:domain=>XNode.create("div",null,XNode.create("a",{"data-click-event":"route",href:AdminCommands.openDomain.displayRoute(domain)},domain.domain.name))}))}))}addDomain(){return __awaiter(this,void 0,void 0,(function*(){const domain=yield PageNavigator.pushPageForResult(EditDomainPage,{});this.domains.add(domain)}))}});__decorate([InjectProperty,__metadata("design:type",AdminDomainService)],DomainListPage.prototype,"adminDomainService",void 0);__decorate([Action({onEvent:"add-domain"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],DomainListPage.prototype,"addDomain",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/domains/DomainListPage");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/types","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl"],(function(_export,_context){"use strict";var __awaiter,Bind,CancelToken,XNode,AtomControl,InfiniteRepeater,_a,loadMoreSet,pagedItemsSetter,scrollToBottom;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreTypes){CancelToken=_webAtomsCoreDistCoreTypes.CancelToken},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl}],execute:function(){loadMoreSet=Symbol("loadMoreSet");pagedItemsSetter=AtomControl.registerProperty("paged-items","paged-items",((control,element,value)=>{var _b,_c;if(value&&value.items){let cancelToken=control[loadMoreSet];(_b=control.footerRenderer)!==null&&_b!==void 0?_b:control.footerRenderer=()=>XNode.create("div",{"data-click-event":"load-more-items"},XNode.create("span",{text:"Load more ... "}));(_c=control.headerRenderer)!==null&&_c!==void 0?_c:control.headerRenderer=()=>XNode.create("div",{class:"scroll-header","style-height":"1px","style-width":"100%"});if(!cancelToken){control[loadMoreSet]=cancelToken=new CancelToken;control.bindEvent(control.element,"loadMoreItems",(e=>{const ce=new CustomEvent("moreItems",{detail:{pagedItems:control.pagedItems,cancelToken},bubbles:false});control.element.dispatchEvent(ce)}))}else{cancelToken.cancel();control[loadMoreSet]=cancelToken=new CancelToken}const items=control.items;if(items&&Array.isArray(items)){items.clear();items.addAll(value.items)}else{control.items=value.items}setTimeout((()=>{var _b;const ce=(_b=control.element)===null||_b===void 0?void 0:_b.firstElementChild;ce===null||ce===void 0?void 0:ce.scrollIntoView()}),100);control.footer=value.total&&value.items&&value.items.length<value.total;control.pagedItems=value}}));scrollToBottom=({target,detail:{type,index}})=>{if(!(type==="add"&&index===0)&&type!=="reset"){return}setTimeout((()=>{const e=target.firstElementChild;console.log(e);e===null||e===void 0?void 0:e.scrollIntoView(true)}),1)};_export("default",InfiniteRepeater=class InfiniteRepeater{});_a=InfiniteRepeater;InfiniteRepeater.pagedItems=start=>{const setter=start(0);const setters=pagedItemsSetter(Bind.oneWayAsync(setter));setters["event-more-items"]=Bind.event(((s,e)=>__awaiter(void 0,void 0,void 0,(function*(){var _b,_c;const st=(_c=(_b=s.items)===null||_b===void 0?void 0:_b.length)!==null&&_c!==void 0?_c:0;if(!st){return}const cancelToken=s[loadMoreSet];const loader=start(st);const results=yield loader(s,e.target,cancelToken);s.items.addAll(results.items);s.footer=results.items.length>0}))));return setters}}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/repeater/InfiniteRepeater");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/XNode","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/basic/PasswordBox","@web-atoms/core/dist/core/Bind","../../../common/validators/Validators","../../../common/controls/password/PasswordStrength","@web-atoms/core/dist/view-model/Action","../../../services/EntityService","@web-atoms/date-time/dist/DateTime","@web-atoms/web-controls/dist/basic/Checkbox"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,XNode,Form,FormField,PasswordBox,Bind,Validators,PasswordStrength,Action,EntityService,DateTime,Checkbox,EditUserPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistBasicPasswordBox){PasswordBox=_webAtomsWebControlsDistBasicPasswordBox.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_commonValidatorsValidators){Validators=_commonValidatorsValidators.Validators},function(_commonControlsPasswordPasswordStrength){PasswordStrength=_commonControlsPasswordPasswordStrength.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default}],execute:function(){_export("default",EditUserPage=class EditUserPage extends PopupWindowPage{constructor(){super(...arguments);this.password=""}init(){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){this.model=this.parameters;(_a=(_b=this.model).changePassword)!==null&&_a!==void 0?_a:_b.changePassword={newPassword:"",forceChangePasswordOnLogin:true};this.title=this.model.userID?`Reset Password for ${this.model.displayName} (${this.model.userID}, ${this.model.userName})`:"Add New User";this.renderer=XNode.create("div",null,XNode.create(Form,null,!this.model.userID&&XNode.create(FormField,{label:"Display Name"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.displayName))})),!this.model.userID&&XNode.create(FormField,{label:"Username"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.userName))})),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(FormField,{label:"Force Change Password"},XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.changePassword.forceChangePasswordOnLogin)),text:"Force user to change password on next login."})),XNode.create("div",{"data-layout":"command-row"},XNode.create("button",{"data-submit-event":"reset-password",text:"Save"}))))}))}resetPassword(){return __awaiter(this,void 0,void 0,(function*(){const entityService=this.resolve(EntityService);this.model.dateUpdated=DateTime.utcNow;const clone=entityService.cloner(this.model).include((x=>x.changePassword)).copy;yield entityService.save(clone)}))}});__decorate([Action({onEvent:"reset-password",success:"Information saved successfully.",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],EditUserPage.prototype,"resetPassword",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/EditUserPage");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/PageNavigator","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../model/model","./services/AdminUserService","@web-atoms/core/dist/core/InjectProperty","../../../common/controls/repeater/InfiniteRepeater","@web-atoms/core/dist/core/Bind","./EditUserPage"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,Action,PageNavigator,AtomRepeater,ContentPage,User,AdminUserService,InjectProperty,InfiniteRepeater,Bind,EditUserPage,UserListPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_modelModel){User=_modelModel.User},function(_servicesAdminUserService){AdminUserService=_servicesAdminUserService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_commonControlsRepeaterInfiniteRepeater){InfiniteRepeater=_commonControlsRepeaterInfiniteRepeater.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_EditUserPage){EditUserPage=_EditUserPage.default}],execute:function(){_export("default",UserListPage=class UserListPage extends ContentPage{constructor(){super(...arguments);this.users=[];this.version=0}init(){return __awaiter(this,void 0,void 0,(function*(){this.actionRenderer=()=>XNode.create("i",{"data-click-event":"add-user",class:"fas fa-plus"});this.titleRenderer=()=>XNode.create("div",{"data-layout":"row"},XNode.create("input",{placeholder:"Search Users",value:Bind.twoWaysImmediate((()=>this.search))}));this.search="";this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({for:"table",items:this.users},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.userService.list({start,search:this.search,cancelToken}))),{itemRenderer:user=>XNode.create("tr",null,XNode.create("td",null,user.userID),XNode.create("td",null,user.userName),XNode.create("td",null,user.displayName),XNode.create("td",null,XNode.create("i",{"data-cursor":"pointer",class:"fas fa-key",title:"Change Password","data-click-event":"user-change-password"})))})))}))}addDomain(){return __awaiter(this,void 0,void 0,(function*(){yield PageNavigator.pushPageForResult(EditUserPage,User.create({userName:"",displayName:"",changePassword:{forceChangePasswordOnLogin:true,newPassword:""}}));this.version++}))}userChangePassword(model){return __awaiter(this,void 0,void 0,(function*(){PageNavigator.pushPage(EditUserPage,model)}))}});__decorate([InjectProperty,__metadata("design:type",AdminUserService)],UserListPage.prototype,"userService",void 0);__decorate([Action({onEvent:"add-user"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],UserListPage.prototype,"addDomain",null);__decorate([Action({onEvent:"user-change-password"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],UserListPage.prototype,"userChangePassword",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/UserListPage");System.register(["tslib","@web-atoms/core/dist/di/DITransient","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../Sql"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DITransient,Inject,EntityService,Domain,Mailbox,Sql,MailboxService;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){Domain=_modelModel.Domain;Mailbox=_modelModel.Mailbox},function(_Sql){Sql=_Sql.Sql}],execute:function(){MailboxService=class MailboxService{domains(){return this.entityService.query(Domain).toArray()}list({search="",start=0,size=50,version=0,cancelToken}){let q=this.entityService.query(Mailbox);if(search){if(search.endsWith("@")){search=`${search}%`;q=q.where({search},(p=>x=>Sql.text.like(x.emailAddress.emailAddress,p.search)))}else if(search.startsWith("@")){search=`%${search}`;q=q.where({search},(p=>x=>Sql.text.like(x.emailAddress.emailAddress,p.search)))}else{if(!search.includes("%")){search=`%${search}%`}q=q.where({search},(p=>x=>Sql.text.like(x.emailAddress.emailAddress,p.search)||Sql.text.like(x.emailAddress.name,p.search)))}}return q.include((x=>x.emailAddress)).toPagedList({start,size,cancelToken})}save(model){return __awaiter(this,void 0,void 0,(function*(){if(model.name){model.name=model.name.trim()}if(model.username){model.username=model.username.trim()}const cloner=this.entityService.cloner(model);yield this.entityService.save(cloner.copy);return model}))}};__decorate([Inject,__metadata("design:type",EntityService)],MailboxService.prototype,"entityService",void 0);MailboxService=__decorate([DITransient()],MailboxService);_export("default",MailboxService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/mailboxes/services/MailboxService");System.register(["tslib","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/XNode","./AtomRepeater"],(function(_export,_context){"use strict";var __decorate,__metadata,BindableProperty,XNode,AtomRepeater,ComboBox;_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(_AtomRepeater){AtomRepeater=_AtomRepeater.default}],execute:function(){_export("default",ComboBox=class ComboBox extends AtomRepeater{constructor(app,e=document.createElement("select")){super(app,e);this.isChanging=false;this.selectedItems=[]}updateItems(container){var _a,_b;if(this.isChanging){return}super.updateItems(container);const selectedItems=this.selectedItems;if(!selectedItems){return}if(selectedItems.length===0){return}this.isChanging=true;const first=selectedItems[0];this.element.selectedIndex=(_b=(_a=this.items)===null||_a===void 0?void 0:_a.indexOf(first))!==null&&_b!==void 0?_b:-1;this.isChanging=false}updateClasses(){if(this.isChanging){return}super.updateClasses();this.updateItems()}preCreate(){super.preCreate();this.labelPath=item=>{var _a;return(_a=item===null||item===void 0?void 0:item.label)!==null&&_a!==void 0?_a:item.toString()};this.valuePath=item=>{var _a;return(_a=item===null||item===void 0?void 0:item.value)!==null&&_a!==void 0?_a:item.toString()};this.itemRenderer=item=>XNode.create("option",null,this.labelPath(item));this.bindEvent(this.element,"change",(()=>this.changeSelection()))}changeSelection(){if(this.isChanging){return}this.isChanging=true;const index=this.element.selectedIndex;if(index!==-1){const si=this.selectedItems;if(si){si.set(0,this.items[index])}}this.isChanging=false}});__decorate([BindableProperty,__metadata("design:type",Object)],ComboBox.prototype,"labelPath",void 0)}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/ComboBox");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../model/model","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","../../controls/form/RequiredFormField","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/basic/ComboBox","./services/MailboxService","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/view-model/Action","../../SocialMailApp"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,EmailAddress,Mailbox,XNode,Form,TextFormField,FormField,ComboBox,MailboxService,InjectProperty,Bind,Action,SocialMailApp,MailboxEditorPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_modelModel){EmailAddress=_modelModel.EmailAddress;Mailbox=_modelModel.Mailbox},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_controlsFormRequiredFormField){TextFormField=_controlsFormRequiredFormField.TextFormField},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistBasicComboBox){ComboBox=_webAtomsWebControlsDistBasicComboBox.default},function(_servicesMailboxService){MailboxService=_servicesMailboxService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_SocialMailApp){SocialMailApp=_SocialMailApp.default}],execute:function(){_export("default",MailboxEditorPage=class MailboxEditorPage extends PopupWindowPage{constructor(){super(...arguments);this.domain=null}init(){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){this.title="Add Mailbox";this.model=(_b=(_a=this.parameters)===null||_a===void 0?void 0:_a.model)!==null&&_b!==void 0?_b:Mailbox.create({emailAddress:EmailAddress.create({emailAddress:""}),maxStorage:1*1024*1024*1024});this.model.username="";const domains=yield this.mailboxService.domains();this.model.domain=domains[0];this.model.name=SocialMailApp.user.displayName;this.renderer=XNode.create("div",null,XNode.create(Form,{"data-submit-event":"save-mailbox"},XNode.create(TextFormField,{label:"Name",value:()=>this.model.name}),XNode.create(TextFormField,{label:"Email Prefix/Username",value:()=>this.model.username}),XNode.create(FormField,{label:"Domain"},XNode.create(ComboBox,{labelPath:item=>item===null||item===void 0?void 0:item.name,valuePath:item=>item===null||item===void 0?void 0:item.domainID,selectedItem:Bind.twoWaysImmediate((()=>this.model.domain)),items:domains})),XNode.create(FormField,{label:"Email Address"},XNode.create("span",{text:Bind.oneWay((()=>`${this.model.username}@${this.model.domain.domain}`))})),XNode.create("div",{"data-layout":"command-row"},XNode.create("button",{"data-type":"submit","data-layout":"accept-button",text:"Add"}))))}))}saveMailbox(){return __awaiter(this,void 0,void 0,(function*(){this.model.domainID=this.model.domain.domainID;yield this.mailboxService.save(this.model);return this.model}))}});__decorate([InjectProperty,__metadata("design:type",MailboxService)],MailboxEditorPage.prototype,"mailboxService",void 0);__decorate([Action({onEvent:"save-mailbox",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailboxEditorPage.prototype,"saveMailbox",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxEditorPage");System.register([],(function(_export,_context){"use strict";var k,m,b,kb,mb,gb,toCompactFixed,toKMBString,toFileSize,formatNumber;return{setters:[],execute:function(){k=1e3;m=k*k;b=m*k;kb=1024;mb=k*k;gb=m*k;_export("toCompactFixed",toCompactFixed=(n,decimals)=>{let text=n.toFixed(decimals);if(decimals>0){while(text.endsWith("0")){text=text.substring(0,text.length-1)}if(text.endsWith(".")){text=text.substring(0,text.length-1)}}return text});_export("toKMBString",toKMBString=(n,decimals=0,def="")=>{if(!n){return def+""}if(n>b){return toCompactFixed(n/b,decimals)+"B"}if(n>m){return toCompactFixed(n/m,decimals)+"M"}if(n>k){return toCompactFixed(n/k,decimals)+"K"}return toCompactFixed(n,0)});_export("toFileSize",toFileSize=(n,decimals=0,def="")=>{n=Number(n);if(n===0){return"0 B"}if(!n){return def+""}if(n>gb){return toCompactFixed(n/gb,decimals)+" GB"}if(n>mb){return toCompactFixed(n/mb,decimals)+" MB"}if(n>kb){return toCompactFixed(n/kb,decimals)+" KB"}return toCompactFixed(n,0)});_export("formatNumber",formatNumber=(n,{prefix="",suffix="",def="",numberToText=toKMBString}={})=>{if(!n){return def}const text=numberToText(n);return prefix+text+suffix})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/NumberFormats");System.register(["tslib","@web-atoms/core/dist/di/DISingleton","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../../common/Sql"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DISingleton,Inject,EntityService,Mailbox,MailboxThread,Sql,MailService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){Mailbox=_modelModel.Mailbox;MailboxThread=_modelModel.MailboxThread},function(_commonSql){Sql=_commonSql.Sql}],execute:function(){MailService=class MailService{mailboxes(){return __awaiter(this,void 0,void 0,(function*(){return this.entityService.query(Mailbox).include((x=>x.emailAddress)).toArray()}))}list({search="",mailboxID,start=0,size=100,version=1,cancelToken}){return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(MailboxThread).where({mailboxID},(p=>x=>x.mailboxID===p.mailboxID)).orderByDescending((x=>x.lastEmailID));if(search){const likeSearch=`%${search}%`;q=q.where({search,likeSearch},(p=>x=>x.emailAddress.emailAddress===p.search||Sql.text.like(x.lastEmail.textBody,p.likeSearch)))}return q.include((x=>[x.emailAddress,x.lastEmail.recipients,x.lastEmail.attachments])).toPagedList({start,size,cancelToken})}))}send(email){return __awaiter(this,void 0,void 0,(function*(){for(const iterator of email.recipients){if(iterator.emailAddressText){iterator.emailAddressText=iterator.emailAddressText.trim()}}const cloner=this.entityService.cloner(email).include((x=>x.recipients)).include((x=>x.attachments)).copy;yield this.entityService.save(cloner)}))}};__decorate([Inject,__metadata("design:type",EntityService)],MailService.prototype,"entityService",void 0);MailService=__decorate([DISingleton()],MailService);_export("default",MailService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/service/MailService");System.register(["@web-atoms/core/dist/style/styled","../PageNavigator","./MobileApp","@web-atoms/core/dist/web/core/AtomUI","../basic/AtomRepeater"],(function(_export,_context){"use strict";var styled,PageNavigator,ContentPage,isMobileView,descendentElementIterator,AtomRepeater,MasterDetailPage,findItem;_export("default",void 0);return{setters:[function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_PageNavigator){PageNavigator=_PageNavigator.default},function(_MobileApp){ContentPage=_MobileApp.ContentPage;isMobileView=_MobileApp.isMobileView},function(_webAtomsCoreDistWebCoreAtomUI){descendentElementIterator=_webAtomsCoreDistWebCoreAtomUI.descendentElementIterator},function(_basicAtomRepeater){AtomRepeater=_basicAtomRepeater.default}],execute:function(){styled.css`
|
|
1149
1149
|
& > [data-page-element=content] {
|
|
1150
1150
|
display: grid;
|
|
1151
1151
|
& > * {
|
|
@@ -1318,7 +1318,7 @@ body {
|
|
|
1318
1318
|
min-height: 500px;
|
|
1319
1319
|
min-width: 700px;
|
|
1320
1320
|
}
|
|
1321
|
-
`.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 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;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"}=_a,others=__rest(_a,["uploadEvent","accept","capture","multiple","forceType","maxSize","extra","upload","authorize","ariaLabel"]);return Object.assign(Object.assign({},others),{"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`
|
|
1321
|
+
`.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`
|
|
1322
1322
|
display: inline-grid;
|
|
1323
1323
|
grid-template-rows: auto auto;
|
|
1324
1324
|
grid-template-columns: auto 1fr auto;
|
|
@@ -1346,7 +1346,7 @@ body {
|
|
|
1346
1346
|
grid-row: 1;
|
|
1347
1347
|
grid-column: 3;
|
|
1348
1348
|
}
|
|
1349
|
-
`.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){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";if(extra){if(typeof extra==="string"){extra=JSON.parse(extra)}const s=new URLSearchParams;for(const key in extra){if(Object.prototype.hasOwnProperty.call(extra,key)){const element=extra[key];s.append(key,element)}}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;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,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,"event-files-available":onAttachImage})),XNode.create("i",{class:"ri-image-add-fill"}))}function InlineHtmlEditorWithToolbar(a){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,null),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>`)}));_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`
|
|
1349
|
+
`.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){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];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;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,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,"event-files-available":onAttachImage})),XNode.create("i",{class:"ri-image-add-fill"}))}function InlineHtmlEditorWithToolbar(a){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,null),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>`)}));_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`
|
|
1350
1350
|
display: inline-grid;
|
|
1351
1351
|
grid-template-rows: 1fr auto;
|
|
1352
1352
|
grid-template-columns: 1fr 40px;
|