@social-mail/social-mail-client 1.0.113 → 1.0.115

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.
Files changed (230) hide show
  1. package/content/editor/edit.html +159 -0
  2. package/content/templates/plain/index.html +32 -0
  3. package/dist/admin/AdminAppIndex.pack.js +2605 -269
  4. package/dist/admin/AdminAppIndex.pack.js.map +1 -1
  5. package/dist/admin/AdminAppIndex.pack.min.js +258 -9
  6. package/dist/admin/AdminAppIndex.pack.min.js.map +1 -1
  7. package/dist/common/Sql.d.ts +1 -0
  8. package/dist/common/Sql.d.ts.map +1 -1
  9. package/dist/common/Sql.js.map +1 -1
  10. package/dist/common/commands/CommonCommands.d.ts +7 -0
  11. package/dist/common/commands/CommonCommands.d.ts.map +1 -1
  12. package/dist/common/commands/CommonCommands.js +10 -0
  13. package/dist/common/commands/CommonCommands.js.map +1 -1
  14. package/dist/common/controls/html/grapes-js/GrapesJSEditor.d.ts +19 -0
  15. package/dist/common/controls/html/grapes-js/GrapesJSEditor.d.ts.map +1 -0
  16. package/dist/common/controls/html/grapes-js/GrapesJSEditor.js +119 -0
  17. package/dist/common/controls/html/grapes-js/GrapesJSEditor.js.map +1 -0
  18. package/dist/common/controls/tree/FileTreeView.d.ts +16 -0
  19. package/dist/common/controls/tree/FileTreeView.d.ts.map +1 -0
  20. package/dist/common/controls/tree/FileTreeView.js +100 -0
  21. package/dist/common/controls/tree/FileTreeView.js.map +1 -0
  22. package/dist/common/controls/tree/TreeView.d.ts +4 -1
  23. package/dist/common/controls/tree/TreeView.d.ts.map +1 -1
  24. package/dist/common/controls/tree/TreeView.js +35 -17
  25. package/dist/common/controls/tree/TreeView.js.map +1 -1
  26. package/dist/common/pages/websites/edit/WebSiteFolderEditor.d.ts.map +1 -1
  27. package/dist/common/pages/websites/edit/WebSiteFolderEditor.js +2 -1
  28. package/dist/common/pages/websites/edit/WebSiteFolderEditor.js.map +1 -1
  29. package/dist/common/pages/websites/manage/ManageWebSitePage.d.ts +10 -0
  30. package/dist/common/pages/websites/manage/ManageWebSitePage.d.ts.map +1 -0
  31. package/dist/common/pages/websites/manage/ManageWebSitePage.js +45 -0
  32. package/dist/common/pages/websites/manage/ManageWebSitePage.js.map +1 -0
  33. package/dist/common/pages/websites/studio/WebSiteStudioPage.d.ts +24 -0
  34. package/dist/common/pages/websites/studio/WebSiteStudioPage.d.ts.map +1 -0
  35. package/dist/common/pages/websites/studio/WebSiteStudioPage.js +244 -0
  36. package/dist/common/pages/websites/studio/WebSiteStudioPage.js.map +1 -0
  37. package/dist/common/pages/websites/templates/ChooseWebSiteTemplatePage.d.ts +9 -0
  38. package/dist/common/pages/websites/templates/ChooseWebSiteTemplatePage.d.ts.map +1 -0
  39. package/dist/common/pages/websites/templates/ChooseWebSiteTemplatePage.js +59 -0
  40. package/dist/common/pages/websites/templates/ChooseWebSiteTemplatePage.js.map +1 -0
  41. package/dist/model/model.d.ts +9 -0
  42. package/dist/model/model.d.ts.map +1 -1
  43. package/dist/model/model.js +2 -1
  44. package/dist/model/model.js.map +1 -1
  45. package/dist/services/websites/WebSiteService.d.ts +1 -0
  46. package/dist/services/websites/WebSiteService.d.ts.map +1 -1
  47. package/dist/services/websites/WebSiteService.js +8 -1
  48. package/dist/services/websites/WebSiteService.js.map +1 -1
  49. package/dist/site-editor/blocks/Block.d.ts +6 -0
  50. package/dist/site-editor/blocks/Block.d.ts.map +1 -0
  51. package/dist/site-editor/blocks/Block.js +48 -0
  52. package/dist/site-editor/blocks/Block.js.map +1 -0
  53. package/dist/site-editor/blocks/ImageBlock.d.ts +2 -0
  54. package/dist/site-editor/blocks/ImageBlock.d.ts.map +1 -0
  55. package/dist/site-editor/blocks/ImageBlock.js +23 -0
  56. package/dist/site-editor/blocks/ImageBlock.js.map +1 -0
  57. package/dist/site-editor/blocks/WrapGrid.d.ts +2 -0
  58. package/dist/site-editor/blocks/WrapGrid.d.ts.map +1 -0
  59. package/dist/site-editor/blocks/WrapGrid.js +22 -0
  60. package/dist/site-editor/blocks/WrapGrid.js.map +1 -0
  61. package/dist/site-editor/commands/CodeCommand.d.ts +2 -0
  62. package/dist/site-editor/commands/CodeCommand.d.ts.map +1 -0
  63. package/dist/site-editor/commands/CodeCommand.js +51 -0
  64. package/dist/site-editor/commands/CodeCommand.js.map +1 -0
  65. package/dist/site-editor/commands/EditorCommand.d.ts +6 -0
  66. package/dist/site-editor/commands/EditorCommand.d.ts.map +1 -0
  67. package/dist/site-editor/commands/EditorCommand.js +52 -0
  68. package/dist/site-editor/commands/EditorCommand.js.map +1 -0
  69. package/dist/site-editor/commands/IEditorCommandParameter.d.ts +5 -0
  70. package/dist/site-editor/commands/IEditorCommandParameter.d.ts.map +1 -0
  71. package/dist/site-editor/commands/IEditorCommandParameter.js +9 -0
  72. package/dist/site-editor/commands/IEditorCommandParameter.js.map +1 -0
  73. package/dist/site-editor/components/Component.d.ts +5 -0
  74. package/dist/site-editor/components/Component.d.ts.map +1 -0
  75. package/dist/site-editor/components/Component.js +21 -0
  76. package/dist/site-editor/components/Component.js.map +1 -0
  77. package/dist/site-editor/components/ImageComponent.d.ts +1 -0
  78. package/dist/site-editor/components/ImageComponent.d.ts.map +1 -0
  79. package/dist/site-editor/components/ImageComponent.js +9 -0
  80. package/dist/site-editor/components/ImageComponent.js.map +1 -0
  81. package/dist/site-editor/drag-drop/DragDropHelper.d.ts +3 -0
  82. package/dist/site-editor/drag-drop/DragDropHelper.d.ts.map +1 -0
  83. package/dist/site-editor/drag-drop/DragDropHelper.js +117 -0
  84. package/dist/site-editor/drag-drop/DragDropHelper.js.map +1 -0
  85. package/dist/site-editor/editor/HtmlPageEditor.d.ts +43 -0
  86. package/dist/site-editor/editor/HtmlPageEditor.d.ts.map +1 -0
  87. package/dist/site-editor/editor/HtmlPageEditor.js +500 -0
  88. package/dist/site-editor/editor/HtmlPageEditor.js.map +1 -0
  89. package/dist/site-editor/properties/ColorEditor.d.ts +6 -0
  90. package/dist/site-editor/properties/ColorEditor.d.ts.map +1 -0
  91. package/dist/site-editor/properties/ColorEditor.js +46 -0
  92. package/dist/site-editor/properties/ColorEditor.js.map +1 -0
  93. package/dist/site-editor/properties/Properties.d.ts +2 -0
  94. package/dist/site-editor/properties/Properties.d.ts.map +1 -0
  95. package/dist/site-editor/properties/Properties.js +48 -0
  96. package/dist/site-editor/properties/Properties.js.map +1 -0
  97. package/dist/site-editor/properties/ThicknessEditor.d.ts +4 -0
  98. package/dist/site-editor/properties/ThicknessEditor.d.ts.map +1 -0
  99. package/dist/site-editor/properties/ThicknessEditor.js +15 -0
  100. package/dist/site-editor/properties/ThicknessEditor.js.map +1 -0
  101. package/dist/site-editor/styler/IStylerPair.d.ts +10 -0
  102. package/dist/site-editor/styler/IStylerPair.d.ts.map +1 -0
  103. package/dist/site-editor/styler/IStylerPair.js +9 -0
  104. package/dist/site-editor/styler/IStylerPair.js.map +1 -0
  105. package/dist/site-editor/styler/Styler.d.ts +170 -0
  106. package/dist/site-editor/styler/Styler.d.ts.map +1 -0
  107. package/dist/site-editor/styler/Styler.js +137 -0
  108. package/dist/site-editor/styler/Styler.js.map +1 -0
  109. package/dist/site-editor/styler/StylerSet.d.ts +8 -0
  110. package/dist/site-editor/styler/StylerSet.d.ts.map +1 -0
  111. package/dist/site-editor/styler/StylerSet.js +51 -0
  112. package/dist/site-editor/styler/StylerSet.js.map +1 -0
  113. package/dist/site-editor/styler/properties/border.d.ts +3 -0
  114. package/dist/site-editor/styler/properties/border.d.ts.map +1 -0
  115. package/dist/site-editor/styler/properties/border.js +38 -0
  116. package/dist/site-editor/styler/properties/border.js.map +1 -0
  117. package/dist/site-editor/styler/properties/boxShadow.d.ts +3 -0
  118. package/dist/site-editor/styler/properties/boxShadow.d.ts.map +1 -0
  119. package/dist/site-editor/styler/properties/boxShadow.js +24 -0
  120. package/dist/site-editor/styler/properties/boxShadow.js.map +1 -0
  121. package/dist/site-editor/styler/properties/color.d.ts +3 -0
  122. package/dist/site-editor/styler/properties/color.d.ts.map +1 -0
  123. package/dist/site-editor/styler/properties/color.js +93 -0
  124. package/dist/site-editor/styler/properties/color.js.map +1 -0
  125. package/dist/site-editor/styler/properties/cursor.d.ts +3 -0
  126. package/dist/site-editor/styler/properties/cursor.d.ts.map +1 -0
  127. package/dist/site-editor/styler/properties/cursor.js +20 -0
  128. package/dist/site-editor/styler/properties/cursor.js.map +1 -0
  129. package/dist/site-editor/styler/properties/filter.d.ts +3 -0
  130. package/dist/site-editor/styler/properties/filter.d.ts.map +1 -0
  131. package/dist/site-editor/styler/properties/filter.js +24 -0
  132. package/dist/site-editor/styler/properties/filter.js.map +1 -0
  133. package/dist/site-editor/styler/properties/layout.d.ts +3 -0
  134. package/dist/site-editor/styler/properties/layout.d.ts.map +1 -0
  135. package/dist/site-editor/styler/properties/layout.js +78 -0
  136. package/dist/site-editor/styler/properties/layout.js.map +1 -0
  137. package/dist/site-editor/toolbars/EditorToolbar.d.ts +3 -0
  138. package/dist/site-editor/toolbars/EditorToolbar.d.ts.map +1 -0
  139. package/dist/site-editor/toolbars/EditorToolbar.js +49 -0
  140. package/dist/site-editor/toolbars/EditorToolbar.js.map +1 -0
  141. package/dist/site-editor/toolbars/UndoRedoToolbar.d.ts +2 -0
  142. package/dist/site-editor/toolbars/UndoRedoToolbar.d.ts.map +1 -0
  143. package/dist/site-editor/toolbars/UndoRedoToolbar.js +40 -0
  144. package/dist/site-editor/toolbars/UndoRedoToolbar.js.map +1 -0
  145. package/dist/style/GlobalStyle.js +1 -1
  146. package/dist/tsconfig.tsbuildinfo +1 -1
  147. package/dist/web/AppIndex.pack.js +5188 -2832
  148. package/dist/web/AppIndex.pack.js.map +1 -1
  149. package/dist/web/AppIndex.pack.min.js +399 -150
  150. package/dist/web/AppIndex.pack.min.js.map +1 -1
  151. package/dist/web/drawer/AppDrawer.d.ts +1 -0
  152. package/dist/web/drawer/AppDrawer.d.ts.map +1 -1
  153. package/dist/web/drawer/AppDrawer.js +24 -4
  154. package/dist/web/drawer/AppDrawer.js.map +1 -1
  155. package/dist/web/page/files/FolderPage.d.ts.map +1 -1
  156. package/dist/web/page/files/FolderPage.js.map +1 -1
  157. package/dist/web/page/files/media/ChooseMediaPage.d.ts +24 -0
  158. package/dist/web/page/files/media/ChooseMediaPage.d.ts.map +1 -0
  159. package/dist/web/page/files/media/ChooseMediaPage.js +165 -0
  160. package/dist/web/page/files/media/ChooseMediaPage.js.map +1 -0
  161. package/dist/web/page/files/service/CloudFileService.d.ts +6 -3
  162. package/dist/web/page/files/service/CloudFileService.d.ts.map +1 -1
  163. package/dist/web/page/files/service/CloudFileService.js +34 -5
  164. package/dist/web/page/files/service/CloudFileService.js.map +1 -1
  165. package/node_modules/@web-atoms/core/dist/core/AtomList.d.ts.map +1 -1
  166. package/node_modules/@web-atoms/core/dist/core/AtomList.js +5 -3
  167. package/node_modules/@web-atoms/core/dist/core/AtomList.js.map +1 -1
  168. package/node_modules/@web-atoms/core/dist/services/FetchBuilder.d.ts +3 -0
  169. package/node_modules/@web-atoms/core/dist/services/FetchBuilder.d.ts.map +1 -1
  170. package/node_modules/@web-atoms/core/dist/services/FetchBuilder.js +10 -0
  171. package/node_modules/@web-atoms/core/dist/services/FetchBuilder.js.map +1 -1
  172. package/node_modules/@web-atoms/core/dist/style/styled.d.ts +2 -2
  173. package/node_modules/@web-atoms/core/dist/style/styled.d.ts.map +1 -1
  174. package/node_modules/@web-atoms/core/dist/style/styled.js.map +1 -1
  175. package/node_modules/@web-atoms/core/dist/tsconfig.tsbuildinfo +1 -1
  176. package/node_modules/@web-atoms/core/package.json +1 -1
  177. package/node_modules/@web-atoms/core/src/core/AtomList.ts +5 -3
  178. package/node_modules/@web-atoms/core/src/services/FetchBuilder.ts +13 -0
  179. package/node_modules/@web-atoms/core/src/style/styled.ts +3 -1
  180. package/node_modules/@web-atoms/web-controls/dist/basic/AtomChips.d.ts +1 -0
  181. package/node_modules/@web-atoms/web-controls/dist/basic/AtomChips.d.ts.map +1 -1
  182. package/node_modules/@web-atoms/web-controls/dist/basic/AtomChips.js +2 -0
  183. package/node_modules/@web-atoms/web-controls/dist/basic/AtomChips.js.map +1 -1
  184. package/node_modules/@web-atoms/web-controls/dist/basic/AtomRepeater.js +3 -0
  185. package/node_modules/@web-atoms/web-controls/dist/basic/AtomRepeater.js.map +1 -1
  186. package/node_modules/@web-atoms/web-controls/dist/tsconfig.tsbuildinfo +1 -1
  187. package/node_modules/@web-atoms/web-controls/package.json +2 -2
  188. package/node_modules/@web-atoms/web-controls/src/basic/AtomChips.tsx +4 -0
  189. package/node_modules/@web-atoms/web-controls/src/basic/AtomRepeater.tsx +3 -0
  190. package/package.json +3 -3
  191. package/src/common/Sql.ts +1 -0
  192. package/src/common/commands/CommonCommands.ts +12 -0
  193. package/src/common/controls/html/grapes-js/GrapesJSEditor.tsx +97 -0
  194. package/src/common/controls/tree/FileTreeView.tsx +74 -0
  195. package/src/common/controls/tree/TreeView.tsx +34 -12
  196. package/src/common/pages/websites/edit/WebSiteFolderEditor.tsx +2 -1
  197. package/src/common/pages/websites/manage/ManageWebSitePage.tsx +44 -0
  198. package/src/common/pages/websites/studio/WebSiteStudioPage.tsx +205 -0
  199. package/src/common/pages/websites/templates/ChooseWebSiteTemplatePage.tsx +38 -0
  200. package/src/model/model.ts +11 -0
  201. package/src/services/websites/WebSiteService.ts +8 -1
  202. package/src/site-editor/blocks/Block.tsx +38 -0
  203. package/src/site-editor/blocks/ImageBlock.tsx +14 -0
  204. package/src/site-editor/blocks/WrapGrid.tsx +11 -0
  205. package/src/site-editor/commands/CodeCommand.tsx +36 -0
  206. package/src/site-editor/commands/EditorCommand.tsx +42 -0
  207. package/src/site-editor/commands/IEditorCommandParameter.ts +5 -0
  208. package/src/site-editor/components/Component.tsx +9 -0
  209. package/src/site-editor/components/ImageComponent.tsx +0 -0
  210. package/src/site-editor/drag-drop/DragDropHelper.ts +141 -0
  211. package/src/site-editor/editor/HtmlPageEditor.tsx +497 -0
  212. package/src/site-editor/properties/ColorEditor.tsx +36 -0
  213. package/src/site-editor/properties/Properties.tsx +35 -0
  214. package/src/site-editor/properties/ThicknessEditor.tsx +5 -0
  215. package/src/site-editor/styler/IStylerPair.ts +9 -0
  216. package/src/site-editor/styler/Styler.ts +169 -0
  217. package/src/site-editor/styler/StylerSet.ts +42 -0
  218. package/src/site-editor/styler/properties/border.ts +30 -0
  219. package/src/site-editor/styler/properties/boxShadow.ts +14 -0
  220. package/src/site-editor/styler/properties/color.ts +82 -0
  221. package/src/site-editor/styler/properties/cursor.ts +49 -0
  222. package/src/site-editor/styler/properties/filter.ts +14 -0
  223. package/src/site-editor/styler/properties/layout.ts +72 -0
  224. package/src/site-editor/toolbars/EditorToolbar.tsx +40 -0
  225. package/src/site-editor/toolbars/UndoRedoToolbar.tsx +27 -0
  226. package/src/style/GlobalStyle.ts +1 -1
  227. package/src/web/drawer/AppDrawer.tsx +21 -4
  228. package/src/web/page/files/FolderPage.tsx +0 -1
  229. package/src/web/page/files/media/ChooseMediaPage.tsx +135 -0
  230. package/src/web/page/files/service/CloudFileService.ts +33 -8
@@ -1865,7 +1865,7 @@ const UMD = new UMDClass();
1865
1865
 
1866
1866
  AmdLoader.instance.register(
1867
1867
  ["@social-mail/social-mail-client","@web-atoms/core","@web-atoms/web-controls","reflect-metadata","@web-atoms/date-time","@web-atoms/data-styles","@web-atoms/entity","@web-atoms/email-dom"],
1868
- ["@social-mail/social-mail-client/dist/admin/AdminAppIndex","@web-atoms/core/dist/Pack","@web-atoms/web-controls/dist/desktop-app/MobileDesktopApp","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/AtomLoader","@web-atoms/core/dist/services/JsonService","@web-atoms/core/dist/core/StringHelper","@web-atoms/core/dist/di/RegisterSingleton","@web-atoms/core/dist/di/Register","@web-atoms/core/dist/core/types","reflect-metadata","@web-atoms/core/dist/core/AtomMap","@web-atoms/core/dist/di/ServiceCollection","@web-atoms/core/dist/di/TypeKey","@web-atoms/date-time/dist/DateTime","@web-atoms/date-time/dist/TimeSpan","@web-atoms/core/dist/services/ReferenceService","@web-atoms/core/dist/di/DISingleton","@web-atoms/core/dist/core/AtomUri","@web-atoms/core/dist/web/core/AtomUI","@web-atoms/core/dist/core/Command","@web-atoms/core/dist/core/EventScope","@web-atoms/core/dist/core/Route","@web-atoms/core/dist/core/InheritedProperty","@web-atoms/core/dist/core/AtomBinder","@web-atoms/core/dist/core/sleep","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/ExpressionParser","@web-atoms/core/dist/services/NavigationService","@web-atoms/core/dist/core/AtomComponent","@web-atoms/core/dist/App","@web-atoms/core/dist/core/AtomDispatcher","@web-atoms/core/dist/di/ServiceProvider","@web-atoms/core/dist/core/TransientDisposable","@web-atoms/core/dist/di/Inject","@web-atoms/core/dist/services/BusyIndicatorService","@web-atoms/core/dist/core/AtomBridge","@web-atoms/core/dist/core/AtomDisposableList","@web-atoms/core/dist/core/AtomWatcher","@web-atoms/core/dist/core/PropertyMap","@web-atoms/core/dist/core/FormattedString","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/WebImage","@web-atoms/core/dist/web/styles/AtomStyle","@web-atoms/core/dist/web/styles/AtomStyleSheet","@web-atoms/core/dist/web/services/PopupService","@web-atoms/core/dist/style/styled","@web-atoms/core/dist/web/services/PopupWindow","@web-atoms/web-controls/dist/PageNavigator","@web-atoms/web-controls/dist/desktop-app/DesktopApp","@social-mail/social-mail-client/dist/style/GlobalStyle","@web-atoms/core/dist/core/AtomList","@social-mail/social-mail-client/dist/style/OverrideAppStyle","@web-atoms/data-styles/data-styles","@social-mail/social-mail-client/dist/services/LoginService","@social-mail/social-mail-client/dist/services/EntityService","@web-atoms/entity/dist/services/BaseEntityService","@web-atoms/entity/dist/models/Cloner","@web-atoms/entity/dist/models/cloneSource","@web-atoms/entity/dist/models/IEntityModel","@web-atoms/entity/dist/services/HttpSession","@web-atoms/core/dist/services/http/JsonError","@web-atoms/entity/dist/models/TaskManager","@web-atoms/entity/dist/models/Queue","@web-atoms/entity/dist/services/mergeProperties","@web-atoms/entity/dist/services/Query","@web-atoms/entity/dist/services/StringHelper","@web-atoms/entity/dist/services/resolve","@social-mail/social-mail-client/dist/services/BusyProgress","@social-mail/social-mail-client/dist/model/model","@social-mail/social-mail-client/dist/common/SocialMailApp","@web-atoms/core/dist/core/InjectProperty","@social-mail/social-mail-client/dist/admin/commands/AdminCommands","@social-mail/social-mail-client/dist/admin/pages/home/AdminHome","@social-mail/social-mail-client/dist/admin/pages/domains/DomainListPage","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/Colors","@web-atoms/core/dist/core/WatchProperty","@web-atoms/web-controls/dist/basic/InlinePopup","@web-atoms/web-controls/dist/basic/styles/inline-popup-style","@web-atoms/web-controls/dist/basic/MergeNode","@web-atoms/web-controls/dist/basic/ItemPath","@web-atoms/web-controls/dist/basic/styles/ui-display-none-style","@web-atoms/web-controls/dist/basic/styles/popup-style","@web-atoms/web-controls/dist/basic/styles/suggestion-popup","@web-atoms/web-controls/dist/basic/styles/repeater-style","@social-mail/social-mail-client/dist/admin/pages/domains/services/AdminDomainService","@web-atoms/core/dist/di/DITransient","@web-atoms/core/dist/view-model/Action","@social-mail/social-mail-client/dist/admin/pages/domains/edit/EditDomainPage","@web-atoms/web-controls/dist/basic/Form","@social-mail/social-mail-client/dist/common/controls/form/RequiredFormField","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/basic/styles/form-field-style","@web-atoms/web-controls/dist/basic/PasswordBox","@web-atoms/web-controls/dist/basic/styles/password-box-style","@web-atoms/web-controls/dist/basic/Checkbox","@web-atoms/web-controls/dist/basic/styles/checkbox-style","@web-atoms/web-controls/dist/basic/Expander","@web-atoms/web-controls/dist/basic/styles/expander-style","@social-mail/social-mail-client/dist/common/controls/buttons/IconButton","@social-mail/social-mail-client/dist/admin/pages/domains/edit/DomainKeySetupPage","@social-mail/social-mail-client/dist/common/controls/buttons/CopyIcon","@social-mail/social-mail-client/dist/admin/pages/domains/domain-user/DomainUserEditor","@social-mail/social-mail-client/dist/common/controls/drop-downs/user/UserDropDown","@web-atoms/web-controls/dist/basic/DropDown","@web-atoms/web-controls/dist/basic/styles/drop-down-style","@social-mail/social-mail-client/dist/admin/pages/users/services/AdminUserService","@social-mail/social-mail-client/dist/common/Sql","@social-mail/social-mail-client/dist/common/pages/folders/ChooserFolderPage","@social-mail/social-mail-client/dist/web/page/files/service/CloudFileService","@social-mail/social-mail-client/dist/common/controls/tree/TreeView","@social-mail/social-mail-client/dist/admin/pages/users/UserListPage","@social-mail/social-mail-client/dist/common/controls/repeater/InfiniteRepeater","@social-mail/social-mail-client/dist/admin/pages/users/EditUserPage","@social-mail/social-mail-client/dist/common/validators/Validators","@social-mail/social-mail-client/dist/common/controls/password/PasswordStrength","@web-atoms/web-controls/dist/mobile-app/MasterDetailPage","@social-mail/social-mail-client/dist/admin/pages/users/UserDetailsPage","@social-mail/social-mail-client/dist/common/NumberFormats","@social-mail/social-mail-client/dist/common/controls/collection-editor/CollectionEditor","@social-mail/social-mail-client/dist/admin/pages/users/domains/EditDomainUserPage","@social-mail/social-mail-client/dist/admin/pages/users/mailboxes/EditUserMailboxPage","@social-mail/social-mail-client/dist/common/pages/mailboxes/services/MailboxService","@social-mail/social-mail-client/dist/admin/pages/users/files/EditFileAccessPage","@web-atoms/web-controls/dist/basic/ComboBox","@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxListPage","@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxEditorPage","@social-mail/social-mail-client/dist/admin/pages/users/ChooseUserPage","@social-mail/social-mail-client/dist/common/commands/CommonCommands","@social-mail/social-mail-client/dist/web/page/mails/MailboxContacts","@social-mail/social-mail-client/dist/web/page/mails/service/MailService","@social-mail/social-mail-client/dist/web/page/mails/ConversationPage","@social-mail/social-mail-client/dist/web/page/mails/service/ConversationService","@web-atoms/email-dom/dist/DomToString","@web-atoms/email-dom/dist/dom/StyleHelper","@web-atoms/email-dom/dist/style/mergeStyle","@social-mail/social-mail-client/dist/common/events/CommonEvents","@web-atoms/web-controls/dist/basic/InlinePopupControl","@social-mail/social-mail-client/dist/web/page/mails/ComposeMailPage","@social-mail/social-mail-client/dist/common/controls/html/InlineHtmlEditorWithToolbar","@web-atoms/web-controls/dist/html-editor/InlineHtmlEditor","@web-atoms/web-controls/dist/html-editor/commands/AddImage","@web-atoms/web-controls/dist/html-editor/commands/CommandButton","@web-atoms/web-controls/dist/html-editor/commands/HtmlCommands","@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/Command","@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/basic/PopupButton","@web-atoms/web-controls/dist/basic/styles/popup-button-style","@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/core/dist/web/controls/AtomToggleButtonBar","@web-atoms/core/dist/web/styles/AtomToggleButtonBarStyle","@web-atoms/core/dist/web/styles/AtomListBoxStyle","@web-atoms/core/dist/web/controls/AtomListBox","@web-atoms/core/dist/web/controls/AtomItemsControl","@web-atoms/core/dist/core/AtomEnumerator","@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","@social-mail/social-mail-client/dist/services/files/LocalFileService","@web-atoms/web-controls/dist/basic/TitleEditor","@web-atoms/web-controls/dist/basic/styles/title-editor-style","@social-mail/social-mail-client/dist/common/controls/email-recipients/EmailRecipientChips","@web-atoms/web-controls/dist/basic/AtomChips","@web-atoms/web-controls/dist/basic/Chip","@web-atoms/web-controls/dist/basic/styles/chip-style","@web-atoms/web-controls/dist/basic/styles/chips-style","@web-atoms/web-controls/dist/basic/styles/item-suggestion-style","@social-mail/social-mail-client/dist/services/email-addresses/EmailAddressService","@social-mail/social-mail-client/dist/common/cache/CacheTTL","@social-mail/social-mail-client/dist/web/page/templates/social/SocialTemplate","@social-mail/social-mail-client/dist/services/socket/sockets","@web-atoms/web-controls/dist/basic/LimitedText","@social-mail/social-mail-client/dist/common/date/DateFormats","@social-mail/social-mail-client/dist/common/pages/logs/LogsPage","@social-mail/social-mail-client/dist/common/pages/logs/services/AppLogService","@social-mail/social-mail-client/dist/web/page/mails/detail/MailDetailPage","@social-mail/social-mail-client/dist/web/page/mails/ChooseMailboxPage","@social-mail/social-mail-client/dist/web/commands/AppCommands","@social-mail/social-mail-client/dist/web/page/home/HomePage","@social-mail/social-mail-client/dist/web/page/files/FolderPage","@social-mail/social-mail-client/dist/common/controls/drag-drop/FilesDragDrop","@social-mail/social-mail-client/dist/web/page/files/shares/EditSharesPage","@social-mail/social-mail-client/dist/services/files/FileShareService","@social-mail/social-mail-client/dist/web/page/files/shares/AddSharePage","@web-atoms/web-controls/dist/basic/Switch","@web-atoms/web-controls/dist/basic/styles/switch-style","@web-atoms/web-controls/dist/basic/DateField","@web-atoms/web-controls/dist/basic/Calendar","@web-atoms/web-controls/dist/basic/Select","@web-atoms/web-controls/dist/basic/styles/calendar-style","@web-atoms/web-controls/dist/basic/TimeEditor","@web-atoms/web-controls/dist/basic/styles/time-editor-style","@web-atoms/web-controls/dist/basic/styles/date-field-style","@social-mail/social-mail-client/dist/web/page/templates/EditTemplatePage","@social-mail/social-mail-client/dist/services/mime-service/MimeNode","@social-mail/social-mail-client/dist/common/QueryIterator","@social-mail/social-mail-client/dist/services/mime-service/AttachmentFile","@social-mail/social-mail-client/dist/services/mime-service/HeaderContentType","@social-mail/social-mail-client/dist/services/mime-service/parsePairs","@social-mail/social-mail-client/dist/services/mime-service/tokenizer","@social-mail/social-mail-client/dist/services/mime-service/HeaderContentDisposition","@social-mail/social-mail-client/dist/services/mime-service/encoder/word-encoding","@social-mail/social-mail-client/dist/services/mime-service/encoder/RawBuffer","@social-mail/social-mail-client/dist/services/mime-service/encoder/base64-to-blob","@social-mail/social-mail-client/dist/services/mime-service/encoder/quoted-printable","@social-mail/social-mail-client/dist/services/mime-service/MimeMessage","@social-mail/social-mail-client/dist/services/mime-service/stream/LineStream","@social-mail/social-mail-client/dist/services/mime-service/stream/TextWriter","@social-mail/social-mail-client/dist/common/pages/folders/ChooseTemplatePage","@social-mail/social-mail-client/dist/web/page/channels/detail/ChannelDetailPage","@social-mail/social-mail-client/dist/web/page/channels/subscribers/ChannelSubscribersPage","@social-mail/social-mail-client/dist/web/page/channels/services/ChannelService","@social-mail/social-mail-client/dist/web/page/channels/subscribers/add/AddSubscriberPage","@social-mail/social-mail-client/dist/web/page/channels/subscribers/rights/UpdateRightsPage","@social-mail/social-mail-client/dist/common/pages/drives/DriveListPage","@social-mail/social-mail-client/dist/common/pages/user/change-password/ChangePasswordPage","@social-mail/social-mail-client/dist/common/pages/user/services/UserService","@social-mail/social-mail-client/dist/common/pages/user/multi-factor/MultiFactorSetupPage","@social-mail/social-mail-client/dist/common/pages/websites/list/WebSiteListPage","@social-mail/social-mail-client/dist/services/websites/WebSiteService","@social-mail/social-mail-client/dist/common/pages/websites/edit/WebSiteFolderEditor","@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxDetailPage","@social-mail/social-mail-client/dist/common/pages/mailboxes/settings/EditSyncTargetPage","@social-mail/social-mail-client/dist/common/icons/Icons","@social-mail/social-mail-client/dist/admin/pages/relays/edit/EditRelayPage","@social-mail/social-mail-client/dist/common/pages/user/login/LoginPage","@web-atoms/web-controls/dist/basic/ToggleButtonBar","@web-atoms/web-controls/dist/basic/styles/toggle-button-bar-style","@social-mail/social-mail-client/dist/admin/drawer/AdminDrawer","@social-mail/social-mail-client/dist/common/controls/menu/MenuItem","@social-mail/social-mail-client/dist/common/controls/ModuleInfo","@web-atoms/core/dist/web/WebApp","@web-atoms/core/dist/core/AtomOnce","@web-atoms/core/dist/web/services/WebBusyIndicatorService","@web-atoms/core/dist/web/styles/StyleBuilder","@web-atoms/core/dist/web/services/WindowService","@web-atoms/core/dist/Atom","@web-atoms/core/dist/core/FormattedError","@web-atoms/core/dist/view-model/AtomWindowViewModel","@web-atoms/core/dist/view-model/AtomViewModel","@web-atoms/core/dist/view-model/baseTypes","@web-atoms/core/dist/web/controls/AtomAlertWindow","@web-atoms/core/dist/web/styles/AtomAlertWindowStyle","@web-atoms/core/dist/web/styles/AtomWindowStyle","@web-atoms/core/src/web/images/close-button-hover.svg","@web-atoms/core/dist/web/controls/AtomWindow","@web-atoms/core/dist/web/controls/AtomTemplate","@web-atoms/core/dist/web/controls/AtomNotification","@web-atoms/core/dist/web/styles/AtomNotificationStyle","@web-atoms/core/dist/web/styles/AtomPopupStyle","@web-atoms/core/dist/web/services/NotificationPopup","@web-atoms/core/dist/web/styles/AtomTheme"]);
1868
+ ["@social-mail/social-mail-client/dist/admin/AdminAppIndex","@web-atoms/core/dist/Pack","@web-atoms/web-controls/dist/desktop-app/MobileDesktopApp","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/AtomLoader","@web-atoms/core/dist/services/JsonService","@web-atoms/core/dist/core/StringHelper","@web-atoms/core/dist/di/RegisterSingleton","@web-atoms/core/dist/di/Register","@web-atoms/core/dist/core/types","reflect-metadata","@web-atoms/core/dist/core/AtomMap","@web-atoms/core/dist/di/ServiceCollection","@web-atoms/core/dist/di/TypeKey","@web-atoms/date-time/dist/DateTime","@web-atoms/date-time/dist/TimeSpan","@web-atoms/core/dist/services/ReferenceService","@web-atoms/core/dist/di/DISingleton","@web-atoms/core/dist/core/AtomUri","@web-atoms/core/dist/web/core/AtomUI","@web-atoms/core/dist/core/Command","@web-atoms/core/dist/core/EventScope","@web-atoms/core/dist/core/Route","@web-atoms/core/dist/core/InheritedProperty","@web-atoms/core/dist/core/AtomBinder","@web-atoms/core/dist/core/sleep","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/ExpressionParser","@web-atoms/core/dist/services/NavigationService","@web-atoms/core/dist/core/AtomComponent","@web-atoms/core/dist/App","@web-atoms/core/dist/core/AtomDispatcher","@web-atoms/core/dist/di/ServiceProvider","@web-atoms/core/dist/core/TransientDisposable","@web-atoms/core/dist/di/Inject","@web-atoms/core/dist/services/BusyIndicatorService","@web-atoms/core/dist/core/AtomBridge","@web-atoms/core/dist/core/AtomDisposableList","@web-atoms/core/dist/core/AtomWatcher","@web-atoms/core/dist/core/PropertyMap","@web-atoms/core/dist/core/FormattedString","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/WebImage","@web-atoms/core/dist/web/styles/AtomStyle","@web-atoms/core/dist/web/styles/AtomStyleSheet","@web-atoms/core/dist/web/services/PopupService","@web-atoms/core/dist/style/styled","@web-atoms/core/dist/web/services/PopupWindow","@web-atoms/web-controls/dist/PageNavigator","@web-atoms/web-controls/dist/desktop-app/DesktopApp","@social-mail/social-mail-client/dist/style/GlobalStyle","@web-atoms/core/dist/core/AtomList","@social-mail/social-mail-client/dist/style/OverrideAppStyle","@web-atoms/data-styles/data-styles","@social-mail/social-mail-client/dist/services/LoginService","@social-mail/social-mail-client/dist/services/EntityService","@web-atoms/entity/dist/services/BaseEntityService","@web-atoms/entity/dist/models/Cloner","@web-atoms/entity/dist/models/cloneSource","@web-atoms/entity/dist/models/IEntityModel","@web-atoms/entity/dist/services/HttpSession","@web-atoms/core/dist/services/http/JsonError","@web-atoms/entity/dist/models/TaskManager","@web-atoms/entity/dist/models/Queue","@web-atoms/entity/dist/services/mergeProperties","@web-atoms/entity/dist/services/Query","@web-atoms/entity/dist/services/StringHelper","@web-atoms/entity/dist/services/resolve","@social-mail/social-mail-client/dist/services/BusyProgress","@social-mail/social-mail-client/dist/model/model","@social-mail/social-mail-client/dist/common/SocialMailApp","@web-atoms/core/dist/core/InjectProperty","@social-mail/social-mail-client/dist/admin/commands/AdminCommands","@social-mail/social-mail-client/dist/admin/pages/home/AdminHome","@social-mail/social-mail-client/dist/admin/pages/domains/DomainListPage","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/Colors","@web-atoms/core/dist/core/WatchProperty","@web-atoms/web-controls/dist/basic/InlinePopup","@web-atoms/web-controls/dist/basic/styles/inline-popup-style","@web-atoms/web-controls/dist/basic/MergeNode","@web-atoms/web-controls/dist/basic/ItemPath","@web-atoms/web-controls/dist/basic/styles/ui-display-none-style","@web-atoms/web-controls/dist/basic/styles/popup-style","@web-atoms/web-controls/dist/basic/styles/suggestion-popup","@web-atoms/web-controls/dist/basic/styles/repeater-style","@social-mail/social-mail-client/dist/admin/pages/domains/services/AdminDomainService","@web-atoms/core/dist/di/DITransient","@web-atoms/core/dist/view-model/Action","@social-mail/social-mail-client/dist/admin/pages/domains/edit/EditDomainPage","@web-atoms/web-controls/dist/basic/Form","@social-mail/social-mail-client/dist/common/controls/form/RequiredFormField","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/basic/styles/form-field-style","@web-atoms/web-controls/dist/basic/PasswordBox","@web-atoms/web-controls/dist/basic/styles/password-box-style","@web-atoms/web-controls/dist/basic/Checkbox","@web-atoms/web-controls/dist/basic/styles/checkbox-style","@web-atoms/web-controls/dist/basic/Expander","@web-atoms/web-controls/dist/basic/styles/expander-style","@social-mail/social-mail-client/dist/common/controls/buttons/IconButton","@social-mail/social-mail-client/dist/admin/pages/domains/edit/DomainKeySetupPage","@social-mail/social-mail-client/dist/common/controls/buttons/CopyIcon","@social-mail/social-mail-client/dist/admin/pages/domains/domain-user/DomainUserEditor","@social-mail/social-mail-client/dist/common/controls/drop-downs/user/UserDropDown","@web-atoms/web-controls/dist/basic/DropDown","@web-atoms/web-controls/dist/basic/styles/drop-down-style","@social-mail/social-mail-client/dist/admin/pages/users/services/AdminUserService","@social-mail/social-mail-client/dist/common/Sql","@social-mail/social-mail-client/dist/common/pages/folders/ChooserFolderPage","@social-mail/social-mail-client/dist/web/page/files/service/CloudFileService","@social-mail/social-mail-client/dist/common/controls/tree/TreeView","@social-mail/social-mail-client/dist/admin/pages/users/UserListPage","@social-mail/social-mail-client/dist/common/controls/repeater/InfiniteRepeater","@social-mail/social-mail-client/dist/admin/pages/users/EditUserPage","@social-mail/social-mail-client/dist/common/validators/Validators","@social-mail/social-mail-client/dist/common/controls/password/PasswordStrength","@web-atoms/web-controls/dist/mobile-app/MasterDetailPage","@social-mail/social-mail-client/dist/admin/pages/users/UserDetailsPage","@social-mail/social-mail-client/dist/common/NumberFormats","@social-mail/social-mail-client/dist/common/controls/collection-editor/CollectionEditor","@social-mail/social-mail-client/dist/admin/pages/users/domains/EditDomainUserPage","@social-mail/social-mail-client/dist/admin/pages/users/mailboxes/EditUserMailboxPage","@social-mail/social-mail-client/dist/common/pages/mailboxes/services/MailboxService","@social-mail/social-mail-client/dist/admin/pages/users/files/EditFileAccessPage","@web-atoms/web-controls/dist/basic/ComboBox","@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxListPage","@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxEditorPage","@social-mail/social-mail-client/dist/admin/pages/users/ChooseUserPage","@social-mail/social-mail-client/dist/common/commands/CommonCommands","@social-mail/social-mail-client/dist/web/page/mails/MailboxContacts","@social-mail/social-mail-client/dist/web/page/mails/service/MailService","@social-mail/social-mail-client/dist/web/page/mails/ConversationPage","@social-mail/social-mail-client/dist/web/page/mails/service/ConversationService","@web-atoms/email-dom/dist/DomToString","@web-atoms/email-dom/dist/dom/StyleHelper","@web-atoms/email-dom/dist/style/mergeStyle","@social-mail/social-mail-client/dist/common/events/CommonEvents","@web-atoms/web-controls/dist/basic/InlinePopupControl","@social-mail/social-mail-client/dist/web/page/mails/ComposeMailPage","@social-mail/social-mail-client/dist/common/controls/html/InlineHtmlEditorWithToolbar","@web-atoms/web-controls/dist/html-editor/InlineHtmlEditor","@web-atoms/web-controls/dist/html-editor/commands/AddImage","@web-atoms/web-controls/dist/html-editor/commands/CommandButton","@web-atoms/web-controls/dist/html-editor/commands/HtmlCommands","@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/Command","@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/basic/PopupButton","@web-atoms/web-controls/dist/basic/styles/popup-button-style","@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/core/dist/web/controls/AtomToggleButtonBar","@web-atoms/core/dist/web/styles/AtomToggleButtonBarStyle","@web-atoms/core/dist/web/styles/AtomListBoxStyle","@web-atoms/core/dist/web/controls/AtomListBox","@web-atoms/core/dist/web/controls/AtomItemsControl","@web-atoms/core/dist/core/AtomEnumerator","@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","@social-mail/social-mail-client/dist/services/files/LocalFileService","@web-atoms/web-controls/dist/basic/TitleEditor","@web-atoms/web-controls/dist/basic/styles/title-editor-style","@social-mail/social-mail-client/dist/common/controls/email-recipients/EmailRecipientChips","@web-atoms/web-controls/dist/basic/AtomChips","@web-atoms/web-controls/dist/basic/Chip","@web-atoms/web-controls/dist/basic/styles/chip-style","@web-atoms/web-controls/dist/basic/styles/chips-style","@web-atoms/web-controls/dist/basic/styles/item-suggestion-style","@social-mail/social-mail-client/dist/services/email-addresses/EmailAddressService","@social-mail/social-mail-client/dist/common/cache/CacheTTL","@social-mail/social-mail-client/dist/web/page/templates/social/SocialTemplate","@social-mail/social-mail-client/dist/services/socket/sockets","@web-atoms/web-controls/dist/basic/LimitedText","@social-mail/social-mail-client/dist/common/date/DateFormats","@social-mail/social-mail-client/dist/common/pages/logs/LogsPage","@social-mail/social-mail-client/dist/common/pages/logs/services/AppLogService","@social-mail/social-mail-client/dist/web/page/mails/detail/MailDetailPage","@social-mail/social-mail-client/dist/web/page/mails/ChooseMailboxPage","@social-mail/social-mail-client/dist/web/commands/AppCommands","@social-mail/social-mail-client/dist/web/page/home/HomePage","@social-mail/social-mail-client/dist/web/page/files/FolderPage","@social-mail/social-mail-client/dist/common/controls/drag-drop/FilesDragDrop","@social-mail/social-mail-client/dist/web/page/files/shares/EditSharesPage","@social-mail/social-mail-client/dist/services/files/FileShareService","@social-mail/social-mail-client/dist/web/page/files/shares/AddSharePage","@web-atoms/web-controls/dist/basic/Switch","@web-atoms/web-controls/dist/basic/styles/switch-style","@web-atoms/web-controls/dist/basic/DateField","@web-atoms/web-controls/dist/basic/Calendar","@web-atoms/web-controls/dist/basic/Select","@web-atoms/web-controls/dist/basic/styles/calendar-style","@web-atoms/web-controls/dist/basic/TimeEditor","@web-atoms/web-controls/dist/basic/styles/time-editor-style","@web-atoms/web-controls/dist/basic/styles/date-field-style","@social-mail/social-mail-client/dist/web/page/templates/EditTemplatePage","@social-mail/social-mail-client/dist/services/mime-service/MimeNode","@social-mail/social-mail-client/dist/common/QueryIterator","@social-mail/social-mail-client/dist/services/mime-service/AttachmentFile","@social-mail/social-mail-client/dist/services/mime-service/HeaderContentType","@social-mail/social-mail-client/dist/services/mime-service/parsePairs","@social-mail/social-mail-client/dist/services/mime-service/tokenizer","@social-mail/social-mail-client/dist/services/mime-service/HeaderContentDisposition","@social-mail/social-mail-client/dist/services/mime-service/encoder/word-encoding","@social-mail/social-mail-client/dist/services/mime-service/encoder/RawBuffer","@social-mail/social-mail-client/dist/services/mime-service/encoder/base64-to-blob","@social-mail/social-mail-client/dist/services/mime-service/encoder/quoted-printable","@social-mail/social-mail-client/dist/services/mime-service/MimeMessage","@social-mail/social-mail-client/dist/services/mime-service/stream/LineStream","@social-mail/social-mail-client/dist/services/mime-service/stream/TextWriter","@social-mail/social-mail-client/dist/common/pages/folders/ChooseTemplatePage","@social-mail/social-mail-client/dist/web/page/channels/detail/ChannelDetailPage","@social-mail/social-mail-client/dist/web/page/channels/subscribers/ChannelSubscribersPage","@social-mail/social-mail-client/dist/web/page/channels/services/ChannelService","@social-mail/social-mail-client/dist/web/page/channels/subscribers/add/AddSubscriberPage","@social-mail/social-mail-client/dist/web/page/channels/subscribers/rights/UpdateRightsPage","@social-mail/social-mail-client/dist/common/pages/drives/DriveListPage","@social-mail/social-mail-client/dist/common/pages/websites/manage/ManageWebSitePage","@social-mail/social-mail-client/dist/services/websites/WebSiteService","@social-mail/social-mail-client/dist/common/pages/websites/studio/WebSiteStudioPage","@social-mail/social-mail-client/dist/common/pages/websites/templates/ChooseWebSiteTemplatePage","@web-atoms/core/dist/services/FetchBuilder","@social-mail/social-mail-client/dist/common/controls/tree/FileTreeView","@social-mail/social-mail-client/dist/site-editor/editor/HtmlPageEditor","@social-mail/social-mail-client/dist/web/page/files/media/ChooseMediaPage","@social-mail/social-mail-client/dist/site-editor/blocks/ImageBlock","@social-mail/social-mail-client/dist/site-editor/blocks/Block","@social-mail/social-mail-client/dist/site-editor/drag-drop/DragDropHelper","@social-mail/social-mail-client/dist/site-editor/commands/CodeCommand","@social-mail/social-mail-client/dist/site-editor/commands/EditorCommand","@social-mail/social-mail-client/dist/site-editor/toolbars/UndoRedoToolbar","@social-mail/social-mail-client/dist/site-editor/toolbars/EditorToolbar","@social-mail/social-mail-client/dist/site-editor/blocks/WrapGrid","@social-mail/social-mail-client/dist/site-editor/properties/Properties","@social-mail/social-mail-client/dist/site-editor/styler/StylerSet","@social-mail/social-mail-client/dist/site-editor/styler/Styler","@social-mail/social-mail-client/dist/site-editor/styler/properties/layout","@social-mail/social-mail-client/dist/site-editor/styler/properties/cursor","@social-mail/social-mail-client/dist/site-editor/styler/properties/color","@social-mail/social-mail-client/dist/site-editor/styler/properties/filter","@social-mail/social-mail-client/dist/site-editor/styler/properties/boxShadow","@social-mail/social-mail-client/dist/site-editor/styler/properties/border","@social-mail/social-mail-client/dist/common/pages/user/change-password/ChangePasswordPage","@social-mail/social-mail-client/dist/common/pages/user/services/UserService","@social-mail/social-mail-client/dist/common/pages/user/multi-factor/MultiFactorSetupPage","@social-mail/social-mail-client/dist/common/pages/websites/list/WebSiteListPage","@social-mail/social-mail-client/dist/common/pages/websites/edit/WebSiteFolderEditor","@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxDetailPage","@social-mail/social-mail-client/dist/common/pages/mailboxes/settings/EditSyncTargetPage","@social-mail/social-mail-client/dist/common/icons/Icons","@social-mail/social-mail-client/dist/admin/pages/relays/edit/EditRelayPage","@social-mail/social-mail-client/dist/common/pages/user/login/LoginPage","@web-atoms/web-controls/dist/basic/ToggleButtonBar","@web-atoms/web-controls/dist/basic/styles/toggle-button-bar-style","@social-mail/social-mail-client/dist/admin/drawer/AdminDrawer","@social-mail/social-mail-client/dist/common/controls/menu/MenuItem","@social-mail/social-mail-client/dist/common/controls/ModuleInfo","@web-atoms/core/dist/web/WebApp","@web-atoms/core/dist/core/AtomOnce","@web-atoms/core/dist/web/services/WebBusyIndicatorService","@web-atoms/core/dist/web/styles/StyleBuilder","@web-atoms/core/dist/web/services/WindowService","@web-atoms/core/dist/Atom","@web-atoms/core/dist/core/FormattedError","@web-atoms/core/dist/view-model/AtomWindowViewModel","@web-atoms/core/dist/view-model/AtomViewModel","@web-atoms/core/dist/view-model/baseTypes","@web-atoms/core/dist/web/controls/AtomAlertWindow","@web-atoms/core/dist/web/styles/AtomAlertWindowStyle","@web-atoms/core/dist/web/styles/AtomWindowStyle","@web-atoms/core/src/web/images/close-button-hover.svg","@web-atoms/core/dist/web/controls/AtomWindow","@web-atoms/core/dist/web/controls/AtomTemplate","@web-atoms/core/dist/web/controls/AtomNotification","@web-atoms/core/dist/web/styles/AtomNotificationStyle","@web-atoms/core/dist/web/styles/AtomPopupStyle","@web-atoms/core/dist/web/services/NotificationPopup","@web-atoms/core/dist/web/styles/AtomTheme"]);
1869
1869
 
1870
1870
  System.register([], function (_export, _context) {
1871
1871
  "use strict";
@@ -11679,11 +11679,13 @@ System.register(["./AtomBinder"], function (_export, _context) {
11679
11679
  }
11680
11680
  remove(item) {
11681
11681
  if (item instanceof Function) {
11682
- let index = 0;
11683
11682
  let removed = false;
11684
- for (const it of this) {
11683
+ for (let index = 0; index < this.length;) {
11684
+ const it = this[index];
11685
11685
  if (item(it)) {
11686
- this.removeAt(index);
11686
+ this.splice(index, 1);
11687
+ AtomBinder.invokeItemsEvent(this, "remove", index, it);
11688
+ AtomBinder.refreshValue(this, "length");
11687
11689
  removed = true;
11688
11690
  continue;
11689
11691
  }
@@ -11874,7 +11876,7 @@ System.register(["@web-atoms/core/dist/core/types", "@web-atoms/core/dist/core/A
11874
11876
  execute: function () {
11875
11877
  _export("___UMD", ___UMD = UMD);
11876
11878
  addLinkTag("https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&display=swap");
11877
- addLinkTag("https://npm-git.azureedge.net/npm/package/@c8private/fa-icons@6.4.2/css/all.min.css");
11879
+ addLinkTag("https://npm-git.azureedge.net/npm/package/@c8private/fa-icons@6.5.1/css/all.min.css");
11878
11880
  addLinkTag("https://cdn.jsdelivr.net/npm/file-icon-vectors@1.0.0/dist/file-icon-vivid.min.css");
11879
11881
  styled.css`
11880
11882
 
@@ -13365,7 +13367,7 @@ System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/ent
13365
13367
  System.register(["@web-atoms/date-time/dist/DateTime", "@web-atoms/entity/dist/services/BaseEntityService"], function (_export, _context) {
13366
13368
  "use strict";
13367
13369
 
13368
- var DateTime, Model, DefaultFactory, AppRole, AppFileContentDispositionArray, AppFile, AppFileVersion, AppFileAccessTypeArray, AppFileAccess, AppFileTag, FileContent, Configuration, Contact, ContactEmail, ContactPhone, ContactItem, ContactDomain, CachedItem, Domain, HostedDomain, DomainUser, DomainRelayTypeArray, DomainRelay, DomainKey, EmailStatusArray, Email, AppLog, EmailRecipientTypeArray, EmailRecipient, EmailTag, EmailAddress, EmailTemplate, Mailbox, MailboxEmail, MailboxThread, MailboxThreadEmail, MailboxSyncTargetDirectionArray, MailboxSyncTargetProtocolArray, MailboxSyncTargetLastSyncStatusArray, MailboxSyncTarget, MailboxSubscriberStatusArray, MailboxSubscriber, SubscriberActivity, SearchWordStatusArray, SearchWord, SearchWordIndex, UserStatusArray, User, UserPin, UserRole, UserMailbox, UserAuthFactorMethodArray, UserAuthFactor, WebSiteFolder, WebSiteFolderHost, LoginSession, TextDocument, Tag;
13370
+ var DateTime, Model, DefaultFactory, AppRole, AppFileContentDispositionArray, AppFile, AppFileVersion, AppFileAccessTypeArray, AppFileAccess, AppFileTag, FileContent, Configuration, Contact, ContactEmail, ContactPhone, ContactItem, ContactDomain, CachedItem, Domain, HostedDomain, DomainUser, DomainRelayTypeArray, DomainRelay, DomainKey, EmailStatusArray, Email, AppLog, EmailRecipientTypeArray, EmailRecipient, EmailTag, EmailAddress, EmailTemplate, Mailbox, MailboxEmail, MailboxThread, MailboxThreadEmail, MailboxSyncTargetDirectionArray, MailboxSyncTargetProtocolArray, MailboxSyncTargetLastSyncStatusArray, MailboxSyncTarget, MailboxSubscriberStatusArray, MailboxSubscriber, SubscriberActivity, SearchWordStatusArray, SearchWord, SearchWordIndex, UserStatusArray, User, UserPin, UserRole, UserMailbox, UserAuthFactorMethodArray, UserAuthFactor, WebSiteFolder, WebSiteFolderHost, WebSiteFolderVersion, LoginSession, TextDocument, Tag;
13369
13371
  return {
13370
13372
  setters: [function (_webAtomsDateTimeDistDateTime) {
13371
13373
  DateTime = _webAtomsDateTimeDistDateTime.default;
@@ -13696,6 +13698,7 @@ System.register(["@web-atoms/date-time/dist/DateTime", "@web-atoms/entity/dist/s
13696
13698
  isStatic: false
13697
13699
  }));
13698
13700
  _export("WebSiteFolderHost", WebSiteFolderHost = new Model("WebSiteFolderHost", ["host"], {}));
13701
+ _export("WebSiteFolderVersion", WebSiteFolderVersion = new Model("WebSiteFolderVersion", ["folderID", "snapshotFolderID"], {}));
13699
13702
  _export("LoginSession", LoginSession = new Model("LoginSession", ["sessionID"], {
13700
13703
  invalid: false,
13701
13704
  dateUpdated: new DefaultFactory(() => new DateTime())
@@ -15945,6 +15948,9 @@ System.register(["tslib", "@web-atoms/core/dist/core/AtomBinder", "@web-atoms/co
15945
15948
  const {
15946
15949
  placeholder
15947
15950
  } = hoverItem;
15951
+ if (!placeholder) {
15952
+ return;
15953
+ }
15948
15954
  if (e.target === placeholder) {
15949
15955
  return;
15950
15956
  }
@@ -18022,10 +18028,12 @@ System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/cor
18022
18028
  execute: function () {
18023
18029
  hideActivityIndicator = true;
18024
18030
  CloudFileService = class CloudFileService {
18025
- top() {
18031
+ top(site = false) {
18026
18032
  return __awaiter(this, void 0, void 0, function* () {
18027
18033
  const userID = SocialMailApp.user.userID;
18028
- const top = yield this.entityService.query(AppFile).where(x => x.isFolder === true && x.parentID === null && x.path !== null).orderByDescending({
18034
+ let q = this.entityService.query(AppFile).where(x => x.isFolder === true && x.parentID === null && x.path !== null);
18035
+ q = site ? q.where(x => x.websiteFolder.folderID !== null) : q.where(x => x.websiteFolder.folderID === null);
18036
+ const top = yield q.orderByDescending({
18029
18037
  userID
18030
18038
  }, p => x => x.userPins.some(s => p.userID === s.userID)).thenByDescending(x => x.dateUpdated).include(x => x.creator).toPagedList({
18031
18039
  size: 3,
@@ -18068,13 +18076,31 @@ System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/cor
18068
18076
  return all.filter(x => !x.parentID);
18069
18077
  });
18070
18078
  }
18079
+ getFolder(id, cancelToken = null) {
18080
+ return __awaiter(this, void 0, void 0, function* () {
18081
+ const folder = yield this.entityService.query(AppFile).where({
18082
+ id
18083
+ }, p => x => x.appFileID === p.id).include(x => x.creator).include(x => x.children).firstOrDefault({
18084
+ cancelToken
18085
+ });
18086
+ if (folder.children) {
18087
+ folder.children.remove(x => !x.isFolder);
18088
+ } else {
18089
+ folder.children = [];
18090
+ }
18091
+ return folder;
18092
+ });
18093
+ }
18071
18094
  root({
18072
18095
  id,
18073
- templates = false
18096
+ templates = false,
18097
+ cancelToken = null
18074
18098
  }) {
18075
18099
  return __awaiter(this, void 0, void 0, function* () {
18076
18100
  if (templates) {
18077
- const children = yield this.entityService.query(AppFile).where(x => x.templates.some(c => true)).toArray();
18101
+ const children = yield this.entityService.query(AppFile).where(x => x.templates.some(c => true)).toArray({
18102
+ cancelToken
18103
+ });
18078
18104
  const root = AppFile.create({
18079
18105
  name: "Templates",
18080
18106
  isFolder: true,
@@ -18086,7 +18112,9 @@ System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/cor
18086
18112
  }
18087
18113
  return yield this.entityService.query(AppFile).where({
18088
18114
  id
18089
- }, p => x => x.appFileID === p.id).include(x => x.creator).include(x => x.children).firstOrDefault();
18115
+ }, p => x => x.appFileID === p.id).include(x => x.creator).include(x => x.children).firstOrDefault({
18116
+ cancelToken
18117
+ });
18090
18118
  });
18091
18119
  }
18092
18120
  rootFolders() {
@@ -18135,6 +18163,7 @@ System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/cor
18135
18163
  }
18136
18164
  files({
18137
18165
  search = "",
18166
+ accept = "",
18138
18167
  folder,
18139
18168
  cancelToken,
18140
18169
  showDeleted = false
@@ -18157,6 +18186,12 @@ System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/cor
18157
18186
  search
18158
18187
  }, p => x => Sql.text.like(x.name, p.search));
18159
18188
  }
18189
+ if (accept) {
18190
+ const contentTypes = accept.split(/\,/g).map(x => x.replace("*", "%").trim()).filter(x => x);
18191
+ q = q.where({
18192
+ contentTypes
18193
+ }, p => x => x.isFolder || Sql.text.iLikeAny(x.contentType, p.contentTypes));
18194
+ }
18160
18195
  const files = yield q.orderByDescending(x => x.isFolder).thenBy(x => x.name).toArray({
18161
18196
  cancelToken
18162
18197
  });
@@ -18193,7 +18228,7 @@ System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/cor
18193
18228
  System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/web/controls/AtomControl", "@web-atoms/core/dist/core/BindableProperty", "@web-atoms/core/dist/style/styled", "@web-atoms/core/dist/web/core/AtomUI"], function (_export, _context) {
18194
18229
  "use strict";
18195
18230
 
18196
- var __decorate, __metadata, XNode, AtomControl, BindableProperty, styled, AncestorEnumerator, TreeView, expandSymbol;
18231
+ var __awaiter, __decorate, __metadata, XNode, AtomControl, BindableProperty, styled, AncestorEnumerator, TreeView, expandSymbol;
18197
18232
  function findTreeElement(element) {
18198
18233
  if (element.matches("[data-layout=tree-view-item]")) {
18199
18234
  return element;
@@ -18206,6 +18241,7 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/di
18206
18241
  });
18207
18242
  return {
18208
18243
  setters: [function (_tslib) {
18244
+ __awaiter = _tslib.__awaiter;
18209
18245
  __decorate = _tslib.__decorate;
18210
18246
  __metadata = _tslib.__metadata;
18211
18247
  }, function (_webAtomsCoreDistCoreXNode) {
@@ -18296,6 +18332,10 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/di
18296
18332
  super(...arguments);
18297
18333
  this.map = new WeakMap();
18298
18334
  this.canSelect = x => true;
18335
+ this.isFolder = x => true;
18336
+ }
18337
+ init() {
18338
+ return __awaiter(this, void 0, void 0, function* () {});
18299
18339
  }
18300
18340
  onPropertyChanging(name, oldValue, newValue) {
18301
18341
  if (name === "selectedItem") {
@@ -18316,7 +18356,9 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/di
18316
18356
  }
18317
18357
  const element = this.map.get(newValue);
18318
18358
  if (!element) {
18319
- console.error(`Item not in the tree`);
18359
+ if (this.root) {
18360
+ console.error(`Item not in the tree`);
18361
+ }
18320
18362
  return;
18321
18363
  }
18322
18364
  element.setAttribute("data-selected", "true");
@@ -18338,11 +18380,12 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/di
18338
18380
  case "root":
18339
18381
  case "childrenProperty":
18340
18382
  case "labelRenderer":
18341
- case "collapseIconRenderer":
18383
+ case "folderIconRenderer":
18384
+ case "fileIconRenderer":
18342
18385
  case "actionRenderer":
18343
18386
  const rootElement = this.element.firstElementChild;
18344
18387
  rootElement === null || rootElement === void 0 ? void 0 : rootElement.dispose();
18345
- if (this.root && this.childrenProperty && this.labelRenderer && this.collapseIconRenderer) {
18388
+ if (this.root && this.childrenProperty && this.labelRenderer && this.folderIconRenderer) {
18346
18389
  this.element.innerHTML = "";
18347
18390
  this.createElement(this.root, void 0, -1);
18348
18391
  this.expand(this.root);
@@ -18377,10 +18420,14 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/di
18377
18420
  text: (_d = (_c = item.label) !== null && _c !== void 0 ? _c : item.name) !== null && _d !== void 0 ? _d : item
18378
18421
  });
18379
18422
  };
18380
- this.collapseIconRenderer = item => XNode.create("i", {
18423
+ this.folderIconRenderer = item => XNode.create("i", {
18381
18424
  "data-click-event": "expand-collapse-item",
18382
18425
  class: "fas"
18383
18426
  });
18427
+ this.fileIconRenderer = item => XNode.create("i", {
18428
+ "data-element": "icon",
18429
+ "data-click-event": "none"
18430
+ });
18384
18431
  this.runAfterInit(() => {
18385
18432
  if (this.root && !this.element.firstElementChild) {
18386
18433
  if (this.childrenProperty) {
@@ -18402,6 +18449,10 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/di
18402
18449
  const element = findTreeElement(ce.target);
18403
18450
  this.expandElement(element);
18404
18451
  });
18452
+ this.runAfterInit(() => this.app.runAsync(() => {
18453
+ var _a;
18454
+ return (_a = this.init) === null || _a === void 0 ? void 0 : _a.call(this);
18455
+ }));
18405
18456
  }
18406
18457
  expandElement(element, toggle = true) {
18407
18458
  if (!element) {
@@ -18437,7 +18488,7 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/di
18437
18488
  }
18438
18489
  }
18439
18490
  createElement(item, parentItem, insertIndex = -1) {
18440
- var _a, _b, _c, _d, _e, _f;
18491
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
18441
18492
  const element = document.createElement("div");
18442
18493
  element.setAttribute("data-layout", "tree-view-item");
18443
18494
  element.dataItem = item;
@@ -18474,24 +18525,25 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/di
18474
18525
  element.remove();
18475
18526
  };
18476
18527
  const actionElement = (_a = this.actionRenderer) === null || _a === void 0 ? void 0 : _a.call(this, item);
18477
- const collapseElement = this.collapseIconRenderer(item);
18528
+ const isFolder = (_c = (_b = this.isFolder) === null || _b === void 0 ? void 0 : _b.call(this, item)) !== null && _c !== void 0 ? _c : true;
18529
+ const iconElement = isFolder ? this.folderIconRenderer(item) : (_e = (_d = this.fileIconRenderer) === null || _d === void 0 ? void 0 : _d.call(this, item)) !== null && _e !== void 0 ? _e : XNode.create("i", null);
18478
18530
  const labelElement = this.labelRenderer(item);
18531
+ if (iconElement) {
18532
+ const a = (_f = iconElement.attributes) !== null && _f !== void 0 ? _f : iconElement.attributes = {};
18533
+ (_g = a["data-element"]) !== null && _g !== void 0 ? _g : a["data-element"] = isFolder ? "expand-collapse" : "file-icon";
18534
+ (_h = a["data-click-event"]) !== null && _h !== void 0 ? _h : a["data-click-event"] = "toggle-expand";
18535
+ this.render(XNode.create("div", null, iconElement), element, this);
18536
+ }
18479
18537
  if (labelElement) {
18480
- const a = (_b = labelElement.attributes) !== null && _b !== void 0 ? _b : labelElement.attributes = {};
18538
+ const a = (_j = labelElement.attributes) !== null && _j !== void 0 ? _j : labelElement.attributes = {};
18481
18539
  a["data-element"] = "label";
18482
- (_c = a["data-click-event"]) !== null && _c !== void 0 ? _c : a["data-click-event"] = "select-item";
18540
+ (_k = a["data-click-event"]) !== null && _k !== void 0 ? _k : a["data-click-event"] = "select-item";
18483
18541
  this.render(XNode.create("div", null, labelElement), element, this);
18484
18542
  }
18485
18543
  if (actionElement) {
18486
- ((_d = actionElement.attributes) !== null && _d !== void 0 ? _d : actionElement.attributes = {})["data-element"] = "action";
18544
+ ((_l = actionElement.attributes) !== null && _l !== void 0 ? _l : actionElement.attributes = {})["data-element"] = "action";
18487
18545
  this.render(XNode.create("div", null, actionElement), element, this);
18488
18546
  }
18489
- if (collapseElement) {
18490
- const a = (_e = collapseElement.attributes) !== null && _e !== void 0 ? _e : collapseElement.attributes = {};
18491
- a["data-element"] = "expand-collapse";
18492
- a["data-click-event"] = "toggle-expand";
18493
- this.render(XNode.create("div", null, collapseElement), element, this);
18494
- }
18495
18547
  const header = document.createElement("div");
18496
18548
  header.setAttribute("data-element", "header");
18497
18549
  element.appendChild(header);
@@ -18506,7 +18558,7 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/di
18506
18558
  last = this.map.get(siblings[insertIndex - 1]);
18507
18559
  }
18508
18560
  last.insertAdjacentElement("afterend", element);
18509
- const pad = Number((_f = parentElement.getAttribute("data-pad")) !== null && _f !== void 0 ? _f : "0") + 10;
18561
+ const pad = Number((_m = parentElement.getAttribute("data-pad")) !== null && _m !== void 0 ? _m : "0") + 10;
18510
18562
  element.setAttribute("data-pad", `${pad}`);
18511
18563
  element.style.paddingLeft = `${pad}px`;
18512
18564
  } else {
@@ -18547,6 +18599,7 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/di
18547
18599
  });
18548
18600
  __decorate([BindableProperty, __metadata("design:type", Object)], TreeView.prototype, "root", void 0);
18549
18601
  __decorate([BindableProperty, __metadata("design:type", Object)], TreeView.prototype, "selectedItem", void 0);
18602
+ delete TreeView.prototype.init;
18550
18603
  }
18551
18604
  };
18552
18605
  });
@@ -25033,6 +25086,7 @@ System.register(["tslib", "@web-atoms/core/dist/core/AtomBinder", "@web-atoms/co
25033
25086
  class: "search",
25034
25087
  placeholder: Bind.oneWay(() => this.prompt),
25035
25088
  value: Bind.twoWaysImmediate(() => this.search),
25089
+ autofocus: Bind.oneWay(() => this.autofocus),
25036
25090
  type: "search"
25037
25091
  }), XNode.create("div", {
25038
25092
  class: "footer"
@@ -25226,6 +25280,7 @@ System.register(["tslib", "@web-atoms/core/dist/core/AtomBinder", "@web-atoms/co
25226
25280
  __decorate([BindableProperty, __metadata("design:type", String)], AtomChips.prototype, "search", void 0);
25227
25281
  __decorate([BindableProperty, __metadata("design:type", String)], AtomChips.prototype, "prompt", void 0);
25228
25282
  __decorate([BindableProperty, __metadata("design:type", String)], AtomChips.prototype, "suggestionPrompt", void 0);
25283
+ __decorate([BindableProperty, __metadata("design:type", Object)], AtomChips.prototype, "autofocus", void 0);
25229
25284
  __decorate([BindableProperty, __metadata("design:type", String)], AtomChips.prototype, "softDeleteProperty", void 0);
25230
25285
  __decorate([BindableProperty, __metadata("design:type", Function)], AtomChips.prototype, "labelPath", void 0);
25231
25286
  __decorate([BindableProperty, __metadata("design:type", Function)], AtomChips.prototype, "match", void 0);
@@ -30778,10 +30833,10 @@ System.register(["tslib", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dis
30778
30833
 
30779
30834
  AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/drives/DriveListPage");
30780
30835
 
30781
- System.register(["tslib", "@web-atoms/core/dist/di/DITransient", "@web-atoms/core/dist/di/Inject", "../../../../services/EntityService", "../../../../model/model", "../../../SocialMailApp"], function (_export, _context) {
30836
+ System.register(["tslib", "@web-atoms/core/dist/di/DITransient", "@web-atoms/core/dist/di/Inject", "../EntityService", "../../model/model"], function (_export, _context) {
30782
30837
  "use strict";
30783
30838
 
30784
- var __awaiter, __decorate, __metadata, DITransient, Inject, EntityService, User, UserAuthFactor, SocialMailApp, UserService;
30839
+ var __awaiter, __decorate, __metadata, DITransient, Inject, EntityService, WebSiteFolder, WebSiteService;
30785
30840
  return {
30786
30841
  setters: [function (_tslib) {
30787
30842
  __awaiter = _tslib.__awaiter;
@@ -30791,157 +30846,95 @@ System.register(["tslib", "@web-atoms/core/dist/di/DITransient", "@web-atoms/cor
30791
30846
  DITransient = _webAtomsCoreDistDiDITransient.default;
30792
30847
  }, function (_webAtomsCoreDistDiInject) {
30793
30848
  Inject = _webAtomsCoreDistDiInject.Inject;
30794
- }, function (_servicesEntityService) {
30795
- EntityService = _servicesEntityService.default;
30849
+ }, function (_EntityService) {
30850
+ EntityService = _EntityService.default;
30796
30851
  }, function (_modelModel) {
30797
- User = _modelModel.User;
30798
- UserAuthFactor = _modelModel.UserAuthFactor;
30799
- }, function (_SocialMailApp) {
30800
- SocialMailApp = _SocialMailApp.default;
30852
+ WebSiteFolder = _modelModel.WebSiteFolder;
30801
30853
  }],
30802
30854
  execute: function () {
30803
- UserService = class UserService {
30804
- getCurrent() {
30855
+ WebSiteService = class WebSiteService {
30856
+ get(id) {
30805
30857
  return __awaiter(this, void 0, void 0, function* () {
30806
- const {
30807
- userID
30808
- } = SocialMailApp.user;
30809
- return this.entityService.query(User).where({
30810
- userID
30811
- }, p => x => x.userID === p.userID).include(x => x.authFactors).firstOrDefault();
30858
+ return this.entityService.query(WebSiteFolder).where({
30859
+ id
30860
+ }, p => x => x.folderID === p.id).include(x => [x.folder, x.hosts, x.versions]).firstOrDefault();
30812
30861
  });
30813
30862
  }
30814
- save(user) {
30863
+ list() {
30815
30864
  return __awaiter(this, void 0, void 0, function* () {
30816
- let cloner = this.entityService.cloner(user).include(x => x.authFactors);
30817
- if (user.changePassword) {
30818
- cloner = cloner.include(x => x.changePassword);
30819
- }
30820
- yield this.entityService.save(cloner.copy);
30865
+ return this.entityService.query(WebSiteFolder).include(x => [x.folder, x.hosts]).toArray();
30821
30866
  });
30822
30867
  }
30823
- createAuthFactor(user, method = "totp") {
30824
- var _a;
30868
+ save(model) {
30825
30869
  return __awaiter(this, void 0, void 0, function* () {
30826
- const authFactor = UserAuthFactor.create({
30827
- method
30828
- });
30829
- ((_a = user.authFactors) !== null && _a !== void 0 ? _a : user.authFactors = []).add(authFactor);
30830
- yield this.save(user);
30831
- return authFactor;
30870
+ const cloner = this.entityService.cloner(model).include(x => x.folder).copy;
30871
+ yield this.entityService.save(cloner);
30872
+ return model;
30832
30873
  });
30833
30874
  }
30834
30875
  };
30835
- __decorate([Inject, __metadata("design:type", EntityService)], UserService.prototype, "entityService", void 0);
30836
- UserService = __decorate([DITransient()], UserService);
30837
- _export("default", UserService);
30876
+ __decorate([Inject, __metadata("design:type", EntityService)], WebSiteService.prototype, "entityService", void 0);
30877
+ WebSiteService = __decorate([DITransient()], WebSiteService);
30878
+ _export("default", WebSiteService);
30838
30879
  }
30839
30880
  };
30840
30881
  });
30841
- //# sourceMappingURL=UserService.js.map
30882
+ //# sourceMappingURL=WebSiteService.js.map
30842
30883
 
30843
- AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/user/services/UserService");
30884
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/websites/WebSiteService");
30844
30885
 
30845
- 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) {
30886
+ System.register(["tslib", "@web-atoms/core/dist/core/InjectProperty", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "../../../../services/websites/WebSiteService", "@web-atoms/core/dist/core/XNode", "../../../commands/CommonCommands"], function (_export, _context) {
30846
30887
  "use strict";
30847
30888
 
30848
- var __awaiter, __decorate, __metadata, PopupWindowPage, InjectProperty, UserService, XNode, Form, PasswordFormField, Bind, PasswordStrength, FormField, PasswordBox, Validators, SaveIconTextButton, Action, ChangePasswordPage;
30889
+ var __awaiter, __decorate, __metadata, InjectProperty, ContentPage, WebSiteService, XNode, CommonCommands, ManageWebSitePage;
30849
30890
  _export("default", void 0);
30850
30891
  return {
30851
30892
  setters: [function (_tslib) {
30852
30893
  __awaiter = _tslib.__awaiter;
30853
30894
  __decorate = _tslib.__decorate;
30854
30895
  __metadata = _tslib.__metadata;
30855
- }, function (_webAtomsWebControlsDistMobileAppMobileApp) {
30856
- PopupWindowPage = _webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage;
30857
30896
  }, function (_webAtomsCoreDistCoreInjectProperty) {
30858
30897
  InjectProperty = _webAtomsCoreDistCoreInjectProperty.default;
30859
- }, function (_servicesUserService) {
30860
- UserService = _servicesUserService.default;
30898
+ }, function (_webAtomsWebControlsDistMobileAppMobileApp) {
30899
+ ContentPage = _webAtomsWebControlsDistMobileAppMobileApp.ContentPage;
30900
+ }, function (_servicesWebsitesWebSiteService) {
30901
+ WebSiteService = _servicesWebsitesWebSiteService.default;
30861
30902
  }, function (_webAtomsCoreDistCoreXNode) {
30862
30903
  XNode = _webAtomsCoreDistCoreXNode.default;
30863
- }, function (_webAtomsWebControlsDistBasicForm) {
30864
- Form = _webAtomsWebControlsDistBasicForm.default;
30865
- }, function (_controlsFormRequiredFormField) {
30866
- PasswordFormField = _controlsFormRequiredFormField.PasswordFormField;
30867
- }, function (_webAtomsCoreDistCoreBind) {
30868
- Bind = _webAtomsCoreDistCoreBind.default;
30869
- }, function (_controlsPasswordPasswordStrength) {
30870
- PasswordStrength = _controlsPasswordPasswordStrength.default;
30871
- }, function (_webAtomsWebControlsDistBasicFormField) {
30872
- FormField = _webAtomsWebControlsDistBasicFormField.default;
30873
- }, function (_webAtomsWebControlsDistBasicPasswordBox) {
30874
- PasswordBox = _webAtomsWebControlsDistBasicPasswordBox.default;
30875
- }, function (_validatorsValidators) {
30876
- Validators = _validatorsValidators.Validators;
30877
- }, function (_controlsButtonsIconButton) {
30878
- SaveIconTextButton = _controlsButtonsIconButton.SaveIconTextButton;
30879
- }, function (_webAtomsCoreDistViewModelAction) {
30880
- Action = _webAtomsCoreDistViewModelAction.default;
30904
+ }, function (_commandsCommonCommands) {
30905
+ CommonCommands = _commandsCommonCommands.default;
30881
30906
  }],
30882
30907
  execute: function () {
30883
- _export("default", ChangePasswordPage = class ChangePasswordPage extends PopupWindowPage {
30884
- constructor() {
30885
- super(...arguments);
30886
- this.password = "";
30887
- }
30908
+ _export("default", ManageWebSitePage = class ManageWebSitePage extends ContentPage {
30888
30909
  init() {
30910
+ var _a;
30889
30911
  return __awaiter(this, void 0, void 0, function* () {
30890
- this.model = yield this.userService.getCurrent();
30891
- this.title = "Change Password";
30892
- this.model.changePassword = {
30893
- oldPassword: "",
30894
- newPassword: "",
30895
- forceChangePasswordOnLogin: false
30896
- };
30897
- this.renderer = XNode.create("div", null, XNode.create(Form, null, XNode.create(PasswordFormField, {
30898
- label: "Current Password",
30899
- value: () => this.model.changePassword.oldPassword
30900
- }), XNode.create(FormField, {
30901
- label: "Password",
30902
- required: true,
30903
- error: Bind.oneWay(() => Validators.isValidPassword(this.password) ? "" : "Password is invalid")
30904
- }, XNode.create(PasswordBox, {
30905
- value: Bind.twoWaysImmediate(() => this.password)
30906
- })), XNode.create(PasswordStrength, {
30907
- password: Bind.oneWay(() => this.password)
30908
- }), XNode.create(FormField, {
30909
- label: "Password again",
30910
- required: true,
30911
- error: Bind.oneWay(() => this.password !== this.model.changePassword.newPassword ? "Passwords do not match" : "")
30912
- }, XNode.create(PasswordBox, {
30913
- value: Bind.twoWaysImmediate(() => this.model.changePassword.newPassword)
30914
- })), XNode.create("div", {
30915
- "data-layout": "command-row"
30916
- }, XNode.create(SaveIconTextButton, {
30917
- "data-submit-event": "save-user",
30918
- text: "Change"
30919
- }))));
30920
- });
30921
- }
30922
- saveUser() {
30923
- return __awaiter(this, void 0, void 0, function* () {
30924
- yield this.userService.save(this.model);
30912
+ this.model = yield this.webSiteService.get(this.parameters.id);
30913
+ this.renderer = XNode.create("div", null, XNode.create("div", null, this.model.folder.name, XNode.create("a", {
30914
+ "data-click-event": "route",
30915
+ href: CommonCommands.editWebSite.displayRoute({
30916
+ id: this.parameters.id
30917
+ })
30918
+ }, XNode.create("button", {
30919
+ text: "Edit"
30920
+ })), XNode.create("button", {
30921
+ text: "Preview"
30922
+ })), XNode.create("div", null, XNode.create("h5", null, "Versions"), XNode.create("div", null, ...((_a = this.model.versions) !== null && _a !== void 0 ? _a : []).map(v => XNode.create("div", null, v.snapshotFolderID)))));
30925
30923
  });
30926
30924
  }
30927
30925
  });
30928
- __decorate([InjectProperty, __metadata("design:type", UserService)], ChangePasswordPage.prototype, "userService", void 0);
30929
- __decorate([Action({
30930
- onEvent: "save-user",
30931
- success: "Password changed successfully.",
30932
- close: true
30933
- }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], ChangePasswordPage.prototype, "saveUser", null);
30926
+ __decorate([InjectProperty, __metadata("design:type", WebSiteService)], ManageWebSitePage.prototype, "webSiteService", void 0);
30934
30927
  }
30935
30928
  };
30936
30929
  });
30937
- //# sourceMappingURL=ChangePasswordPage.js.map
30930
+ //# sourceMappingURL=ManageWebSitePage.js.map
30938
30931
 
30939
- AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/user/change-password/ChangePasswordPage");
30932
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/websites/manage/ManageWebSitePage");
30940
30933
 
30941
- System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "../../../../model/model", "@web-atoms/core/dist/core/InjectProperty", "../services/UserService", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/basic/Form", "../../../controls/buttons/IconButton", "@web-atoms/web-controls/dist/basic/FormField", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/view-model/Action", "@web-atoms/web-controls/dist/basic/AtomRepeater", "../../../date/DateFormats"], function (_export, _context) {
30934
+ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/view-model/Action", "@web-atoms/core/dist/core/types"], function (_export, _context) {
30942
30935
  "use strict";
30943
30936
 
30944
- var __awaiter, __decorate, __metadata, ContentPage, UserAuthFactor, InjectProperty, UserService, XNode, Form, AddIconTextButton, DeleteIconTextButton, SaveIconTextButton, FormField, Bind, Action, AtomRepeater, DateFormats, MultiFactorSetupPage;
30937
+ var __awaiter, __decorate, __metadata, PopupWindowPage, XNode, Action, UMD, ChooseWebSiteTemplatePage;
30945
30938
  _export("default", void 0);
30946
30939
  return {
30947
30940
  setters: [function (_tslib) {
@@ -30949,102 +30942,2477 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
30949
30942
  __decorate = _tslib.__decorate;
30950
30943
  __metadata = _tslib.__metadata;
30951
30944
  }, function (_webAtomsWebControlsDistMobileAppMobileApp) {
30952
- ContentPage = _webAtomsWebControlsDistMobileAppMobileApp.ContentPage;
30953
- }, function (_modelModel) {
30954
- UserAuthFactor = _modelModel.UserAuthFactor;
30955
- }, function (_webAtomsCoreDistCoreInjectProperty) {
30956
- InjectProperty = _webAtomsCoreDistCoreInjectProperty.default;
30957
- }, function (_servicesUserService) {
30958
- UserService = _servicesUserService.default;
30945
+ PopupWindowPage = _webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage;
30959
30946
  }, function (_webAtomsCoreDistCoreXNode) {
30960
30947
  XNode = _webAtomsCoreDistCoreXNode.default;
30961
- }, function (_webAtomsWebControlsDistBasicForm) {
30962
- Form = _webAtomsWebControlsDistBasicForm.default;
30963
- }, function (_controlsButtonsIconButton) {
30964
- AddIconTextButton = _controlsButtonsIconButton.AddIconTextButton;
30965
- DeleteIconTextButton = _controlsButtonsIconButton.DeleteIconTextButton;
30966
- SaveIconTextButton = _controlsButtonsIconButton.SaveIconTextButton;
30967
- }, function (_webAtomsWebControlsDistBasicFormField) {
30968
- FormField = _webAtomsWebControlsDistBasicFormField.default;
30969
- }, function (_webAtomsCoreDistCoreBind) {
30970
- Bind = _webAtomsCoreDistCoreBind.default;
30971
30948
  }, function (_webAtomsCoreDistViewModelAction) {
30972
30949
  Action = _webAtomsCoreDistViewModelAction.default;
30973
- }, function (_webAtomsWebControlsDistBasicAtomRepeater) {
30974
- AtomRepeater = _webAtomsWebControlsDistBasicAtomRepeater.default;
30975
- }, function (_dateDateFormats) {
30976
- DateFormats = _dateDateFormats.DateFormats;
30950
+ }, function (_webAtomsCoreDistCoreTypes) {
30951
+ UMD = _webAtomsCoreDistCoreTypes.UMD;
30977
30952
  }],
30978
30953
  execute: function () {
30979
- _export("default", MultiFactorSetupPage = class MultiFactorSetupPage extends ContentPage {
30954
+ _export("default", ChooseWebSiteTemplatePage = class ChooseWebSiteTemplatePage extends PopupWindowPage {
30980
30955
  init() {
30981
- var _a, _b;
30982
30956
  return __awaiter(this, void 0, void 0, function* () {
30983
- this.model = yield this.userService.getCurrent();
30984
- const {
30985
- multiFactor
30986
- } = this.model;
30987
- this.title = "Setup Multi Factor Authentication";
30988
- if (!((_a = this.model.authFactors) === null || _a === void 0 ? void 0 : _a.length)) {
30989
- yield this.notSetup();
30990
- return;
30991
- }
30992
- if (multiFactor) {
30993
- this.renderer = XNode.create("div", {
30994
- "data-layout": "center-page-900px"
30995
- }, XNode.create(Form, null, XNode.create(FormField, {
30996
- label: "Methods"
30997
- }, XNode.create(AtomRepeater, {
30998
- for: "table",
30999
- items: this.model.authFactors,
31000
- itemRenderer: item => this.renderAuthFactor(item)
31001
- })), !multiFactor && XNode.create("div", {
31002
- "data-layout": "command-row"
31003
- }, XNode.create(AddIconTextButton, {
31004
- "event-click": () => this.addAuthenticator(),
31005
- text: "Add Authenticator"
31006
- }), XNode.create(AddIconTextButton, {
31007
- "event-click": () => this.generateOTP(),
31008
- text: "Generate OTP"
31009
- })), XNode.create("div", {
31010
- "data-layout": "command-row"
31011
- }, XNode.create("div", null, "Multi factor authentication is enabled."), XNode.create(DeleteIconTextButton, {
31012
- text: "Disable"
31013
- }))));
31014
- return;
31015
- }
31016
- const disable = !((_b = this.model.authFactors) === null || _b === void 0 ? void 0 : _b.length) || !this.model.authFactors.some(i => i.method === "totp" && i.verified) || this.model.authFactors.filter(i => i.method === "one-time").length < 8;
31017
- this.renderer = XNode.create("div", {
31018
- "data-layout": "center-page-900px"
31019
- }, XNode.create(Form, null, XNode.create(FormField, {
31020
- label: "Methods"
31021
- }, XNode.create(AtomRepeater, {
31022
- for: "table",
31023
- items: this.model.authFactors,
31024
- itemRenderer: item => this.renderAuthFactor(item)
31025
- })), !multiFactor && XNode.create("div", {
31026
- "data-layout": "command-row"
31027
- }, XNode.create(AddIconTextButton, {
31028
- "event-click": () => this.addAuthenticator(),
31029
- text: "Add Authenticator"
31030
- }), XNode.create(AddIconTextButton, {
31031
- "event-click": () => this.generateOTP(),
31032
- text: "Generate OTP"
31033
- })), disable && XNode.create("div", null, "You must add at least one authenticator and generate 8 OTPs (one time passwords) to enable Multi factor authentication."), !multiFactor && XNode.create("div", {
31034
- "data-layout": "command-row"
31035
- }, XNode.create(SaveIconTextButton, {
31036
- disabled: disable,
31037
- "style-color": disable ? "gray" : "",
31038
- "data-click-event": "enable-multi-factor",
31039
- text: "Enable"
31040
- }), XNode.create(DeleteIconTextButton, {
31041
- "data-submit-event": "clear-all",
31042
- text: "Clear All"
31043
- })), multiFactor && XNode.create("div", {
31044
- "data-layout": "command-row"
31045
- }, XNode.create(DeleteIconTextButton, {
31046
- text: "Disable"
31047
- }))));
30957
+ this.renderer = XNode.create("div", null, XNode.create("button", {
30958
+ "data-click-event": "create-template",
30959
+ text: "Create"
30960
+ }));
30961
+ });
30962
+ }
30963
+ createTemplate() {
30964
+ return __awaiter(this, void 0, void 0, function* () {
30965
+ const path = UMD.resolvePath("@social-mail/social-mail-client/content/templates/plain/index.html");
30966
+ const rs = yield fetch(path);
30967
+ const text = yield rs.text();
30968
+ yield this.upload("index.html", text);
30969
+ });
30970
+ }
30971
+ upload(fileName, content) {
30972
+ return __awaiter(this, void 0, void 0, function* () {
30973
+ const url = `/api/upload?parentID=${this.parameters.appFileID}`;
30974
+ const body = new FormData();
30975
+ body.append(fileName, new Blob([content], {
30976
+ type: "text/html"
30977
+ }), fileName);
30978
+ const rs = yield fetch(url, {
30979
+ method: "POST",
30980
+ body
30981
+ });
30982
+ });
30983
+ }
30984
+ });
30985
+ __decorate([Action({
30986
+ onEvent: "create-template",
30987
+ close: true
30988
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], ChooseWebSiteTemplatePage.prototype, "createTemplate", null);
30989
+ }
30990
+ };
30991
+ });
30992
+ //# sourceMappingURL=ChooseWebSiteTemplatePage.js.map
30993
+
30994
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/websites/templates/ChooseWebSiteTemplatePage");
30995
+
30996
+ System.register(["tslib", "./http/JsonError"], function (_export, _context) {
30997
+ "use strict";
30998
+
30999
+ var __awaiter, JsonError, FetchBuilder;
31000
+ function buildUrl(strings, ...p) {
31001
+ let r = "";
31002
+ for (let index = 0; index < strings.length; index++) {
31003
+ const element = strings[index];
31004
+ r += element;
31005
+ if (index < p.length) {
31006
+ r += encodeURIComponent(p[index]);
31007
+ }
31008
+ }
31009
+ return r;
31010
+ }
31011
+ _export({
31012
+ buildUrl: buildUrl,
31013
+ default: void 0
31014
+ });
31015
+ return {
31016
+ setters: [function (_tslib) {
31017
+ __awaiter = _tslib.__awaiter;
31018
+ }, function (_httpJsonError) {
31019
+ JsonError = _httpJsonError.default;
31020
+ }],
31021
+ execute: function () {
31022
+ _export("default", FetchBuilder = class FetchBuilder {
31023
+ static get(url) {
31024
+ return this.method(url, "GET");
31025
+ }
31026
+ static put(url) {
31027
+ return this.method(url, "PUT");
31028
+ }
31029
+ static post(url) {
31030
+ return this.method(url, "POST");
31031
+ }
31032
+ static delete(url) {
31033
+ return this.method(url, "DELETE");
31034
+ }
31035
+ static method(url, method) {
31036
+ return new FetchBuilder({
31037
+ url,
31038
+ method
31039
+ });
31040
+ }
31041
+ constructor(request) {
31042
+ this.request = request;
31043
+ }
31044
+ cancelToken(cancelToken) {
31045
+ const ac = new AbortController();
31046
+ cancelToken.registerForCancel(() => ac.abort());
31047
+ return this.signal(ac.signal);
31048
+ }
31049
+ signal(signal) {
31050
+ return this.append({
31051
+ signal
31052
+ });
31053
+ }
31054
+ form(name, value) {
31055
+ var _a;
31056
+ const body = (_a = this.request.body) !== null && _a !== void 0 ? _a : new FormData();
31057
+ body.append(name, value);
31058
+ return this.append({
31059
+ body
31060
+ });
31061
+ }
31062
+ jsonBody(body, encode = true) {
31063
+ var _a;
31064
+ if (encode) {
31065
+ body = JSON.stringify(body);
31066
+ }
31067
+ const headers = (_a = this.request.headers) !== null && _a !== void 0 ? _a : {};
31068
+ headers["content-type"] = "application/json";
31069
+ return this.append({
31070
+ body,
31071
+ headers
31072
+ });
31073
+ }
31074
+ header(name, value) {
31075
+ var _a;
31076
+ const headers = (_a = this.request.headers) !== null && _a !== void 0 ? _a : {};
31077
+ headers[name] = value;
31078
+ return this.append({
31079
+ headers
31080
+ });
31081
+ }
31082
+ path(name, value, encode = true) {
31083
+ let url = this.request.url;
31084
+ if (encode) {
31085
+ value = encodeURIComponent(value);
31086
+ }
31087
+ url = url.replace(name, value);
31088
+ return this.append({
31089
+ url
31090
+ });
31091
+ }
31092
+ query(name, value, encode = true) {
31093
+ let url = this.request.url;
31094
+ if (encode) {
31095
+ value = encodeURIComponent(value);
31096
+ }
31097
+ name = encodeURIComponent(name);
31098
+ if (url.indexOf("?") === -1) {
31099
+ url += `?${name}=${value}`;
31100
+ } else {
31101
+ url += `&${name}=${value}`;
31102
+ }
31103
+ return this.append({
31104
+ url
31105
+ });
31106
+ }
31107
+ responseAsText(ensureSuccess = true) {
31108
+ return __awaiter(this, void 0, void 0, function* () {
31109
+ const r = yield this.response();
31110
+ if (ensureSuccess) {
31111
+ yield this.ensureSuccess(r);
31112
+ }
31113
+ return yield r.text();
31114
+ });
31115
+ }
31116
+ responseAsBlob(ensureSuccess = true) {
31117
+ return __awaiter(this, void 0, void 0, function* () {
31118
+ const r = yield this.response();
31119
+ if (ensureSuccess) {
31120
+ yield this.ensureSuccess(r);
31121
+ }
31122
+ return yield r.blob();
31123
+ });
31124
+ }
31125
+ responseAsJson(ensureSuccess = true) {
31126
+ return __awaiter(this, void 0, void 0, function* () {
31127
+ const r = yield this.response();
31128
+ if (ensureSuccess) {
31129
+ yield this.ensureSuccess(r);
31130
+ }
31131
+ return yield r.json();
31132
+ });
31133
+ }
31134
+ response() {
31135
+ return fetch(this.request.url, this.request);
31136
+ }
31137
+ ensureSuccess(r) {
31138
+ return __awaiter(this, void 0, void 0, function* () {
31139
+ if (r.status <= 300) {
31140
+ return;
31141
+ }
31142
+ const type = r.headers.get("content-type");
31143
+ if (/\/json/i.test(type)) {
31144
+ const json = yield r.json();
31145
+ throw new JsonError(`Failed for ${this.request.url}`, json);
31146
+ }
31147
+ const text = yield r.text();
31148
+ throw new Error(`Failed for ${this.request.url}\n${text}`);
31149
+ });
31150
+ }
31151
+ append(r) {
31152
+ return new FetchBuilder(Object.assign(Object.assign({}, this.request), r));
31153
+ }
31154
+ });
31155
+ }
31156
+ };
31157
+ });
31158
+ //# sourceMappingURL=FetchBuilder.js.map
31159
+
31160
+ AmdLoader.instance.setup("@web-atoms/core/dist/services/FetchBuilder");
31161
+
31162
+ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "./TreeView", "@web-atoms/core/dist/core/BindableProperty", "@web-atoms/core/dist/core/InjectProperty", "../../../web/page/files/service/CloudFileService", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/view-model/Action"], function (_export, _context) {
31163
+ "use strict";
31164
+
31165
+ var __awaiter, __decorate, __metadata, XNode, TreeView, BindableProperty, InjectProperty, CloudFileService, Bind, Action, FolderTreeView, FileTreeView, getExtension;
31166
+ _export({
31167
+ FolderTreeView: void 0,
31168
+ FileTreeView: void 0
31169
+ });
31170
+ return {
31171
+ setters: [function (_tslib) {
31172
+ __awaiter = _tslib.__awaiter;
31173
+ __decorate = _tslib.__decorate;
31174
+ __metadata = _tslib.__metadata;
31175
+ }, function (_webAtomsCoreDistCoreXNode) {
31176
+ XNode = _webAtomsCoreDistCoreXNode.default;
31177
+ }, function (_TreeView) {
31178
+ TreeView = _TreeView.default;
31179
+ }, function (_webAtomsCoreDistCoreBindableProperty) {
31180
+ BindableProperty = _webAtomsCoreDistCoreBindableProperty.BindableProperty;
31181
+ }, function (_webAtomsCoreDistCoreInjectProperty) {
31182
+ InjectProperty = _webAtomsCoreDistCoreInjectProperty.default;
31183
+ }, function (_webPageFilesServiceCloudFileService) {
31184
+ CloudFileService = _webPageFilesServiceCloudFileService.default;
31185
+ }, function (_webAtomsCoreDistCoreBind) {
31186
+ Bind = _webAtomsCoreDistCoreBind.default;
31187
+ }, function (_webAtomsCoreDistViewModelAction) {
31188
+ Action = _webAtomsCoreDistViewModelAction.default;
31189
+ }],
31190
+ execute: function () {
31191
+ getExtension = name => {
31192
+ const index = name.lastIndexOf(".");
31193
+ if (index === -1) {
31194
+ return "dat";
31195
+ }
31196
+ return name.substring(index + 1);
31197
+ };
31198
+ _export("FolderTreeView", FolderTreeView = class FolderTreeView extends TreeView {
31199
+ constructor(app, e) {
31200
+ super(app, e);
31201
+ this.childrenProperty = item => {
31202
+ var _a;
31203
+ return (_a = item.children) !== null && _a !== void 0 ? _a : item.children = [];
31204
+ };
31205
+ this.canSelect = item => item.isFolder;
31206
+ this.isFolder = item => item.isFolder;
31207
+ this.fileIconRenderer = item => XNode.create("i", {
31208
+ "data-click-event": "none",
31209
+ class: `fiv-viv fiv-icon-${getExtension(item.name)}`
31210
+ });
31211
+ this.labelRenderer = x => XNode.create("span", {
31212
+ text: x.name,
31213
+ title: x.name
31214
+ });
31215
+ this.render(XNode.create("div", {
31216
+ folder: Bind.oneWayAsync((c, _, cancelToken) => this.loadFolder(this.folderId, this.accept, cancelToken))
31217
+ }));
31218
+ }
31219
+ onItemExpanded(item) {
31220
+ return __awaiter(this, void 0, void 0, function* () {
31221
+ yield this.cloudFileService.expand(item);
31222
+ });
31223
+ }
31224
+ loadFolder(folder, accept, cancelToken) {
31225
+ return __awaiter(this, void 0, void 0, function* () {
31226
+ const f = yield this.cloudFileService.getFolder(folder, cancelToken);
31227
+ this.root = f;
31228
+ this.selectedItem = f;
31229
+ });
31230
+ }
31231
+ });
31232
+ __decorate([BindableProperty, __metadata("design:type", String)], FolderTreeView.prototype, "accept", void 0);
31233
+ __decorate([BindableProperty, __metadata("design:type", Number)], FolderTreeView.prototype, "folderId", void 0);
31234
+ __decorate([InjectProperty, __metadata("design:type", CloudFileService)], FolderTreeView.prototype, "cloudFileService", void 0);
31235
+ __decorate([Action({
31236
+ onEvent: "item-expanded"
31237
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", [Object]), __metadata("design:returntype", Promise)], FolderTreeView.prototype, "onItemExpanded", null);
31238
+ _export("FileTreeView", FileTreeView = class FileTreeView extends FolderTreeView {
31239
+ constructor(app, e) {
31240
+ super(app, e);
31241
+ this.canSelect = item => !item.isFolder;
31242
+ this.labelRenderer = x => XNode.create("span", {
31243
+ text: x.name,
31244
+ title: x.name,
31245
+ "data-click-event": x.isFolder ? "none" : "select-item"
31246
+ });
31247
+ }
31248
+ loadFolder(folder, accept, cancelToken) {
31249
+ return __awaiter(this, void 0, void 0, function* () {
31250
+ const f = yield this.cloudFileService.root({
31251
+ id: folder,
31252
+ cancelToken
31253
+ });
31254
+ this.root = f;
31255
+ });
31256
+ }
31257
+ });
31258
+ }
31259
+ };
31260
+ });
31261
+ //# sourceMappingURL=FileTreeView.js.map
31262
+
31263
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/tree/FileTreeView");
31264
+
31265
+ 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"], function (_export, _context) {
31266
+ "use strict";
31267
+
31268
+ var __awaiter, __decorate, __metadata, PopupWindowPage, XNode, FolderTreeView, AtomRepeater, Bind, InjectProperty, CloudFileService, styled, FilesDragDrop, Action, ChooseMediaPage, css;
31269
+ _export("default", void 0);
31270
+ return {
31271
+ setters: [function (_tslib) {
31272
+ __awaiter = _tslib.__awaiter;
31273
+ __decorate = _tslib.__decorate;
31274
+ __metadata = _tslib.__metadata;
31275
+ }, function (_webAtomsWebControlsDistMobileAppMobileApp) {
31276
+ PopupWindowPage = _webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage;
31277
+ }, function (_webAtomsCoreDistCoreXNode) {
31278
+ XNode = _webAtomsCoreDistCoreXNode.default;
31279
+ }, function (_commonControlsTreeFileTreeView) {
31280
+ FolderTreeView = _commonControlsTreeFileTreeView.FolderTreeView;
31281
+ }, function (_webAtomsWebControlsDistBasicAtomRepeater) {
31282
+ AtomRepeater = _webAtomsWebControlsDistBasicAtomRepeater.default;
31283
+ }, function (_webAtomsCoreDistCoreBind) {
31284
+ Bind = _webAtomsCoreDistCoreBind.default;
31285
+ }, function (_webAtomsCoreDistCoreInjectProperty) {
31286
+ InjectProperty = _webAtomsCoreDistCoreInjectProperty.default;
31287
+ }, function (_serviceCloudFileService) {
31288
+ CloudFileService = _serviceCloudFileService.default;
31289
+ }, function (_webAtomsCoreDistStyleStyled) {
31290
+ styled = _webAtomsCoreDistStyleStyled.default;
31291
+ }, function (_commonControlsDragDropFilesDragDrop) {
31292
+ FilesDragDrop = _commonControlsDragDropFilesDragDrop.FilesDragDrop;
31293
+ }, function (_webAtomsCoreDistViewModelAction) {
31294
+ Action = _webAtomsCoreDistViewModelAction.default;
31295
+ }],
31296
+ execute: function () {
31297
+ css = styled.css`
31298
+ display: grid;
31299
+ grid-template-columns: 200px 1fr;
31300
+ gap: 5px;
31301
+ & .folder-tree {
31302
+ grid-column: 1;
31303
+ grid-row: 1;
31304
+ }
31305
+ & .file-list {
31306
+ grid-row: 1;
31307
+ grid-column: 2;
31308
+ position: relative;
31309
+ overflow: auto;
31310
+ & > * {
31311
+ width: 100%;
31312
+ }
31313
+
31314
+ & .media-file {
31315
+ display: inline-block;
31316
+ max-height: 300px;
31317
+ border: solid 5px transparent;
31318
+ overflow: hidden;
31319
+ cursor: pointer;
31320
+ &:hover {
31321
+ border-color: lightblue;
31322
+ }
31323
+
31324
+
31325
+ &[data-selected-item] {
31326
+ border-color: green;
31327
+ }
31328
+ }
31329
+
31330
+ }
31331
+ `.installLocal();
31332
+ _export("default", ChooseMediaPage = class ChooseMediaPage extends PopupWindowPage {
31333
+ constructor() {
31334
+ super(...arguments);
31335
+ this.search = "";
31336
+ this.version = 1;
31337
+ this.size = 700;
31338
+ this.selectedFile = null;
31339
+ }
31340
+ init() {
31341
+ return __awaiter(this, void 0, void 0, function* () {
31342
+ this.title = "Choose Media";
31343
+ const {
31344
+ accept = "image/*, video/*, audio/*"
31345
+ } = this.parameters;
31346
+ this.selectedFolder = this.parameters.folder;
31347
+ this.element.style.minWidth = "90%";
31348
+ this.element.style.minHeight = "90%";
31349
+ this.renderer = XNode.create("div", {
31350
+ class: css
31351
+ }, XNode.create(FolderTreeView, {
31352
+ accept: accept,
31353
+ folderId: this.parameters.folder.appFileID,
31354
+ selectedItem: Bind.twoWaysImmediate(() => this.selectedFolder)
31355
+ }), XNode.create("div", Object.assign({
31356
+ class: "file-list"
31357
+ }, FilesDragDrop({
31358
+ extra: Bind.oneWay(() => {
31359
+ var _a;
31360
+ return JSON.stringify({
31361
+ parentID: (_a = this.selectedFolder) === null || _a === void 0 ? void 0 : _a.appFileID
31362
+ });
31363
+ })
31364
+ })), XNode.create(AtomRepeater, {
31365
+ selectOnClick: true,
31366
+ selectedItem: Bind.twoWaysImmediate(() => this.selectedFile),
31367
+ header: true,
31368
+ headerRenderer: item => XNode.create("div", {
31369
+ "data-position": "sticky-top",
31370
+ "data-layout": "header-row"
31371
+ }),
31372
+ items: Bind.oneWayAsync((c, e, cancelToken) => this.cloudFileService.files({
31373
+ search: this.search,
31374
+ folder: this.selectedFolder,
31375
+ version: this.version,
31376
+ accept,
31377
+ cancelToken
31378
+ })),
31379
+ itemRenderer: item => XNode.create("div", {
31380
+ class: "media-file"
31381
+ }, XNode.create("img", {
31382
+ src: `/api/files/jpg(300)/${item.appFileID}/${item.fileContentID}/${item.name}.300.jpg`
31383
+ }))
31384
+ })));
31385
+ this.footerRenderer = () => XNode.create("div", {
31386
+ "style-display": Bind.oneWay(() => this.selectedFile !== null),
31387
+ "data-layout": "command-row"
31388
+ }, XNode.create("input", {
31389
+ type: "range",
31390
+ min: "100",
31391
+ max: "2000",
31392
+ step: "100",
31393
+ value: Bind.twoWaysImmediate(() => this.size)
31394
+ }), XNode.create("span", {
31395
+ text: Bind.oneWay(() => `${this.size}px`)
31396
+ }), XNode.create("button", {
31397
+ "data-click-event": "select-file",
31398
+ text: "Save"
31399
+ }));
31400
+ });
31401
+ }
31402
+ selectFile() {
31403
+ return __awaiter(this, void 0, void 0, function* () {
31404
+ const file = this.selectedFile;
31405
+ const size = this.size;
31406
+ return {
31407
+ file,
31408
+ size
31409
+ };
31410
+ });
31411
+ }
31412
+ onFilesUploaded() {
31413
+ return __awaiter(this, void 0, void 0, function* () {
31414
+ this.version++;
31415
+ });
31416
+ }
31417
+ });
31418
+ __decorate([InjectProperty, __metadata("design:type", CloudFileService)], ChooseMediaPage.prototype, "cloudFileService", void 0);
31419
+ __decorate([Action({
31420
+ onEvent: "select-file",
31421
+ close: true
31422
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], ChooseMediaPage.prototype, "selectFile", null);
31423
+ __decorate([Action({
31424
+ onEvent: "files-available"
31425
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], ChooseMediaPage.prototype, "onFilesUploaded", null);
31426
+ }
31427
+ };
31428
+ });
31429
+ //# sourceMappingURL=ChooseMediaPage.js.map
31430
+
31431
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/files/media/ChooseMediaPage");
31432
+
31433
+ System.register(["@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/web/controls/AtomControl", "@web-atoms/core/dist/style/styled"], function (_export, _context) {
31434
+ "use strict";
31435
+
31436
+ var XNode, AtomControl, styled;
31437
+ function Block({
31438
+ className,
31439
+ title,
31440
+ factory
31441
+ }) {
31442
+ return () => {
31443
+ return XNode.create("i", {
31444
+ "data-html-editor-element": "block",
31445
+ class: className,
31446
+ title: title,
31447
+ draggable: true,
31448
+ "event-click": e => {
31449
+ const editor = AtomControl.from(e.target);
31450
+ editor.insertElement(factory(editor.htmlDocument));
31451
+ },
31452
+ "event-dragstart": e => {
31453
+ const ne = factory(AtomControl.from(e.target).htmlDocument);
31454
+ e.dataTransfer.setDragImage(ne, 0, 0);
31455
+ e.dataTransfer.setData("text/html", ne.outerHTML);
31456
+ }
31457
+ });
31458
+ };
31459
+ }
31460
+ _export("Block", Block);
31461
+ return {
31462
+ setters: [function (_webAtomsCoreDistCoreXNode) {
31463
+ XNode = _webAtomsCoreDistCoreXNode.default;
31464
+ }, function (_webAtomsCoreDistWebControlsAtomControl) {
31465
+ AtomControl = _webAtomsCoreDistWebControlsAtomControl.AtomControl;
31466
+ }, function (_webAtomsCoreDistStyleStyled) {
31467
+ styled = _webAtomsCoreDistStyleStyled.default;
31468
+ }],
31469
+ execute: function () {
31470
+ styled.css`
31471
+ padding: 5px;
31472
+ cursor: pointer;
31473
+ &:hover {
31474
+ background-color: #00800080;
31475
+ }
31476
+ `.installGlobal("[data-html-editor-element=block]");
31477
+ }
31478
+ };
31479
+ });
31480
+ //# sourceMappingURL=Block.js.map
31481
+
31482
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/site-editor/blocks/Block");
31483
+
31484
+ System.register(["./Block"], function (_export, _context) {
31485
+ "use strict";
31486
+
31487
+ var Block, src, ImageBlock;
31488
+ return {
31489
+ setters: [function (_Block) {
31490
+ Block = _Block.Block;
31491
+ }],
31492
+ execute: function () {
31493
+ src = `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAiIHZpZXdCb3g9IjAgMCAyNCAyNCIgc3R5bGU9ImZpbGw6IHJnYmEoMCwwLDAsMC4xNSk7IHRyYW5zZm9ybTogc2NhbGUoMC43NSkiPgogICAgICAgIDxwYXRoIGQ9Ik04LjUgMTMuNWwyLjUgMyAzLjUtNC41IDQuNSA2SDVtMTYgMVY1YTIgMiAwIDAgMC0yLTJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnoiPjwvcGF0aD4KICAgICAgPC9zdmc+`;
31494
+ _export("ImageBlock", ImageBlock = Block({
31495
+ className: "fas fa-image",
31496
+ title: "Add Image",
31497
+ factory: d => {
31498
+ const img = d.createElement("img");
31499
+ img.setAttribute("src", src);
31500
+ return img;
31501
+ }
31502
+ }));
31503
+ }
31504
+ };
31505
+ });
31506
+ //# sourceMappingURL=ImageBlock.js.map
31507
+
31508
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/site-editor/blocks/ImageBlock");
31509
+
31510
+ System.register([], function (_export, _context) {
31511
+ "use strict";
31512
+
31513
+ function InstallDragDropHelper(editor) {
31514
+ let placeholder;
31515
+ let dragged;
31516
+ const document = editor.htmlDocument;
31517
+ document.addEventListener("dragstart", e => {
31518
+ dragged = e.target;
31519
+ e.dataTransfer.dropEffect = "move";
31520
+ e.dataTransfer.setDragImage(dragged, 0, 0);
31521
+ });
31522
+ document.addEventListener("dragover", e => {
31523
+ const target = e.target;
31524
+ e.preventDefault();
31525
+ if (target === placeholder) {
31526
+ return;
31527
+ }
31528
+ e.dataTransfer.dropEffect = "copy";
31529
+ if (!placeholder) {
31530
+ placeholder = document.createElement("div");
31531
+ placeholder.style.display = "block";
31532
+ placeholder.style.backgroundColor = "green";
31533
+ document.body.appendChild(placeholder);
31534
+ }
31535
+ const insert = (where, width = "5px", height = "5px") => {
31536
+ const previous = where === "beforebegin" ? target.previousElementSibling : target.nextElementSibling;
31537
+ if (previous === placeholder) {
31538
+ return;
31539
+ }
31540
+ placeholder.remove();
31541
+ target.insertAdjacentElement(where, placeholder);
31542
+ placeholder.style.width = width;
31543
+ placeholder.style.height = height;
31544
+ };
31545
+ const b = target.getBoundingClientRect();
31546
+ const mp = {
31547
+ x: e.clientX,
31548
+ y: e.clientY
31549
+ };
31550
+ const style = document.defaultView.getComputedStyle(target);
31551
+ const isVertical = style.display === "flex" && (style.flexDirection === "row" || style.flexWrap) || style.display === "inline-block" || target.tagName === "TD";
31552
+ if (isVertical) {
31553
+ if (target.childElementCount === 0) {
31554
+ insert("afterbegin", void 0, "100%");
31555
+ return;
31556
+ }
31557
+ if (b.x + b.width * 0.2 > mp.x) {
31558
+ insert("beforebegin", void 0, "100%");
31559
+ return;
31560
+ }
31561
+ insert("afterend", void 0, "100%");
31562
+ return;
31563
+ }
31564
+ if (target.childElementCount === 0) {
31565
+ insert("afterbegin", "100%");
31566
+ return;
31567
+ }
31568
+ if (b.y + b.height * 0.2 > mp.y) {
31569
+ insert("beforebegin", "100%");
31570
+ return;
31571
+ }
31572
+ insert("afterend", "100%");
31573
+ });
31574
+ document.addEventListener("dragend", e => {
31575
+ if (placeholder) {
31576
+ if (dragged) {
31577
+ dragged.style.display = "";
31578
+ dragged.remove();
31579
+ placeholder.parentElement.replaceChild(dragged, placeholder);
31580
+ editor.setSelection(dragged, true);
31581
+ } else {
31582
+ const div = document.createElement("div");
31583
+ div.innerHTML = e.dataTransfer.getData("text/html");
31584
+ const node = div.firstElementChild;
31585
+ placeholder.parentElement.replaceChild(node, placeholder);
31586
+ editor.setSelection(node, true);
31587
+ }
31588
+ }
31589
+ dragged = null;
31590
+ placeholder === null || placeholder === void 0 ? void 0 : placeholder.remove();
31591
+ placeholder = null;
31592
+ });
31593
+ document.addEventListener("drop", e => {
31594
+ if (placeholder) {
31595
+ if (dragged) {
31596
+ dragged.style.display = "";
31597
+ dragged.remove();
31598
+ placeholder.parentElement.replaceChild(dragged, placeholder);
31599
+ editor.setSelection(dragged, true);
31600
+ } else {
31601
+ const div = document.createElement("div");
31602
+ div.innerHTML = e.dataTransfer.getData("text/html");
31603
+ const node = div.firstElementChild;
31604
+ placeholder.parentElement.replaceChild(node, placeholder);
31605
+ editor.setSelection(node, true);
31606
+ }
31607
+ }
31608
+ dragged = null;
31609
+ placeholder === null || placeholder === void 0 ? void 0 : placeholder.remove();
31610
+ placeholder = null;
31611
+ });
31612
+ document.addEventListener("dragleave", e => {
31613
+ placeholder === null || placeholder === void 0 ? void 0 : placeholder.remove();
31614
+ placeholder = null;
31615
+ });
31616
+ setTimeout(() => {
31617
+ document.body.querySelectorAll("*").forEach(e => e.draggable = true);
31618
+ }, 100);
31619
+ }
31620
+ _export("InstallDragDropHelper", InstallDragDropHelper);
31621
+ return {
31622
+ setters: [],
31623
+ execute: function () {}
31624
+ };
31625
+ });
31626
+ //# sourceMappingURL=DragDropHelper.js.map
31627
+
31628
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/site-editor/drag-drop/DragDropHelper");
31629
+
31630
+ System.register(["tslib", "@web-atoms/core/dist/web/controls/AtomControl"], function (_export, _context) {
31631
+ "use strict";
31632
+
31633
+ var __awaiter, AtomControl, EditorCommand;
31634
+ return {
31635
+ setters: [function (_tslib) {
31636
+ __awaiter = _tslib.__awaiter;
31637
+ }, function (_webAtomsCoreDistWebControlsAtomControl) {
31638
+ AtomControl = _webAtomsCoreDistWebControlsAtomControl.AtomControl;
31639
+ }],
31640
+ execute: function () {
31641
+ _export("EditorCommand", EditorCommand = {
31642
+ onClick(cb) {
31643
+ return e => {
31644
+ var _a;
31645
+ let c = AtomControl.from(e.target);
31646
+ while (c && !((_a = c.element) === null || _a === void 0 ? void 0 : _a.hasAttribute("data-html-page-editor"))) {
31647
+ c = c.parent;
31648
+ }
31649
+ return cb(c, e);
31650
+ };
31651
+ },
31652
+ insertContent(cb) {
31653
+ return e => __awaiter(this, void 0, void 0, function* () {
31654
+ var _a;
31655
+ let c = AtomControl.from(e.target);
31656
+ while (c && !((_a = c.element) === null || _a === void 0 ? void 0 : _a.hasAttribute("data-html-page-editor"))) {
31657
+ c = c.parent;
31658
+ }
31659
+ const editor = c;
31660
+ let content = cb(editor, e);
31661
+ if (!content) {
31662
+ return;
31663
+ }
31664
+ content = yield content;
31665
+ const document = editor.htmlDocument;
31666
+ if (typeof content === "string") {
31667
+ const div = document.createElement("div");
31668
+ div.innerHTML = content;
31669
+ for (const iterator of Array.from(div.children)) {
31670
+ editor.insertElement(iterator);
31671
+ }
31672
+ return;
31673
+ }
31674
+ editor.insertElement(content);
31675
+ });
31676
+ }
31677
+ });
31678
+ }
31679
+ };
31680
+ });
31681
+ //# sourceMappingURL=EditorCommand.js.map
31682
+
31683
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/site-editor/commands/EditorCommand");
31684
+
31685
+ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "./EditorCommand", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "@web-atoms/core/dist/core/Bind", "@web-atoms/web-controls/dist/PageNavigator"], function (_export, _context) {
31686
+ "use strict";
31687
+
31688
+ var __awaiter, XNode, EditorCommand, PopupWindowPage, Bind, PageNavigator, CodeEditorWindow, CodeCommand;
31689
+ return {
31690
+ setters: [function (_tslib) {
31691
+ __awaiter = _tslib.__awaiter;
31692
+ }, function (_webAtomsCoreDistCoreXNode) {
31693
+ XNode = _webAtomsCoreDistCoreXNode.default;
31694
+ }, function (_EditorCommand) {
31695
+ EditorCommand = _EditorCommand.EditorCommand;
31696
+ }, function (_webAtomsWebControlsDistMobileAppMobileApp) {
31697
+ PopupWindowPage = _webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage;
31698
+ }, function (_webAtomsCoreDistCoreBind) {
31699
+ Bind = _webAtomsCoreDistCoreBind.default;
31700
+ }, function (_webAtomsWebControlsDistPageNavigator) {
31701
+ PageNavigator = _webAtomsWebControlsDistPageNavigator.default;
31702
+ }],
31703
+ execute: function () {
31704
+ CodeEditorWindow = class CodeEditorWindow extends PopupWindowPage {
31705
+ init() {
31706
+ return __awaiter(this, void 0, void 0, function* () {
31707
+ this.element.style.minWidth = "90%";
31708
+ this.element.style.minHeight = "90%";
31709
+ this.renderer = XNode.create("div", null, XNode.create("textarea", {
31710
+ "data-position": "absolute-fill",
31711
+ value: Bind.twoWaysImmediate(() => this.parameters)
31712
+ }));
31713
+ this.footerRenderer = () => XNode.create("div", {
31714
+ "data-layout": "command-row"
31715
+ }, XNode.create("button", {
31716
+ "event-click": () => this.close(this.parameters),
31717
+ text: "Save"
31718
+ }));
31719
+ });
31720
+ }
31721
+ };
31722
+ _export("CodeCommand", CodeCommand = () => {
31723
+ return XNode.create("i", {
31724
+ class: "fa-solid fa-code",
31725
+ "event-click": EditorCommand.onClick((editor, e) => __awaiter(void 0, void 0, void 0, function* () {
31726
+ const text = yield PageNavigator.pushPageForResult(CodeEditorWindow, editor.htmlPage);
31727
+ editor.htmlPage = text;
31728
+ editor.commit();
31729
+ }))
31730
+ });
31731
+ });
31732
+ }
31733
+ };
31734
+ });
31735
+ //# sourceMappingURL=CodeCommand.js.map
31736
+
31737
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/site-editor/commands/CodeCommand");
31738
+
31739
+ System.register(["@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/style/styled"], function (_export, _context) {
31740
+ "use strict";
31741
+
31742
+ var XNode, styled;
31743
+ function EditorToolbar(a, ...nodes) {
31744
+ return XNode.create("div", Object.assign({
31745
+ "data-html-editor-element": "toolbar"
31746
+ }, a), ...nodes);
31747
+ }
31748
+ _export("default", EditorToolbar);
31749
+ return {
31750
+ setters: [function (_webAtomsCoreDistCoreXNode) {
31751
+ XNode = _webAtomsCoreDistCoreXNode.default;
31752
+ }, function (_webAtomsCoreDistStyleStyled) {
31753
+ styled = _webAtomsCoreDistStyleStyled.default;
31754
+ }],
31755
+ execute: function () {
31756
+ styled.css`
31757
+
31758
+ display: flex;
31759
+ gap: 10px;
31760
+ flex-wrap: wrap;
31761
+ align-items: center;
31762
+ justify-content: center;
31763
+ align-content: flex-start;
31764
+ & > * {
31765
+ color: #555555;
31766
+ padding: 5px;
31767
+ cursor: pointer;
31768
+ &:not([data-disabled]):hover, &[data-disabled=false]:hover {
31769
+ background-color: #00800050;
31770
+ }
31771
+ &[data-disabled=true] {
31772
+ color: #80808080;
31773
+ }
31774
+ &[data-selected=true] {
31775
+ color: green;
31776
+ background-color: lightgray;
31777
+ }
31778
+ }
31779
+ & + [data-html-editor-element] {
31780
+ margin-left: 20px;
31781
+ }
31782
+
31783
+ `.installGlobal("[data-html-editor-element=toolbar]");
31784
+ }
31785
+ };
31786
+ });
31787
+ //# sourceMappingURL=EditorToolbar.js.map
31788
+
31789
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/site-editor/toolbars/EditorToolbar");
31790
+
31791
+ System.register(["@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/core/XNode", "./EditorToolbar", "../commands/EditorCommand"], function (_export, _context) {
31792
+ "use strict";
31793
+
31794
+ var Bind, XNode, EditorToolbar, EditorCommand;
31795
+ function UndoRedoToolbar() {
31796
+ return XNode.create(EditorToolbar, {
31797
+ "data-element": "undo"
31798
+ }, XNode.create("i", {
31799
+ "event-click": EditorCommand.onClick(editor => {
31800
+ editor.redoList.insert(editor.redoList.length, editor.htmlDocument.documentElement.innerHTML);
31801
+ editor.htmlDocument.documentElement.innerHTML = editor.undoList.removeAt(editor.undoList.length - 1);
31802
+ }),
31803
+ title: "Undo",
31804
+ "data-disabled": Bind.oneWay(editor => editor.undoList.length === 0),
31805
+ class: "fas fa-undo"
31806
+ }), XNode.create("i", {
31807
+ "event-click": EditorCommand.onClick(editor => {
31808
+ editor.undoList.insert(editor.undoList.length, editor.htmlDocument.documentElement.innerHTML);
31809
+ editor.htmlDocument.documentElement.innerHTML = editor.redoList.removeAt(editor.redoList.length - 1);
31810
+ }),
31811
+ title: "Redo",
31812
+ "data-disabled": Bind.oneWay(editor => editor.redoList.length === 0),
31813
+ class: "fas fa-redo"
31814
+ }));
31815
+ }
31816
+ _export("default", UndoRedoToolbar);
31817
+ return {
31818
+ setters: [function (_webAtomsCoreDistCoreBind) {
31819
+ Bind = _webAtomsCoreDistCoreBind.default;
31820
+ }, function (_webAtomsCoreDistCoreXNode) {
31821
+ XNode = _webAtomsCoreDistCoreXNode.default;
31822
+ }, function (_EditorToolbar) {
31823
+ EditorToolbar = _EditorToolbar.default;
31824
+ }, function (_commandsEditorCommand) {
31825
+ EditorCommand = _commandsEditorCommand.EditorCommand;
31826
+ }],
31827
+ execute: function () {}
31828
+ };
31829
+ });
31830
+ //# sourceMappingURL=UndoRedoToolbar.js.map
31831
+
31832
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/site-editor/toolbars/UndoRedoToolbar");
31833
+
31834
+ System.register(["./Block"], function (_export, _context) {
31835
+ "use strict";
31836
+
31837
+ var Block, WrapGrid;
31838
+ return {
31839
+ setters: [function (_Block) {
31840
+ Block = _Block.Block;
31841
+ }],
31842
+ execute: function () {
31843
+ _export("WrapGrid", WrapGrid = Block({
31844
+ className: "fa-duotone fa-grid-horizontal fa-rotate-90",
31845
+ title: "Wrap Grid",
31846
+ factory: doc => {
31847
+ const e = doc.createElement("div");
31848
+ e.setAttribute("styler-layout", "wrap-list");
31849
+ return e;
31850
+ }
31851
+ }));
31852
+ }
31853
+ };
31854
+ });
31855
+ //# sourceMappingURL=WrapGrid.js.map
31856
+
31857
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/site-editor/blocks/WrapGrid");
31858
+
31859
+ System.register(["@web-atoms/core/dist/style/styled"], function (_export, _context) {
31860
+ "use strict";
31861
+
31862
+ var styled, StylerVariable, StylerPropertyPair, StylerProperty, camelToSnakeCase, prepareVariables, stylerVars, pair, createSet;
31863
+ _export({
31864
+ StylerVariable: void 0,
31865
+ StylerPropertyPair: void 0,
31866
+ StylerProperty: void 0
31867
+ });
31868
+ return {
31869
+ setters: [function (_webAtomsCoreDistStyleStyled) {
31870
+ styled = _webAtomsCoreDistStyleStyled.default;
31871
+ }],
31872
+ execute: function () {
31873
+ camelToSnakeCase = str => str.replace(/[A-Z]/g, letter => `-${letter.toLowerCase()}`);
31874
+ prepareVariables = a => {
31875
+ const r = {};
31876
+ for (const key in a) {
31877
+ if (Object.prototype.hasOwnProperty.call(a, key)) {
31878
+ const value = a[key];
31879
+ const name = camelToSnakeCase(key);
31880
+ r[key] = {
31881
+ name,
31882
+ value,
31883
+ toString() {
31884
+ return `var(--${name}, ${value})`;
31885
+ }
31886
+ };
31887
+ }
31888
+ }
31889
+ return r;
31890
+ };
31891
+ _export("stylerVars", stylerVars = prepareVariables({
31892
+ sizeTiny: "2px",
31893
+ sizeSmall: "5px",
31894
+ sizeSmaller: "7px",
31895
+ sizeDefault: "10px",
31896
+ sizeLarger: "15px",
31897
+ sizeLarge: "20px",
31898
+ defaultColor: "canvas",
31899
+ defaultTextColor: "canvastext",
31900
+ borderColor: "lightgray",
31901
+ headerColor: "#0571ff30",
31902
+ headerTextColor: "",
31903
+ accentColor: "blue",
31904
+ accentTextColor: "white",
31905
+ noteColor: "#ffffe0",
31906
+ noteTextColor: "",
31907
+ warningColor: "#FFC107",
31908
+ warningTextColor: "darkgray",
31909
+ selectionColor: "highlight",
31910
+ selectionTextColor: "highlightText",
31911
+ hoverColor: "#A0A0A010",
31912
+ hoverTextColor: "CanvasText",
31913
+ stopColor: "red",
31914
+ stopTextColor: "white",
31915
+ goColor: "green",
31916
+ goTextColor: "white",
31917
+ acceptColor: "blue",
31918
+ acceptTextColor: "white",
31919
+ rejectColor: "red",
31920
+ rejectTextColor: "white",
31921
+ fontSizeSmall: "0.8125em",
31922
+ commandBgColor: "#F0F0F0",
31923
+ menuBgColor: "#808080",
31924
+ menuColor: "#F0F0F0",
31925
+ linkColor: "blue"
31926
+ }));
31927
+ _export("StylerVariable", StylerVariable = class StylerVariable {
31928
+ constructor(name, value) {
31929
+ this.name = name;
31930
+ this.value = value;
31931
+ }
31932
+ toString() {
31933
+ return `--${this.name}: ${this.value};`;
31934
+ }
31935
+ });
31936
+ _export("StylerPropertyPair", StylerPropertyPair = class StylerPropertyPair {
31937
+ constructor(name, value) {
31938
+ this.name = name;
31939
+ this.value = value.toString();
31940
+ }
31941
+ toString() {
31942
+ return this.value.split("\n").join("\n\t");
31943
+ }
31944
+ });
31945
+ _export("StylerProperty", StylerProperty = class StylerProperty {
31946
+ static from(pairs) {
31947
+ const r = [];
31948
+ for (const key in pairs) {
31949
+ if (Object.prototype.hasOwnProperty.call(pairs, key)) {
31950
+ const element = pairs[key];
31951
+ r.push(new StylerProperty(element.name, key, element.className, element.values));
31952
+ }
31953
+ }
31954
+ return r;
31955
+ }
31956
+ constructor(name, key, className, values) {
31957
+ this.name = name;
31958
+ this.key = key;
31959
+ this.className = className;
31960
+ this.values = [];
31961
+ for (const k in values) {
31962
+ if (Object.prototype.hasOwnProperty.call(values, k)) {
31963
+ const element = values[k];
31964
+ this.values.push(new StylerPropertyPair(k, element.expand(`[${this.key}=${k}]`)));
31965
+ }
31966
+ }
31967
+ }
31968
+ toString() {
31969
+ return this.values.join("\n");
31970
+ }
31971
+ });
31972
+ _export("pair", pair = (name, value) => (!value ? (value = name, name = name.replace(" ", "-")) : name, {
31973
+ name,
31974
+ value
31975
+ }));
31976
+ _export("createSet", createSet = (name, values, appendGlobals = true) => {
31977
+ const r = {
31978
+ custom: styled.css`${name}: var(--${name});`
31979
+ };
31980
+ if (appendGlobals) {
31981
+ values.push(...["inherit", "initial", "revert", "revert-layer", "unset"]);
31982
+ }
31983
+ for (const iterator of values) {
31984
+ if (typeof iterator === "string") {
31985
+ r[iterator] = styled.css`\t${name}: ${iterator};`;
31986
+ continue;
31987
+ }
31988
+ r[iterator.name] = styled.css`\t${name}: ${iterator.value};`;
31989
+ }
31990
+ return r;
31991
+ });
31992
+ }
31993
+ };
31994
+ });
31995
+ //# sourceMappingURL=Styler.js.map
31996
+
31997
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/site-editor/styler/Styler");
31998
+
31999
+ System.register(["@web-atoms/core/dist/style/styled", "../Styler"], function (_export, _context) {
32000
+ "use strict";
32001
+
32002
+ var styled, stylerVars, stylerLayout;
32003
+ return {
32004
+ setters: [function (_webAtomsCoreDistStyleStyled) {
32005
+ styled = _webAtomsCoreDistStyleStyled.default;
32006
+ }, function (_Styler) {
32007
+ stylerVars = _Styler.stylerVars;
32008
+ }],
32009
+ execute: function () {
32010
+ _export("stylerLayout", stylerLayout = {
32011
+ "styler-layout": {
32012
+ name: "Layout",
32013
+ className: "",
32014
+ values: {
32015
+ "wrap-list": styled.css`
32016
+ display: flex;
32017
+ flex-direction: column;
32018
+ flex-wrap: wrap;
32019
+ gap: ${stylerVars.sizeDefault};
32020
+ padding: ${stylerVars.sizeDefault};
32021
+ margin: ${stylerVars.sizeDefault};
32022
+ `,
32023
+ "column": styled.css`
32024
+ display: flex;
32025
+ flex-direction: column;
32026
+ flex-wrap: nowrap;
32027
+ gap: ${stylerVars.sizeDefault};
32028
+ padding: ${stylerVars.sizeDefault};
32029
+ margin: ${stylerVars.sizeDefault};
32030
+ `,
32031
+ "row": styled.css`
32032
+ display: flex;
32033
+ flex-direction: row;
32034
+ flex-wrap: nowrap;
32035
+ gap: ${stylerVars.sizeDefault};
32036
+ padding: ${stylerVars.sizeDefault};
32037
+ margin: ${stylerVars.sizeDefault};
32038
+ `,
32039
+ "block": styled.css`
32040
+ display: block;
32041
+ padding: ${stylerVars.sizeDefault};
32042
+ margin: ${stylerVars.sizeDefault};
32043
+ `,
32044
+ "nav-bar": styled.css`
32045
+ display: flex;
32046
+ padding: ${stylerVars.sizeSmall};
32047
+ margin: ${stylerVars.sizeDefault};
32048
+ border-radius: ${stylerVars.sizeLarge};
32049
+ align-items: center;
32050
+ justify-content: space-between;
32051
+ & > h1, & > h2, & > h3, & > h5, & > h6 {
32052
+ margin-block-start: 0;
32053
+ margin-block-end: 0;
32054
+ }
32055
+ `,
32056
+ "floating-nav-bar": styled.css`
32057
+ display: flex;
32058
+ padding: ${stylerVars.sizeSmall};
32059
+ margin: ${stylerVars.sizeDefault};
32060
+ position: sticky;
32061
+ top: ${stylerVars.sizeDefault};
32062
+ border-radius: ${stylerVars.sizeLarge};
32063
+ align-items: center;
32064
+ justify-content: space-between;
32065
+ & > h1, & > h2, & > h3, & > h5, & > h6 {
32066
+ margin-block-start: 0;
32067
+ margin-block-end: 0;
32068
+ }
32069
+ `
32070
+ }
32071
+ }
32072
+ });
32073
+ }
32074
+ };
32075
+ });
32076
+ //# sourceMappingURL=layout.js.map
32077
+
32078
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/site-editor/styler/properties/layout");
32079
+
32080
+ System.register(["../Styler"], function (_export, _context) {
32081
+ "use strict";
32082
+
32083
+ var createSet, stylerCursor;
32084
+ return {
32085
+ setters: [function (_Styler) {
32086
+ createSet = _Styler.createSet;
32087
+ }],
32088
+ execute: function () {
32089
+ _export("stylerCursor", stylerCursor = {
32090
+ "styler-cursor": {
32091
+ name: "Cursor",
32092
+ className: "",
32093
+ values: Object.assign({}, createSet("cursor", ["auto", "default", "nope", "context-menu", "help", "pointer", "progress", "wait", "cell", "crosshair", "text", "vertical-text", "alias", "copy", "move", "no-drop", "not-allowed", "grab", "grabbing", "e-resize", "n-resize", "ne-resize", "nw-resize", "s-resize", "se-resize", "sw-resize", "w-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "col-resize", "row-resize", "all-scroll", "zoom-in", "zoom-out"]))
32094
+ }
32095
+ });
32096
+ }
32097
+ };
32098
+ });
32099
+ //# sourceMappingURL=cursor.js.map
32100
+
32101
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/site-editor/styler/properties/cursor");
32102
+
32103
+ System.register(["@web-atoms/core/dist/style/styled", "../Styler"], function (_export, _context) {
32104
+ "use strict";
32105
+
32106
+ var styled, stylerVars, stylerColor;
32107
+ return {
32108
+ setters: [function (_webAtomsCoreDistStyleStyled) {
32109
+ styled = _webAtomsCoreDistStyleStyled.default;
32110
+ }, function (_Styler) {
32111
+ stylerVars = _Styler.stylerVars;
32112
+ }],
32113
+ execute: function () {
32114
+ _export("stylerColor", stylerColor = {
32115
+ "styler-color": {
32116
+ name: "Text Color",
32117
+ className: "",
32118
+ values: {
32119
+ "custom": styled.css`color: var(--styler-color);`,
32120
+ "red": styled.css`color: red ;`,
32121
+ "blue": styled.css`color: blue ;`,
32122
+ "green": styled.css`color: green ;`,
32123
+ "lightgreen": styled.css`color: lightgreen ;`,
32124
+ "lightyellow": styled.css`color: lightyellow ;`,
32125
+ "gold": styled.css`color: gold ;`,
32126
+ "goldenrod": styled.css`color: goldenrod ;`,
32127
+ "fuchsia": styled.css`color: fuchsia ;`,
32128
+ "black": styled.css`color: black ;`,
32129
+ "white": styled.css`color: white ;`,
32130
+ "header": styled.css`color: ${stylerVars.headerTextColor} ;`,
32131
+ "default": styled.css`color: ${stylerVars.defaultTextColor} ;`,
32132
+ "highlight": styled.css`color: ${stylerVars.selectionTextColor} ;`,
32133
+ "selection": styled.css`color: ${stylerVars.selectionTextColor} ;`,
32134
+ "accent": styled.css`color: ${stylerVars.accentColor} ;`,
32135
+ "force-custom": styled.css`color: var(--styler-color) !important;`,
32136
+ "force-red": styled.css`color: red !important;`,
32137
+ "force-blue": styled.css`color: blue !important;`,
32138
+ "force-green": styled.css`color: green !important;`,
32139
+ "force-lightgreen": styled.css`color: lightgreen !important;`,
32140
+ "force-lightyellow": styled.css`color: lightyellow !important;`,
32141
+ "force-gold": styled.css`color: gold !important;`,
32142
+ "force-goldenrod": styled.css`color: goldenrod !important;`,
32143
+ "force-fuchsia": styled.css`color: fuchsia !important;`,
32144
+ "force-black": styled.css`color: black !important;`,
32145
+ "force-white": styled.css`color: white !important;`,
32146
+ "force-header": styled.css`color: ${stylerVars.headerTextColor} !important;`,
32147
+ "force-default": styled.css`color: ${stylerVars.defaultTextColor} !important;`,
32148
+ "force-highlight": styled.css`color: ${stylerVars.selectionTextColor} !important;`,
32149
+ "force-selection": styled.css`color: ${stylerVars.selectionTextColor} !important;`,
32150
+ "force-accent": styled.css`color: ${stylerVars.accentColor} !important;`
32151
+ }
32152
+ },
32153
+ "styler-background-color": {
32154
+ name: "Box Color",
32155
+ className: "",
32156
+ values: {
32157
+ "custom": styled.css`background-color: var(--styler-color);`,
32158
+ "red": styled.css`background-color: red ;`,
32159
+ "blue": styled.css`background-color: blue ;`,
32160
+ "green": styled.css`background-color: green ;`,
32161
+ "lightgreen": styled.css`background-color: lightgreen ;`,
32162
+ "lightyellow": styled.css`background-color: lightyellow ;`,
32163
+ "gold": styled.css`background-color: gold ;`,
32164
+ "goldenrod": styled.css`background-color: goldenrod ;`,
32165
+ "fuchsia": styled.css`background-color: fuchsia ;`,
32166
+ "black": styled.css`background-color: black ;`,
32167
+ "white": styled.css`background-color: white ;`,
32168
+ "header": styled.css`background-color: ${stylerVars.headerColor} ;`,
32169
+ "default": styled.css`background-color: ${stylerVars.defaultColor} ;`,
32170
+ "highlight": styled.css`background-color: ${stylerVars.selectionColor} ;`,
32171
+ "selection": styled.css`background-color: ${stylerVars.selectionColor} ;`,
32172
+ "accent": styled.css`background-color: ${stylerVars.accentColor} ;`,
32173
+ "force-custom": styled.css`background-color: var(--styler-color) !important;`,
32174
+ "force-red": styled.css`background-color: red !important;`,
32175
+ "force-blue": styled.css`background-color: blue !important;`,
32176
+ "force-green": styled.css`background-color: green !important;`,
32177
+ "force-lightgreen": styled.css`background-color: lightgreen !important;`,
32178
+ "force-lightyellow": styled.css`background-color: lightyellow !important;`,
32179
+ "force-gold": styled.css`background-color: gold !important;`,
32180
+ "force-goldenrod": styled.css`background-color: goldenrod !important;`,
32181
+ "force-fuchsia": styled.css`background-color: fuchsia !important;`,
32182
+ "force-black": styled.css`background-color: black !important;`,
32183
+ "force-white": styled.css`background-color: white !important;`,
32184
+ "force-header": styled.css`background-color: ${stylerVars.headerColor} !important;`,
32185
+ "force-default": styled.css`background-color: ${stylerVars.defaultTextColor} !important;`,
32186
+ "force-highlight": styled.css`background-color: ${stylerVars.selectionTextColor} !important;`,
32187
+ "force-selection": styled.css`background-color: ${stylerVars.selectionTextColor} !important;`,
32188
+ "force-accent": styled.css`background-color: ${stylerVars.accentColor} !important;`
32189
+ }
32190
+ }
32191
+ });
32192
+ }
32193
+ };
32194
+ });
32195
+ //# sourceMappingURL=color.js.map
32196
+
32197
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/site-editor/styler/properties/color");
32198
+
32199
+ System.register(["@web-atoms/core/dist/style/styled"], function (_export, _context) {
32200
+ "use strict";
32201
+
32202
+ var styled, stylerBackdropFilter;
32203
+ return {
32204
+ setters: [function (_webAtomsCoreDistStyleStyled) {
32205
+ styled = _webAtomsCoreDistStyleStyled.default;
32206
+ }],
32207
+ execute: function () {
32208
+ _export("stylerBackdropFilter", stylerBackdropFilter = {
32209
+ "styler-backdrop-filter": {
32210
+ name: "Backdrop Filter",
32211
+ className: "",
32212
+ values: {
32213
+ "blur": styled.css`
32214
+ backdrop-filter: blur(15px);
32215
+ `
32216
+ }
32217
+ }
32218
+ });
32219
+ }
32220
+ };
32221
+ });
32222
+ //# sourceMappingURL=filter.js.map
32223
+
32224
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/site-editor/styler/properties/filter");
32225
+
32226
+ System.register(["@web-atoms/core/dist/style/styled"], function (_export, _context) {
32227
+ "use strict";
32228
+
32229
+ var styled, stylerBoxShadow;
32230
+ return {
32231
+ setters: [function (_webAtomsCoreDistStyleStyled) {
32232
+ styled = _webAtomsCoreDistStyleStyled.default;
32233
+ }],
32234
+ execute: function () {
32235
+ _export("stylerBoxShadow", stylerBoxShadow = {
32236
+ "styler-box-shadow": {
32237
+ name: "Box Shadow",
32238
+ className: "",
32239
+ values: {
32240
+ "default": styled.css`
32241
+ box-shadow: 0px 2px 7px 0px rgba(0, 0, 0, 0.14);
32242
+ `
32243
+ }
32244
+ }
32245
+ });
32246
+ }
32247
+ };
32248
+ });
32249
+ //# sourceMappingURL=boxShadow.js.map
32250
+
32251
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/site-editor/styler/properties/boxShadow");
32252
+
32253
+ System.register(["@web-atoms/core/dist/style/styled", "../Styler"], function (_export, _context) {
32254
+ "use strict";
32255
+
32256
+ var styled, stylerVars, stylerBorder;
32257
+ return {
32258
+ setters: [function (_webAtomsCoreDistStyleStyled) {
32259
+ styled = _webAtomsCoreDistStyleStyled.default;
32260
+ }, function (_Styler) {
32261
+ stylerVars = _Styler.stylerVars;
32262
+ }],
32263
+ execute: function () {
32264
+ _export("stylerBorder", stylerBorder = {
32265
+ "styler-border": {
32266
+ name: "Border",
32267
+ className: "",
32268
+ values: {
32269
+ "none": styled.css`
32270
+ border: none !important;
32271
+ `,
32272
+ "solid": styled.css`
32273
+ border: solid 1px lightgray;
32274
+ `
32275
+ }
32276
+ },
32277
+ "styler-border-radius": {
32278
+ name: "Border Radius",
32279
+ className: "",
32280
+ values: {
32281
+ "default": styled.css`
32282
+ border-radius: ${stylerVars.sizeDefault};
32283
+ `
32284
+ }
32285
+ }
32286
+ });
32287
+ }
32288
+ };
32289
+ });
32290
+ //# sourceMappingURL=border.js.map
32291
+
32292
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/site-editor/styler/properties/border");
32293
+
32294
+ System.register(["./Styler", "./properties/layout", "./properties/cursor", "./properties/color", "./properties/filter", "./properties/boxShadow", "./properties/border"], function (_export, _context) {
32295
+ "use strict";
32296
+
32297
+ var StylerProperty, StylerVariable, stylerVars, stylerLayout, stylerCursor, stylerColor, stylerBackdropFilter, stylerBoxShadow, stylerBorder, StylerSet, vars;
32298
+ _export("StylerSet", void 0);
32299
+ return {
32300
+ setters: [function (_Styler) {
32301
+ StylerProperty = _Styler.StylerProperty;
32302
+ StylerVariable = _Styler.StylerVariable;
32303
+ stylerVars = _Styler.stylerVars;
32304
+ }, function (_propertiesLayout) {
32305
+ stylerLayout = _propertiesLayout.stylerLayout;
32306
+ }, function (_propertiesCursor) {
32307
+ stylerCursor = _propertiesCursor.stylerCursor;
32308
+ }, function (_propertiesColor) {
32309
+ stylerColor = _propertiesColor.stylerColor;
32310
+ }, function (_propertiesFilter) {
32311
+ stylerBackdropFilter = _propertiesFilter.stylerBackdropFilter;
32312
+ }, function (_propertiesBoxShadow) {
32313
+ stylerBoxShadow = _propertiesBoxShadow.stylerBoxShadow;
32314
+ }, function (_propertiesBorder) {
32315
+ stylerBorder = _propertiesBorder.stylerBorder;
32316
+ }],
32317
+ execute: function () {
32318
+ vars = [];
32319
+ for (const key in stylerVars) {
32320
+ if (Object.prototype.hasOwnProperty.call(stylerVars, key)) {
32321
+ const element = stylerVars[key];
32322
+ vars.push(new StylerVariable(element.name, element.value));
32323
+ }
32324
+ }
32325
+ _export("StylerSet", StylerSet = class StylerSet {
32326
+ constructor() {
32327
+ this.vars = vars;
32328
+ this.properties = [...StylerProperty.from(stylerLayout), ...StylerProperty.from(stylerColor), ...StylerProperty.from(stylerCursor), ...StylerProperty.from(stylerBorder), ...StylerProperty.from(stylerBackdropFilter), ...StylerProperty.from(stylerBoxShadow)];
32329
+ }
32330
+ toString() {
32331
+ return `:root{
32332
+ ${this.vars.join("\n")}
32333
+ }
32334
+
32335
+ ${this.properties.join("\n")}
32336
+ `;
32337
+ }
32338
+ });
32339
+ StylerSet.instance = new StylerSet();
32340
+ ;
32341
+ }
32342
+ };
32343
+ });
32344
+ //# sourceMappingURL=StylerSet.js.map
32345
+
32346
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/site-editor/styler/StylerSet");
32347
+
32348
+ System.register(["@web-atoms/core/dist/core/XNode", "../styler/StylerSet", "@web-atoms/web-controls/dist/basic/Select", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/web/controls/AtomControl"], function (_export, _context) {
32349
+ "use strict";
32350
+
32351
+ var XNode, StylerSet, Select, Bind, AtomControl, BindStyleValue;
32352
+ function Properties() {
32353
+ const styler = StylerSet.instance;
32354
+ return XNode.create("div", {
32355
+ "data-layout": "vertical-flex-stretch-items"
32356
+ }, ...styler.properties.map(p => {
32357
+ return XNode.create("div", {
32358
+ "data-layout": "vertical-flex-stretch-items"
32359
+ }, XNode.create("label", null, p.name), XNode.create(Select, Object.assign({}, BindStyleValue(p.key), {
32360
+ valuePath: v => v.value,
32361
+ items: [{
32362
+ label: "None",
32363
+ value: ""
32364
+ }, ...p.values.map(pair => ({
32365
+ label: pair.name,
32366
+ value: pair.name
32367
+ }))]
32368
+ })));
32369
+ }));
32370
+ }
32371
+ _export("default", Properties);
32372
+ return {
32373
+ setters: [function (_webAtomsCoreDistCoreXNode) {
32374
+ XNode = _webAtomsCoreDistCoreXNode.default;
32375
+ }, function (_stylerStylerSet) {
32376
+ StylerSet = _stylerStylerSet.StylerSet;
32377
+ }, function (_webAtomsWebControlsDistBasicSelect) {
32378
+ Select = _webAtomsWebControlsDistBasicSelect.default;
32379
+ }, function (_webAtomsCoreDistCoreBind) {
32380
+ Bind = _webAtomsCoreDistCoreBind.default;
32381
+ }, function (_webAtomsCoreDistWebControlsAtomControl) {
32382
+ AtomControl = _webAtomsCoreDistWebControlsAtomControl.AtomControl;
32383
+ }],
32384
+ execute: function () {
32385
+ BindStyleValue = AtomControl.registerProperty("data-style-property", "custom", (c, e, v) => {
32386
+ const editor = c;
32387
+ const pv = editor.selection.style(v);
32388
+ c.render(XNode.create("div", {
32389
+ value: Bind.sourceTwoWays(pv, s => s.source.value)
32390
+ }), e, c);
32391
+ });
32392
+ }
32393
+ };
32394
+ });
32395
+ //# sourceMappingURL=Properties.js.map
32396
+
32397
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/site-editor/properties/Properties");
32398
+
32399
+ System.register(["tslib", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/core/sleep", "@web-atoms/core/dist/style/styled", "@web-atoms/core/dist/view-model/Action", "@web-atoms/core/dist/web/controls/AtomControl", "../../web/page/files/media/ChooseMediaPage", "@web-atoms/web-controls/dist/PageNavigator", "@web-atoms/core/dist/core/BindableProperty", "../blocks/ImageBlock", "../drag-drop/DragDropHelper", "../commands/CodeCommand", "../toolbars/UndoRedoToolbar", "../blocks/WrapGrid", "../toolbars/EditorToolbar", "../properties/Properties", "@web-atoms/core/dist/core/AtomBinder", "../styler/StylerSet"], function (_export, _context) {
32400
+ "use strict";
32401
+
32402
+ var __awaiter, __decorate, __metadata, Bind, XNode, sleep, styled, Action, AtomControl, ChooseMediaPage, PageNavigator, BindableProperty, ImageBlock, InstallDragDropHelper, CodeCommand, UndoRedoToolbar, WrapGrid, EditorToolbar, Properties, AtomBinder, StylerSet, SelectedElement, HtmlPageEditor, desktopWidth, tabletWidth, mobileWidth;
32403
+ _export("default", void 0);
32404
+ return {
32405
+ setters: [function (_tslib) {
32406
+ __awaiter = _tslib.__awaiter;
32407
+ __decorate = _tslib.__decorate;
32408
+ __metadata = _tslib.__metadata;
32409
+ }, function (_webAtomsCoreDistCoreBind) {
32410
+ Bind = _webAtomsCoreDistCoreBind.default;
32411
+ }, function (_webAtomsCoreDistCoreXNode) {
32412
+ XNode = _webAtomsCoreDistCoreXNode.default;
32413
+ }, function (_webAtomsCoreDistCoreSleep) {
32414
+ sleep = _webAtomsCoreDistCoreSleep.default;
32415
+ }, function (_webAtomsCoreDistStyleStyled) {
32416
+ styled = _webAtomsCoreDistStyleStyled.default;
32417
+ }, function (_webAtomsCoreDistViewModelAction) {
32418
+ Action = _webAtomsCoreDistViewModelAction.default;
32419
+ }, function (_webAtomsCoreDistWebControlsAtomControl) {
32420
+ AtomControl = _webAtomsCoreDistWebControlsAtomControl.AtomControl;
32421
+ }, function (_webPageFilesMediaChooseMediaPage) {
32422
+ ChooseMediaPage = _webPageFilesMediaChooseMediaPage.default;
32423
+ }, function (_webAtomsWebControlsDistPageNavigator) {
32424
+ PageNavigator = _webAtomsWebControlsDistPageNavigator.default;
32425
+ }, function (_webAtomsCoreDistCoreBindableProperty) {
32426
+ BindableProperty = _webAtomsCoreDistCoreBindableProperty.BindableProperty;
32427
+ }, function (_blocksImageBlock) {
32428
+ ImageBlock = _blocksImageBlock.ImageBlock;
32429
+ }, function (_dragDropDragDropHelper) {
32430
+ InstallDragDropHelper = _dragDropDragDropHelper.InstallDragDropHelper;
32431
+ }, function (_commandsCodeCommand) {
32432
+ CodeCommand = _commandsCodeCommand.CodeCommand;
32433
+ }, function (_toolbarsUndoRedoToolbar) {
32434
+ UndoRedoToolbar = _toolbarsUndoRedoToolbar.default;
32435
+ }, function (_blocksWrapGrid) {
32436
+ WrapGrid = _blocksWrapGrid.WrapGrid;
32437
+ }, function (_toolbarsEditorToolbar) {
32438
+ EditorToolbar = _toolbarsEditorToolbar.default;
32439
+ }, function (_propertiesProperties) {
32440
+ Properties = _propertiesProperties.default;
32441
+ }, function (_webAtomsCoreDistCoreAtomBinder) {
32442
+ AtomBinder = _webAtomsCoreDistCoreAtomBinder.AtomBinder;
32443
+ }, function (_stylerStylerSet) {
32444
+ StylerSet = _stylerStylerSet.StylerSet;
32445
+ }],
32446
+ execute: function () {
32447
+ styled.css`
32448
+ display: grid;
32449
+ grid-template-columns: auto 1fr auto;
32450
+ grid-template-rows: auto 1fr auto;
32451
+ overflow: hidden !important;
32452
+
32453
+ & > [data-element=top] {
32454
+ grid-row: 1;
32455
+ grid-column: 2;
32456
+ display: flex;
32457
+ padding: 5px;
32458
+ gap: 10px;
32459
+ border-bottom: solid 1px lightgray;
32460
+ border-radius: 0;
32461
+ & > [data-element=max-width] {
32462
+ display: flex;
32463
+ gap: 10px;
32464
+ }
32465
+ }
32466
+
32467
+ & > [data-element=left] {
32468
+ grid-row: 1 / span 3;
32469
+ grid-column: 1;
32470
+ border-right: solid 1px lightgray;
32471
+ border-radius: 0;
32472
+ width: 40px;
32473
+ }
32474
+
32475
+ & > [data-element=right] {
32476
+ grid-row: 1 / span 3;
32477
+ grid-column: 3;
32478
+ border-left: solid 1px lightgray;
32479
+ border-radius: 0;
32480
+ }
32481
+
32482
+ & > [data-element=editor] {
32483
+ grid-row: 2;
32484
+ grid-column: 2;
32485
+ overflow: hidden;
32486
+ align-self: stretch;
32487
+ justify-self: center;
32488
+ width: 100%;
32489
+ height: 100%;
32490
+ position: relative;
32491
+ display: grid;
32492
+ grid-template-columns: auto 1fr auto;
32493
+ & > [data-element=content-frame] {
32494
+ width: 100%;
32495
+ height: 100%;
32496
+ margin: 2px;
32497
+ position: absolute;
32498
+ & > iframe {
32499
+ position: absolute;
32500
+ width: 100%;
32501
+ height: 100%;
32502
+ border: none;
32503
+ }
32504
+ }
32505
+ & > [data-element=selection] {
32506
+ position: absolute;
32507
+ pointer-events: none;
32508
+ outline: solid 1px green;
32509
+ z-index: 22;
32510
+ & > div {
32511
+ pointer-events: all;
32512
+ position: absolute;
32513
+ right: 0;
32514
+ transform: translate(0, -100%);
32515
+ background-color: #0000ff;
32516
+ color: white;
32517
+ font-size: smaller;
32518
+ text-transform: capitalize;
32519
+ padding: 2px;
32520
+ padding-left: 5px;
32521
+ padding-right: 5px;
32522
+ display: flex;
32523
+ gap: 5px;
32524
+ & * {
32525
+ cursor: pointer;
32526
+ padding: 2px;
32527
+ &:hover {
32528
+ background-color: white;
32529
+ color: blue;
32530
+ }
32531
+ }
32532
+ }
32533
+ }
32534
+ & > [data-element=hover] {
32535
+ position: absolute;
32536
+ outline: solid 1px blue;
32537
+ pointer-events: none;
32538
+ transition: all 100ms ease;
32539
+ z-index: 20;
32540
+ & > label {
32541
+ position: absolute;
32542
+ transform: translate(0, -100%);
32543
+ background-color: #0000ff6a;
32544
+ color: white;
32545
+ font-size: smaller;
32546
+ text-transform: capitalize;
32547
+ padding: 2px;
32548
+ padding-left: 5px;
32549
+ padding-right: 5px;
32550
+ }
32551
+ }
32552
+ }
32553
+ `.installGlobal("[data-html-page-editor=html-page-editor]");
32554
+ desktopWidth = 992;
32555
+ tabletWidth = 768;
32556
+ mobileWidth = 480;
32557
+ SelectedElement = class SelectedElement {
32558
+ get element() {
32559
+ return this.e;
32560
+ }
32561
+ constructor(editor) {
32562
+ this.editor = editor;
32563
+ this.styles = new Map();
32564
+ this.name = "";
32565
+ this.isImage = false;
32566
+ this.mo = new MutationObserver(() => {
32567
+ AtomBinder.refreshValue(this, "element");
32568
+ for (const iterator of this.styles.values()) {
32569
+ AtomBinder.refreshValue(iterator, "value");
32570
+ }
32571
+ });
32572
+ }
32573
+ style(name) {
32574
+ let mapper = this.styles.get(name);
32575
+ if (!mapper) {
32576
+ const owner = this;
32577
+ mapper = {
32578
+ name,
32579
+ get value() {
32580
+ var _a, _b;
32581
+ return (_b = (_a = owner.e) === null || _a === void 0 ? void 0 : _a.getAttribute(name)) !== null && _b !== void 0 ? _b : "";
32582
+ },
32583
+ set value(v) {
32584
+ if (!owner.e) {
32585
+ return;
32586
+ }
32587
+ if (!v) {
32588
+ owner.e.removeAttribute(name);
32589
+ } else {
32590
+ owner.e.setAttribute(name, v);
32591
+ }
32592
+ owner.editor.commit();
32593
+ AtomBinder.refreshValue(this, "value");
32594
+ }
32595
+ };
32596
+ this.styles.set(name, mapper);
32597
+ }
32598
+ return mapper;
32599
+ }
32600
+ update(e) {
32601
+ if (e) {
32602
+ if (this.e) {
32603
+ this.mo.disconnect();
32604
+ }
32605
+ this.e = e;
32606
+ AtomBinder.refreshValue(this, "element");
32607
+ this.mo.observe(e, {
32608
+ attributes: true
32609
+ });
32610
+ }
32611
+ e = this.e;
32612
+ if (!e) {
32613
+ return;
32614
+ }
32615
+ this.name = e.tagName.toLowerCase();
32616
+ const r = e.getBoundingClientRect();
32617
+ this.isImage = this.name === "img";
32618
+ this.top = `${r.top + 2}px`;
32619
+ this.left = `${r.left + 2}px`;
32620
+ this.width = `${r.width}px`;
32621
+ this.height = `${r.height}px`;
32622
+ for (const iterator of this.styles.values()) {
32623
+ AtomBinder.refreshValue(iterator, "value");
32624
+ }
32625
+ }
32626
+ };
32627
+ _export("default", HtmlPageEditor = class HtmlPageEditor extends AtomControl {
32628
+ get htmlPage() {
32629
+ var _a, _b;
32630
+ return (_b = (_a = this.htmlDocument) === null || _a === void 0 ? void 0 : _a.documentElement) === null || _b === void 0 ? void 0 : _b.outerHTML;
32631
+ }
32632
+ set htmlPage(v) {
32633
+ if (!this.element) {
32634
+ return;
32635
+ }
32636
+ if (!this.ready) {
32637
+ setTimeout(() => {
32638
+ this.htmlPage = v;
32639
+ }, 100);
32640
+ return;
32641
+ }
32642
+ void this.ready.then(() => {
32643
+ if (!this.htmlDocument) {
32644
+ return;
32645
+ }
32646
+ this.htmlDocument.open();
32647
+ this.htmlDocument.write(v);
32648
+ this.htmlDocument.addEventListener("click", e => {
32649
+ const target = e.target;
32650
+ const previous = this.selection.element;
32651
+ if (previous === null || previous === void 0 ? void 0 : previous.isContentEditable) {
32652
+ let start = target;
32653
+ while (start) {
32654
+ if (previous === target) {
32655
+ return;
32656
+ }
32657
+ start = start.parentElement;
32658
+ }
32659
+ previous.removeAttribute("contentEditable");
32660
+ this.commit();
32661
+ }
32662
+ e.preventDefault();
32663
+ this.setSelection(target);
32664
+ });
32665
+ this.htmlDocument.addEventListener("dblclick", e => {
32666
+ const target = e.target;
32667
+ e.preventDefault();
32668
+ const element = target.nodeType === Node.ELEMENT_NODE ? target : target.parentElement;
32669
+ element.setAttribute("contentEditable", "true");
32670
+ this.setSelection(element);
32671
+ if (element.tagName === "IMG") {
32672
+ this.changeImage().catch(console.error);
32673
+ }
32674
+ });
32675
+ this.htmlDocument.addEventListener("scroll", e => {
32676
+ this.hover.update();
32677
+ this.selection.update();
32678
+ }, {
32679
+ passive: true
32680
+ });
32681
+ this.htmlDocument.addEventListener("pointerover", e => {
32682
+ let target = e.target;
32683
+ target = target.nodeType === Node.ELEMENT_NODE && target.tagName ? target : target.parentElement;
32684
+ if (this.hover.element === target) {
32685
+ return;
32686
+ }
32687
+ this.hover.update(target);
32688
+ }, {
32689
+ capture: true
32690
+ });
32691
+ InstallDragDropHelper(this);
32692
+ this.htmlDocument.close();
32693
+ setTimeout(() => {
32694
+ const document = this.htmlDocument;
32695
+ let style = document.querySelector(`[styler-style-sheet]`);
32696
+ if (!style) {
32697
+ style = document.createElement("style");
32698
+ style.setAttribute("styler-style-sheet", "inline");
32699
+ document.head.appendChild(style);
32700
+ }
32701
+ style.textContent = StylerSet.instance.toString();
32702
+ }, 10);
32703
+ setTimeout(() => {
32704
+ this.lastHtml = this.htmlDocument.documentElement.innerHTML;
32705
+ }, 1);
32706
+ });
32707
+ }
32708
+ constructor(app, e) {
32709
+ super(app, e);
32710
+ this.selection = new SelectedElement(this);
32711
+ this.undoList = [];
32712
+ this.redoList = [];
32713
+ this.hover = new SelectedElement(this);
32714
+ this.maxWidth = desktopWidth;
32715
+ this.folder = null;
32716
+ this.ready = this.init();
32717
+ }
32718
+ init() {
32719
+ return __awaiter(this, void 0, void 0, function* () {
32720
+ this.render(XNode.create("div", {
32721
+ "data-html-page-editor": "html-page-editor"
32722
+ }, XNode.create("div", {
32723
+ "data-element": "top"
32724
+ }, XNode.create(EditorToolbar, {
32725
+ "data-element": "max-width",
32726
+ "event-click": () => this.deferUpdate()
32727
+ }, XNode.create("i", {
32728
+ "data-selected": Bind.oneWay(() => this.maxWidth === desktopWidth),
32729
+ "event-click": () => this.maxWidth = desktopWidth,
32730
+ class: "fas fa-desktop"
32731
+ }), XNode.create("i", {
32732
+ "data-selected": Bind.oneWay(() => this.maxWidth === tabletWidth),
32733
+ "event-click": () => this.maxWidth = tabletWidth,
32734
+ class: "fas fa-tablet-screen"
32735
+ }), XNode.create("i", {
32736
+ "data-selected": Bind.oneWay(() => this.maxWidth === mobileWidth),
32737
+ "event-click": () => this.maxWidth = mobileWidth,
32738
+ class: "fas fa-mobile-screen"
32739
+ })), XNode.create(UndoRedoToolbar, null), XNode.create(EditorToolbar, null, XNode.create(CodeCommand, null))), XNode.create(EditorToolbar, {
32740
+ "data-element": "left"
32741
+ }, XNode.create(ImageBlock, null), XNode.create(WrapGrid, null)), XNode.create("div", {
32742
+ "data-element": "editor",
32743
+ "style-max-width": Bind.oneWay(() => this.maxWidth > 768 ? "" : this.maxWidth + "px")
32744
+ }, XNode.create("div", {
32745
+ "data-element": "resizer"
32746
+ }), XNode.create("div", {
32747
+ "data-element": "selection",
32748
+ "style-left": Bind.oneWay(() => this.selection.left),
32749
+ "style-top": Bind.oneWay(() => this.selection.top),
32750
+ "style-width": Bind.oneWay(() => this.selection.width),
32751
+ "style-height": Bind.oneWay(() => this.selection.height)
32752
+ }, XNode.create("div", null, XNode.create("i", {
32753
+ class: "fa-regular fa-arrow-up",
32754
+ "event-click": () => {
32755
+ if (this.selection.element.parentElement !== this.htmlDocument.body) {
32756
+ this.selection.update(this.selection.element.parentElement);
32757
+ }
32758
+ }
32759
+ }), XNode.create("i", {
32760
+ "event-click": () => {
32761
+ this.selection.element.draggable = true;
32762
+ },
32763
+ class: "fa-solid fa-up-down-left-right",
32764
+ "data-click-event": "start-drag"
32765
+ }), XNode.create("i", {
32766
+ "style-display": Bind.oneWay(() => this.selection.isImage),
32767
+ "data-click-event": "change-image",
32768
+ title: "Change Image (Double Click)",
32769
+ class: "fa-solid fa-arrows-rotate-reverse"
32770
+ }), XNode.create("i", {
32771
+ title: "Duplicate",
32772
+ "data-click-event": "copy-element",
32773
+ class: "fas fa-copy"
32774
+ }), XNode.create("i", {
32775
+ title: "Delete",
32776
+ "data-click-event": "delete-element",
32777
+ class: "fas fa-trash-can"
32778
+ }))), XNode.create("div", {
32779
+ "data-element": "hover",
32780
+ "style-left": Bind.oneWay(() => this.hover.left),
32781
+ "style-top": Bind.oneWay(() => this.hover.top),
32782
+ "style-width": Bind.oneWay(() => this.hover.width),
32783
+ "style-height": Bind.oneWay(() => this.hover.height)
32784
+ }, XNode.create("label", {
32785
+ text: Bind.oneWay(() => this.hover.name)
32786
+ })), XNode.create("div", {
32787
+ "data-element": "content-frame"
32788
+ }, XNode.create("iframe", {
32789
+ "data-element": "content-editor"
32790
+ }))), XNode.create("div", {
32791
+ "data-element": "right"
32792
+ }, XNode.create(Properties, null))));
32793
+ this.contentEditor = this.element.querySelector(`[data-element="content-editor"]`);
32794
+ while (!this.htmlDocument) {
32795
+ this.htmlDocument = this.contentEditor.contentDocument;
32796
+ yield sleep(100);
32797
+ }
32798
+ });
32799
+ }
32800
+ deleteElement() {
32801
+ var _a;
32802
+ return __awaiter(this, void 0, void 0, function* () {
32803
+ const current = this.selection.element;
32804
+ let previous = (_a = current.previousElementSibling) !== null && _a !== void 0 ? _a : current.parentElement;
32805
+ current.remove();
32806
+ this.commit();
32807
+ if (!previous.textContent) {
32808
+ previous = previous.previousElementSibling.lastElementChild;
32809
+ }
32810
+ this.setSelection(previous);
32811
+ yield sleep(100);
32812
+ this.selection.update();
32813
+ });
32814
+ }
32815
+ copyElement() {
32816
+ const current = this.selection.element;
32817
+ const copy = current.cloneNode(true);
32818
+ current.insertAdjacentElement("afterend", copy);
32819
+ this.commit();
32820
+ }
32821
+ changeImage() {
32822
+ return __awaiter(this, void 0, void 0, function* () {
32823
+ const {
32824
+ file,
32825
+ size
32826
+ } = yield PageNavigator.pushPageForResult(ChooseMediaPage, {
32827
+ folder: this.folder,
32828
+ accept: "image/*"
32829
+ });
32830
+ const src = `/api/site/asset/jpg(${size})/${this.folder.appFileID}/${file.appFileID}/${file.fileContentID}/${file.name}.${size}.jpg`;
32831
+ if (this.selection.isImage) {
32832
+ this.selection.element.setAttribute("src", src);
32833
+ this.selection.element.onload = () => this.selection.update();
32834
+ this.commit();
32835
+ return;
32836
+ }
32837
+ const img = this.htmlDocument.createElement("img");
32838
+ img.style.height = size + "px";
32839
+ img.src = src;
32840
+ this.selection.element.appendChild(img);
32841
+ this.selection.element.onload = () => this.selection.update();
32842
+ this.commit();
32843
+ });
32844
+ }
32845
+ insertElement(e, parent = this.selection.element) {
32846
+ parent.appendChild(e);
32847
+ if (!e.id) {
32848
+ e.id = "sm-" + Date.now().toString();
32849
+ }
32850
+ setTimeout(() => {
32851
+ this.setSelection(e);
32852
+ this.commit();
32853
+ }, 100);
32854
+ }
32855
+ deferUpdate() {
32856
+ var _a, _b;
32857
+ return __awaiter(this, void 0, void 0, function* () {
32858
+ yield sleep(100);
32859
+ (_a = this.hover) === null || _a === void 0 ? void 0 : _a.update();
32860
+ (_b = this.selection) === null || _b === void 0 ? void 0 : _b.update();
32861
+ });
32862
+ }
32863
+ setSelection(element, commit = true) {
32864
+ var _a;
32865
+ const old = (_a = this.selection) === null || _a === void 0 ? void 0 : _a.element;
32866
+ if (old) {
32867
+ old.draggable = false;
32868
+ }
32869
+ this.selection.update(element);
32870
+ if (commit) {
32871
+ this.commit();
32872
+ }
32873
+ }
32874
+ commit() {
32875
+ this.redoList.clear();
32876
+ const lastHtml = this.htmlDocument.documentElement.innerHTML;
32877
+ if (lastHtml === this.lastHtml) {
32878
+ return;
32879
+ }
32880
+ this.undoList.add(this.lastHtml);
32881
+ this.lastHtml = lastHtml;
32882
+ }
32883
+ });
32884
+ __decorate([BindableProperty, __metadata("design:type", Object)], HtmlPageEditor.prototype, "folder", void 0);
32885
+ __decorate([Action({
32886
+ onEvent: "delete-element"
32887
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], HtmlPageEditor.prototype, "deleteElement", null);
32888
+ __decorate([Action({
32889
+ onEvent: "copy-element",
32890
+ blockMultipleExecution: false
32891
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0)], HtmlPageEditor.prototype, "copyElement", null);
32892
+ __decorate([Action({
32893
+ onEvent: "change-image"
32894
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], HtmlPageEditor.prototype, "changeImage", null);
32895
+ }
32896
+ };
32897
+ });
32898
+ //# sourceMappingURL=HtmlPageEditor.js.map
32899
+
32900
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/site-editor/editor/HtmlPageEditor");
32901
+
32902
+ System.register(["tslib", "@web-atoms/core/dist/core/InjectProperty", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "../../../../web/page/files/service/CloudFileService", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/style/styled", "@web-atoms/core/dist/view-model/Action", "@web-atoms/web-controls/dist/PageNavigator", "@web-atoms/web-controls/dist/basic/PopupButton", "@web-atoms/web-controls/dist/basic/UploadEvent", "../../../../model/model", "../../../../web/page/files/shares/EditSharesPage", "../../../../web/page/templates/EditTemplatePage", "../templates/ChooseWebSiteTemplatePage", "@web-atoms/core/dist/services/FetchBuilder", "../../../controls/tree/FileTreeView", "../../../../site-editor/editor/HtmlPageEditor"], function (_export, _context) {
32903
+ "use strict";
32904
+
32905
+ var __awaiter, __decorate, __metadata, InjectProperty, ContentPage, CloudFileService, Bind, XNode, styled, Action, PageNavigator, PopupButton, MenuItem, UploadEvent, AppFile, EditSharesPage, EditTemplatePage, ChooseWebSiteTemplatePage, FetchBuilder, FileTreeView, HtmlPageEditor, WebSiteStudioPage, css, getExtension;
32906
+ _export("default", void 0);
32907
+ return {
32908
+ setters: [function (_tslib) {
32909
+ __awaiter = _tslib.__awaiter;
32910
+ __decorate = _tslib.__decorate;
32911
+ __metadata = _tslib.__metadata;
32912
+ }, function (_webAtomsCoreDistCoreInjectProperty) {
32913
+ InjectProperty = _webAtomsCoreDistCoreInjectProperty.default;
32914
+ }, function (_webAtomsWebControlsDistMobileAppMobileApp) {
32915
+ ContentPage = _webAtomsWebControlsDistMobileAppMobileApp.ContentPage;
32916
+ }, function (_webPageFilesServiceCloudFileService) {
32917
+ CloudFileService = _webPageFilesServiceCloudFileService.default;
32918
+ }, function (_webAtomsCoreDistCoreBind) {
32919
+ Bind = _webAtomsCoreDistCoreBind.default;
32920
+ }, function (_webAtomsCoreDistCoreXNode) {
32921
+ XNode = _webAtomsCoreDistCoreXNode.default;
32922
+ }, function (_webAtomsCoreDistStyleStyled) {
32923
+ styled = _webAtomsCoreDistStyleStyled.default;
32924
+ }, function (_webAtomsCoreDistViewModelAction) {
32925
+ Action = _webAtomsCoreDistViewModelAction.default;
32926
+ }, function (_webAtomsWebControlsDistPageNavigator) {
32927
+ PageNavigator = _webAtomsWebControlsDistPageNavigator.default;
32928
+ }, function (_webAtomsWebControlsDistBasicPopupButton) {
32929
+ PopupButton = _webAtomsWebControlsDistBasicPopupButton.default;
32930
+ MenuItem = _webAtomsWebControlsDistBasicPopupButton.MenuItem;
32931
+ }, function (_webAtomsWebControlsDistBasicUploadEvent) {
32932
+ UploadEvent = _webAtomsWebControlsDistBasicUploadEvent.default;
32933
+ }, function (_modelModel) {
32934
+ AppFile = _modelModel.AppFile;
32935
+ }, function (_webPageFilesSharesEditSharesPage) {
32936
+ EditSharesPage = _webPageFilesSharesEditSharesPage.default;
32937
+ }, function (_webPageTemplatesEditTemplatePage) {
32938
+ EditTemplatePage = _webPageTemplatesEditTemplatePage.default;
32939
+ }, function (_templatesChooseWebSiteTemplatePage) {
32940
+ ChooseWebSiteTemplatePage = _templatesChooseWebSiteTemplatePage.default;
32941
+ }, function (_webAtomsCoreDistServicesFetchBuilder) {
32942
+ FetchBuilder = _webAtomsCoreDistServicesFetchBuilder.default;
32943
+ }, function (_controlsTreeFileTreeView) {
32944
+ FileTreeView = _controlsTreeFileTreeView.FileTreeView;
32945
+ }, function (_siteEditorEditorHtmlPageEditor) {
32946
+ HtmlPageEditor = _siteEditorEditorHtmlPageEditor.default;
32947
+ }],
32948
+ execute: function () {
32949
+ css = styled.css`
32950
+ display: grid;
32951
+ grid-template-columns: 200px 1fr;
32952
+ gap: 5px;
32953
+ & .folder-tree {
32954
+ grid-column: 1;
32955
+ grid-row: 1;
32956
+ }
32957
+ & .file-list {
32958
+ grid-row: 1;
32959
+ grid-column: 2;
32960
+ position: relative;
32961
+ border: none;
32962
+ overflow: auto;
32963
+ justify-self: stretch;
32964
+ align-self: stretch;
32965
+ }
32966
+ `.installLocal();
32967
+ getExtension = name => {
32968
+ const index = name.lastIndexOf(".");
32969
+ if (index === -1) {
32970
+ return "dat";
32971
+ }
32972
+ return name.substring(index + 1);
32973
+ };
32974
+ _export("default", WebSiteStudioPage = class WebSiteStudioPage extends ContentPage {
32975
+ constructor() {
32976
+ super(...arguments);
32977
+ this.version = 1;
32978
+ }
32979
+ init() {
32980
+ var _a, _b;
32981
+ var _c;
32982
+ return __awaiter(this, void 0, void 0, function* () {
32983
+ this.search = "";
32984
+ this.root = yield this.cloudFileService.root(this.parameters);
32985
+ (_a = (_c = this.root).children) !== null && _a !== void 0 ? _a : _c.children = [];
32986
+ this.root.children.remove(x => x.contentType !== "text/html" && !x.isFolder);
32987
+ yield this.onItemExpanded(this.root);
32988
+ if (!((_b = this.root.children) === null || _b === void 0 ? void 0 : _b.length)) {
32989
+ yield this.createIndexHtml();
32990
+ return;
32991
+ }
32992
+ const indexHtml = this.root.children.find(x => x.name === "index.html");
32993
+ this.selectedFolder = indexHtml;
32994
+ this.titleRenderer = () => XNode.create("div", {
32995
+ "data-layout": "row"
32996
+ }, XNode.create("div", {
32997
+ text: Bind.oneWay(() => this.selectedFolder.name)
32998
+ }), XNode.create(PopupButton, {
32999
+ icon: "fas fa-upload",
33000
+ label: "Upload",
33001
+ "data-layout": "accent-icon-button",
33002
+ alignment: "bottomLeft",
33003
+ popup: () => XNode.create("div", null, XNode.create(MenuItem, Object.assign({
33004
+ icon: "fas fa-upload",
33005
+ "data-extra": Bind.oneWay(() => JSON.stringify({
33006
+ parentID: this.selectedFolder.appFileID
33007
+ }))
33008
+ }, UploadEvent.AttachUploadAction({
33009
+ multiple: true,
33010
+ accept: "*/*"
33011
+ }), {
33012
+ label: "Files"
33013
+ })), XNode.create(MenuItem, Object.assign({
33014
+ icon: "fas fa-upload",
33015
+ "data-extra": Bind.oneWay(() => JSON.stringify({
33016
+ parentID: this.selectedFolder.appFileID
33017
+ }))
33018
+ }, UploadEvent.AttachUploadAction({
33019
+ multiple: true,
33020
+ folder: true,
33021
+ accept: "*/*"
33022
+ }), {
33023
+ label: "Folder"
33024
+ })))
33025
+ }), XNode.create("span", {
33026
+ text: "|"
33027
+ }), XNode.create("i", {
33028
+ "data-click-event": "new-folder",
33029
+ class: "fas fa-plus"
33030
+ }), XNode.create("span", {
33031
+ "data-click-event": "new-folder",
33032
+ text: "Folder"
33033
+ }), XNode.create("span", {
33034
+ text: "|"
33035
+ }), this.parameters.templates && XNode.create("div", {
33036
+ "data-layout": "row",
33037
+ "style-display": Bind.oneWay(() => this.selectedFolder.appFileID > 0)
33038
+ }, XNode.create("i", {
33039
+ class: "fas fa-plus",
33040
+ "data-click-event": "new-template"
33041
+ }), XNode.create("span", {
33042
+ "data-click-event": "new-template",
33043
+ text: "New Template"
33044
+ })));
33045
+ this.renderer = XNode.create("div", {
33046
+ class: css
33047
+ }, XNode.create(FileTreeView, {
33048
+ root: this.root,
33049
+ class: "folder-tree",
33050
+ accept: "text/html",
33051
+ presenter: Bind.presenter(c => this.folderTree = c),
33052
+ selectedItem: Bind.twoWaysImmediate(() => this.selectedFolder)
33053
+ }), XNode.create(HtmlPageEditor, {
33054
+ class: "file-list",
33055
+ folder: this.root,
33056
+ htmlPage: Bind.oneWayAsync((s, e, cancelToken) => this.selectedFolder ? FetchBuilder.get(this.selectedFolder.downloadUrl).cancelToken(cancelToken).responseAsText(true) : void 0)
33057
+ }));
33058
+ });
33059
+ }
33060
+ createIndexHtml() {
33061
+ return __awaiter(this, void 0, void 0, function* () {
33062
+ yield PageNavigator.pushPageForResultOrCancel(ChooseWebSiteTemplatePage, this.root);
33063
+ yield this.init();
33064
+ });
33065
+ }
33066
+ editShares(file) {
33067
+ PageNavigator.pushPage(EditSharesPage, file);
33068
+ }
33069
+ openFolder(file) {
33070
+ this.selectedFolder = file;
33071
+ }
33072
+ newFolder() {
33073
+ return __awaiter(this, void 0, void 0, function* () {
33074
+ const name = prompt("Enter name of the folder");
33075
+ if (!name) {
33076
+ return;
33077
+ }
33078
+ const parentID = this.selectedFolder.appFileID;
33079
+ const folder = yield this.cloudFileService.createFolder({
33080
+ name,
33081
+ parentID
33082
+ });
33083
+ this.selectedFolder.children.add(folder);
33084
+ });
33085
+ }
33086
+ onItemExpanded(folder) {
33087
+ return __awaiter(this, void 0, void 0, function* () {
33088
+ yield this.cloudFileService.files({
33089
+ search: "",
33090
+ accept: "text/html",
33091
+ folder,
33092
+ cancelToken: null
33093
+ });
33094
+ });
33095
+ }
33096
+ onFilesUploaded() {
33097
+ return __awaiter(this, void 0, void 0, function* () {
33098
+ this.version++;
33099
+ });
33100
+ }
33101
+ newTemplate() {
33102
+ return __awaiter(this, void 0, void 0, function* () {
33103
+ const parentID = this.selectedFolder.appFileID;
33104
+ const file = yield PageNavigator.pushPageForResult(EditTemplatePage, {
33105
+ file: AppFile.create({
33106
+ parentID
33107
+ })
33108
+ });
33109
+ this.selectedFolder.children.add(file);
33110
+ });
33111
+ }
33112
+ openTemplate(file) {
33113
+ return __awaiter(this, void 0, void 0, function* () {
33114
+ yield PageNavigator.pushPageForResultOrCancel(EditTemplatePage, {
33115
+ file
33116
+ });
33117
+ });
33118
+ }
33119
+ });
33120
+ __decorate([InjectProperty, __metadata("design:type", CloudFileService)], WebSiteStudioPage.prototype, "cloudFileService", void 0);
33121
+ __decorate([Action({
33122
+ onEvent: "edit-shares"
33123
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", [Object]), __metadata("design:returntype", void 0)], WebSiteStudioPage.prototype, "editShares", null);
33124
+ __decorate([Action({
33125
+ onEvent: "open-folder"
33126
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", [Object]), __metadata("design:returntype", void 0)], WebSiteStudioPage.prototype, "openFolder", null);
33127
+ __decorate([Action({
33128
+ onEvent: "new-folder"
33129
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], WebSiteStudioPage.prototype, "newFolder", null);
33130
+ __decorate([Action({
33131
+ onEvent: "item-expanded"
33132
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", [Object]), __metadata("design:returntype", Promise)], WebSiteStudioPage.prototype, "onItemExpanded", null);
33133
+ __decorate([Action({
33134
+ onEvent: "files-available"
33135
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], WebSiteStudioPage.prototype, "onFilesUploaded", null);
33136
+ __decorate([Action({
33137
+ onEvent: "new-template"
33138
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], WebSiteStudioPage.prototype, "newTemplate", null);
33139
+ __decorate([Action({
33140
+ onEvent: "open-template"
33141
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", [Object]), __metadata("design:returntype", Promise)], WebSiteStudioPage.prototype, "openTemplate", null);
33142
+ }
33143
+ };
33144
+ });
33145
+ //# sourceMappingURL=WebSiteStudioPage.js.map
33146
+
33147
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/websites/studio/WebSiteStudioPage");
33148
+
33149
+ System.register(["tslib", "@web-atoms/core/dist/di/DITransient", "@web-atoms/core/dist/di/Inject", "../../../../services/EntityService", "../../../../model/model", "../../../SocialMailApp"], function (_export, _context) {
33150
+ "use strict";
33151
+
33152
+ var __awaiter, __decorate, __metadata, DITransient, Inject, EntityService, User, UserAuthFactor, SocialMailApp, UserService;
33153
+ return {
33154
+ setters: [function (_tslib) {
33155
+ __awaiter = _tslib.__awaiter;
33156
+ __decorate = _tslib.__decorate;
33157
+ __metadata = _tslib.__metadata;
33158
+ }, function (_webAtomsCoreDistDiDITransient) {
33159
+ DITransient = _webAtomsCoreDistDiDITransient.default;
33160
+ }, function (_webAtomsCoreDistDiInject) {
33161
+ Inject = _webAtomsCoreDistDiInject.Inject;
33162
+ }, function (_servicesEntityService) {
33163
+ EntityService = _servicesEntityService.default;
33164
+ }, function (_modelModel) {
33165
+ User = _modelModel.User;
33166
+ UserAuthFactor = _modelModel.UserAuthFactor;
33167
+ }, function (_SocialMailApp) {
33168
+ SocialMailApp = _SocialMailApp.default;
33169
+ }],
33170
+ execute: function () {
33171
+ UserService = class UserService {
33172
+ getCurrent() {
33173
+ return __awaiter(this, void 0, void 0, function* () {
33174
+ const {
33175
+ userID
33176
+ } = SocialMailApp.user;
33177
+ return this.entityService.query(User).where({
33178
+ userID
33179
+ }, p => x => x.userID === p.userID).include(x => x.authFactors).firstOrDefault();
33180
+ });
33181
+ }
33182
+ save(user) {
33183
+ return __awaiter(this, void 0, void 0, function* () {
33184
+ let cloner = this.entityService.cloner(user).include(x => x.authFactors);
33185
+ if (user.changePassword) {
33186
+ cloner = cloner.include(x => x.changePassword);
33187
+ }
33188
+ yield this.entityService.save(cloner.copy);
33189
+ });
33190
+ }
33191
+ createAuthFactor(user, method = "totp") {
33192
+ var _a;
33193
+ return __awaiter(this, void 0, void 0, function* () {
33194
+ const authFactor = UserAuthFactor.create({
33195
+ method
33196
+ });
33197
+ ((_a = user.authFactors) !== null && _a !== void 0 ? _a : user.authFactors = []).add(authFactor);
33198
+ yield this.save(user);
33199
+ return authFactor;
33200
+ });
33201
+ }
33202
+ };
33203
+ __decorate([Inject, __metadata("design:type", EntityService)], UserService.prototype, "entityService", void 0);
33204
+ UserService = __decorate([DITransient()], UserService);
33205
+ _export("default", UserService);
33206
+ }
33207
+ };
33208
+ });
33209
+ //# sourceMappingURL=UserService.js.map
33210
+
33211
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/user/services/UserService");
33212
+
33213
+ 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) {
33214
+ "use strict";
33215
+
33216
+ var __awaiter, __decorate, __metadata, PopupWindowPage, InjectProperty, UserService, XNode, Form, PasswordFormField, Bind, PasswordStrength, FormField, PasswordBox, Validators, SaveIconTextButton, Action, ChangePasswordPage;
33217
+ _export("default", void 0);
33218
+ return {
33219
+ setters: [function (_tslib) {
33220
+ __awaiter = _tslib.__awaiter;
33221
+ __decorate = _tslib.__decorate;
33222
+ __metadata = _tslib.__metadata;
33223
+ }, function (_webAtomsWebControlsDistMobileAppMobileApp) {
33224
+ PopupWindowPage = _webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage;
33225
+ }, function (_webAtomsCoreDistCoreInjectProperty) {
33226
+ InjectProperty = _webAtomsCoreDistCoreInjectProperty.default;
33227
+ }, function (_servicesUserService) {
33228
+ UserService = _servicesUserService.default;
33229
+ }, function (_webAtomsCoreDistCoreXNode) {
33230
+ XNode = _webAtomsCoreDistCoreXNode.default;
33231
+ }, function (_webAtomsWebControlsDistBasicForm) {
33232
+ Form = _webAtomsWebControlsDistBasicForm.default;
33233
+ }, function (_controlsFormRequiredFormField) {
33234
+ PasswordFormField = _controlsFormRequiredFormField.PasswordFormField;
33235
+ }, function (_webAtomsCoreDistCoreBind) {
33236
+ Bind = _webAtomsCoreDistCoreBind.default;
33237
+ }, function (_controlsPasswordPasswordStrength) {
33238
+ PasswordStrength = _controlsPasswordPasswordStrength.default;
33239
+ }, function (_webAtomsWebControlsDistBasicFormField) {
33240
+ FormField = _webAtomsWebControlsDistBasicFormField.default;
33241
+ }, function (_webAtomsWebControlsDistBasicPasswordBox) {
33242
+ PasswordBox = _webAtomsWebControlsDistBasicPasswordBox.default;
33243
+ }, function (_validatorsValidators) {
33244
+ Validators = _validatorsValidators.Validators;
33245
+ }, function (_controlsButtonsIconButton) {
33246
+ SaveIconTextButton = _controlsButtonsIconButton.SaveIconTextButton;
33247
+ }, function (_webAtomsCoreDistViewModelAction) {
33248
+ Action = _webAtomsCoreDistViewModelAction.default;
33249
+ }],
33250
+ execute: function () {
33251
+ _export("default", ChangePasswordPage = class ChangePasswordPage extends PopupWindowPage {
33252
+ constructor() {
33253
+ super(...arguments);
33254
+ this.password = "";
33255
+ }
33256
+ init() {
33257
+ return __awaiter(this, void 0, void 0, function* () {
33258
+ this.model = yield this.userService.getCurrent();
33259
+ this.title = "Change Password";
33260
+ this.model.changePassword = {
33261
+ oldPassword: "",
33262
+ newPassword: "",
33263
+ forceChangePasswordOnLogin: false
33264
+ };
33265
+ this.renderer = XNode.create("div", null, XNode.create(Form, null, XNode.create(PasswordFormField, {
33266
+ label: "Current Password",
33267
+ value: () => this.model.changePassword.oldPassword
33268
+ }), XNode.create(FormField, {
33269
+ label: "Password",
33270
+ required: true,
33271
+ error: Bind.oneWay(() => Validators.isValidPassword(this.password) ? "" : "Password is invalid")
33272
+ }, XNode.create(PasswordBox, {
33273
+ value: Bind.twoWaysImmediate(() => this.password)
33274
+ })), XNode.create(PasswordStrength, {
33275
+ password: Bind.oneWay(() => this.password)
33276
+ }), XNode.create(FormField, {
33277
+ label: "Password again",
33278
+ required: true,
33279
+ error: Bind.oneWay(() => this.password !== this.model.changePassword.newPassword ? "Passwords do not match" : "")
33280
+ }, XNode.create(PasswordBox, {
33281
+ value: Bind.twoWaysImmediate(() => this.model.changePassword.newPassword)
33282
+ })), XNode.create("div", {
33283
+ "data-layout": "command-row"
33284
+ }, XNode.create(SaveIconTextButton, {
33285
+ "data-submit-event": "save-user",
33286
+ text: "Change"
33287
+ }))));
33288
+ });
33289
+ }
33290
+ saveUser() {
33291
+ return __awaiter(this, void 0, void 0, function* () {
33292
+ yield this.userService.save(this.model);
33293
+ });
33294
+ }
33295
+ });
33296
+ __decorate([InjectProperty, __metadata("design:type", UserService)], ChangePasswordPage.prototype, "userService", void 0);
33297
+ __decorate([Action({
33298
+ onEvent: "save-user",
33299
+ success: "Password changed successfully.",
33300
+ close: true
33301
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], ChangePasswordPage.prototype, "saveUser", null);
33302
+ }
33303
+ };
33304
+ });
33305
+ //# sourceMappingURL=ChangePasswordPage.js.map
33306
+
33307
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/user/change-password/ChangePasswordPage");
33308
+
33309
+ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "../../../../model/model", "@web-atoms/core/dist/core/InjectProperty", "../services/UserService", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/basic/Form", "../../../controls/buttons/IconButton", "@web-atoms/web-controls/dist/basic/FormField", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/view-model/Action", "@web-atoms/web-controls/dist/basic/AtomRepeater", "../../../date/DateFormats"], function (_export, _context) {
33310
+ "use strict";
33311
+
33312
+ var __awaiter, __decorate, __metadata, ContentPage, UserAuthFactor, InjectProperty, UserService, XNode, Form, AddIconTextButton, DeleteIconTextButton, SaveIconTextButton, FormField, Bind, Action, AtomRepeater, DateFormats, MultiFactorSetupPage;
33313
+ _export("default", void 0);
33314
+ return {
33315
+ setters: [function (_tslib) {
33316
+ __awaiter = _tslib.__awaiter;
33317
+ __decorate = _tslib.__decorate;
33318
+ __metadata = _tslib.__metadata;
33319
+ }, function (_webAtomsWebControlsDistMobileAppMobileApp) {
33320
+ ContentPage = _webAtomsWebControlsDistMobileAppMobileApp.ContentPage;
33321
+ }, function (_modelModel) {
33322
+ UserAuthFactor = _modelModel.UserAuthFactor;
33323
+ }, function (_webAtomsCoreDistCoreInjectProperty) {
33324
+ InjectProperty = _webAtomsCoreDistCoreInjectProperty.default;
33325
+ }, function (_servicesUserService) {
33326
+ UserService = _servicesUserService.default;
33327
+ }, function (_webAtomsCoreDistCoreXNode) {
33328
+ XNode = _webAtomsCoreDistCoreXNode.default;
33329
+ }, function (_webAtomsWebControlsDistBasicForm) {
33330
+ Form = _webAtomsWebControlsDistBasicForm.default;
33331
+ }, function (_controlsButtonsIconButton) {
33332
+ AddIconTextButton = _controlsButtonsIconButton.AddIconTextButton;
33333
+ DeleteIconTextButton = _controlsButtonsIconButton.DeleteIconTextButton;
33334
+ SaveIconTextButton = _controlsButtonsIconButton.SaveIconTextButton;
33335
+ }, function (_webAtomsWebControlsDistBasicFormField) {
33336
+ FormField = _webAtomsWebControlsDistBasicFormField.default;
33337
+ }, function (_webAtomsCoreDistCoreBind) {
33338
+ Bind = _webAtomsCoreDistCoreBind.default;
33339
+ }, function (_webAtomsCoreDistViewModelAction) {
33340
+ Action = _webAtomsCoreDistViewModelAction.default;
33341
+ }, function (_webAtomsWebControlsDistBasicAtomRepeater) {
33342
+ AtomRepeater = _webAtomsWebControlsDistBasicAtomRepeater.default;
33343
+ }, function (_dateDateFormats) {
33344
+ DateFormats = _dateDateFormats.DateFormats;
33345
+ }],
33346
+ execute: function () {
33347
+ _export("default", MultiFactorSetupPage = class MultiFactorSetupPage extends ContentPage {
33348
+ init() {
33349
+ var _a, _b;
33350
+ return __awaiter(this, void 0, void 0, function* () {
33351
+ this.model = yield this.userService.getCurrent();
33352
+ const {
33353
+ multiFactor
33354
+ } = this.model;
33355
+ this.title = "Setup Multi Factor Authentication";
33356
+ if (!((_a = this.model.authFactors) === null || _a === void 0 ? void 0 : _a.length)) {
33357
+ yield this.notSetup();
33358
+ return;
33359
+ }
33360
+ if (multiFactor) {
33361
+ this.renderer = XNode.create("div", {
33362
+ "data-layout": "center-page-900px"
33363
+ }, XNode.create(Form, null, XNode.create(FormField, {
33364
+ label: "Methods"
33365
+ }, XNode.create(AtomRepeater, {
33366
+ for: "table",
33367
+ items: this.model.authFactors,
33368
+ itemRenderer: item => this.renderAuthFactor(item)
33369
+ })), !multiFactor && XNode.create("div", {
33370
+ "data-layout": "command-row"
33371
+ }, XNode.create(AddIconTextButton, {
33372
+ "event-click": () => this.addAuthenticator(),
33373
+ text: "Add Authenticator"
33374
+ }), XNode.create(AddIconTextButton, {
33375
+ "event-click": () => this.generateOTP(),
33376
+ text: "Generate OTP"
33377
+ })), XNode.create("div", {
33378
+ "data-layout": "command-row"
33379
+ }, XNode.create("div", null, "Multi factor authentication is enabled."), XNode.create(DeleteIconTextButton, {
33380
+ text: "Disable"
33381
+ }))));
33382
+ return;
33383
+ }
33384
+ const disable = !((_b = this.model.authFactors) === null || _b === void 0 ? void 0 : _b.length) || !this.model.authFactors.some(i => i.method === "totp" && i.verified) || this.model.authFactors.filter(i => i.method === "one-time").length < 8;
33385
+ this.renderer = XNode.create("div", {
33386
+ "data-layout": "center-page-900px"
33387
+ }, XNode.create(Form, null, XNode.create(FormField, {
33388
+ label: "Methods"
33389
+ }, XNode.create(AtomRepeater, {
33390
+ for: "table",
33391
+ items: this.model.authFactors,
33392
+ itemRenderer: item => this.renderAuthFactor(item)
33393
+ })), !multiFactor && XNode.create("div", {
33394
+ "data-layout": "command-row"
33395
+ }, XNode.create(AddIconTextButton, {
33396
+ "event-click": () => this.addAuthenticator(),
33397
+ text: "Add Authenticator"
33398
+ }), XNode.create(AddIconTextButton, {
33399
+ "event-click": () => this.generateOTP(),
33400
+ text: "Generate OTP"
33401
+ })), disable && XNode.create("div", null, "You must add at least one authenticator and generate 8 OTPs (one time passwords) to enable Multi factor authentication."), !multiFactor && XNode.create("div", {
33402
+ "data-layout": "command-row"
33403
+ }, XNode.create(SaveIconTextButton, {
33404
+ disabled: disable,
33405
+ "style-color": disable ? "gray" : "",
33406
+ "data-click-event": "enable-multi-factor",
33407
+ text: "Enable"
33408
+ }), XNode.create(DeleteIconTextButton, {
33409
+ "data-submit-event": "clear-all",
33410
+ text: "Clear All"
33411
+ })), multiFactor && XNode.create("div", {
33412
+ "data-layout": "command-row"
33413
+ }, XNode.create(DeleteIconTextButton, {
33414
+ text: "Disable"
33415
+ }))));
31048
33416
  });
31049
33417
  }
31050
33418
  renderAuthFactor(item) {
@@ -31182,49 +33550,6 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
31182
33550
 
31183
33551
  AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/user/multi-factor/MultiFactorSetupPage");
31184
33552
 
31185
- System.register(["tslib", "@web-atoms/core/dist/di/DITransient", "@web-atoms/core/dist/di/Inject", "../EntityService", "../../model/model"], function (_export, _context) {
31186
- "use strict";
31187
-
31188
- var __awaiter, __decorate, __metadata, DITransient, Inject, EntityService, WebSiteFolder, WebSiteService;
31189
- return {
31190
- setters: [function (_tslib) {
31191
- __awaiter = _tslib.__awaiter;
31192
- __decorate = _tslib.__decorate;
31193
- __metadata = _tslib.__metadata;
31194
- }, function (_webAtomsCoreDistDiDITransient) {
31195
- DITransient = _webAtomsCoreDistDiDITransient.default;
31196
- }, function (_webAtomsCoreDistDiInject) {
31197
- Inject = _webAtomsCoreDistDiInject.Inject;
31198
- }, function (_EntityService) {
31199
- EntityService = _EntityService.default;
31200
- }, function (_modelModel) {
31201
- WebSiteFolder = _modelModel.WebSiteFolder;
31202
- }],
31203
- execute: function () {
31204
- WebSiteService = class WebSiteService {
31205
- list() {
31206
- return __awaiter(this, void 0, void 0, function* () {
31207
- return this.entityService.query(WebSiteFolder).include(x => x.folder).toArray();
31208
- });
31209
- }
31210
- save(model) {
31211
- return __awaiter(this, void 0, void 0, function* () {
31212
- const cloner = this.entityService.cloner(model).include(x => x.folder).copy;
31213
- yield this.entityService.save(cloner);
31214
- return model;
31215
- });
31216
- }
31217
- };
31218
- __decorate([Inject, __metadata("design:type", EntityService)], WebSiteService.prototype, "entityService", void 0);
31219
- WebSiteService = __decorate([DITransient()], WebSiteService);
31220
- _export("default", WebSiteService);
31221
- }
31222
- };
31223
- });
31224
- //# sourceMappingURL=WebSiteService.js.map
31225
-
31226
- AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/websites/WebSiteService");
31227
-
31228
33553
  System.register(["tslib", "@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/mobile-app/MobileApp", "../../../../model/model", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/view-model/Action", "@web-atoms/core/dist/core/InjectProperty", "../../../../services/websites/WebSiteService"], function (_export, _context) {
31229
33554
  "use strict";
31230
33555
 
@@ -31262,7 +33587,8 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-con
31262
33587
  this.model = WebSiteFolder.create({
31263
33588
  folder: AppFile.create({
31264
33589
  name: "Web Site",
31265
- isFolder: true
33590
+ isFolder: true,
33591
+ contentType: "application/site"
31266
33592
  }),
31267
33593
  isStatic: true
31268
33594
  });
@@ -31392,6 +33718,16 @@ System.register(["@web-atoms/core/dist/core/Command"], function (_export, _conte
31392
33718
  routeOrder: 100,
31393
33719
  openPage: () => _context.import("../pages/drives/DriveListPage")
31394
33720
  });
33721
+ CommonCommands.manageWebSite = Command.create({
33722
+ route: "/studio/manage/{id}",
33723
+ routeOrder: 100,
33724
+ openPage: () => _context.import("../pages/websites/manage/ManageWebSitePage")
33725
+ });
33726
+ CommonCommands.editWebSite = Command.create({
33727
+ route: "/studio/edit/{id}",
33728
+ routeOrder: 100,
33729
+ openPage: () => _context.import("../pages/websites/studio/WebSiteStudioPage")
33730
+ });
31395
33731
  CommonCommands.changePassword = Command.create({
31396
33732
  route: "/user/change-password",
31397
33733
  pushPage: () => _context.import("../pages/user/change-password/ChangePasswordPage")