@social-mail/social-mail-client 1.2.292 → 1.2.293

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.
@@ -4564,7 +4564,7 @@ display: grid;
4564
4564
  z-index: 50;
4565
4565
  }
4566
4566
  }
4567
- `.installGlobal("[data-html-page-editor=html-page-editor]");desktopWidth=992;tabletWidth=768;mobileWidth=480;_export("default",HtmlPageEditor=class HtmlPageEditor extends AtomControl{get htmlPage(){var _a,_b;return(_b=(_a=this.htmlDocument)===null||_a===void 0?void 0:_a.documentElement)===null||_b===void 0?void 0:_b.outerHTML}set htmlPage(v){if(!this.element){return}if(!this.ready){setTimeout((()=>{this.htmlPage=v}),100);return}void this.ready.then((()=>{var _a;const dom=new DOMParser;const doc=dom.parseFromString(v,"text/html");let baseElement=doc.querySelector("base");if((_a=baseElement===null||baseElement===void 0?void 0:baseElement.getAttribute("href"))===null||_a===void 0?void 0:_a.startsWith("/api/site/")){baseElement.remove();baseElement=null}if(baseElement){const href=baseElement.getAttribute("href");if(href!==this.baseUrl){this.originalBaseUrl=href;baseElement.setAttribute("href",this.baseUrl)}}else{baseElement=doc.createElement("base");baseElement.setAttribute("href",this.baseUrl);doc.head.insertAdjacentElement("afterbegin",baseElement)}return this.initDocument(doc.documentElement.outerHTML)}))}constructor(app,e){super(app,e);this.selection=new SelectedElement(this);this.undoList=[];this.redoList=[];this.pageVariables=[];this.hover=new SelectedElement(this);this.dropTarget=new SelectedElement(this);this.maxWidth=desktopWidth;this.ready=this.init()}init(){return __awaiter(this,void 0,void 0,(function*(){this.render(XNode.create("div",{"data-html-page-editor":"html-page-editor"},XNode.create("div",{"data-element":"top"},XNode.create(EditorToolbar,{"data-element":"max-width","event-click":()=>this.deferUpdate()},XNode.create("i",{"data-selected":Bind.oneWay((()=>this.maxWidth===desktopWidth)),"event-click":()=>this.maxWidth=desktopWidth,class:"fas fa-desktop"}),XNode.create("i",{"data-selected":Bind.oneWay((()=>this.maxWidth===tabletWidth)),"event-click":()=>this.maxWidth=tabletWidth,class:"fas fa-tablet-screen"}),XNode.create("i",{"data-selected":Bind.oneWay((()=>this.maxWidth===mobileWidth)),"event-click":()=>this.maxWidth=mobileWidth,class:"fas fa-mobile-screen"})),XNode.create(UndoRedoToolbar,null),XNode.create(EditorToolbar,null,XNode.create("i",{"data-click-event":"edit-code",class:"fa-solid fa-code"}))),XNode.create(EditorToolbar,{"data-element":"left"},XNode.create(TextBox,null),XNode.create(Image,null),XNode.create(WrapGrid,null),XNode.create(ImageBox,null),XNode.create(RightImageBox,null),XNode.create(Card,null),XNode.create(ImageCard,null),XNode.create(ColumnBox,null),XNode.create(Columns2,null),XNode.create(Columns3,null),XNode.create(List,null),XNode.create(ImageLink,null),XNode.create(LinkButton,null),XNode.create(InlinePopupButton,{icon:"fas fa-plus","data-layout":"warning-icon-button",alignment:"above",popup:()=>XNode.create(EditorToolbar,null,XNode.create(RowBox,null),XNode.create(VerticalImageBox,null),XNode.create(PriceTable,null),XNode.create(TypeWriterComponent,null),XNode.create(Billboard,null),XNode.create(OutlineText,null),XNode.create(Carousel,null),XNode.create(BlogComponent,null),XNode.create(BoxFrame,null),XNode.create(VideoPlayer,null),XNode.create(BackgroundVideo,null),XNode.create(TextMask,null),XNode.create(InjectBox,null),XNode.create(ImageGrid,null),XNode.create(ImageGallery,null),XNode.create(MarqueeText,null))})),XNode.create("div",{"data-element":"editor","style-max-width":Bind.oneWay((()=>this.maxWidth>768?"":this.maxWidth+"px"))},XNode.create("div",{"data-element":"resizer"}),XNode.create("div",{"data-element":"drop-target","style-display":Bind.oneWay((()=>this.dropTarget.element?"":"none")),"style-position":"absolute","style-left":Bind.oneWay((()=>this.dropTarget.left)),"style-top":Bind.oneWay((()=>this.dropTarget.top)),"style-width":Bind.oneWay((()=>this.dropTarget.width)),"style-height":Bind.oneWay((()=>this.dropTarget.height))}),XNode.create("div",{"data-element":"selection","style-left":Bind.oneWay((()=>this.selection.left)),"style-top":Bind.oneWay((()=>this.selection.top)),"style-width":Bind.oneWay((()=>this.selection.width)),"style-height":Bind.oneWay((()=>this.selection.height))},XNode.create("div",null,XNode.create("i",{class:"fa-regular fa-arrow-up","event-click":()=>{if(this.selection.element.parentElement!==this.htmlDocument.body){this.selection.update(this.selection.element.parentElement)}}}),XNode.create("i",{"event-click":()=>{this.selection.element.draggable=true},class:"fa-solid fa-up-down-left-right","data-click-event":"start-drag"}),XNode.create("i",{"style-display":Bind.oneWay((()=>this.selection.isImage)),"data-click-event":"change-image",title:"Change Image (Double Click)",class:"fa-solid fa-arrows-rotate-reverse"}),XNode.create("i",{title:"Duplicate","data-click-event":"copy-element",class:"fas fa-copy"}),XNode.create("i",{title:"Move Up","data-click-event":"move-up-element",class:"fa-duotone fa-angles-up"}),XNode.create("i",{title:"Move Down","data-click-event":"move-down-element",class:"fa-duotone fa-angles-down"}),XNode.create("i",{title:"Extract Fragment","data-click-event":"extract-element",class:"fad fa-file-export"}),XNode.create("i",{title:"Delete","data-click-event":"delete-element",class:"fas fa-trash-can"}))),XNode.create("div",{"data-element":"hover","style-left":Bind.oneWay((()=>this.hover.left)),"style-top":Bind.oneWay((()=>this.hover.top)),"style-width":Bind.oneWay((()=>this.hover.width)),"style-height":Bind.oneWay((()=>this.hover.height))},XNode.create("label",{text:Bind.oneWay((()=>this.hover.name))})),XNode.create("div",{"data-element":"content-frame"},XNode.create("iframe",{"data-element":"content-editor",sandbox:"allow-same-origin "}))),XNode.create("div",{"data-element":"right"},XNode.create("button",{"data-click-event":"open-variables","data-layout":"icon-button"},XNode.create("i",{class:"fas fa-code"}),"Variables"),XNode.create(Properties,null))));this.contentEditor=this.element.querySelector(`[data-element="content-editor"]`)}))}buildXNode(node){const build=n=>{const e=this.htmlDocument.createElement(n.name);if(n.attributes){for(const key in n.attributes){if(Object.prototype.hasOwnProperty.call(n.attributes,key)){const element=n.attributes[key];e.setAttribute(key,element)}}}if(n.children){for(const iterator of n.children){if(typeof iterator==="string"){e.append(iterator);continue}e.appendChild(build(iterator))}}return e};return build(node)}deleteElement(){var _a;return __awaiter(this,void 0,void 0,(function*(){const current=this.selection.element;let previous=(_a=current.previousElementSibling)!==null&&_a!==void 0?_a:current.parentElement;current.remove();this.commit();if(!previous.textContent){previous=previous.previousElementSibling.lastElementChild}this.setSelection(previous);yield sleep(100);this.selection.update()}))}copyElement(){const current=this.selection.element;const copy=current.cloneNode(true);for(const iterator of descendentElementIterator(copy)){if(iterator.id){iterator.id=`sm-${Date.now()}`}}current.insertAdjacentElement("afterend",copy);this.commit()}moveUpElement(){const current=this.selection.element;const prevSibling=current.previousElementSibling;if(!prevSibling){return}current.remove();prevSibling.insertAdjacentElement("beforebegin",current);this.commit()}moveDownElement(){const current=this.selection.element;const nextSibling=current.nextElementSibling;if(!nextSibling){return}current.remove();nextSibling.insertAdjacentElement("afterend",current);this.commit()}changeImage(){return __awaiter(this,void 0,void 0,(function*(){return this.insertImage({src:prompt("Image Src","")})}))}extractElement(){return __awaiter(this,void 0,void 0,(function*(){alert("Not implemented")}))}onKeyUp(d,ke){if(ke.ctrlKey){switch(ke.key){case"z":ke.preventDefault();this.undo();break;case"y":ke.preventDefault();this.redo();break}}}insertImage(...images){var _a;return __awaiter(this,void 0,void 0,(function*(){let img=((_a=this.selection)===null||_a===void 0?void 0:_a.isImage)?this.selection.element:null;const container=img?img.parentElement:this.selection.element;for(let _b of images){const{src,style}=_b,a=__rest(_b,["src","style"]);if(!img){img=this.htmlDocument.createElement("img");container.appendChild(img);container.appendChild(document.createTextNode("\n"))}img.src=src;const i=img;img.onload=()=>{this.selection.update();i.onload=null};if(style){for(const key in style){if(Object.prototype.hasOwnProperty.call(style,key)){const element=style[key];img.style[key]=element}}}if(a){for(const key in a){if(Object.prototype.hasOwnProperty.call(a,key)){const element=a[key];img.setAttribute(key,element)}}}img=null}this.commit()}))}insertElement(e,parent=this.selection.element,preferMain=false){if(preferMain){while(parent.parentElement!==this.htmlDocument.body){parent=parent.parentElement}}parent.appendChild(e);if(!e.id){e.id="sm-"+Date.now().toString()}setTimeout((()=>{this.setSelection(e);this.commit()}),100)}deferUpdate(){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){yield sleep(100);(_a=this.hover)===null||_a===void 0?void 0:_a.update();(_b=this.selection)===null||_b===void 0?void 0:_b.update()}))}setSelection(element,commit=true){var _a;const old=(_a=this.selection)===null||_a===void 0?void 0:_a.element;if(old){old.draggable=false}this.selection.update(element);if(commit){this.commit()}}commit(){var _a;this.redoList.clear();const lastHtml=this.lastHtml;const clone=this.htmlDocument.documentElement.cloneNode(true);const body=clone.querySelector("body");body.removeAttribute("contentEditable");body.removeAttribute("editing");const all=clone.querySelectorAll("*");const deleteAll=[];for(let index=0;index<all.length;index++){const element=all[index];element.removeAttribute("draggable");if(element.tagName==="INJECT"){deleteAll.push(element)}}for(const iterator of deleteAll){iterator.innerHTML=""}if(clone.querySelector(`[styler-layout="component"]`)){let componentScript=clone.querySelector("[styler-component-script]");if(!componentScript){componentScript=this.htmlDocument.createElement("script");const head=clone.querySelector("head");head.appendChild(componentScript)}componentScript.src=UMD.resolvePath("@social-mail/social-mail-client/component.js");componentScript.setAttribute("styler-component-script","component-script")}const currentHtml=clone.innerHTML;if(!lastHtml){this.lastHtml=currentHtml;return}if(lastHtml===currentHtml){return}this.undoList.add(this.lastHtml);this.lastHtml=currentHtml;if(this.baseUrl){if(!this.originalBaseUrl){(_a=clone.querySelector("base"))===null||_a===void 0?void 0:_a.remove()}else{const baseUrl=clone.querySelector("base");if(baseUrl){baseUrl.setAttribute("href",this.originalBaseUrl)}}}this.lastCommittedHtml=clone.outerHTML;this.lastCommittedBody=body.innerHTML;this.element.dispatchEvent(new CustomEvent("htmlPageChanged",{detail:clone.outerHTML,bubbles:true}));AtomBinder.refreshValue(this,"htmlPage");setTimeout((()=>{this.selection.update();this.hover.update()}),100)}undo(){this.redoList.insert(this.redoList.length,this.htmlDocument.documentElement.innerHTML);this.htmlDocument.documentElement.innerHTML=this.undoList.removeAt(this.undoList.length-1);this.htmlDocument.body.contentEditable="true";this.htmlDocument.body.setAttribute("editing","true")}redo(){this.undoList.insert(this.undoList.length,this.htmlDocument.documentElement.innerHTML);this.htmlDocument.documentElement.innerHTML=this.redoList.removeAt(this.redoList.length-1);this.htmlDocument.body.contentEditable="true";this.htmlDocument.body.setAttribute("editing","true")}initDocument(v){void this.ready.then((()=>__awaiter(this,void 0,void 0,(function*(){this.htmlDocument=void 0;yield this.loadContentDocument();this.htmlDocument.open();this.htmlDocument.write(v);this.htmlDocument.addEventListener("click",(e=>{const target=e.target;const previous=this.selection.element;if(previous===null||previous===void 0?void 0:previous.isContentEditable){let start=target;while(start){if(previous===target){return}start=start.parentElement}if(previous!==this.htmlDocument.body){previous.removeAttribute("contentEditable")}this.commit()}e.preventDefault();this.setSelection(target)}));this.htmlDocument.addEventListener("dblclick",(e=>{const target=e.target;e.preventDefault();const element=target.nodeType===Node.ELEMENT_NODE?target:target.parentElement;if(/^(IMG|INJECT|VIDEO)$/.test(element.tagName)){this.changeImage().catch(console.error);return}if(element.getAttribute("data-editable")==="false"){return}if(element.hasAttribute("data-web-atoms-view")){return}this.setSelection(element)}));this.htmlDocument.addEventListener("scroll",(e=>{this.hover.update();this.selection.update()}),{passive:true});this.htmlDocument.addEventListener("pointerover",(e=>{let target=e.target;target=target.nodeType===Node.ELEMENT_NODE&&target.tagName?target:target.parentElement;if(this.hover.element===target){return}this.hover.update(target)}),{capture:true});this.htmlDocument.addEventListener("keydown",(e=>{if(e.ctrlKey||e.metaKey){switch(e.key){case"s":this.contentEditor.dispatchEvent(new CustomEvent("savePage",{bubbles:true}));e.preventDefault();break;case"z":this.contentEditor.dispatchEvent(new CustomEvent("undo",{bubbles:true}));e.preventDefault();break;case"y":this.contentEditor.dispatchEvent(new CustomEvent("redo",{bubbles:true}));e.preventDefault();break}}}));InstallDragDropHelper(this);this.htmlDocument.close();this.htmlDocument.body.contentEditable="true";this.htmlDocument.body.setAttribute("editing","true");setTimeout((()=>{this.app.runAsync((()=>__awaiter(this,void 0,void 0,(function*(){yield this.setStylerSheet();this.loadVariables();this.commit()}))))}),10)}))))}setStylerSheet(){return __awaiter(this,void 0,void 0,(function*(){const document=this.htmlDocument;let style=document.querySelector(`[styler-style-sheet]`);if(!style){style=document.createElement("style");style.setAttribute("styler-style-sheet","inline");document.head.appendChild(style)}style.textContent=StylerSet.instance.toString()}))}loadVariables(){const onChange=()=>{const document=this.htmlDocument;let style=document.querySelector("[styler-style-variables]");if(!style){style=document.createElement("style");style.setAttribute("styler-style-variables","override");document.head.appendChild(style)}style.textContent=`:root {\n ${this.pageVariables.map((x=>`${x.propertyName}: ${x.currentValue};`)).join("\n\t")}\n }`};this.pageVariables=StylerSet.instance.vars.map((x=>new StylerVariable(x.name,x.value,this.htmlDocument,onChange)))}loadContentDocument(){return __awaiter(this,void 0,void 0,(function*(){this.contentEditor=this.element.querySelector(`[data-element="content-editor"]`);while(!this.htmlDocument){this.htmlDocument=this.contentEditor.contentDocument;yield sleep(100)}}))}});__decorate([BindableProperty,__metadata("design:type",String)],HtmlPageEditor.prototype,"baseUrl",void 0);__decorate([Action({onEvent:"delete-element"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],HtmlPageEditor.prototype,"deleteElement",null);__decorate([Action({onEvent:"copy-element",blockMultipleExecution:false}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",void 0)],HtmlPageEditor.prototype,"copyElement",null);__decorate([Action({onEvent:"move-up-element",blockMultipleExecution:false}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",void 0)],HtmlPageEditor.prototype,"moveUpElement",null);__decorate([Action({onEvent:"move-down-element",blockMultipleExecution:false}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",void 0)],HtmlPageEditor.prototype,"moveDownElement",null);__decorate([Action({onEvent:"change-image"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],HtmlPageEditor.prototype,"changeImage",null);__decorate([Action({onEvent:"extract-element"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],HtmlPageEditor.prototype,"extractElement",null);__decorate([Action({onEvent:"keyup"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object,KeyboardEvent]),__metadata("design:returntype",void 0)],HtmlPageEditor.prototype,"onKeyUp",null);__decorate([Action({onEvent:"undo"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",void 0)],HtmlPageEditor.prototype,"undo",null);__decorate([Action({onEvent:"redo"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",void 0)],HtmlPageEditor.prototype,"redo",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/site-editor/editor/HtmlPageEditor");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/XNode","../../../../common/controls/tree/FileTreeView","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/InjectProperty","../service/CloudFileService","@web-atoms/core/dist/style/styled","../../../../common/controls/drag-drop/FilesDragDrop","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/basic/UploadEvent","../../../../common/controls/buttons/IconButton","../../../../common/apiPath"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,XNode,FolderTreeView,AtomRepeater,SelectAll,SelectorCheckBox,Bind,InjectProperty,CloudFileService,styled,FilesDragDrop,Action,UploadEvent,SaveIconTextButton,apiPath,ChooseMediaPage,css;_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(_commonControlsTreeFileTreeView){FolderTreeView=_commonControlsTreeFileTreeView.FolderTreeView},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default;SelectAll=_webAtomsWebControlsDistBasicAtomRepeater.SelectAll;SelectorCheckBox=_webAtomsWebControlsDistBasicAtomRepeater.SelectorCheckBox},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_serviceCloudFileService){CloudFileService=_serviceCloudFileService.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_commonControlsDragDropFilesDragDrop){FilesDragDrop=_commonControlsDragDropFilesDragDrop.FilesDragDrop},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistBasicUploadEvent){UploadEvent=_webAtomsWebControlsDistBasicUploadEvent.default},function(_commonControlsButtonsIconButton){SaveIconTextButton=_commonControlsButtonsIconButton.SaveIconTextButton},function(_commonApiPath){apiPath=_commonApiPath.apiPath}],execute:function(){css=styled.css`
4567
+ `.installGlobal("[data-html-page-editor=html-page-editor]");desktopWidth=992;tabletWidth=768;mobileWidth=480;_export("default",HtmlPageEditor=class HtmlPageEditor extends AtomControl{get htmlPage(){var _a,_b,_c;return(_a=this.lastCommittedHtml)!==null&&_a!==void 0?_a:(_c=(_b=this.htmlDocument)===null||_b===void 0?void 0:_b.documentElement)===null||_c===void 0?void 0:_c.outerHTML}set htmlPage(v){if(!this.element){return}if(!this.ready){setTimeout((()=>{this.htmlPage=v}),100);return}void this.ready.then((()=>{var _a;const dom=new DOMParser;const doc=dom.parseFromString(v,"text/html");let baseElement=doc.querySelector("base");if((_a=baseElement===null||baseElement===void 0?void 0:baseElement.getAttribute("href"))===null||_a===void 0?void 0:_a.startsWith("/api/site/")){baseElement.remove();baseElement=null}if(baseElement){const href=baseElement.getAttribute("href");if(href!==this.baseUrl){this.originalBaseUrl=href;baseElement.setAttribute("href",this.baseUrl)}}else{baseElement=doc.createElement("base");baseElement.setAttribute("href",this.baseUrl);doc.head.insertAdjacentElement("afterbegin",baseElement)}return this.initDocument(doc.documentElement.outerHTML)}))}constructor(app,e){super(app,e);this.selection=new SelectedElement(this);this.undoList=[];this.redoList=[];this.pageVariables=[];this.lastCommittedHtml=null;this.lastCommittedBody=null;this.hover=new SelectedElement(this);this.dropTarget=new SelectedElement(this);this.maxWidth=desktopWidth;this.ready=this.init()}init(){return __awaiter(this,void 0,void 0,(function*(){this.render(XNode.create("div",{"data-html-page-editor":"html-page-editor"},XNode.create("div",{"data-element":"top"},XNode.create(EditorToolbar,{"data-element":"max-width","event-click":()=>this.deferUpdate()},XNode.create("i",{"data-selected":Bind.oneWay((()=>this.maxWidth===desktopWidth)),"event-click":()=>this.maxWidth=desktopWidth,class:"fas fa-desktop"}),XNode.create("i",{"data-selected":Bind.oneWay((()=>this.maxWidth===tabletWidth)),"event-click":()=>this.maxWidth=tabletWidth,class:"fas fa-tablet-screen"}),XNode.create("i",{"data-selected":Bind.oneWay((()=>this.maxWidth===mobileWidth)),"event-click":()=>this.maxWidth=mobileWidth,class:"fas fa-mobile-screen"})),XNode.create(UndoRedoToolbar,null),XNode.create(EditorToolbar,null,XNode.create("i",{"data-click-event":"edit-code",class:"fa-solid fa-code"}))),XNode.create(EditorToolbar,{"data-element":"left"},XNode.create(TextBox,null),XNode.create(Image,null),XNode.create(WrapGrid,null),XNode.create(ImageBox,null),XNode.create(RightImageBox,null),XNode.create(Card,null),XNode.create(ImageCard,null),XNode.create(ColumnBox,null),XNode.create(Columns2,null),XNode.create(Columns3,null),XNode.create(List,null),XNode.create(ImageLink,null),XNode.create(LinkButton,null),XNode.create(InlinePopupButton,{icon:"fas fa-plus","data-layout":"warning-icon-button",alignment:"above",popup:()=>XNode.create(EditorToolbar,null,XNode.create(RowBox,null),XNode.create(VerticalImageBox,null),XNode.create(PriceTable,null),XNode.create(TypeWriterComponent,null),XNode.create(Billboard,null),XNode.create(OutlineText,null),XNode.create(Carousel,null),XNode.create(BlogComponent,null),XNode.create(BoxFrame,null),XNode.create(VideoPlayer,null),XNode.create(BackgroundVideo,null),XNode.create(TextMask,null),XNode.create(InjectBox,null),XNode.create(ImageGrid,null),XNode.create(ImageGallery,null),XNode.create(MarqueeText,null))})),XNode.create("div",{"data-element":"editor","style-max-width":Bind.oneWay((()=>this.maxWidth>768?"":this.maxWidth+"px"))},XNode.create("div",{"data-element":"resizer"}),XNode.create("div",{"data-element":"drop-target","style-display":Bind.oneWay((()=>this.dropTarget.element?"":"none")),"style-position":"absolute","style-left":Bind.oneWay((()=>this.dropTarget.left)),"style-top":Bind.oneWay((()=>this.dropTarget.top)),"style-width":Bind.oneWay((()=>this.dropTarget.width)),"style-height":Bind.oneWay((()=>this.dropTarget.height))}),XNode.create("div",{"data-element":"selection","style-left":Bind.oneWay((()=>this.selection.left)),"style-top":Bind.oneWay((()=>this.selection.top)),"style-width":Bind.oneWay((()=>this.selection.width)),"style-height":Bind.oneWay((()=>this.selection.height))},XNode.create("div",null,XNode.create("i",{class:"fa-regular fa-arrow-up","event-click":()=>{if(this.selection.element.parentElement!==this.htmlDocument.body){this.selection.update(this.selection.element.parentElement)}}}),XNode.create("i",{"event-click":()=>{this.selection.element.draggable=true},class:"fa-solid fa-up-down-left-right","data-click-event":"start-drag"}),XNode.create("i",{"style-display":Bind.oneWay((()=>this.selection.isImage)),"data-click-event":"change-image",title:"Change Image (Double Click)",class:"fa-solid fa-arrows-rotate-reverse"}),XNode.create("i",{title:"Duplicate","data-click-event":"copy-element",class:"fas fa-copy"}),XNode.create("i",{title:"Move Up","data-click-event":"move-up-element",class:"fa-duotone fa-angles-up"}),XNode.create("i",{title:"Move Down","data-click-event":"move-down-element",class:"fa-duotone fa-angles-down"}),XNode.create("i",{title:"Extract Fragment","data-click-event":"extract-element",class:"fad fa-file-export"}),XNode.create("i",{title:"Delete","data-click-event":"delete-element",class:"fas fa-trash-can"}))),XNode.create("div",{"data-element":"hover","style-left":Bind.oneWay((()=>this.hover.left)),"style-top":Bind.oneWay((()=>this.hover.top)),"style-width":Bind.oneWay((()=>this.hover.width)),"style-height":Bind.oneWay((()=>this.hover.height))},XNode.create("label",{text:Bind.oneWay((()=>this.hover.name))})),XNode.create("div",{"data-element":"content-frame"},XNode.create("iframe",{"data-element":"content-editor",sandbox:"allow-same-origin "}))),XNode.create("div",{"data-element":"right"},XNode.create("button",{"data-click-event":"open-variables","data-layout":"icon-button"},XNode.create("i",{class:"fas fa-code"}),"Variables"),XNode.create(Properties,null))));this.contentEditor=this.element.querySelector(`[data-element="content-editor"]`)}))}buildXNode(node){const build=n=>{const e=this.htmlDocument.createElement(n.name);if(n.attributes){for(const key in n.attributes){if(Object.prototype.hasOwnProperty.call(n.attributes,key)){const element=n.attributes[key];e.setAttribute(key,element)}}}if(n.children){for(const iterator of n.children){if(typeof iterator==="string"){e.append(iterator);continue}e.appendChild(build(iterator))}}return e};return build(node)}deleteElement(){var _a;return __awaiter(this,void 0,void 0,(function*(){const current=this.selection.element;let previous=(_a=current.previousElementSibling)!==null&&_a!==void 0?_a:current.parentElement;current.remove();this.commit();if(!previous.textContent){previous=previous.previousElementSibling.lastElementChild}this.setSelection(previous);yield sleep(100);this.selection.update()}))}copyElement(){const current=this.selection.element;const copy=current.cloneNode(true);for(const iterator of descendentElementIterator(copy)){if(iterator.id){iterator.id=`sm-${Date.now()}`}}current.insertAdjacentElement("afterend",copy);this.commit()}moveUpElement(){const current=this.selection.element;const prevSibling=current.previousElementSibling;if(!prevSibling){return}current.remove();prevSibling.insertAdjacentElement("beforebegin",current);this.commit()}moveDownElement(){const current=this.selection.element;const nextSibling=current.nextElementSibling;if(!nextSibling){return}current.remove();nextSibling.insertAdjacentElement("afterend",current);this.commit()}changeImage(){return __awaiter(this,void 0,void 0,(function*(){return this.insertImage({src:prompt("Image Src","")})}))}extractElement(){return __awaiter(this,void 0,void 0,(function*(){alert("Not implemented")}))}onKeyUp(d,ke){if(ke.ctrlKey){switch(ke.key){case"z":ke.preventDefault();this.undo();break;case"y":ke.preventDefault();this.redo();break}}}insertImage(...images){var _a;return __awaiter(this,void 0,void 0,(function*(){let img=((_a=this.selection)===null||_a===void 0?void 0:_a.isImage)?this.selection.element:null;const container=img?img.parentElement:this.selection.element;for(let _b of images){const{src,style}=_b,a=__rest(_b,["src","style"]);if(!img){img=this.htmlDocument.createElement("img");container.appendChild(img);container.appendChild(document.createTextNode("\n"))}img.src=src;const i=img;img.onload=()=>{this.selection.update();i.onload=null};if(style){for(const key in style){if(Object.prototype.hasOwnProperty.call(style,key)){const element=style[key];img.style[key]=element}}}if(a){for(const key in a){if(Object.prototype.hasOwnProperty.call(a,key)){const element=a[key];img.setAttribute(key,element)}}}img=null}this.commit()}))}insertElement(e,parent=this.selection.element,preferMain=false){if(preferMain){while(parent.parentElement!==this.htmlDocument.body){parent=parent.parentElement}}parent.appendChild(e);if(!e.id){e.id="sm-"+Date.now().toString()}setTimeout((()=>{this.setSelection(e);this.commit()}),100)}deferUpdate(){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){yield sleep(100);(_a=this.hover)===null||_a===void 0?void 0:_a.update();(_b=this.selection)===null||_b===void 0?void 0:_b.update()}))}setSelection(element,commit=true){var _a;const old=(_a=this.selection)===null||_a===void 0?void 0:_a.element;if(old){old.draggable=false}this.selection.update(element);if(commit){this.commit()}}commit(){var _a;this.redoList.clear();const lastHtml=this.lastHtml;const clone=this.htmlDocument.documentElement.cloneNode(true);const body=clone.querySelector("body");body.removeAttribute("contentEditable");body.removeAttribute("editing");const all=clone.querySelectorAll("*");const deleteAll=[];for(let index=0;index<all.length;index++){const element=all[index];element.removeAttribute("draggable");if(element.tagName==="INJECT"){deleteAll.push(element)}}for(const iterator of deleteAll){iterator.innerHTML=""}if(clone.querySelector(`[styler-layout="component"]`)){let componentScript=clone.querySelector("[styler-component-script]");if(!componentScript){componentScript=this.htmlDocument.createElement("script");const head=clone.querySelector("head");head.appendChild(componentScript)}componentScript.src=UMD.resolvePath("@social-mail/social-mail-client/component.js");componentScript.setAttribute("styler-component-script","component-script")}if(this.baseUrl){if(!this.originalBaseUrl){(_a=clone.querySelector("base"))===null||_a===void 0?void 0:_a.remove()}else{const baseUrl=clone.querySelector("base");if(baseUrl){baseUrl.setAttribute("href",this.originalBaseUrl)}}}const currentHtml=clone.innerHTML;if(!lastHtml){this.lastHtml=currentHtml;this.lastCommittedHtml=clone.outerHTML;this.lastCommittedBody=body.innerHTML;return}if(lastHtml===currentHtml){return}this.undoList.add(this.lastHtml);this.lastHtml=currentHtml;this.lastCommittedHtml=clone.outerHTML;this.lastCommittedBody=body.innerHTML;this.element.dispatchEvent(new CustomEvent("htmlPageChanged",{detail:clone.outerHTML,bubbles:true}));AtomBinder.refreshValue(this,"htmlPage");setTimeout((()=>{this.selection.update();this.hover.update()}),100)}undo(){this.redoList.insert(this.redoList.length,this.htmlDocument.documentElement.innerHTML);this.htmlDocument.documentElement.innerHTML=this.undoList.removeAt(this.undoList.length-1);this.htmlDocument.body.contentEditable="true";this.htmlDocument.body.setAttribute("editing","true")}redo(){this.undoList.insert(this.undoList.length,this.htmlDocument.documentElement.innerHTML);this.htmlDocument.documentElement.innerHTML=this.redoList.removeAt(this.redoList.length-1);this.htmlDocument.body.contentEditable="true";this.htmlDocument.body.setAttribute("editing","true")}initDocument(v){void this.ready.then((()=>__awaiter(this,void 0,void 0,(function*(){this.htmlDocument=void 0;yield this.loadContentDocument();this.htmlDocument.open();this.htmlDocument.write(v);this.htmlDocument.addEventListener("click",(e=>{const target=e.target;const previous=this.selection.element;if(previous===null||previous===void 0?void 0:previous.isContentEditable){let start=target;while(start){if(previous===target){return}start=start.parentElement}if(previous!==this.htmlDocument.body){previous.removeAttribute("contentEditable")}this.commit()}e.preventDefault();this.setSelection(target)}));this.htmlDocument.addEventListener("dblclick",(e=>{const target=e.target;e.preventDefault();const element=target.nodeType===Node.ELEMENT_NODE?target:target.parentElement;if(/^(IMG|INJECT|VIDEO)$/.test(element.tagName)){this.changeImage().catch(console.error);return}if(element.getAttribute("data-editable")==="false"){return}if(element.hasAttribute("data-web-atoms-view")){return}this.setSelection(element)}));this.htmlDocument.addEventListener("scroll",(e=>{this.hover.update();this.selection.update()}),{passive:true});this.htmlDocument.addEventListener("pointerover",(e=>{let target=e.target;target=target.nodeType===Node.ELEMENT_NODE&&target.tagName?target:target.parentElement;if(this.hover.element===target){return}this.hover.update(target)}),{capture:true});this.htmlDocument.addEventListener("keydown",(e=>{if(e.ctrlKey||e.metaKey){switch(e.key){case"s":this.contentEditor.dispatchEvent(new CustomEvent("savePage",{bubbles:true}));e.preventDefault();break;case"z":this.contentEditor.dispatchEvent(new CustomEvent("undo",{bubbles:true}));e.preventDefault();break;case"y":this.contentEditor.dispatchEvent(new CustomEvent("redo",{bubbles:true}));e.preventDefault();break}}}));InstallDragDropHelper(this);this.htmlDocument.close();this.htmlDocument.body.contentEditable="true";this.htmlDocument.body.setAttribute("editing","true");setTimeout((()=>{this.app.runAsync((()=>__awaiter(this,void 0,void 0,(function*(){yield this.setStylerSheet();this.loadVariables();this.commit()}))))}),10)}))))}setStylerSheet(){return __awaiter(this,void 0,void 0,(function*(){const document=this.htmlDocument;let style=document.querySelector(`[styler-style-sheet]`);if(!style){style=document.createElement("style");style.setAttribute("styler-style-sheet","inline");document.head.appendChild(style)}style.textContent=StylerSet.instance.toString()}))}loadVariables(){const onChange=()=>{const document=this.htmlDocument;let style=document.querySelector("[styler-style-variables]");if(!style){style=document.createElement("style");style.setAttribute("styler-style-variables","override");document.head.appendChild(style)}style.textContent=`:root {\n ${this.pageVariables.map((x=>`${x.propertyName}: ${x.currentValue};`)).join("\n\t")}\n }`};this.pageVariables=StylerSet.instance.vars.map((x=>new StylerVariable(x.name,x.value,this.htmlDocument,onChange)))}loadContentDocument(){return __awaiter(this,void 0,void 0,(function*(){this.contentEditor=this.element.querySelector(`[data-element="content-editor"]`);while(!this.htmlDocument){this.htmlDocument=this.contentEditor.contentDocument;yield sleep(100)}}))}});__decorate([BindableProperty,__metadata("design:type",String)],HtmlPageEditor.prototype,"baseUrl",void 0);__decorate([Action({onEvent:"delete-element"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],HtmlPageEditor.prototype,"deleteElement",null);__decorate([Action({onEvent:"copy-element",blockMultipleExecution:false}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",void 0)],HtmlPageEditor.prototype,"copyElement",null);__decorate([Action({onEvent:"move-up-element",blockMultipleExecution:false}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",void 0)],HtmlPageEditor.prototype,"moveUpElement",null);__decorate([Action({onEvent:"move-down-element",blockMultipleExecution:false}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",void 0)],HtmlPageEditor.prototype,"moveDownElement",null);__decorate([Action({onEvent:"change-image"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],HtmlPageEditor.prototype,"changeImage",null);__decorate([Action({onEvent:"extract-element"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],HtmlPageEditor.prototype,"extractElement",null);__decorate([Action({onEvent:"keyup"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object,KeyboardEvent]),__metadata("design:returntype",void 0)],HtmlPageEditor.prototype,"onKeyUp",null);__decorate([Action({onEvent:"undo"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",void 0)],HtmlPageEditor.prototype,"undo",null);__decorate([Action({onEvent:"redo"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",void 0)],HtmlPageEditor.prototype,"redo",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/site-editor/editor/HtmlPageEditor");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/XNode","../../../../common/controls/tree/FileTreeView","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/InjectProperty","../service/CloudFileService","@web-atoms/core/dist/style/styled","../../../../common/controls/drag-drop/FilesDragDrop","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/basic/UploadEvent","../../../../common/controls/buttons/IconButton","../../../../common/apiPath"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,XNode,FolderTreeView,AtomRepeater,SelectAll,SelectorCheckBox,Bind,InjectProperty,CloudFileService,styled,FilesDragDrop,Action,UploadEvent,SaveIconTextButton,apiPath,ChooseMediaPage,css;_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(_commonControlsTreeFileTreeView){FolderTreeView=_commonControlsTreeFileTreeView.FolderTreeView},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default;SelectAll=_webAtomsWebControlsDistBasicAtomRepeater.SelectAll;SelectorCheckBox=_webAtomsWebControlsDistBasicAtomRepeater.SelectorCheckBox},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_serviceCloudFileService){CloudFileService=_serviceCloudFileService.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_commonControlsDragDropFilesDragDrop){FilesDragDrop=_commonControlsDragDropFilesDragDrop.FilesDragDrop},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistBasicUploadEvent){UploadEvent=_webAtomsWebControlsDistBasicUploadEvent.default},function(_commonControlsButtonsIconButton){SaveIconTextButton=_commonControlsButtonsIconButton.SaveIconTextButton},function(_commonApiPath){apiPath=_commonApiPath.apiPath}],execute:function(){css=styled.css`
4568
4568
  display: grid;
4569
4569
  grid-template-columns: 200px 1fr;
4570
4570
  grid-template-rows: auto 1fr;
@@ -4653,7 +4653,7 @@ display: grid;
4653
4653
  justify-self: stretch;
4654
4654
  align-self: stretch;
4655
4655
  }
4656
- `.installLocal();getExtension=name=>{const index=name.lastIndexOf(".");if(index===-1){return"dat"}return name.substring(index+1)};_export("default",WebSiteStudioPage=class WebSiteStudioPage extends ContentPage{constructor(){super(...arguments);this.version=1;this.pageContent=""}init(){var _a,_b;var _c;return __awaiter(this,void 0,void 0,(function*(){this.search="";this.root=yield this.cloudFileService.root(this.parameters);this.title=this.root.name;this.webSite=yield this.websiteService.get(this.root.appFileID);(_a=(_c=this.root).children)!==null&&_a!==void 0?_a:_c.children=[];this.root.children.remove((x=>x.isDeleted||!(/^(text\/(html|css))$/i.test(x.contentType)||x.isFolder)));this.root.children.sort(((a,b)=>a.isFolder?-1:0));if(!((_b=this.root.children)===null||_b===void 0?void 0:_b.some((f=>f.name==="index.html")))){yield this.createIndexHtml();return}const indexHtml=this.root.children.find((x=>x.name==="index.html"));this.selectedFile=indexHtml;this.titleRenderer=()=>XNode.create("div",{"data-layout":"row"},XNode.create("div",{text:this.root.name}),XNode.create("div",{"style-display":Bind.oneWay((()=>this.webSite.isModified))},XNode.create(SaveIconTextButton,{"data-click-event":"publish-website",text:"Publish"})),XNode.create("a",{"data-click-event":"route",href:AppCommands.openFiles.displayRoute({id:this.webSite.folderID})},XNode.create(EditIconTextButton,{text:"Modify Files",title:"Use this to upload files manually"})),XNode.create(EditIconTextButton,{"data-click-event":"version-history",icon:"fas fa-history",text:"History",title:"Version History"}),XNode.create(EditIconTextButton,{"data-click-event":"link-blog",icon:"fad fa-blog",text:"Linked Blogs"}),XNode.create(EditIconTextButton,{"data-click-event":"view-website",icon:"fad fa-globe-pointer",text:"View Site"}),XNode.create("a",{href:apiPath(`/api/site/draft/${this.webSite.folderID}/`),target:"_blank"},XNode.create(EditIconTextButton,{icon:"fad fa-globe-pointer",text:"Preview Draft"})),this.parameters.templates&&XNode.create("div",{"data-layout":"row","style-display":Bind.oneWay((()=>this.selectedFile.appFileID>0))},XNode.create("i",{class:"fas fa-plus","data-click-event":"new-template"}),XNode.create("span",{"data-click-event":"new-template",text:"New Template"})));this.renderer=XNode.create("div",{class:css},XNode.create(FileTreeView,{root:this.root,class:"folder-tree",accept:"text/html",presenter:Bind.presenter((c=>this.folderTree=c)),selectedItem:Bind.twoWaysImmediate((()=>this.selectedFile)),menuActions:x=>!x.isFolder?/\.(htm|html)$/i.test(x.name)?[XNode.create(MenuItem,{icon:"fas fa-copy","data-click-event":"duplicate-html",label:"Duplicate Page"}),XNode.create(MenuItem,{icon:"fas fa-history","data-click-event":"file-history",label:"File History"})]:[]:void 0,"event-selected-item-changing":ce=>{if(this.pageContent){if(confirm("Page is modified but not saved, your changes will be lost")){return}ce.preventDefault()}}}),XNode.create(WebSitePageEditor,{class:"file-list",baseUrl:Bind.oneWay((()=>apiPath(`/api/site/draft/${this.selectedFile.appFileID}/`))),folder:this.root,presenter:Bind.presenter((c=>this.htmlEditor=c)),"event-html-page-changed":ce=>this.pageContent=ce.detail,htmlPage:Bind.oneWayAsync(((s,e,cancelToken)=>this.selectedFile?this.downloadHtml(this.selectedFile,cancelToken):void 0))}));this.footerRenderer=()=>XNode.create("div",{"data-layout":"command-row","style-display":Bind.oneWay((()=>!!this.pageContent))},XNode.create(SaveIconTextButton,{"data-click-event":"save-page",text:"Save"}))}))}downloadHtml(file,cancelToken){return __awaiter(this,void 0,void 0,(function*(){const text=yield FetchBuilder.get(file.downloadUrl).cancelToken(cancelToken).responseAsText(true);return text}))}createIndexHtml(){return __awaiter(this,void 0,void 0,(function*(){yield PageNavigator.pushPageForResultOrCancel(ChooseWebSiteTemplatePage,this.root);yield this.init()}))}editShares(file){PageNavigator.pushPage(EditSharesPage,file)}editCode(){var _a;return __awaiter(this,void 0,void 0,(function*(){const content=yield PageNavigator.pushPageForResult(CodeEditorPage,{fileName:this.selectedFile.name,content:(_a=this.htmlEditor.lastCommittedHtml)!==null&&_a!==void 0?_a:this.htmlEditor.htmlPage});this.pageContent=content;this.htmlEditor.htmlPage=content}))}openFolder(file){this.selectedFile=file}onFilesUploaded(){return __awaiter(this,void 0,void 0,(function*(){this.version++}))}newTemplate(){return __awaiter(this,void 0,void 0,(function*(){const parentID=this.selectedFile.appFileID;const file=yield PageNavigator.pushPageForResult(EditTemplatePage,{file:AppFile.create({parentID})});this.selectedFile.children.add(file)}))}openTemplate(file){return __awaiter(this,void 0,void 0,(function*(){yield PageNavigator.pushPageForResultOrCancel(EditTemplatePage,{file})}))}savePage(){return __awaiter(this,void 0,void 0,(function*(){const html=`<!DOCTYPE html>${this.pageContent}`;const content=new File([html],this.selectedFile.name,{type:this.selectedFile.contentType});const result=yield this.cloudFileService.saveFile({appFileID:this.selectedFile.appFileID,content});this.selectedFile.url=result.url;this.selectedFile.fileContentID=result.fileContentID;this.selectedFile.downloadUrl=result.downloadUrl;this.webSite.isModified=true;this.pageContent=""}))}duplicateHtml(file){return __awaiter(this,void 0,void 0,(function*(){let{name}=file;name=name.replace(/(\.[^\.]+)$/,(ext=>" Copy"+ext));file=yield this.cloudFileService.save(Object.assign(Object.assign({},file),{appFileID:void 0,children:void 0,parent:void 0,name}));this.root.children.add(file);this.selectedFile=file}))}fileHistory(file){return __awaiter(this,void 0,void 0,(function*(){const{fileContentID,url,downloadUrl}=yield PageNavigator.pushPageForResult(FileHistoryPage,file);const{selectedFile}=this;if(file.appFileID===(selectedFile===null||selectedFile===void 0?void 0:selectedFile.appFileID)){selectedFile.url=url;selectedFile.downloadUrl=downloadUrl;selectedFile.fileContentID=fileContentID}}))}publishWebsite(){return __awaiter(this,void 0,void 0,(function*(){yield this.websiteService.publish(this.webSite)}))}versionHistory(){return __awaiter(this,void 0,void 0,(function*(){PageNavigator.pushPage(WebSiteHistory,this.webSite)}))}viewWebSite(){return __awaiter(this,void 0,void 0,(function*(){PageNavigator.pushPage(ViewWebSitePage,this.webSite)}))}linkBlog(){return __awaiter(this,void 0,void 0,(function*(){PageNavigator.pushPage(WebSiteBlogsPage,this.webSite)}))}hide(){var _a,_b,_c;this.pageContent=(_b=(_a=this.htmlEditor)===null||_a===void 0?void 0:_a.lastCommittedHtml)!==null&&_b!==void 0?_b:(_c=this.htmlEditor)===null||_c===void 0?void 0:_c.htmlPage;super.hide()}show(){super.show();if(this.pageContent){setTimeout((()=>this.htmlEditor.htmlPage=this.pageContent),400)}}});__decorate([InjectProperty,__metadata("design:type",CloudFileService)],WebSiteStudioPage.prototype,"cloudFileService",void 0);__decorate([InjectProperty,__metadata("design:type",WebSiteService)],WebSiteStudioPage.prototype,"websiteService",void 0);__decorate([Action({onEvent:"edit-shares"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",void 0)],WebSiteStudioPage.prototype,"editShares",null);__decorate([Action({onEvent:"edit-code"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],WebSiteStudioPage.prototype,"editCode",null);__decorate([Action({onEvent:"open-folder"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",void 0)],WebSiteStudioPage.prototype,"openFolder",null);__decorate([Action({onEvent:"files-available"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],WebSiteStudioPage.prototype,"onFilesUploaded",null);__decorate([Action({onEvent:"new-template"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],WebSiteStudioPage.prototype,"newTemplate",null);__decorate([Action({onEvent:"open-template"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],WebSiteStudioPage.prototype,"openTemplate",null);__decorate([Action({onEvent:"save-page"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],WebSiteStudioPage.prototype,"savePage",null);__decorate([Action({onEvent:"duplicate-html"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],WebSiteStudioPage.prototype,"duplicateHtml",null);__decorate([Action({onEvent:"file-history"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],WebSiteStudioPage.prototype,"fileHistory",null);__decorate([Action({onEvent:"publish-website",confirm:"Are you sure you want to publish this version?",success:"Web site published successfully."}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],WebSiteStudioPage.prototype,"publishWebsite",null);__decorate([Action({onEvent:"version-history"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],WebSiteStudioPage.prototype,"versionHistory",null);__decorate([Action({onEvent:"view-website"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],WebSiteStudioPage.prototype,"viewWebSite",null);__decorate([Action({onEvent:"link-blog"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],WebSiteStudioPage.prototype,"linkBlog",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/websites/studio/WebSiteStudioPage");System.register(["tslib","@web-atoms/core/dist/di/DITransient","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../SocialMailApp","@web-atoms/date-time/dist/DateTime"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DITransient,Inject,EntityService,User,UserAuthFactor,SocialMailApp,DateTime,UserService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiDITransient){DITransient=_webAtomsCoreDistDiDITransient.default},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){User=_modelModel.User;UserAuthFactor=_modelModel.UserAuthFactor},function(_SocialMailApp){SocialMailApp=_SocialMailApp.default},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default}],execute:function(){UserService=class UserService{getCurrent(){return __awaiter(this,void 0,void 0,(function*(){const{userID}=SocialMailApp.user;return this.entityService.query(User).where({userID},(p=>x=>x.userID===p.userID)).include((x=>x.authFactors)).firstOrDefault()}))}save(user){return __awaiter(this,void 0,void 0,(function*(){let cloner=this.entityService.cloner(user);if(user.changePassword){cloner=cloner.include((x=>x.changePassword))}yield this.entityService.save(cloner.copy)}))}saveAuthFactors(af){return __awaiter(this,void 0,void 0,(function*(){yield this.entityService.save(af,(x=>x))}))}createAuthFactor(user,method="totp"){return __awaiter(this,void 0,void 0,(function*(){const authFactor=UserAuthFactor.create({userID:user.userID,method});yield this.entityService.save(authFactor);return authFactor}))}verify(af){return __awaiter(this,void 0,void 0,(function*(){af.dateUpdated=DateTime.now;yield this.entityService.save(af,(x=>x))}))}};__decorate([Inject,__metadata("design:type",EntityService)],UserService.prototype,"entityService",void 0);UserService=__decorate([DITransient()],UserService);_export("default",UserService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/user/services/UserService");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/InjectProperty","../services/UserService","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","../../../controls/form/RequiredFormField","@web-atoms/core/dist/core/Bind","../../../controls/password/PasswordStrength","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/basic/PasswordBox","../../../validators/Validators","../../../controls/buttons/IconButton","@web-atoms/core/dist/view-model/Action"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,InjectProperty,UserService,XNode,Form,PasswordFormField,Bind,PasswordStrength,FormField,PasswordBox,Validators,SaveIconTextButton,Action,ChangePasswordPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesUserService){UserService=_servicesUserService.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_controlsFormRequiredFormField){PasswordFormField=_controlsFormRequiredFormField.PasswordFormField},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_controlsPasswordPasswordStrength){PasswordStrength=_controlsPasswordPasswordStrength.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistBasicPasswordBox){PasswordBox=_webAtomsWebControlsDistBasicPasswordBox.default},function(_validatorsValidators){Validators=_validatorsValidators.Validators},function(_controlsButtonsIconButton){SaveIconTextButton=_controlsButtonsIconButton.SaveIconTextButton},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default}],execute:function(){_export("default",ChangePasswordPage=class ChangePasswordPage extends PopupWindowPage{constructor(){super(...arguments);this.password=""}init(){return __awaiter(this,void 0,void 0,(function*(){this.model=yield this.userService.getCurrent();this.title="Change Password";this.model.changePassword={oldPassword:"",newPassword:"",forceChangePasswordOnLogin:false};this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(PasswordFormField,{label:"Current Password",value:()=>this.model.changePassword.oldPassword}),XNode.create(FormField,{label:"Password",required:true,error:Bind.oneWay((()=>Validators.isValidPassword(this.password)?"":"Password is invalid"))},XNode.create(PasswordBox,{value:Bind.twoWaysImmediate((()=>this.password))})),XNode.create(PasswordStrength,{password:Bind.oneWay((()=>this.password))}),XNode.create(FormField,{label:"Password again",required:true,error:Bind.oneWay((()=>this.password!==this.model.changePassword.newPassword?"Passwords do not match":""))},XNode.create(PasswordBox,{value:Bind.twoWaysImmediate((()=>this.model.changePassword.newPassword))})),XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"data-submit-event":"save-user",text:"Change"}))))}))}saveUser(){return __awaiter(this,void 0,void 0,(function*(){yield this.userService.save(this.model)}))}});__decorate([InjectProperty,__metadata("design:type",UserService)],ChangePasswordPage.prototype,"userService",void 0);__decorate([Action({onEvent:"save-user",success:"Password changed successfully.",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],ChangePasswordPage.prototype,"saveUser",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/user/change-password/ChangePasswordPage");System.register(["@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/style/styled","@web-atoms/web-controls/dist/basic/Form"],(function(_export,_context){"use strict";var XNode,styled,Form;function AppForm(a,...nodes){return XNode.create(Form,Object.assign({"data-app-form":"app-form"},a),...nodes)}_export("default",AppForm);return{setters:[function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default}],execute:function(){styled.css`
4656
+ `.installLocal();getExtension=name=>{const index=name.lastIndexOf(".");if(index===-1){return"dat"}return name.substring(index+1)};_export("default",WebSiteStudioPage=class WebSiteStudioPage extends ContentPage{constructor(){super(...arguments);this.version=1;this.pageContent="";this.lastHtml=""}init(){var _a,_b;var _c;return __awaiter(this,void 0,void 0,(function*(){this.search="";this.root=yield this.cloudFileService.root(this.parameters);this.title=this.root.name;this.webSite=yield this.websiteService.get(this.root.appFileID);(_a=(_c=this.root).children)!==null&&_a!==void 0?_a:_c.children=[];this.root.children.remove((x=>x.isDeleted||!(/^(text\/(html|css))$/i.test(x.contentType)||x.isFolder)));this.root.children.sort(((a,b)=>a.isFolder?-1:0));if(!((_b=this.root.children)===null||_b===void 0?void 0:_b.some((f=>f.name==="index.html")))){yield this.createIndexHtml();return}const indexHtml=this.root.children.find((x=>x.name==="index.html"));this.selectedFile=indexHtml;this.titleRenderer=()=>XNode.create("div",{"data-layout":"row"},XNode.create("div",{text:this.root.name}),XNode.create("div",{"style-display":Bind.oneWay((()=>this.webSite.isModified))},XNode.create(SaveIconTextButton,{"data-click-event":"publish-website",text:"Publish"})),XNode.create("a",{"data-click-event":"route",href:AppCommands.openFiles.displayRoute({id:this.webSite.folderID})},XNode.create(EditIconTextButton,{text:"Modify Files",title:"Use this to upload files manually"})),XNode.create(EditIconTextButton,{"data-click-event":"version-history",icon:"fas fa-history",text:"History",title:"Version History"}),XNode.create(EditIconTextButton,{"data-click-event":"link-blog",icon:"fad fa-blog",text:"Linked Blogs"}),XNode.create(EditIconTextButton,{"data-click-event":"view-website",icon:"fad fa-globe-pointer",text:"View Site"}),XNode.create("a",{href:apiPath(`/api/site/draft/${this.webSite.folderID}/`),target:"_blank"},XNode.create(EditIconTextButton,{icon:"fad fa-globe-pointer",text:"Preview Draft"})),this.parameters.templates&&XNode.create("div",{"data-layout":"row","style-display":Bind.oneWay((()=>this.selectedFile.appFileID>0))},XNode.create("i",{class:"fas fa-plus","data-click-event":"new-template"}),XNode.create("span",{"data-click-event":"new-template",text:"New Template"})));this.renderer=XNode.create("div",{class:css},XNode.create(FileTreeView,{root:this.root,class:"folder-tree",accept:"text/html",presenter:Bind.presenter((c=>this.folderTree=c)),selectedItem:Bind.twoWaysImmediate((()=>this.selectedFile)),menuActions:x=>!x.isFolder?/\.(htm|html)$/i.test(x.name)?[XNode.create(MenuItem,{icon:"fas fa-copy","data-click-event":"duplicate-html",label:"Duplicate Page"}),XNode.create(MenuItem,{icon:"fas fa-history","data-click-event":"file-history",label:"File History"})]:[]:void 0,"event-selected-item-changing":ce=>{if(this.pageContent){if(confirm("Page is modified but not saved, your changes will be lost")){return}ce.preventDefault()}}}),XNode.create(WebSitePageEditor,{class:"file-list",baseUrl:Bind.oneWay((()=>apiPath(`/api/site/draft/${this.selectedFile.appFileID}/`))),folder:this.root,presenter:Bind.presenter((c=>this.htmlEditor=c)),"event-html-page-changed":ce=>this.pageContent=ce.detail,htmlPage:Bind.oneWayAsync(((s,e,cancelToken)=>this.selectedFile?this.downloadHtml(this.selectedFile,cancelToken):void 0))}));this.footerRenderer=()=>XNode.create("div",{"data-layout":"command-row","style-display":Bind.oneWay((()=>this.lastHtml!==this.pageContent))},XNode.create(SaveIconTextButton,{"data-click-event":"save-page",text:"Save"}))}))}downloadHtml(file,cancelToken){return __awaiter(this,void 0,void 0,(function*(){const text=yield FetchBuilder.get(file.downloadUrl).cancelToken(cancelToken).responseAsText(true);this.lastHtml=text;this.pageContent=text;return text}))}createIndexHtml(){return __awaiter(this,void 0,void 0,(function*(){yield PageNavigator.pushPageForResultOrCancel(ChooseWebSiteTemplatePage,this.root);yield this.init()}))}editShares(file){PageNavigator.pushPage(EditSharesPage,file)}editCode(){var _a;return __awaiter(this,void 0,void 0,(function*(){const content=yield PageNavigator.pushPageForResult(CodeEditorPage,{fileName:this.selectedFile.name,content:(_a=this.htmlEditor.lastCommittedHtml)!==null&&_a!==void 0?_a:this.lastHtml});this.pageContent=content;this.htmlEditor.htmlPage=content}))}openFolder(file){this.selectedFile=file}onFilesUploaded(){return __awaiter(this,void 0,void 0,(function*(){this.version++}))}newTemplate(){return __awaiter(this,void 0,void 0,(function*(){const parentID=this.selectedFile.appFileID;const file=yield PageNavigator.pushPageForResult(EditTemplatePage,{file:AppFile.create({parentID})});this.selectedFile.children.add(file)}))}openTemplate(file){return __awaiter(this,void 0,void 0,(function*(){yield PageNavigator.pushPageForResultOrCancel(EditTemplatePage,{file})}))}savePage(){return __awaiter(this,void 0,void 0,(function*(){let html=this.pageContent;if(!html.trim().startsWith("<!")){html=`<!DOCTYPE html>${this.pageContent}`}const content=new File([html],this.selectedFile.name,{type:this.selectedFile.contentType});const result=yield this.cloudFileService.saveFile({appFileID:this.selectedFile.appFileID,content});this.selectedFile.url=result.url;this.selectedFile.fileContentID=result.fileContentID;this.selectedFile.downloadUrl=result.downloadUrl;this.webSite.isModified=true;this.lastHtml=html;this.pageContent=html}))}duplicateHtml(file){return __awaiter(this,void 0,void 0,(function*(){let{name}=file;name=name.replace(/(\.[^\.]+)$/,(ext=>" Copy"+ext));file=yield this.cloudFileService.save(Object.assign(Object.assign({},file),{appFileID:void 0,children:void 0,parent:void 0,name}));this.root.children.add(file);this.selectedFile=file}))}fileHistory(file){return __awaiter(this,void 0,void 0,(function*(){const{fileContentID,url,downloadUrl}=yield PageNavigator.pushPageForResult(FileHistoryPage,file);const{selectedFile}=this;if(file.appFileID===(selectedFile===null||selectedFile===void 0?void 0:selectedFile.appFileID)){selectedFile.url=url;selectedFile.downloadUrl=downloadUrl;selectedFile.fileContentID=fileContentID}}))}publishWebsite(){return __awaiter(this,void 0,void 0,(function*(){yield this.websiteService.publish(this.webSite)}))}versionHistory(){return __awaiter(this,void 0,void 0,(function*(){PageNavigator.pushPage(WebSiteHistory,this.webSite)}))}viewWebSite(){return __awaiter(this,void 0,void 0,(function*(){PageNavigator.pushPage(ViewWebSitePage,this.webSite)}))}linkBlog(){return __awaiter(this,void 0,void 0,(function*(){PageNavigator.pushPage(WebSiteBlogsPage,this.webSite)}))}hide(){var _a,_b,_c;this.pageContent=(_b=(_a=this.htmlEditor)===null||_a===void 0?void 0:_a.lastCommittedHtml)!==null&&_b!==void 0?_b:(_c=this.htmlEditor)===null||_c===void 0?void 0:_c.htmlPage;super.hide()}show(){super.show();if(this.pageContent){setTimeout((()=>this.htmlEditor.htmlPage=this.pageContent),400)}}});__decorate([InjectProperty,__metadata("design:type",CloudFileService)],WebSiteStudioPage.prototype,"cloudFileService",void 0);__decorate([InjectProperty,__metadata("design:type",WebSiteService)],WebSiteStudioPage.prototype,"websiteService",void 0);__decorate([Action({onEvent:"edit-shares"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",void 0)],WebSiteStudioPage.prototype,"editShares",null);__decorate([Action({onEvent:"edit-code"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],WebSiteStudioPage.prototype,"editCode",null);__decorate([Action({onEvent:"open-folder"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",void 0)],WebSiteStudioPage.prototype,"openFolder",null);__decorate([Action({onEvent:"files-available"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],WebSiteStudioPage.prototype,"onFilesUploaded",null);__decorate([Action({onEvent:"new-template"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],WebSiteStudioPage.prototype,"newTemplate",null);__decorate([Action({onEvent:"open-template"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],WebSiteStudioPage.prototype,"openTemplate",null);__decorate([Action({onEvent:"save-page"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],WebSiteStudioPage.prototype,"savePage",null);__decorate([Action({onEvent:"duplicate-html"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],WebSiteStudioPage.prototype,"duplicateHtml",null);__decorate([Action({onEvent:"file-history"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],WebSiteStudioPage.prototype,"fileHistory",null);__decorate([Action({onEvent:"publish-website",confirm:"Are you sure you want to publish this version?",success:"Web site published successfully."}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],WebSiteStudioPage.prototype,"publishWebsite",null);__decorate([Action({onEvent:"version-history"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],WebSiteStudioPage.prototype,"versionHistory",null);__decorate([Action({onEvent:"view-website"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],WebSiteStudioPage.prototype,"viewWebSite",null);__decorate([Action({onEvent:"link-blog"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],WebSiteStudioPage.prototype,"linkBlog",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/websites/studio/WebSiteStudioPage");System.register(["tslib","@web-atoms/core/dist/di/DITransient","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../SocialMailApp","@web-atoms/date-time/dist/DateTime"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DITransient,Inject,EntityService,User,UserAuthFactor,SocialMailApp,DateTime,UserService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiDITransient){DITransient=_webAtomsCoreDistDiDITransient.default},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){User=_modelModel.User;UserAuthFactor=_modelModel.UserAuthFactor},function(_SocialMailApp){SocialMailApp=_SocialMailApp.default},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default}],execute:function(){UserService=class UserService{getCurrent(){return __awaiter(this,void 0,void 0,(function*(){const{userID}=SocialMailApp.user;return this.entityService.query(User).where({userID},(p=>x=>x.userID===p.userID)).include((x=>x.authFactors)).firstOrDefault()}))}save(user){return __awaiter(this,void 0,void 0,(function*(){let cloner=this.entityService.cloner(user);if(user.changePassword){cloner=cloner.include((x=>x.changePassword))}yield this.entityService.save(cloner.copy)}))}saveAuthFactors(af){return __awaiter(this,void 0,void 0,(function*(){yield this.entityService.save(af,(x=>x))}))}createAuthFactor(user,method="totp"){return __awaiter(this,void 0,void 0,(function*(){const authFactor=UserAuthFactor.create({userID:user.userID,method});yield this.entityService.save(authFactor);return authFactor}))}verify(af){return __awaiter(this,void 0,void 0,(function*(){af.dateUpdated=DateTime.now;yield this.entityService.save(af,(x=>x))}))}};__decorate([Inject,__metadata("design:type",EntityService)],UserService.prototype,"entityService",void 0);UserService=__decorate([DITransient()],UserService);_export("default",UserService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/user/services/UserService");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/InjectProperty","../services/UserService","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","../../../controls/form/RequiredFormField","@web-atoms/core/dist/core/Bind","../../../controls/password/PasswordStrength","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/basic/PasswordBox","../../../validators/Validators","../../../controls/buttons/IconButton","@web-atoms/core/dist/view-model/Action"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,InjectProperty,UserService,XNode,Form,PasswordFormField,Bind,PasswordStrength,FormField,PasswordBox,Validators,SaveIconTextButton,Action,ChangePasswordPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesUserService){UserService=_servicesUserService.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_controlsFormRequiredFormField){PasswordFormField=_controlsFormRequiredFormField.PasswordFormField},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_controlsPasswordPasswordStrength){PasswordStrength=_controlsPasswordPasswordStrength.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistBasicPasswordBox){PasswordBox=_webAtomsWebControlsDistBasicPasswordBox.default},function(_validatorsValidators){Validators=_validatorsValidators.Validators},function(_controlsButtonsIconButton){SaveIconTextButton=_controlsButtonsIconButton.SaveIconTextButton},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default}],execute:function(){_export("default",ChangePasswordPage=class ChangePasswordPage extends PopupWindowPage{constructor(){super(...arguments);this.password=""}init(){return __awaiter(this,void 0,void 0,(function*(){this.model=yield this.userService.getCurrent();this.title="Change Password";this.model.changePassword={oldPassword:"",newPassword:"",forceChangePasswordOnLogin:false};this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(PasswordFormField,{label:"Current Password",value:()=>this.model.changePassword.oldPassword}),XNode.create(FormField,{label:"Password",required:true,error:Bind.oneWay((()=>Validators.isValidPassword(this.password)?"":"Password is invalid"))},XNode.create(PasswordBox,{value:Bind.twoWaysImmediate((()=>this.password))})),XNode.create(PasswordStrength,{password:Bind.oneWay((()=>this.password))}),XNode.create(FormField,{label:"Password again",required:true,error:Bind.oneWay((()=>this.password!==this.model.changePassword.newPassword?"Passwords do not match":""))},XNode.create(PasswordBox,{value:Bind.twoWaysImmediate((()=>this.model.changePassword.newPassword))})),XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"data-submit-event":"save-user",text:"Change"}))))}))}saveUser(){return __awaiter(this,void 0,void 0,(function*(){yield this.userService.save(this.model)}))}});__decorate([InjectProperty,__metadata("design:type",UserService)],ChangePasswordPage.prototype,"userService",void 0);__decorate([Action({onEvent:"save-user",success:"Password changed successfully.",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],ChangePasswordPage.prototype,"saveUser",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/user/change-password/ChangePasswordPage");System.register(["@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/style/styled","@web-atoms/web-controls/dist/basic/Form"],(function(_export,_context){"use strict";var XNode,styled,Form;function AppForm(a,...nodes){return XNode.create(Form,Object.assign({"data-app-form":"app-form"},a),...nodes)}_export("default",AppForm);return{setters:[function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default}],execute:function(){styled.css`
4657
4657
  padding: 10px;
4658
4658
  border: solid 1px lightgray;
4659
4659
  border-radius: 10px;