@social-mail/social-mail-client 1.0.12 → 1.0.16

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 (114) hide show
  1. package/dist/admin/AdminAppIndex.js +5 -2
  2. package/dist/admin/AdminAppIndex.js.map +1 -1
  3. package/dist/admin/AdminAppIndex.pack.js +658 -79
  4. package/dist/admin/AdminAppIndex.pack.js.map +1 -1
  5. package/dist/admin/AdminAppIndex.pack.min.js +81 -19
  6. package/dist/admin/AdminAppIndex.pack.min.js.map +1 -1
  7. package/dist/admin/commands/AdminCommands.js.map +1 -1
  8. package/dist/admin/drawer/AdminDrawer.js +4 -27
  9. package/dist/admin/drawer/AdminDrawer.js.map +1 -1
  10. package/dist/admin/pages/domains/edit/DomainKeySetupPage.js +58 -0
  11. package/dist/admin/pages/domains/edit/DomainKeySetupPage.js.map +1 -0
  12. package/dist/admin/pages/domains/edit/EditDomainPage.js +61 -5
  13. package/dist/admin/pages/domains/edit/EditDomainPage.js.map +1 -1
  14. package/dist/admin/pages/domains/services/AdminDomainService.js +1 -1
  15. package/dist/admin/pages/domains/services/AdminDomainService.js.map +1 -1
  16. package/dist/common/NumberFormats.js +75 -0
  17. package/dist/common/NumberFormats.js.map +1 -0
  18. package/dist/common/controls/buttons/CopyIcon.js +50 -0
  19. package/dist/common/controls/buttons/CopyIcon.js.map +1 -0
  20. package/dist/common/controls/buttons/IconButton.js +19 -1
  21. package/dist/common/controls/buttons/IconButton.js.map +1 -1
  22. package/dist/common/controls/html/InlineHtmlEditorWithToolbar.js +75 -0
  23. package/dist/common/controls/html/InlineHtmlEditorWithToolbar.js.map +1 -0
  24. package/dist/common/controls/menu/MenuItem.js +40 -0
  25. package/dist/common/controls/menu/MenuItem.js.map +1 -0
  26. package/dist/common/pages/mailboxes/MailboxEditorPage.js +23 -8
  27. package/dist/common/pages/mailboxes/MailboxEditorPage.js.map +1 -1
  28. package/dist/common/pages/mailboxes/MailboxListPage.js +5 -3
  29. package/dist/common/pages/mailboxes/MailboxListPage.js.map +1 -1
  30. package/dist/common/pages/mailboxes/services/MailboxService.js +10 -2
  31. package/dist/common/pages/mailboxes/services/MailboxService.js.map +1 -1
  32. package/dist/model/model.js +45 -16
  33. package/dist/model/model.js.map +1 -1
  34. package/dist/services/files/LocalFileService.js +201 -0
  35. package/dist/services/files/LocalFileService.js.map +1 -0
  36. package/dist/style/GlobalStyle.js +1 -0
  37. package/dist/style/GlobalStyle.js.map +1 -1
  38. package/dist/tsconfig.tsbuildinfo +1 -1
  39. package/dist/web/AppIndex.js +10 -2
  40. package/dist/web/AppIndex.js.map +1 -1
  41. package/dist/web/AppIndex.pack.js +9966 -2699
  42. package/dist/web/AppIndex.pack.js.map +1 -1
  43. package/dist/web/AppIndex.pack.min.js +566 -64
  44. package/dist/web/AppIndex.pack.min.js.map +1 -1
  45. package/dist/web/commands/AppCommands.js +17 -1
  46. package/dist/web/commands/AppCommands.js.map +1 -1
  47. package/dist/web/drawer/AppDrawer.js +46 -4
  48. package/dist/web/drawer/AppDrawer.js.map +1 -1
  49. package/dist/web/page/mails/ComposeMailPage.js +165 -0
  50. package/dist/web/page/mails/ComposeMailPage.js.map +1 -0
  51. package/dist/web/page/mails/Composer.js +50 -0
  52. package/dist/web/page/mails/Composer.js.map +1 -0
  53. package/dist/web/page/mails/ConversationPage.js +84 -0
  54. package/dist/web/page/mails/ConversationPage.js.map +1 -0
  55. package/dist/web/page/mails/MailsPage.js +129 -0
  56. package/dist/web/page/mails/MailsPage.js.map +1 -0
  57. package/dist/web/page/mails/service/ConversationService.js +65 -0
  58. package/dist/web/page/mails/service/ConversationService.js.map +1 -0
  59. package/dist/web/page/mails/service/MailService.js +68 -0
  60. package/dist/web/page/mails/service/MailService.js.map +1 -0
  61. package/node_modules/@web-atoms/entity/dist/services/Query.d.ts.map +1 -1
  62. package/node_modules/@web-atoms/entity/dist/services/Query.js +4 -1
  63. package/node_modules/@web-atoms/entity/dist/services/Query.js.map +1 -1
  64. package/node_modules/@web-atoms/entity/dist/tsconfig.tsbuildinfo +1 -1
  65. package/node_modules/@web-atoms/entity/package.json +1 -1
  66. package/node_modules/@web-atoms/entity/src/services/Query.ts +4 -1
  67. package/node_modules/@web-atoms/web-controls/dist/basic/AtomChips.d.ts +1 -0
  68. package/node_modules/@web-atoms/web-controls/dist/basic/AtomChips.d.ts.map +1 -1
  69. package/node_modules/@web-atoms/web-controls/dist/basic/AtomChips.js +10 -0
  70. package/node_modules/@web-atoms/web-controls/dist/basic/AtomChips.js.map +1 -1
  71. package/node_modules/@web-atoms/web-controls/dist/desktop-app/DesktopApp.d.ts.map +1 -1
  72. package/node_modules/@web-atoms/web-controls/dist/desktop-app/DesktopApp.js +14 -5
  73. package/node_modules/@web-atoms/web-controls/dist/desktop-app/DesktopApp.js.map +1 -1
  74. package/node_modules/@web-atoms/web-controls/dist/html-editor/InlineHtmlEditor.d.ts +4 -0
  75. package/node_modules/@web-atoms/web-controls/dist/html-editor/InlineHtmlEditor.d.ts.map +1 -1
  76. package/node_modules/@web-atoms/web-controls/dist/html-editor/InlineHtmlEditor.js +10 -4
  77. package/node_modules/@web-atoms/web-controls/dist/html-editor/InlineHtmlEditor.js.map +1 -1
  78. package/node_modules/@web-atoms/web-controls/dist/mobile-app/MobileApp.d.ts.map +1 -1
  79. package/node_modules/@web-atoms/web-controls/dist/mobile-app/MobileApp.js +26 -7
  80. package/node_modules/@web-atoms/web-controls/dist/mobile-app/MobileApp.js.map +1 -1
  81. package/node_modules/@web-atoms/web-controls/dist/tsconfig.tsbuildinfo +1 -1
  82. package/node_modules/@web-atoms/web-controls/package.json +1 -1
  83. package/node_modules/@web-atoms/web-controls/src/basic/AtomChips.tsx +12 -0
  84. package/node_modules/@web-atoms/web-controls/src/desktop-app/DesktopApp.tsx +14 -5
  85. package/node_modules/@web-atoms/web-controls/src/html-editor/InlineHtmlEditor.tsx +10 -5
  86. package/node_modules/@web-atoms/web-controls/src/mobile-app/MobileApp.tsx +29 -7
  87. package/package.json +3 -3
  88. package/src/admin/AdminAppIndex.tsx +4 -0
  89. package/src/admin/commands/AdminCommands.ts +1 -0
  90. package/src/admin/drawer/AdminDrawer.tsx +1 -22
  91. package/src/admin/pages/domains/edit/DomainKeySetupPage.tsx +41 -0
  92. package/src/admin/pages/domains/edit/EditDomainPage.tsx +53 -6
  93. package/src/admin/pages/domains/services/AdminDomainService.ts +2 -1
  94. package/src/common/NumberFormats.ts +74 -0
  95. package/src/common/controls/buttons/CopyIcon.tsx +35 -0
  96. package/src/common/controls/buttons/IconButton.tsx +5 -0
  97. package/src/common/controls/html/InlineHtmlEditorWithToolbar.tsx +73 -0
  98. package/src/common/controls/menu/MenuItem.tsx +25 -0
  99. package/src/common/pages/mailboxes/MailboxEditorPage.tsx +17 -7
  100. package/src/common/pages/mailboxes/MailboxListPage.tsx +4 -1
  101. package/src/common/pages/mailboxes/services/MailboxService.ts +8 -1
  102. package/src/common/pages/user/LoginPage.tsx +1 -1
  103. package/src/model/model.ts +78 -27
  104. package/src/services/files/LocalFileService.tsx +185 -0
  105. package/src/style/GlobalStyle.ts +1 -0
  106. package/src/web/AppIndex.tsx +11 -0
  107. package/src/web/commands/AppCommands.ts +18 -1
  108. package/src/web/drawer/AppDrawer.tsx +44 -0
  109. package/src/web/page/mails/ComposeMailPage.tsx +131 -0
  110. package/src/web/page/mails/Composer.tsx +35 -0
  111. package/src/web/page/mails/ConversationPage.tsx +72 -0
  112. package/src/web/page/mails/MailsPage.tsx +95 -0
  113. package/src/web/page/mails/service/ConversationService.ts +42 -0
  114. package/src/web/page/mails/service/MailService.ts +44 -0
@@ -1864,7 +1864,7 @@ const UMD = new UMDClass();
1864
1864
 
1865
1865
  AmdLoader.instance.register(
1866
1866
  ["@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"],
1867
- ["@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/UserService","@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/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/users/UserListPage","@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/controls/repeater/InfiniteRepeater","@social-mail/social-mail-client/dist/admin/pages/users/EditUserPage","@social-mail/social-mail-client/dist/admin/pages/domains/choose/ChooseDomainPage","@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxListPage","@social-mail/social-mail-client/dist/common/pages/mailboxes/services/MailboxService","@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxEditorPage","@web-atoms/web-controls/dist/basic/ComboBox","@social-mail/social-mail-client/dist/admin/pages/relays/edit/EditRelayPage","@social-mail/social-mail-client/dist/common/pages/user/LoginPage","@social-mail/social-mail-client/dist/admin/drawer/AdminDrawer","@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"]);
1867
+ ["@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/UserService","@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/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/users/UserListPage","@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/controls/repeater/InfiniteRepeater","@social-mail/social-mail-client/dist/admin/pages/users/EditUserPage","@social-mail/social-mail-client/dist/admin/pages/domains/choose/ChooseDomainPage","@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxListPage","@social-mail/social-mail-client/dist/common/pages/mailboxes/services/MailboxService","@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxEditorPage","@web-atoms/web-controls/dist/basic/ComboBox","@social-mail/social-mail-client/dist/common/NumberFormats","@social-mail/social-mail-client/dist/admin/pages/relays/edit/EditRelayPage","@social-mail/social-mail-client/dist/common/pages/user/LoginPage","@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/services/files/LocalFileService","@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
1868
 
1869
1869
  System.register([], function (_export, _context) {
1870
1870
  "use strict";
@@ -10517,23 +10517,31 @@ System.register(["tslib", "@web-atoms/core/dist/core/AtomLoader", "@web-atoms/co
10517
10517
  execute: function () {
10518
10518
  styled.css`
10519
10519
 
10520
- position: absolute;
10521
10520
  top: 0px;
10522
10521
  left: 0px;
10523
10522
  right: 0px;
10524
10523
  bottom: 0px;
10525
10524
  padding: 5px;
10526
- overflow: hidden;
10527
10525
 
10528
10526
  & > [data-container] {
10529
- position: absolute;
10530
10527
  top: 0px;
10531
10528
  left: 0px;
10532
10529
  width: 100%;
10533
10530
  bottom: 0px;
10534
- overflow: hidden;
10535
10531
  transition: left 0.3s ease-out;
10536
10532
  }
10533
+
10534
+ @media screen {
10535
+ & {
10536
+ position: absolute;
10537
+ overflow: hidden;
10538
+
10539
+ & > [data-container] {
10540
+ position: absolute;
10541
+ overflow: hidden;
10542
+ }
10543
+ }
10544
+ }
10537
10545
 
10538
10546
  &[data-drawer=visible] {
10539
10547
 
@@ -10559,12 +10567,10 @@ System.register(["tslib", "@web-atoms/core/dist/core/AtomLoader", "@web-atoms/co
10559
10567
  `.installGlobal("[data-page-app=page-app]");
10560
10568
  styled.css`
10561
10569
 
10562
- position: absolute;
10563
10570
  top: 0px;
10564
10571
  left: 0px;
10565
10572
  width: 100%;
10566
10573
  height: 100%;
10567
- overflow: hidden;
10568
10574
  contain: content;
10569
10575
  transition: transform 0.3s ease-out;
10570
10576
  display: grid;
@@ -10572,6 +10578,13 @@ System.register(["tslib", "@web-atoms/core/dist/core/AtomLoader", "@web-atoms/co
10572
10578
  grid-template-columns: auto 1fr auto;
10573
10579
  transform: translate(100%,0);
10574
10580
 
10581
+ @media screen {
10582
+ & {
10583
+ position: absolute;
10584
+ overflow: hidden;
10585
+ }
10586
+ }
10587
+
10575
10588
  & > [data-icon-button=icon-button] {
10576
10589
  padding: 5px;
10577
10590
  }
@@ -10738,6 +10751,13 @@ System.register(["tslib", "@web-atoms/core/dist/core/AtomLoader", "@web-atoms/co
10738
10751
  }
10739
10752
 
10740
10753
  `.installGlobal("[data-base-page=base-page]");
10754
+ styled.css`
10755
+ @media screen {
10756
+ body {
10757
+ overflow: hidden;
10758
+ }
10759
+ }
10760
+ `.installGlobal();
10741
10761
  _export("Drawer", Drawer = class Drawer extends AtomControl {
10742
10762
  init() {}
10743
10763
  preCreate() {
@@ -11177,7 +11197,6 @@ System.register(["tslib", "@web-atoms/core/dist/core/AtomLoader", "@web-atoms/co
11177
11197
  }
11178
11198
  }));
11179
11199
  });
11180
- document.body.style.overflow = "hidden";
11181
11200
  this.drawer = null;
11182
11201
  this.element.dataset.pageApp = "page-app";
11183
11202
  const container = this.container = document.createElement("div");
@@ -11347,18 +11366,27 @@ System.register(["tslib", "@web-atoms/core/dist/core/BindableProperty", "@web-at
11347
11366
  }
11348
11367
 
11349
11368
  body {
11350
- overflow: hidden;
11351
- display: flex;
11352
11369
  justify-content: space-around;
11353
11370
  align-items: stretch;
11354
11371
  align-content: stretch;
11355
11372
  flex-direction: row;
11356
11373
  }
11357
11374
 
11375
+ @media screen {
11376
+ body {
11377
+ overflow: hidden;
11378
+ display: grid;
11379
+ }
11380
+
11381
+ *[data-desktop-app=desktop-app] {
11382
+ position: relative;
11383
+ overflow: hidden;
11384
+ display: grid;
11385
+ }
11386
+
11387
+ }
11388
+
11358
11389
  *[data-desktop-app=desktop-app] {
11359
- position: relative;
11360
- overflow: hidden;
11361
- display: grid;
11362
11390
  min-width: 900px;
11363
11391
  grid-template-rows: 1fr auto;
11364
11392
  grid-template-columns: auto 1fr auto;
@@ -11849,6 +11877,7 @@ html, body {
11849
11877
  body {
11850
11878
  font-family: trebuchet ms, "Source Sans Pro";
11851
11879
  font-size: 16px;
11880
+ justify-content: stretch;
11852
11881
 
11853
11882
  & * {
11854
11883
  font-family: trebuchet ms, "Source Sans Pro";
@@ -12628,7 +12657,10 @@ System.register(["tslib", "./StringHelper"], function (_export, _context) {
12628
12657
  return this.append([name, text, ...pl]);
12629
12658
  }
12630
12659
  convertToLinq(text) {
12631
- return this.context.queryProcessor === "DotNet" ? convertToLinq(text) : text;
12660
+ if (this.context.queryProcessor === "DotNet") {
12661
+ return convertToLinq(text);
12662
+ }
12663
+ return text.replace(/\s+/g, " ");
12632
12664
  }
12633
12665
  });
12634
12666
  }
@@ -13135,7 +13167,7 @@ System.register(["tslib", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/ent
13135
13167
  System.register(["@web-atoms/date-time/dist/DateTime", "@web-atoms/entity/dist/services/BaseEntityService"], function (_export, _context) {
13136
13168
  "use strict";
13137
13169
 
13138
- var DateTime, Model, AppRole, AppFile, FileContent, Configuration, Domain, HostedDomain, DomainUser, DomainRelayTypeArray, DomainRelay, DomainKey, EmailStatusArray, Email, EmailRecipient, EmailTag, EmailAddress, EmailAttachment, Mailbox, User, UserRole, UserMailbox, LoginSession, Tag;
13170
+ var DateTime, Model, AppRole, AppFile, FileContent, Configuration, Domain, HostedDomain, DomainUser, DomainRelayTypeArray, DomainRelay, DomainKey, EmailStatusArray, Email, EmailRecipientTypeArray, EmailRecipient, EmailTag, EmailAddress, EmailAttachment, Mailbox, MailboxThread, MailboxThreadEmail, User, UserRole, UserMailbox, LoginSession, Tag;
13139
13171
  return {
13140
13172
  setters: [function (_webAtomsDateTimeDistDateTime) {
13141
13173
  DateTime = _webAtomsDateTimeDistDateTime.default;
@@ -13195,8 +13227,8 @@ System.register(["@web-atoms/date-time/dist/DateTime", "@web-atoms/entity/dist/s
13195
13227
  }));
13196
13228
  _export("DomainKey", DomainKey = new Model("DomainKey", {
13197
13229
  name: "",
13230
+ keyType: "",
13198
13231
  publicKey: "",
13199
- privateKey: "",
13200
13232
  domainID: 0
13201
13233
  }));
13202
13234
  _export("EmailStatusArray", EmailStatusArray = [{
@@ -13208,38 +13240,58 @@ System.register(["@web-atoms/date-time/dist/DateTime", "@web-atoms/entity/dist/s
13208
13240
  }, {
13209
13241
  "label": "draft",
13210
13242
  "value": "draft"
13243
+ }, {
13244
+ "label": "pending-approval",
13245
+ "value": "pending-approval"
13211
13246
  }, {
13212
13247
  "label": "scheduled",
13213
13248
  "value": "scheduled"
13214
13249
  }, {
13215
13250
  "label": "sent",
13216
13251
  "value": "sent"
13252
+ }, {
13253
+ "label": "sent-failed",
13254
+ "value": "sent-failed"
13217
13255
  }]);
13218
13256
  _export("Email", Email = new Model("Email", {
13219
- mailBoxID: 0,
13220
- subject: "",
13221
- textBody: "",
13222
- htmlBody: "",
13257
+ mailboxID: 0,
13223
13258
  senderName: "",
13224
13259
  senderID: 0,
13225
- headerFrom: "",
13226
- headerTo: "",
13227
- headerCc: "",
13228
- headerBcc: "",
13229
- mdBody: "",
13230
13260
  dateReceived: new DateTime(),
13231
13261
  dateCreated: new DateTime(),
13232
13262
  status: "queued"
13233
13263
  }));
13264
+ _export("EmailRecipientTypeArray", EmailRecipientTypeArray = [{
13265
+ "label": "from",
13266
+ "value": "from"
13267
+ }, {
13268
+ "label": "to",
13269
+ "value": "to"
13270
+ }, {
13271
+ "label": "cc",
13272
+ "value": "cc"
13273
+ }, {
13274
+ "label": "bcc",
13275
+ "value": "bcc"
13276
+ }, {
13277
+ "label": "viewer",
13278
+ "value": "viewer"
13279
+ }, {
13280
+ "label": "editor",
13281
+ "value": "editor"
13282
+ }]);
13234
13283
  _export("EmailRecipient", EmailRecipient = new Model("EmailRecipient", {
13235
- emailID: 0
13284
+ emailID: 0,
13285
+ emailAddressID: 0,
13286
+ type: "from"
13236
13287
  }));
13237
13288
  _export("EmailTag", EmailTag = new Model("EmailTag", {
13238
13289
  emailID: 0,
13239
13290
  tagID: 0
13240
13291
  }));
13241
13292
  _export("EmailAddress", EmailAddress = new Model("EmailAddress", {
13242
- emailAddress: ""
13293
+ emailAddress: "",
13294
+ domainID: 0
13243
13295
  }));
13244
13296
  _export("EmailAttachment", EmailAttachment = new Model("EmailAttachment", {
13245
13297
  emailID: 0,
@@ -13254,11 +13306,20 @@ System.register(["@web-atoms/date-time/dist/DateTime", "@web-atoms/entity/dist/s
13254
13306
  storage: 0,
13255
13307
  maxStorage: 0
13256
13308
  }));
13309
+ _export("MailboxThread", MailboxThread = new Model("MailboxThread", {
13310
+ mailboxID: 0,
13311
+ emailAddressID: 0,
13312
+ lastEmailID: 0,
13313
+ dateUpdated: new DateTime()
13314
+ }));
13315
+ _export("MailboxThreadEmail", MailboxThreadEmail = new Model("MailboxThreadEmail", {
13316
+ mailboxID: 0,
13317
+ emailAddressID: 0,
13318
+ emailID: 0
13319
+ }));
13257
13320
  _export("User", User = new Model("User", {
13258
13321
  userName: "",
13259
- displayName: "",
13260
- passwordHash: "",
13261
- passwordSalt: ""
13322
+ displayName: ""
13262
13323
  }));
13263
13324
  _export("UserRole", UserRole = new Model("UserRole", {
13264
13325
  userID: 0,
@@ -15597,7 +15658,7 @@ System.register(["tslib", "@web-atoms/core/dist/di/DITransient", "@web-atoms/cor
15597
15658
  return this.entityService.query(HostedDomain).include(x => x.domain).toArray();
15598
15659
  }
15599
15660
  save(domain) {
15600
- const clone = this.entityService.cloner(domain).include(x => x.domainUsers).include(x => x.domain);
15661
+ const clone = this.entityService.cloner(domain).include(x => x.domainUsers).include(x => x.domain).include(x => x.domainKeys);
15601
15662
  return this.entityService.save(clone.copy);
15602
15663
  }
15603
15664
  get(domainID) {
@@ -16906,7 +16967,7 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "./styles/expander-
16906
16967
  System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/style/styled"], function (_export, _context) {
16907
16968
  "use strict";
16908
16969
 
16909
- var __rest, XNode, styled, createButton, IconButton, AddIconButton, AddIconTextButton, ArchiveIconButton, ArchiveIconTextButton, DeleteIconButton, DeleteIconTextButton, EmailIconButton, EmailIconTextButton, SaveIconButton, SaveIconTextButton, EditIconButton, EditIconTextButton, UploadIconButton, UploadIconTextButton;
16970
+ var __rest, XNode, styled, createButton, IconButton, AddIconButton, AddIconTextButton, ArchiveIconButton, ArchiveIconTextButton, CopyIconButton, CopyIconTextButton, SetupFolderIconButton, SetupFolderTextButton, DeleteIconButton, DeleteIconTextButton, EmailIconButton, EmailIconTextButton, SaveIconButton, SaveIconTextButton, EditIconButton, EditIconTextButton, UploadIconButton, UploadIconTextButton;
16910
16971
  return {
16911
16972
  setters: [function (_tslib) {
16912
16973
  __rest = _tslib.__rest;
@@ -16965,6 +17026,24 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/di
16965
17026
  icon: "fas fa-trash-can",
16966
17027
  layout: "warning-icon-button"
16967
17028
  }));
17029
+ _export("CopyIconButton", CopyIconButton = createButton({
17030
+ icon: "fas fa-copy",
17031
+ layout: "button"
17032
+ }));
17033
+ _export("CopyIconTextButton", CopyIconTextButton = createButton({
17034
+ text: "Open",
17035
+ icon: "fas fa-copy",
17036
+ layout: "icon-button"
17037
+ }));
17038
+ _export("SetupFolderIconButton", SetupFolderIconButton = createButton({
17039
+ icon: "fas fa-gear",
17040
+ layout: "button"
17041
+ }));
17042
+ _export("SetupFolderTextButton", SetupFolderTextButton = createButton({
17043
+ text: "Open",
17044
+ icon: "fas fa-gear",
17045
+ layout: "icon-button"
17046
+ }));
16968
17047
  _export("DeleteIconButton", DeleteIconButton = createButton({
16969
17048
  icon: "fas fa-trash-can",
16970
17049
  layout: "reject-button"
@@ -17017,10 +17096,124 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/di
17017
17096
 
17018
17097
  AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/buttons/IconButton");
17019
17098
 
17020
- System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "../../../../model/model", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/basic/Form", "../../../../common/controls/form/RequiredFormField", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/view-model/Action", "@web-atoms/core/dist/core/InjectProperty", "../services/AdminDomainService", "@web-atoms/web-controls/dist/basic/Checkbox", "@web-atoms/web-controls/dist/basic/AtomRepeater", "@web-atoms/web-controls/dist/basic/Expander", "../../../../common/controls/buttons/IconButton", "../../../commands/AdminCommands"], function (_export, _context) {
17099
+ System.register(["@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/services/NavigationService", "@web-atoms/core/dist/style/styled", "@web-atoms/core/dist/web/controls/AtomControl"], function (_export, _context) {
17021
17100
  "use strict";
17022
17101
 
17023
- var __awaiter, __decorate, __metadata, ContentPage, Domain, HostedDomain, XNode, Form, TextFormField, Bind, Action, InjectProperty, AdminDomainService, Checkbox, AtomRepeater, Expander, AddIconTextButton, AdminCommands, EditDomainPage;
17102
+ var XNode, NavigationService, styled, AtomControl;
17103
+ function CopyIcon({
17104
+ text
17105
+ }) {
17106
+ return XNode.create("i", {
17107
+ class: "fa-solid fa-paste",
17108
+ "data-copy-icon": text,
17109
+ title: `Copy ${text}`
17110
+ });
17111
+ }
17112
+ _export("default", CopyIcon);
17113
+ return {
17114
+ setters: [function (_webAtomsCoreDistCoreXNode) {
17115
+ XNode = _webAtomsCoreDistCoreXNode.default;
17116
+ }, function (_webAtomsCoreDistServicesNavigationService) {
17117
+ NavigationService = _webAtomsCoreDistServicesNavigationService.NavigationService;
17118
+ }, function (_webAtomsCoreDistStyleStyled) {
17119
+ styled = _webAtomsCoreDistStyleStyled.default;
17120
+ }, function (_webAtomsCoreDistWebControlsAtomControl) {
17121
+ AtomControl = _webAtomsCoreDistWebControlsAtomControl.AtomControl;
17122
+ }],
17123
+ execute: function () {
17124
+ styled.css`
17125
+ i[data-copy-icon] {
17126
+ padding: 5px;
17127
+ cursor: pointer;
17128
+ }
17129
+ `.withId("data-copy-icon").installGlobal();
17130
+ document.body.addEventListener("click", e => {
17131
+ var _a;
17132
+ const target = e.target;
17133
+ const text = (_a = target.dataset.copyIcon) === null || _a === void 0 ? void 0 : _a.trim();
17134
+ if (!text) {
17135
+ return;
17136
+ }
17137
+ navigator.clipboard.writeText(text).then(x => {
17138
+ const control = AtomControl.from(target);
17139
+ const ns = control.app.resolve(NavigationService);
17140
+ return ns.notify(XNode.create("div", null, XNode.create("p", {
17141
+ text: text
17142
+ }), XNode.create("p", null, "Copied to clipboard successfully")));
17143
+ }).catch(error => console.error(error));
17144
+ });
17145
+ }
17146
+ };
17147
+ });
17148
+ //# sourceMappingURL=CopyIcon.js.map
17149
+
17150
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/buttons/CopyIcon");
17151
+
17152
+ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/basic/Form", "@web-atoms/web-controls/dist/basic/FormField", "../../../../common/controls/buttons/CopyIcon"], function (_export, _context) {
17153
+ "use strict";
17154
+
17155
+ var __awaiter, PopupWindowPage, XNode, Form, FormField, CopyIcon, DomainKeySetupPage;
17156
+ _export("default", void 0);
17157
+ return {
17158
+ setters: [function (_tslib) {
17159
+ __awaiter = _tslib.__awaiter;
17160
+ }, function (_webAtomsWebControlsDistMobileAppMobileApp) {
17161
+ PopupWindowPage = _webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage;
17162
+ }, function (_webAtomsCoreDistCoreXNode) {
17163
+ XNode = _webAtomsCoreDistCoreXNode.default;
17164
+ }, function (_webAtomsWebControlsDistBasicForm) {
17165
+ Form = _webAtomsWebControlsDistBasicForm.default;
17166
+ }, function (_webAtomsWebControlsDistBasicFormField) {
17167
+ FormField = _webAtomsWebControlsDistBasicFormField.default;
17168
+ }, function (_commonControlsButtonsCopyIcon) {
17169
+ CopyIcon = _commonControlsButtonsCopyIcon.default;
17170
+ }],
17171
+ execute: function () {
17172
+ _export("default", DomainKeySetupPage = class DomainKeySetupPage extends PopupWindowPage {
17173
+ init() {
17174
+ return __awaiter(this, void 0, void 0, function* () {
17175
+ const name = `${this.parameters.name}._domainkey`;
17176
+ const value = `v=DKIM1; k=rsa; p=${this.parameters.publicKey}`;
17177
+ this.renderer = XNode.create("div", null, XNode.create("div", null, "DNS Settings"), XNode.create(Form, null, XNode.create(FormField, {
17178
+ label: "Type"
17179
+ }, XNode.create("input", {
17180
+ readOnly: true,
17181
+ value: "TXT"
17182
+ })), XNode.create(FormField, {
17183
+ label: XNode.create("div", {
17184
+ "data-layout": "row"
17185
+ }, "Name ", XNode.create(CopyIcon, {
17186
+ text: name
17187
+ }))
17188
+ }, XNode.create("input", {
17189
+ readonly: "true",
17190
+ value: name
17191
+ })), XNode.create(FormField, {
17192
+ label: XNode.create("div", {
17193
+ "data-layout": "row"
17194
+ }, "Value ", XNode.create(CopyIcon, {
17195
+ text: name
17196
+ }))
17197
+ }, XNode.create("textarea", {
17198
+ readOnly: true,
17199
+ value: value
17200
+ })), XNode.create(CopyIcon, {
17201
+ text: value
17202
+ })));
17203
+ });
17204
+ }
17205
+ });
17206
+ }
17207
+ };
17208
+ });
17209
+ //# sourceMappingURL=DomainKeySetupPage.js.map
17210
+
17211
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/domains/edit/DomainKeySetupPage");
17212
+
17213
+ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "../../../../model/model", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/basic/Form", "../../../../common/controls/form/RequiredFormField", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/view-model/Action", "@web-atoms/core/dist/core/InjectProperty", "../services/AdminDomainService", "@web-atoms/web-controls/dist/basic/Checkbox", "@web-atoms/web-controls/dist/basic/AtomRepeater", "@web-atoms/web-controls/dist/basic/Expander", "../../../../common/controls/buttons/IconButton", "../../../commands/AdminCommands", "../../../../services/EntityService", "@web-atoms/web-controls/dist/PageNavigator", "./DomainKeySetupPage"], function (_export, _context) {
17214
+ "use strict";
17215
+
17216
+ var __awaiter, __decorate, __metadata, ContentPage, Domain, DomainKey, HostedDomain, XNode, Form, TextFormField, Bind, Action, InjectProperty, AdminDomainService, Checkbox, AtomRepeater, Expander, AddIconTextButton, DeleteIconButton, SetupFolderIconButton, AdminCommands, EntityService, PageNavigator, DomainKeySetupPage, EditDomainPage, summary;
17024
17217
  _export("default", void 0);
17025
17218
  return {
17026
17219
  setters: [function (_tslib) {
@@ -17031,6 +17224,7 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
17031
17224
  ContentPage = _webAtomsWebControlsDistMobileAppMobileApp.ContentPage;
17032
17225
  }, function (_modelModel) {
17033
17226
  Domain = _modelModel.Domain;
17227
+ DomainKey = _modelModel.DomainKey;
17034
17228
  HostedDomain = _modelModel.HostedDomain;
17035
17229
  }, function (_webAtomsCoreDistCoreXNode) {
17036
17230
  XNode = _webAtomsCoreDistCoreXNode.default;
@@ -17054,13 +17248,31 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
17054
17248
  Expander = _webAtomsWebControlsDistBasicExpander.default;
17055
17249
  }, function (_commonControlsButtonsIconButton) {
17056
17250
  AddIconTextButton = _commonControlsButtonsIconButton.AddIconTextButton;
17251
+ DeleteIconButton = _commonControlsButtonsIconButton.DeleteIconButton;
17252
+ SetupFolderIconButton = _commonControlsButtonsIconButton.SetupFolderIconButton;
17057
17253
  }, function (_commandsAdminCommands) {
17058
17254
  AdminCommands = _commandsAdminCommands.default;
17255
+ }, function (_servicesEntityService) {
17256
+ EntityService = _servicesEntityService.default;
17257
+ }, function (_webAtomsWebControlsDistPageNavigator) {
17258
+ PageNavigator = _webAtomsWebControlsDistPageNavigator.default;
17259
+ }, function (_DomainKeySetupPage) {
17260
+ DomainKeySetupPage = _DomainKeySetupPage.default;
17059
17261
  }],
17060
17262
  execute: function () {
17263
+ summary = text => {
17264
+ if (!text) {
17265
+ return text;
17266
+ }
17267
+ if (text.length > 50) {
17268
+ return text.substring(0, 20) + "..." + text.substring(text.length - 20);
17269
+ }
17270
+ return text;
17271
+ };
17061
17272
  _export("default", EditDomainPage = class EditDomainPage extends ContentPage {
17062
17273
  init() {
17063
- var _a;
17274
+ var _a, _b, _c;
17275
+ var _d, _e;
17064
17276
  return __awaiter(this, void 0, void 0, function* () {
17065
17277
  this.model = (_a = this.parameters.model) !== null && _a !== void 0 ? _a : this.parameters.domainID ? yield this.domainService.get(this.parameters.domainID) : HostedDomain.create({
17066
17278
  enableReceive: true,
@@ -17070,6 +17282,8 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
17070
17282
  name: ""
17071
17283
  })
17072
17284
  });
17285
+ (_b = (_d = this.model).domainKeys) !== null && _b !== void 0 ? _b : _d.domainKeys = [];
17286
+ (_c = (_e = this.model).relays) !== null && _c !== void 0 ? _c : _e.relays = [];
17073
17287
  this.renderer = XNode.create("div", {
17074
17288
  "data-layout": "center-page-900px"
17075
17289
  }, XNode.create(Form, null, this.model.domainID ? XNode.create("span", {
@@ -17087,7 +17301,7 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
17087
17301
  }), XNode.create(Checkbox, {
17088
17302
  checked: Bind.twoWaysImmediate(() => this.model.useRelay),
17089
17303
  text: "Use Domain Relay"
17090
- }), XNode.create(Expander, {
17304
+ }), this.model.domainID && XNode.create(Expander, {
17091
17305
  isExpanded: false
17092
17306
  }, XNode.create("label", {
17093
17307
  text: "Relays"
@@ -17100,16 +17314,27 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
17100
17314
  "data-click-event": AdminCommands.editRelay.eventName,
17101
17315
  text: "New Relay"
17102
17316
  }))
17103
- })), XNode.create(Expander, {
17317
+ })), this.model.domainID && XNode.create(Expander, {
17104
17318
  isExpanded: false
17105
17319
  }, XNode.create("label", {
17106
17320
  text: "Domain Keys"
17107
17321
  }), XNode.create(AtomRepeater, {
17108
17322
  items: this.model.domainKeys,
17109
17323
  footer: true,
17324
+ for: "table",
17325
+ itemRenderer: item => XNode.create("tr", null, XNode.create("td", {
17326
+ text: item.name
17327
+ }), XNode.create("td", null, XNode.create("span", {
17328
+ text: summary(item.publicKey)
17329
+ })), XNode.create("td", null, XNode.create(SetupFolderIconButton, {
17330
+ "event-click": () => PageNavigator.pushPage(DomainKeySetupPage, item)
17331
+ })), XNode.create("td", null, XNode.create(DeleteIconButton, {
17332
+ "data-click-event": "delete-domain-key"
17333
+ }))),
17110
17334
  footerRenderer: () => XNode.create("div", {
17111
17335
  "data-layout": "row"
17112
17336
  }, XNode.create(AddIconTextButton, {
17337
+ "data-click-event": "add-domain-key",
17113
17338
  text: "New Domain Key"
17114
17339
  }))
17115
17340
  })), XNode.create("div", {
@@ -17127,12 +17352,36 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
17127
17352
  return this.model;
17128
17353
  });
17129
17354
  }
17355
+ deleteDomainKey(dk) {
17356
+ return __awaiter(this, void 0, void 0, function* () {
17357
+ dk.$deleted = true;
17358
+ yield this.domainService.save(this.model);
17359
+ this.model.domainKeys.remove(dk);
17360
+ });
17361
+ }
17362
+ addDomainKey() {
17363
+ return __awaiter(this, void 0, void 0, function* () {
17364
+ const entityService = this.resolve(EntityService);
17365
+ const dk = DomainKey.create({
17366
+ domainID: this.model.domainID
17367
+ });
17368
+ yield entityService.save(dk);
17369
+ this.model.domainKeys.add(dk);
17370
+ });
17371
+ }
17130
17372
  });
17131
17373
  __decorate([InjectProperty, __metadata("design:type", AdminDomainService)], EditDomainPage.prototype, "domainService", void 0);
17132
17374
  __decorate([Action({
17133
17375
  onEvent: "save-domain",
17134
17376
  close: true
17135
17377
  }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], EditDomainPage.prototype, "saveDomain", null);
17378
+ __decorate([Action({
17379
+ onEvent: "delete-domain-key",
17380
+ confirm: "Are you sure you want to delete this?"
17381
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", [Object]), __metadata("design:returntype", Promise)], EditDomainPage.prototype, "deleteDomainKey", null);
17382
+ __decorate([Action({
17383
+ onEvent: "add-domain-key"
17384
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], EditDomainPage.prototype, "addDomainKey", null);
17136
17385
  }
17137
17386
  };
17138
17387
  });
@@ -17659,9 +17908,10 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/di
17659
17908
  System.register(["tslib", "@web-atoms/core/dist/di/DITransient", "@web-atoms/core/dist/di/Inject", "../../../../services/EntityService", "../../../../model/model", "../../../Sql"], function (_export, _context) {
17660
17909
  "use strict";
17661
17910
 
17662
- var __decorate, __metadata, DITransient, Inject, EntityService, Domain, Mailbox, Sql, MailboxService;
17911
+ var __awaiter, __decorate, __metadata, DITransient, Inject, EntityService, Domain, Mailbox, Sql, MailboxService;
17663
17912
  return {
17664
17913
  setters: [function (_tslib) {
17914
+ __awaiter = _tslib.__awaiter;
17665
17915
  __decorate = _tslib.__decorate;
17666
17916
  __metadata = _tslib.__metadata;
17667
17917
  }, function (_webAtomsCoreDistDiDITransient) {
@@ -17706,12 +17956,19 @@ System.register(["tslib", "@web-atoms/core/dist/di/DITransient", "@web-atoms/cor
17706
17956
  }, p => x => x.emailAddress.emailAddress === p.search);
17707
17957
  }
17708
17958
  }
17709
- return q.toPagedList({
17959
+ return q.include(x => x.emailAddress).toPagedList({
17710
17960
  start,
17711
17961
  size,
17712
17962
  cancelToken
17713
17963
  });
17714
17964
  }
17965
+ save(model) {
17966
+ return __awaiter(this, void 0, void 0, function* () {
17967
+ const cloner = this.entityService.cloner(model);
17968
+ yield this.entityService.save(cloner.copy);
17969
+ return model;
17970
+ });
17971
+ }
17715
17972
  };
17716
17973
  __decorate([Inject, __metadata("design:type", EntityService)], MailboxService.prototype, "entityService", void 0);
17717
17974
  MailboxService = __decorate([DITransient()], MailboxService);
@@ -17807,10 +18064,10 @@ System.register(["tslib", "@web-atoms/core/dist/core/BindableProperty", "@web-at
17807
18064
 
17808
18065
  AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/ComboBox");
17809
18066
 
17810
- System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "../../../model/model", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/basic/Form", "../../controls/form/RequiredFormField", "@web-atoms/web-controls/dist/basic/FormField", "@web-atoms/web-controls/dist/basic/ComboBox", "./services/MailboxService", "@web-atoms/core/dist/core/InjectProperty", "@web-atoms/core/dist/core/Bind"], function (_export, _context) {
18067
+ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "../../../model/model", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/basic/Form", "../../controls/form/RequiredFormField", "@web-atoms/web-controls/dist/basic/FormField", "@web-atoms/web-controls/dist/basic/ComboBox", "./services/MailboxService", "@web-atoms/core/dist/core/InjectProperty", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/view-model/Action"], function (_export, _context) {
17811
18068
  "use strict";
17812
18069
 
17813
- var __awaiter, __decorate, __metadata, PopupWindowPage, EmailAddress, Mailbox, XNode, Form, TextFormField, FormField, ComboBox, MailboxService, InjectProperty, Bind, MailboxEditorPage;
18070
+ var __awaiter, __decorate, __metadata, PopupWindowPage, EmailAddress, Mailbox, XNode, Form, TextFormField, FormField, ComboBox, MailboxService, InjectProperty, Bind, Action, MailboxEditorPage;
17814
18071
  _export("default", void 0);
17815
18072
  return {
17816
18073
  setters: [function (_tslib) {
@@ -17838,6 +18095,8 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
17838
18095
  InjectProperty = _webAtomsCoreDistCoreInjectProperty.default;
17839
18096
  }, function (_webAtomsCoreDistCoreBind) {
17840
18097
  Bind = _webAtomsCoreDistCoreBind.default;
18098
+ }, function (_webAtomsCoreDistViewModelAction) {
18099
+ Action = _webAtomsCoreDistViewModelAction.default;
17841
18100
  }],
17842
18101
  execute: function () {
17843
18102
  _export("default", MailboxEditorPage = class MailboxEditorPage extends PopupWindowPage {
@@ -17852,37 +18111,50 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
17852
18111
  this.model = (_b = (_a = this.parameters) === null || _a === void 0 ? void 0 : _a.model) !== null && _b !== void 0 ? _b : Mailbox.create({
17853
18112
  emailAddress: EmailAddress.create({
17854
18113
  emailAddress: ""
17855
- })
18114
+ }),
18115
+ maxStorage: 10 * 1024 * 1024 * 1024
17856
18116
  });
17857
- this.model.prefix = "";
18117
+ this.model.username = "";
17858
18118
  const domains = yield this.mailboxService.domains();
17859
- this.domain = domains[0];
18119
+ this.model.domain = domains[0];
17860
18120
  this.renderer = XNode.create("div", null, XNode.create(Form, {
17861
18121
  "data-submit-event": "save-mailbox"
17862
18122
  }, XNode.create(TextFormField, {
17863
18123
  label: "Email Prefix",
17864
- value: () => this.model.prefix
18124
+ value: () => this.model.username
17865
18125
  }), XNode.create(FormField, {
17866
18126
  label: "Domain"
17867
18127
  }, XNode.create(ComboBox, {
17868
18128
  labelPath: item => item === null || item === void 0 ? void 0 : item.name,
17869
18129
  valuePath: item => item === null || item === void 0 ? void 0 : item.domainID,
17870
- selectedItem: Bind.twoWaysImmediate(() => this.domain),
18130
+ selectedItem: Bind.twoWaysImmediate(() => this.model.domain),
17871
18131
  items: domains
17872
18132
  })), XNode.create(FormField, {
17873
18133
  label: "Email Address"
17874
18134
  }, XNode.create("span", {
17875
- text: Bind.oneWay(() => `${this.model.prefix}@${this.domain.name}`)
18135
+ text: Bind.oneWay(() => `${this.model.username}@${this.model.domain.domain}`)
17876
18136
  })), XNode.create("div", {
17877
18137
  "data-layout": "command-row"
17878
18138
  }, XNode.create("button", {
18139
+ "data-type": "submit",
17879
18140
  "data-layout": "accept-button",
17880
18141
  text: "Add"
17881
18142
  }))));
17882
18143
  });
17883
18144
  }
18145
+ saveMailbox() {
18146
+ return __awaiter(this, void 0, void 0, function* () {
18147
+ this.model.domainID = this.model.domain.domainID;
18148
+ yield this.mailboxService.save(this.model);
18149
+ return this.model;
18150
+ });
18151
+ }
17884
18152
  });
17885
18153
  __decorate([InjectProperty, __metadata("design:type", MailboxService)], MailboxEditorPage.prototype, "mailboxService", void 0);
18154
+ __decorate([Action({
18155
+ onEvent: "save-mailbox",
18156
+ close: true
18157
+ }), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", Promise)], MailboxEditorPage.prototype, "saveMailbox", null);
17886
18158
  }
17887
18159
  };
17888
18160
  });
@@ -17890,10 +18162,88 @@ System.register(["tslib", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "
17890
18162
 
17891
18163
  AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxEditorPage");
17892
18164
 
17893
- System.register(["tslib", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/basic/AtomRepeater", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "../../controls/repeater/InfiniteRepeater", "./services/MailboxService", "@web-atoms/core/dist/core/InjectProperty", "@web-atoms/core/dist/view-model/Action", "@web-atoms/web-controls/dist/PageNavigator", "./MailboxEditorPage"], function (_export, _context) {
18165
+ System.register([], function (_export, _context) {
18166
+ "use strict";
18167
+
18168
+ var k, m, b, kb, mb, gb, toCompactFixed, toKMBString, toFileSize, formatNumber;
18169
+ return {
18170
+ setters: [],
18171
+ execute: function () {
18172
+ k = 1000;
18173
+ m = k * k;
18174
+ b = m * k;
18175
+ kb = 1024;
18176
+ mb = k * k;
18177
+ gb = m * k;
18178
+ _export("toCompactFixed", toCompactFixed = (n, decimals) => {
18179
+ let text = n.toFixed(decimals);
18180
+ if (decimals > 0) {
18181
+ while (text.endsWith("0")) {
18182
+ text = text.substring(0, text.length - 1);
18183
+ }
18184
+ if (text.endsWith(".")) {
18185
+ text = text.substring(0, text.length - 1);
18186
+ }
18187
+ }
18188
+ return text;
18189
+ });
18190
+ _export("toKMBString", toKMBString = (n, decimals = 0, def = "") => {
18191
+ if (!n) {
18192
+ return def + "";
18193
+ }
18194
+ if (n > b) {
18195
+ return toCompactFixed(n / b, decimals) + "B";
18196
+ }
18197
+ if (n > m) {
18198
+ return toCompactFixed(n / m, decimals) + "M";
18199
+ }
18200
+ if (n > k) {
18201
+ return toCompactFixed(n / k, decimals) + "K";
18202
+ }
18203
+ return toCompactFixed(n, 0);
18204
+ });
18205
+ _export("toFileSize", toFileSize = (n, decimals = 0, def = "") => {
18206
+ n = Number(n);
18207
+ if (n === 0) {
18208
+ return "0 B";
18209
+ }
18210
+ if (!n) {
18211
+ return def + "";
18212
+ }
18213
+ if (n > gb) {
18214
+ return toCompactFixed(n / gb, decimals) + " GB";
18215
+ }
18216
+ if (n > mb) {
18217
+ return toCompactFixed(n / mb, decimals) + " MB";
18218
+ }
18219
+ if (n > kb) {
18220
+ return toCompactFixed(n / kb, decimals) + " KB";
18221
+ }
18222
+ return toCompactFixed(n, 0);
18223
+ });
18224
+ _export("formatNumber", formatNumber = (n, {
18225
+ prefix = "",
18226
+ suffix = "",
18227
+ def = "",
18228
+ numberToText = toKMBString
18229
+ } = {}) => {
18230
+ if (!n) {
18231
+ return def;
18232
+ }
18233
+ const text = numberToText(n);
18234
+ return prefix + text + suffix;
18235
+ });
18236
+ }
18237
+ };
18238
+ });
18239
+ //# sourceMappingURL=NumberFormats.js.map
18240
+
18241
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/NumberFormats");
18242
+
18243
+ System.register(["tslib", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/basic/AtomRepeater", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "../../controls/repeater/InfiniteRepeater", "./services/MailboxService", "@web-atoms/core/dist/core/InjectProperty", "@web-atoms/core/dist/view-model/Action", "@web-atoms/web-controls/dist/PageNavigator", "./MailboxEditorPage", "../../NumberFormats"], function (_export, _context) {
17894
18244
  "use strict";
17895
18245
 
17896
- var __awaiter, __decorate, __metadata, Bind, XNode, AtomRepeater, ContentPage, InfiniteRepeater, MailboxService, InjectProperty, Action, PageNavigator, MailboxEditorPage, MailboxListPage;
18246
+ var __awaiter, __decorate, __metadata, Bind, XNode, AtomRepeater, ContentPage, InfiniteRepeater, MailboxService, InjectProperty, Action, PageNavigator, MailboxEditorPage, toFileSize, MailboxListPage;
17897
18247
  _export("default", void 0);
17898
18248
  return {
17899
18249
  setters: [function (_tslib) {
@@ -17920,6 +18270,8 @@ System.register(["tslib", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dis
17920
18270
  PageNavigator = _webAtomsWebControlsDistPageNavigator.default;
17921
18271
  }, function (_MailboxEditorPage) {
17922
18272
  MailboxEditorPage = _MailboxEditorPage.default;
18273
+ }, function (_NumberFormats) {
18274
+ toFileSize = _NumberFormats.toFileSize;
17923
18275
  }],
17924
18276
  execute: function () {
17925
18277
  _export("default", MailboxListPage = class MailboxListPage extends ContentPage {
@@ -17947,7 +18299,7 @@ System.register(["tslib", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dis
17947
18299
  search: this.search,
17948
18300
  version: this.version
17949
18301
  })), {
17950
- itemRenderer: item => XNode.create("tr", null, XNode.create("td", null))
18302
+ itemRenderer: item => XNode.create("tr", null, XNode.create("td", null, item.emailAddress.emailAddress), XNode.create("td", null, toFileSize(item.storage)), XNode.create("td", null, toFileSize(item.maxStorage)))
17951
18303
  })));
17952
18304
  });
17953
18305
  }
@@ -18200,10 +18552,53 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-con
18200
18552
 
18201
18553
  AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/user/LoginPage");
18202
18554
 
18203
- System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/style/styled", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "../../common/SocialMailApp", "../commands/AdminCommands"], function (_export, _context) {
18555
+ System.register(["@web-atoms/core/dist/core/XNode"], function (_export, _context) {
18556
+ "use strict";
18557
+
18558
+ var XNode;
18559
+ function MenuItem({
18560
+ label,
18561
+ icon,
18562
+ click = undefined,
18563
+ href = "",
18564
+ commandLink = "",
18565
+ target = undefined
18566
+ }) {
18567
+ return href || commandLink ? XNode.create("a", {
18568
+ "data-layout": "menu-item",
18569
+ "data-click-event": commandLink ? "route" : void 0,
18570
+ href: href || commandLink,
18571
+ target: target,
18572
+ "event-click": click
18573
+ }, XNode.create("i", {
18574
+ class: icon
18575
+ }), XNode.create("span", {
18576
+ text: label
18577
+ })) : XNode.create("div", {
18578
+ "data-layout": "menu-item",
18579
+ "event-click": click
18580
+ }, XNode.create("i", {
18581
+ class: icon
18582
+ }), XNode.create("span", {
18583
+ text: label
18584
+ }));
18585
+ }
18586
+ _export("default", MenuItem);
18587
+ return {
18588
+ setters: [function (_webAtomsCoreDistCoreXNode) {
18589
+ XNode = _webAtomsCoreDistCoreXNode.default;
18590
+ }],
18591
+ execute: function () {}
18592
+ };
18593
+ });
18594
+ //# sourceMappingURL=MenuItem.js.map
18595
+
18596
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/menu/MenuItem");
18597
+
18598
+ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/dist/style/styled", "@web-atoms/web-controls/dist/mobile-app/MobileApp", "../../common/SocialMailApp", "../commands/AdminCommands", "../../common/controls/menu/MenuItem"], function (_export, _context) {
18204
18599
  "use strict";
18205
18600
 
18206
- var __awaiter, XNode, styled, Drawer, SocialMailApp, AdminCommands, AdminDrawer, css, MenuItem;
18601
+ var __awaiter, XNode, styled, Drawer, SocialMailApp, AdminCommands, MenuItem, AdminDrawer, css;
18207
18602
  _export("default", void 0);
18208
18603
  return {
18209
18604
  setters: [function (_tslib) {
@@ -18218,36 +18613,13 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/di
18218
18613
  SocialMailApp = _commonSocialMailApp.default;
18219
18614
  }, function (_commandsAdminCommands) {
18220
18615
  AdminCommands = _commandsAdminCommands.default;
18616
+ }, function (_commonControlsMenuMenuItem) {
18617
+ MenuItem = _commonControlsMenuMenuItem.default;
18221
18618
  }],
18222
18619
  execute: function () {
18223
18620
  css = styled.css`
18224
18621
  min-width: 200px;
18225
18622
  `.installLocal();
18226
- MenuItem = ({
18227
- label,
18228
- icon,
18229
- click = undefined,
18230
- href = "",
18231
- commandLink = "",
18232
- target = undefined
18233
- }) => href || commandLink ? XNode.create("a", {
18234
- "data-layout": "menu-item",
18235
- "data-click-event": commandLink ? "route" : void 0,
18236
- href: href || commandLink,
18237
- target: target,
18238
- "event-click": click
18239
- }, XNode.create("i", {
18240
- class: icon
18241
- }), XNode.create("span", {
18242
- text: label
18243
- })) : XNode.create("div", {
18244
- "data-layout": "menu-item",
18245
- "event-click": click
18246
- }, XNode.create("i", {
18247
- class: icon
18248
- }), XNode.create("span", {
18249
- text: label
18250
- }));
18251
18623
  _export("default", AdminDrawer = class AdminDrawer extends Drawer {
18252
18624
  init() {
18253
18625
  return __awaiter(this, void 0, void 0, function* () {
@@ -18287,10 +18659,214 @@ System.register(["tslib", "@web-atoms/core/dist/core/XNode", "@web-atoms/core/di
18287
18659
 
18288
18660
  AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/drawer/AdminDrawer");
18289
18661
 
18290
- System.register(["tslib", "@web-atoms/core/dist/Pack", "@web-atoms/web-controls/dist/desktop-app/MobileDesktopApp", "../style/GlobalStyle", "../services/UserService", "@web-atoms/core/dist/core/InjectProperty", "./commands/AdminCommands", "@web-atoms/web-controls/dist/PageNavigator", "../common/pages/user/LoginPage", "./drawer/AdminDrawer", "@web-atoms/core/dist/core/Command", "@web-atoms/core/dist/core/Route"], function (_export, _context) {
18662
+ System.register(["tslib", "@web-atoms/core/dist/App", "@web-atoms/core/dist/core/types", "@web-atoms/core/dist/di/DISingleton", "@web-atoms/core/dist/di/Inject", "@web-atoms/core/dist/style/styled", "@web-atoms/core/dist/web/services/PopupWindow", "@web-atoms/core/dist/core/InjectProperty", "@web-atoms/core/dist/core/XNode", "@web-atoms/web-controls/dist/basic/AtomRepeater", "@web-atoms/core/dist/core/Bind", "@web-atoms/core/dist/web/services/PopupService"], function (_export, _context) {
18663
+ "use strict";
18664
+
18665
+ var __awaiter, __decorate, __metadata, App, CancelToken, DISingleton, Inject, styled, PopupWindow, InjectProperty, XNode, AtomRepeater, Bind, PopupService, FileUploadWindow, acceptDocumentAndMedia, LocalFileService;
18666
+ return {
18667
+ setters: [function (_tslib) {
18668
+ __awaiter = _tslib.__awaiter;
18669
+ __decorate = _tslib.__decorate;
18670
+ __metadata = _tslib.__metadata;
18671
+ }, function (_webAtomsCoreDistApp) {
18672
+ App = _webAtomsCoreDistApp.App;
18673
+ }, function (_webAtomsCoreDistCoreTypes) {
18674
+ CancelToken = _webAtomsCoreDistCoreTypes.CancelToken;
18675
+ }, function (_webAtomsCoreDistDiDISingleton) {
18676
+ DISingleton = _webAtomsCoreDistDiDISingleton.default;
18677
+ }, function (_webAtomsCoreDistDiInject) {
18678
+ Inject = _webAtomsCoreDistDiInject.Inject;
18679
+ }, function (_webAtomsCoreDistStyleStyled) {
18680
+ styled = _webAtomsCoreDistStyleStyled.default;
18681
+ }, function (_webAtomsCoreDistWebServicesPopupWindow) {
18682
+ PopupWindow = _webAtomsCoreDistWebServicesPopupWindow.default;
18683
+ }, function (_webAtomsCoreDistCoreInjectProperty) {
18684
+ InjectProperty = _webAtomsCoreDistCoreInjectProperty.default;
18685
+ }, function (_webAtomsCoreDistCoreXNode) {
18686
+ XNode = _webAtomsCoreDistCoreXNode.default;
18687
+ }, function (_webAtomsWebControlsDistBasicAtomRepeater) {
18688
+ AtomRepeater = _webAtomsWebControlsDistBasicAtomRepeater.default;
18689
+ }, function (_webAtomsCoreDistCoreBind) {
18690
+ Bind = _webAtomsCoreDistCoreBind.default;
18691
+ }, function (_webAtomsCoreDistWebServicesPopupService) {
18692
+ PopupService = _webAtomsCoreDistWebServicesPopupService.default;
18693
+ }],
18694
+ execute: function () {
18695
+ _export("acceptDocumentAndMedia", acceptDocumentAndMedia = ".doc, .docx, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, video/*, application/pdf, .pdf, .txt, audio/*, image/*, .csv, text/csv, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, text/plain, text/html");
18696
+ styled.css`
18697
+ display: inline-grid;
18698
+ grid-template-rows: auto auto;
18699
+ grid-template-columns: auto 1fr auto;
18700
+
18701
+ & > [data-element=preview] {
18702
+ grid-row: 1 / span 2;
18703
+ grid-column: 1;
18704
+ }
18705
+
18706
+ & > [data-element=file-name] {
18707
+ grid-row: 1;
18708
+ grid-column: 2;
18709
+ overflow: hidden;
18710
+ white-space: nowrap;
18711
+ text-overflow: ellipsis;
18712
+ }
18713
+
18714
+ & > [data-element=progress] {
18715
+ grid-row: 2;
18716
+ grid-column: 2 / span 2;
18717
+ width: 100%;
18718
+ }
18719
+
18720
+ & > [data-element=delete] {
18721
+ grid-row: 1;
18722
+ grid-column: 3;
18723
+ }
18724
+ `.installGlobal("[data-attachment-file]");
18725
+ LocalFileService = class LocalFileService {
18726
+ constructor() {
18727
+ document.body.addEventListener("uploadRequested", ce => {
18728
+ const {
18729
+ target,
18730
+ detail: {
18731
+ files,
18732
+ extra,
18733
+ uploadEvent
18734
+ }
18735
+ } = ce;
18736
+ ce.preventDefault();
18737
+ this.app.runAsync(() => __awaiter(this, void 0, void 0, function* () {
18738
+ const detail = yield FileUploadWindow.showModal({
18739
+ parameters: {
18740
+ files,
18741
+ extra
18742
+ }
18743
+ });
18744
+ target.dispatchEvent(new CustomEvent(uploadEvent, {
18745
+ detail,
18746
+ bubbles: true
18747
+ }));
18748
+ }));
18749
+ });
18750
+ }
18751
+ upload(files) {
18752
+ return __awaiter(this, void 0, void 0, function* () {
18753
+ return files.map(file => {
18754
+ const uploadFile = {
18755
+ name: file.name
18756
+ };
18757
+ uploadFile.promise = new Promise((resolve, reject) => {
18758
+ const body = new FormData();
18759
+ body.append(file.name, file, file.name);
18760
+ const xhr = new XMLHttpRequest();
18761
+ const onError = () => {
18762
+ reject(new Error(xhr.responseText || "Error"));
18763
+ };
18764
+ xhr.upload.addEventListener("progress", event => {
18765
+ if (event.lengthComputable) {
18766
+ uploadFile.progress = event.loaded / event.total;
18767
+ }
18768
+ });
18769
+ xhr.upload.addEventListener("timeout", onError);
18770
+ xhr.upload.addEventListener("error", onError);
18771
+ xhr.upload.addEventListener("abort", onError);
18772
+ xhr.addEventListener("timeout", onError);
18773
+ xhr.addEventListener("abort", onError);
18774
+ xhr.addEventListener("error", onError);
18775
+ xhr.upload.addEventListener("progress", event => {
18776
+ if (event.lengthComputable) {
18777
+ uploadFile.progress = event.loaded / event.total;
18778
+ }
18779
+ });
18780
+ xhr.addEventListener("load", () => {
18781
+ if (xhr.status <= 300) {
18782
+ const r = Object.assign(Object.assign({}, JSON.parse(xhr.responseText)), {
18783
+ file
18784
+ });
18785
+ resolve(r);
18786
+ }
18787
+ });
18788
+ xhr.open("POST", "/api/upload", true);
18789
+ xhr.send(body);
18790
+ });
18791
+ return uploadFile;
18792
+ });
18793
+ });
18794
+ }
18795
+ };
18796
+ __decorate([Inject, __metadata("design:type", App)], LocalFileService.prototype, "app", void 0);
18797
+ LocalFileService = __decorate([DISingleton(), __metadata("design:paramtypes", [])], LocalFileService);
18798
+ _export("default", LocalFileService);
18799
+ FileUploadWindow = class FileUploadWindow extends PopupWindow {
18800
+ constructor() {
18801
+ super(...arguments);
18802
+ this.parameters = {};
18803
+ }
18804
+ init() {
18805
+ return __awaiter(this, void 0, void 0, function* () {
18806
+ this.title = "Uploading...";
18807
+ this.closeWarning = "Are you sure you want to cancel the upload?";
18808
+ this.bindEvent(window, "backButton", e => __awaiter(this, void 0, void 0, function* () {
18809
+ var _a;
18810
+ e.preventDefault();
18811
+ (_a = e.stopImmediatePropagation) === null || _a === void 0 ? void 0 : _a.call(e);
18812
+ e.stopPropagation();
18813
+ yield this.requestCancel();
18814
+ }), null, {
18815
+ capture: true
18816
+ });
18817
+ this.files = yield this.localFileService.upload(this.parameters.files);
18818
+ this.render(XNode.create("div", null, XNode.create(AtomRepeater, {
18819
+ items: this.files,
18820
+ itemRenderer: file => XNode.create("div", {
18821
+ "data-attachment-file": "file"
18822
+ }, XNode.create("div", {
18823
+ "data-element": "file-name",
18824
+ text: file.name
18825
+ }), XNode.create("progress", {
18826
+ min: 0,
18827
+ max: 100,
18828
+ value: Bind.source(file, x => x.source.progress)
18829
+ }))
18830
+ })));
18831
+ try {
18832
+ const ct = new CancelToken();
18833
+ this.registerDisposable({
18834
+ dispose: () => {
18835
+ ct.cancel();
18836
+ }
18837
+ });
18838
+ const tasks = this.files.map(x => x.promise);
18839
+ const files = yield Promise.all(tasks);
18840
+ const extra = this.parameters.extra;
18841
+ this.close({
18842
+ files,
18843
+ extra
18844
+ });
18845
+ } catch (error) {
18846
+ if (CancelToken.isCancelled(error)) {
18847
+ this.cancel(error);
18848
+ return;
18849
+ }
18850
+ yield PopupService.alert({
18851
+ message: error
18852
+ });
18853
+ this.cancel(error);
18854
+ }
18855
+ });
18856
+ }
18857
+ };
18858
+ __decorate([InjectProperty, __metadata("design:type", LocalFileService)], FileUploadWindow.prototype, "localFileService", void 0);
18859
+ }
18860
+ };
18861
+ });
18862
+ //# sourceMappingURL=LocalFileService.js.map
18863
+
18864
+ AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/files/LocalFileService");
18865
+
18866
+ System.register(["tslib", "@web-atoms/core/dist/Pack", "@web-atoms/web-controls/dist/desktop-app/MobileDesktopApp", "../style/GlobalStyle", "../services/UserService", "@web-atoms/core/dist/core/InjectProperty", "./commands/AdminCommands", "@web-atoms/web-controls/dist/PageNavigator", "../common/pages/user/LoginPage", "./drawer/AdminDrawer", "@web-atoms/core/dist/core/Command", "@web-atoms/core/dist/core/Route", "../services/files/LocalFileService"], function (_export, _context) {
18291
18867
  "use strict";
18292
18868
 
18293
- var __awaiter, __decorate, __metadata, Pack, MobileDesktopApp, UserService, InjectProperty, AdminCommands, PageNavigator, LoginPage, AdminDrawer, Command, Route, AdminAppIndex;
18869
+ var __awaiter, __decorate, __metadata, Pack, MobileDesktopApp, UserService, InjectProperty, AdminCommands, PageNavigator, LoginPage, AdminDrawer, Command, Route, LocalFileService, AdminAppIndex;
18294
18870
  return {
18295
18871
  setters: [function (_tslib) {
18296
18872
  __awaiter = _tslib.__awaiter;
@@ -18316,6 +18892,8 @@ System.register(["tslib", "@web-atoms/core/dist/Pack", "@web-atoms/web-controls/
18316
18892
  Command = _webAtomsCoreDistCoreCommand.default;
18317
18893
  }, function (_webAtomsCoreDistCoreRoute) {
18318
18894
  Route = _webAtomsCoreDistCoreRoute.default;
18895
+ }, function (_servicesFilesLocalFileService) {
18896
+ LocalFileService = _servicesFilesLocalFileService.default;
18319
18897
  }],
18320
18898
  execute: function () {
18321
18899
  AdminAppIndex = class AdminAppIndex extends MobileDesktopApp {
@@ -18323,6 +18901,7 @@ System.register(["tslib", "@web-atoms/core/dist/Pack", "@web-atoms/web-controls/
18323
18901
  var _a;
18324
18902
  return __awaiter(this, void 0, void 0, function* () {
18325
18903
  AdminCommands.install(this);
18904
+ this.resolve(LocalFileService);
18326
18905
  const user = yield this.userService.getUser();
18327
18906
  if (!user || !((_a = user.roles) === null || _a === void 0 ? void 0 : _a.some(r => r.roleName === "Administrator"))) {
18328
18907
  PageNavigator.openPage(LoginPage);